https://github.com/artenlf/nodejs-solid-api
https://github.com/artenlf/nodejs-solid-api
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/artenlf/nodejs-solid-api
- Owner: artenlf
- Created: 2023-06-08T17:35:38.000Z (almost 2 years ago)
- Default Branch: main
- Last Pushed: 2023-09-28T01:02:35.000Z (over 1 year ago)
- Last Synced: 2025-01-09T01:55:49.099Z (5 months ago)
- Language: TypeScript
- Size: 535 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Nodejs-SOLID-API
Gympass styled app.
# Requisitos Funcionais
- [x] Deve ser possível cadastrar o usuário;
- [x] Deve ser possível autenticar o usuário;
- [x] Deve ser possível obter o perfil do usuário logado;
- [x] Deve ser possível obter o número de check-ins realizados pelo usuário logado;
- [x] Deve ser possível obter o histórico do usuário;
- [x] Deve ser possível buscar academias próximas ao usuário (até 10km);
- [x] Deve ser possível buscar academias pelo nome;
- [x] Deve ser possível realizar check-in em uma academia;
- [x] Deve ser possível validar o check-in do usuário;
- [x] Deve ser possível cadastrar uma academia;# Regras de Negócio
- [x] O usuário não pode se cadastrar com um e-mail duplicado;
- [x] O usuário não pode fazer mais de um check-in no mesmo dia;
- [x] O usuário não pode fazer check-in se não estiver dentro do raio de 100m distância de uma academia;
- [x] O check-in só pode ser validado até 20 minutos após criado;
- [x] O check-in só pode ser validado por administradores;
- [x] A academia só pode ser cadastrada por administradores;# Requisitos Não Funcionais
- [x] A senha do usuário precisa ser criptografada;
- [x] Os dados da aplicação precisam estar persistidos em um banco PostgreSQL;
- [x] Todas listas de dados precisam estar paginadas com 20 items por página;
- [x] O usuário deve ser identificado por um JWT (JSON Web Token);# Tecnologias utilizadas
- Typescript
- Prisma ORM
- Fastify
- PostgreSQL
- Docker
- Vitest# Sobre o Projeto
Este projeto faz parte do terceiro módulo da trilha Node.js do programa Ignite da Rocketseat. A ideia é desenvolver uma aplicação semelhante ao GymPass permitindo usuários a se cadastrarem, fazerem check-ins em academias, tal qual no GymPass.