Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Encurtador de URL 🔗

spring java docker junit mockito


Projeto para o encurtamento de URLs.

🚀 Começando

Este projeto é uma API de encurtamento de URL desenvolvida com Spring Boot, JPA, Lombok, Validation e PostgreSQL. As URLs que são armazenadas são verificadas pelas validações e tem um tempo de expiração definido pelo usuario.

⚙️ Tecnologias

  • Linguagem: Java 17
  • Framework: Spring Boot (Web, Jpa, Lombok, Validation)
  • Banco de Dados: PostgreSQL, H2 (testes)
  • Ferramenta de construção: Maven
  • Testes: JUnit 5, Mockito
  • Contêinerização: Docker

🔄 Clonando

Clone o projeto usando HTTPS:

https://github.com/notAvoiid/short-url.git

Ou, se preferir usar SSH:

git@github.com:notAvoiid/short-url.git

🟢 Executando o projeto

# 1. Navegue até o diretório do projeto:
cd short-url

# 2. (Opcional) Para Linux: Verifica e para o PostgreSQL caso esteja sendo usado em background:
sudo service postgresql stop

# 3. Crie um arquivo na raiz do projeto chamado `.env`:
touch .env 

# 4. Abra o arquivo e substitua pelos valores apropriados:

POSTGRES_DB=${POSTGRES_DB}
POSTGRES_PASSWORD=${POSTGRES_USER}
POSTGRES_USER=${POSTGRES_PASSWORD}

SPRING_DATASOURCE_URL={SPRING_DATASOURCE_URL}
SPRING_DATASOURCE_USERNAME={SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD={SPRING_DATASOURCE_PASSWORD}
SPRING_JPA_HIBERNATE_DDL_AUTO={SPRING_DDL_AUTO}
SPRING_JPA_PROPERTIES_HIBERNATE_JDBC_TIME_ZONE=America/Sao_Paulo

# 5. Altere as configurações no `application.yml:

spring:
  datasource:
    url=${DATABASE_URL}
    username=${DATABASE_USERNAME}
    password=${DATABASE_PASSWORD}

# 6. Faça o build da aplicação:

mvn clean install

# 7. Inicialize o projeto utilizando o docker-compose.yml:

docker compose up -d

📋 Exemplos de Uso

Criar URL encurtada:

curl -X POST -H "Content-Type: application/json" \
-d '{"url": "https://www.example.com", "minutes": 3}' \
http://localhost:8080/api/url

Captura a URL criada:

curl -v http://localhost:8080/api/{shortCode}

Front-end

Acesse o github do front-end por meio deste link: https://github.com/notAvoiid/short-url-frontend

📄 Documentação

  1. Certifique-se de que o projeto está rodando localmente.
  2. Navegue até http://localhost:8080/swagger-ui/index.html#/ no seu navegador ou clique aqui segurando CTRL: Swagger

📫 Contribuição

Para me ajudar a melhorar o projeto ou me ajudar a melhorar:

  1. Clone: git clone https://github.com/notAvoiid/short-url.git ou git clone git@github.com:notAvoiid/short-url.git
  2. Criando sua própria feature: git checkout -b feature/NAME
  3. Siga os padrões de commit.
  4. Abra um Pull Request explicando o problema resolvido ou a feature implementada. Prints com detalhes são importantes!

Releases

Packages

Used by

Contributors

Languages