Projeto para o encurtamento de URLs.
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.
- 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
Clone o projeto usando HTTPS:
https://github.com/notAvoiid/short-url.git
Ou, se preferir usar SSH:
git@github.com:notAvoiid/short-url.git
# 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
Criar URL encurtada:
curl -X POST -H "Content-Type: application/json" \
-d '{"url": "https://www.example.com", "minutes": 3}' \
http://localhost:8080/api/urlCaptura a URL criada:
curl -v http://localhost:8080/api/{shortCode}Acesse o github do front-end por meio deste link: https://github.com/notAvoiid/short-url-frontend
- Certifique-se de que o projeto está rodando localmente.
- Navegue até
http://localhost:8080/swagger-ui/index.html#/no seu navegador ou clique aqui segurando CTRL: Swagger
Para me ajudar a melhorar o projeto ou me ajudar a melhorar:
- Clone:
git clone https://github.com/notAvoiid/short-url.gitougit clone git@github.com:notAvoiid/short-url.git - Criando sua própria feature:
git checkout -b feature/NAME - Siga os padrões de commit.
- Abra um Pull Request explicando o problema resolvido ou a feature implementada. Prints com detalhes são importantes!