Utilize este checklist para garantir que seu projeto final atenda a todos os requisitos de qualidade e funcionalidade.
✅ Requisitos de Funcionalidade
A rota POST /livros funciona corretamente?
A rota POST /emprestimos valida se o livro está disponível antes de concluir?
É possível listar todos os empréstimos realizados?
✅ Requisitos Técnicos
O código está organizado em pastas seguindo a Clean Architecture?
O banco de dados PostgreSQL sobe corretamente via docker-compose up?
Existe ao menos um arquivo _test.go com testes passando?
🚀 Desafio Extra (Opcional)
Autenticação: Adicione um middleware de proteção simples (API Key) em rotas de cadastro.
Swagger: Gere a documentação Swagger da sua API final.
Deploy: Realize o deploy da imagem Docker em algum serviço gratuito (como Render ou Fly.io).
📚 Gabarito e Soluções Comentadas
Gabarito Explicado ### Questão 1: [ ] A rota `POST /livros` funciona corretamente? **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] A rota `POST /livros` funciona corretamente?) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 2: [ ] A rota `POST /emprestimos` valida se o livro está disponível antes de concluir? **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] A rota `POST /emprestimos` valida se o livro está disponível antes de concluir?) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 3: [ ] É possível listar todos os empréstimos realizados? **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] É possível listar todos os empréstimos realizados?) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 4: [ ] O código está organizado em pastas seguindo a Clean Architecture? **Resolução e Implementação:**
// Estrutura de implementação recomendada para [ ] O código está organizado em pastas seguindo a Clean Architecture?// Validação de regras de negócio e retorno consistente
- **Explicação:** A solução atende diretamente aos requisitos de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, garantindo tipagem consistente, legibilidade e tratamento de casos de borda. ### Questão 5: [ ] O banco de dados PostgreSQL sobe corretamente via `docker **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] O banco de dados PostgreSQL sobe corretamente via `docker) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 6: [ ] Existe ao menos um arquivo `_test.go` com testes passando? **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] Existe ao menos um arquivo `_test.go` com testes passando?) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 7: [ ] **Autenticação** **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] **Autenticação**) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 8: [ ] **Swagger** **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] **Swagger**) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais. ### Questão 9: [ ] **Deploy** **Resposta Comentada:** - **Fundamentação:** No contexto de **Projeto Final: Sistema de Gerenciamento de Biblioteca**, o conceito abordado ([ ] **Deploy**) é essencial para assegurar que os requisitos do sistema sejam estruturados de forma padronizada e escalável. - **Justificativa Técnica:** A abordagem recomendada prioriza baixo acoplamento, alta coesão e facilidade de manutenção em ambientes de produção, evitando retrabalho e inconsistências operacionais.