Aula 16 - Projeto Final: Sistema de Gerenciamento de Biblioteca 🏆
Objetivo
Objetivo: Consolidar todos os conhecimentos adquiridos (Fundamentos, Web, Banco de Dados, Testes e Docker) através da construção de um projeto completo e profissional.
1. O Desafio 🚩
Você deve construir uma API REST de Gerenciamento de Livros e Empréstimos. O sistema deve permitir que usuários consultem livros, se cadastrem e realizem empréstimos.
Requisitos Funcionais:
- [x] Cadastro e Listagem de Livros.
- [x] Cadastro de Usuários.
- [x] Realização de Empréstimo (Verificando se o livro está disponível).
- [x] Devolução de Livros.
2. Requisitos Técnicos (Obrigatórios) 🛠️
- Linguagem: Go (Golang).
- Framework Web: Gin Gonic.
- Banco de Dados: PostgreSQL (via GORM).
- Arquitetura: Clean Architecture (divida em camadas: Handler, Service, Repository, Entity).
- Qualidade: Ao menos 3 testes unitários significativos.
- Infra: Dockerfile e Docker Compose configurados.
3. Estrutura Sugerida do Projeto 📂
/projeto-final
├── cmd/ # Main.go
├── internal/ # Camadas da Clean Arch
│ ├── handler/ # Gin Handlers
│ ├── service/ # Lógica de Empréstimo
│ ├── repository/ # GORM Repos
│ └── entity/ # Structs Models
├── scripts/ # SQL ou outros auxiliares
├── docker-compose.yml
└── Dockerfile
4. Diagrama da Entidade Relacional (Mermaid) 📊
erDiagram
LIVRO ||--o{ EMPRESTIMO : possui
USUARIO ||--o{ EMPRESTIMO : faz
LIVRO {
int id
string titulo
string autor
bool disponivel
}
USUARIO {
int id
string nome
string email
}
EMPRESTIMO {
int id
int livro_id
int usuario_id
date data_emprestimo
}
5. Dicas para o Sucesso 💡
- Pense nos erros: O que acontece se alguém tentar pegar um livro que já está emprestado?
- Use Middlewares: Adicione um log simples para cada requisição.
- Documentação: Um arquivo
README.mdbem escrito faz toda a diferença!
6. Conclusão da Jornada 🏁
Parabéns! Você completou o curso de Programação em Go. Você agora possui as ferramentas necessárias para construir sistemas robustos, rápidos e escaláveis no backend.
[!IMPORTANT] O aprendizado não para aqui. Continue explorando a comunidade Go, leia o código fonte da biblioteca padrão e construa seus próprios projetos! 🐹🚀
Próximo Passo: Realize a entrega do seu projeto final e solicite seu feedback! 🎓🐹🏆🚀