/check-in-gym-node

API desenvolvida surante as aula do Ignite no modulo API SOLID

Primary LanguageTypeScript

App

GymPass style app.

RFs (Requisitos funcionais)

  • Deve ser possivel se cadastrar;
  • Deve ser possivel se autenticar;
  • Deve ser possivel obter o perfil de um usuario logado;
  • Deve ser possivel obter o numero de check-ins realizados pelo usuario logado;
  • Deve ser possivel o usuario obter seu historico de check-in;
  • Deve ser possivel o usuario buscar academias proximas;
  • Deve ser possivel o usuario buscar academias pelo nome;
  • Deve ser possivel o usuario realizar check-in em uma academia;
  • Deve ser possivel validar o check-in de um usuario;
  • Deve ser possivel cadastrar uma academia;

RNs (Regras de negocios)

  • O usuario nao deve poder se cadastrar com um e-mail duplicado;
  • O usuario nao pode fazer dois check-ins no mesmo dia;
  • O usuario nao pode fazer check-in se nao estiver perto (100m) da academia;
  • O check-in so pode ser validado ate 20 minutos apos ser criado;
  • O check-in so pode ser validado por Adms;
  • A academia so pode ser cadastrada por Adms;

RNFs (Requisitos nao-funcionais)

  • A senha do usuario precisa estar criptografada;
  • Os dados da aplicacao precisam estar persistindos em um banco PostgreSQL;
  • Todas lista de dados precisam estar paginadas com 20 itens por pagina;
  • O usuario deve ser identificado por um JWT (JSON Web Token)