Este projeto foi desenvolvido durante meus estudos na Trilha NodeJS
da Rocketseat
O Gym API Solid é um projeto back-end desenvolvido utilizando Design Patterns, testes automatizados End-To-End (E2E) e Unitários, além dos princípios SOLID e Integração Continua (CI)
O projeto consiste em uma aplicação onde é possível fazer check-ins em academias próximas que estão cadastradas, utilizando o conceito de aplicações como o GymPass e Totalpass, por exemplo.
- Dependency Inversion Principle
- Repository Pattern
- Factory Pattern
- In memory Test Database
- TDD (Test-driven development)
- Access Token & Refresh Token
- RBAC (Role-Based Access Control)
- MVCS Architecture
- Fastify Web Framework
- JWT (Json Web Token)
- Prisma ORM
- PostgreSQL
- Docker
- Vitest & Supertest
- TypeScript
- Deve ser possível se cadastrar;
- Deve ser possível se autenticar;
- Deve ser possível obter o perfil de um usuário logado;
- Deve ser possível obter o número de check-ins realizados pelo usuário logado;
- Deve ser possível o usuário obter seu histórico de check-ins;
- Deve ser possível o usuário buscar academias próximas;
- Deve ser possível o usuário buscar academias pelo nome;
- Deve ser possível o usuário realizar check-in em uma academia;
- Deve ser possível validar o check-in de um usuário;
- Deve ser possível cadastrar uma academia;
- O usuário não deve poder se cadastrar com um e-mail duplicado;
- O usuário não pode fazer 2 check-ins no mesmo dia;
- O usuário não pode fazer check-in se não estiver perto (100m) da academia;
- O check-in só pode ser validado até 20 minutos após criado;
- O check-in só pode ser validado por administradores;
- A academia só pode ser cadastrada por administradores;
- A senha do usuário precisa estar criptografada;
- Os dados da aplicação precisam estar persistidos em um banco PostgresSQL;
- Todas listas de dados precisam estar paginadas com 20 itens por página;
- O usuário deve ser identificado por um JWT (JSON Web Token)