Um encurtador de URLs desenvolvido com Java + Spring Boot, permitindo gerar links curtos para URLs longas.
- Java 21
- Spring Boot
- Spring Web
- Spring Data JPA
- Banco de Dados - sqllite
- HTML5
- CSS3
- JavaScript
src
├── main
│ ├── java
│ │ └── api
│ │ └── encurtalk
│ │ ├── controller
│ │ │ ├── EncurtaLinksWebController.java
│ │ │ └── LinksController.java
│ │ │
│ │ ├── dto
│ │ │ └── LinkResponse.java
│ │ │
│ │ ├── entities
│ │ │ └── Links.java
│ │ │
│ │ ├── repository
│ │ │ └── LinksRepository.java
│ │ │
│ │ ├── service
│ │ │ └── EncurtarService.java
│ │ │
│ │ └── EncurtalkApplication.java
│ │
│ └── resources
│ ├── static
│ │ ├── styles.css
│ │ └── script.js
│ │
│ ├── templates
│ │ └── index.html
│ │
│ └── application.properties
O projeto segue a arquitetura em camadas utilizada no Spring Boot.
Responsável por receber as requisições HTTP.
-
EncurtaLinksWebController
- Renderiza a página HTML (Thymeleaf).
-
LinksController
- Disponibiliza a API REST para criação dos links.
Responsável pela transferência de dados entre cliente e servidor.
- LinkResponse
- Retorna as informações do link criado.
Representa a tabela do banco de dados.
- Links
- id
- linkOriginal
- linkNovo
- dataHora
- qrcode
Camada de acesso aos dados.
- LinksRepository
- Persistência utilizando Spring Data JPA.
Contém toda a regra de negócio.
- EncurtarService
- Geração do código do link.
- Persistência no banco.
- Busca de URLs.
- Redirecionamento.
- gerador de qrcode
HTML
│
▼
JavaScript (Fetch API)
│
▼
LinksController
│
▼
EncurtarService
│
▼
LinksRepository
│
▼
Banco de Dados
Usuário
│
▼
Digita uma URL
│
▼
JavaScript envia POST
│
▼
/encurtar
│
▼
Service gera código
│
▼
Salva no banco
│
▼
Retorna JSON
│
▼
JavaScript renderiza o resultado
POST /encurtar
GET /r/{codigo}
Clone o repositório
git clone https://github.com/seu-usuario/encurtalk.gitEntre na pasta
cd encurtalkExecute
./mvnw spring-boot:runou
mvn spring-boot:runA aplicação estará disponível em
http://localhost:8080
A interface foi construída utilizando:
- HTML
- CSS
- JavaScript
A comunicação com a API é feita utilizando a Fetch API, sem necessidade de recarregar a página.
- Login de usuários
- Histórico de links
Desenvolvido por Cauã Evaristo da Cruz.