Skip to content

In this project will be developed an API for a app like Gympass or TotalPass using SOLID principles and tests.

License

Notifications You must be signed in to change notification settings

TarcisioPhilips/Gym-API

Repository files navigation

Gym-API

In this project we will develop an API for a app like Gympass or TotalPass using SOLID and tests!


Setup Project

Install npm packages

npm install

Create project migrations

npx prisma generate

If you need to create a migration:

npx prisma migrate dev 

To start the project run:

npm run dev 

Requisitos Funcionais

  • 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 o seu histórico de check-ins;
  • Deve ser possível o usuário buscar academias próximas (até 10km);
  • 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;

Regras de Negócio

  • 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 ser criado;
  • O check-in só pode ser validado por administradores;
  • A academia só pode ser cadastrada por administradores;

Requisitos Não Funcionais

  • A senha do usuário precisa estar criptografada;
  • Os dados da aplicação precisam estar persistidos em um banco PostgreSQL;
  • 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);

About

In this project will be developed an API for a app like Gympass or TotalPass using SOLID principles and tests.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published