GITHUB BLOG
Daily Diet Api Desafio Rocketseat
bruno-valerohá 7 mesesmain
Daily Diet API - Desafio Rocketseat
Nesse desafio será desenvolvido uma API para controle de dieta diária, a Daily Diet API.
Confira a proposta do desafio no notion.
Requisitos Funcionais
- Deve ser possível criar um usuário
- Deve ser possível identificar o usuário entre as requisições
- Deve ser possível editar uma refeição, podendo alterar todos os dados (editáveis)
- Deve ser possível apagar uma refeição
- Deve ser possível listar todas as refeições de um usuário
- Deve ser possível visualizar uma única refeição
- Deve ser possível recuperar as métricas de um usuário
Regras de Negócio
- Uma refeição deve conter as seguintes informações:
- Dados editáveis
- Nome
- Descrição
- Data e Hora
- Está dentro ou não da dieta
- Metadados
- Data de criação
- Data da última atualização
- id
- Dados editáveis
- A métricas do usuário devem conter os seguintes dados:
- Quantidade total de refeições registradas
- Quantidade total de refeições dentro da dieta
- Quantidade total de refeições fora da dieta
- Melhor sequência de refeições dentro da dieta
- O usuário só pode visualizar, editar e apagar as refeições o qual ele criou
Requisitos Não Funcionais
- Os dados deverão ser persistidos num banco de dados postgreSQL
- O Banco de dados em desenvolvimento deve ser usado através de um container do Docker
- Devem haver testes unitários e testes e2e para validar os requisitos e as regras de negócio
- Deve ser implementado o CI (Continuous Integration)
- CI - ao realizar um push para o github, todos os tests unitários devem ser executados
- CI - ao realizar um pull request para o github, todos os tests e2e devem ser executados
- O projeto dev seguir a metodologia DDD (Domain-Driven Design)
Metodologia Domain-Driven Design
- Domains:
- Diet Control
- application:
- repositories:
- users repository
- meals repository
- use cases:
- register user
- authenticate user
- create meal
- update meal
- delete meal
- find meal by id
- fetch meals
- get user metrics
- repositories:
- enterprise:
- entities:
- user
- meal
- entities:
- application:
- Diet Control