Esse repositório guarda os arquivos do projeto Hours Counter.
A ideia do projeto é ser um ambiente de estudo, desenvolvido durante o meu tempo livre, com o objetivo de construir uma API Rest para guardar o tempo que um usuário gasta para realizar uma determinada atividade, assim exercitando vários conceitos e boas práticas do desenvolvimento backend.
Em desenvolvimento...
- NodeJS
- NestJS
- Typescript
- MongoDB
- Jest e Supertest - para testes
- Docker
- - Usuário pode criar uma conta(email deve ser unico)
- - Usuário pode fazer o login
- - Usuário pode listar suas informações (falta adicionar necessidade de autenticação nessa rota)
- - Usuário pode listar as atividades já cadastradas com o seu respectivo tempo e descrição
- - Usuário pode cadastrar uma nova atividade junto do seu tempo de duração
- - Usuário pode adicionar horas/minutos as atividades já cadastradas
- - Usuário pode cadastrar uma nova categoria de atividade, assim como a descrição opicional e o tempo gasto nela
- - Usuário pode ter tanto o total de horas gasto como o quanto foi gasto em qual dia.
- - Usuário pode resetar a senha
Rota utilizada para criar um cliente no qual recebe os parametros abaixo no body:
{
"name": string,
"email": string,
"phone": string,
"password": string
}
Rota utilizada para autenticar usuário e devolver o token jwt para ser utilizado nas outras rotas protegidas.
Parametros body:
{
"email": string,
"password": string
}
Rota utilizada para listar as atividades do cliente(retornar o total na resposta do body)
Parametros body:
{
"page"?: number,
"perPage"?: number,
}
Rota utilizada para pegar as informações do cliente, a identificação do usuário será feita pelo JWT token.
Rota utilizada para cadastrar uma nova atividade
Parametros body:
{
"name": string,
"decription": string,
"category": string, // DEVE SER UMA CATEGORIA JÀ CADASTRADA
"timeSpend": number, // TEMPO EM MINUTOS
}
Rota utilizada para cadastrar uma nova categoria
Parametros body:
{
"name": string,
"decription": string,
}
Rota utilizada para atualizar uma atividade
Parametros body:
{
"name": string,
"decription": string,
"category": string, // DEVE SER UMA CATEGORIA JÀ CADASTRADA
"timeSpend": string, // TEMPO EM MINUTOS
}