Skip to content

API em NodeJs usando Typescript, TDD, Clean Architecture, Design Patterns e SOLID principles

Notifications You must be signed in to change notification settings

MarioFGomes/GymPass-API

Repository files navigation

App

GymPass style app.

RFs (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 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 academia 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
  • Como usuario deve ser possível ter uma foto de perfil
  • Deve ser possível o Gym ter um Logo

RNs (Regras de negócio)

  • O usuário não deve poder se cadastrar com e-mail duplicado
  • O usuário não pode fazer 2 check-ins no mesmo dia;
  • O usuário não pode fazer check-ins 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 Foto de perfil deve ser no maximo de 5mb
  • O usuario deve estar logado para adicionar uma foto de perfil

RNFs (Requisitos não-funcionais)

  • A senha do usuario precisa estar criptografada;
  • Os dados da aplicação precisam estar presistido em um banco de dados 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);
  • Melhorar a performace da busca do perfil do usuário implementando o cache com redis
  • [] Implementar ferramentas de observabilidade para logs e monitoramento