GoTiny é uma aplicação backend desenvolvida em Spring Boot que permite encurtar URLs longas, redirecionar usuários automaticamente e gerar QR Codes para facilitar o compartilhamento.
Este projeto foi criado com foco em boas práticas de arquitetura, organização de código e aprendizado de conceitos modernos de desenvolvimento backend.
LINK PARA O FRONTEND: https://github.com/MarcelFeo/gotiny_front
- 🔗 Encurtar URLs longas
- 🔀 Redirecionamento automático para a URL original
- 📷 Geração de QR Code para URLs encurtadas
- 🗄️ Persistência em banco de dados PostgreSQL
- 🧩 Estrutura baseada em Service, Controller e Repository
- Java 17+
- Spring Boot
- Spring Web
- Spring Data JPA
- PostgreSQL
- Supabase
- Hibernate
- ZXing (QR Code Generator)
- Gradle
GoTiny
┣ 📂 controller
┣ 📂 service
┣ 📂 repository
┣ 📂 model
┣ 📂 dto
┣ 📂 config
┗ GoTinyApplication.java
git clone https://github.com/MarcelFeo/GoTiny.git
cd GoTinyspring.datasource.url=jdbc:postgresql://localhost:5432/gotiny
spring.datasource.username=postgres
spring.datasource.password=senha
spring.jpa.hibernate.ddl-auto=update
spring.jpa.show-sql=trueA aplicação estará disponível em:
http://localhost:8081
POST /gotiny{
"url": "https://www.linkedin.com/in/marcelfeo/"
}{
"id": "UUID",
"urlLong": "https://www.linkedin.com/in/marcelfeo/",
"urlShort": "http://localhost:8081/r/LD6sm",
"urlQrCode": "BASE64_QR_CODE",
"urlCreated_at": "2026-02-05T17:25:47"
}GET /r/{urlShort}Exemplo:
http://localhost:8081/r/LD6sm
A aplicação segue os princípios:
- SOLID
- Separação de responsabilidades
- Camadas bem definidas (Controller, Service, Repository)
- DTOs para comunicação com a API
Contribuições são bem-vindas!
- Faça um fork do projeto
- Crie uma branch (
git checkout -b feature/minha-feature) - Commit suas alterações (
git commit -m 'feat: nova feature') - Push para a branch (
git push origin feature/minha-feature) - Abra um Pull Request
Marcel Estudante de Ciência da Computação e Desenvolvedor Backend Java
- LinkedIn: https://www.linkedin.com/in/marcelfeo/
- GitHub: https://github.com/MarcelFeo
⭐ Se você gostou do projeto, deixe uma estrela no repositório!