Pular para conteúdo

Projeto Final: Checklist de Entrega 🏆

Instruções

Utilize este checklist para garantir que seu projeto final atenda a todos os requisitos de qualidade e funcionalidade.


✅ Requisitos de Funcionalidade

  1. A rota POST /livros funciona corretamente?
  2. A rota POST /emprestimos valida se o livro está disponível antes de concluir?
  3. É possível listar todos os empréstimos realizados?

✅ Requisitos Técnicos

  1. O código está organizado em pastas seguindo a Clean Architecture?
  2. O banco de dados PostgreSQL sobe corretamente via docker-compose up?
  3. Existe ao menos um arquivo _test.go com testes passando?

🚀 Desafio Extra (Opcional)

  1. Autenticação: Adicione um middleware de proteção simples (API Key) em rotas de cadastro.
  2. Swagger: Gere a documentação Swagger da sua API final.
  3. 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.