Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/keyyuwan/fit-pass-api

FitPass is a Gympass style app developed with SOLID principles
https://github.com/keyyuwan/fit-pass-api

docker fastify nodejs prisma solid

Last synced: about 2 months ago
JSON representation

FitPass is a Gympass style app developed with SOLID principles

Awesome Lists containing this project

README

        

# FitPass

GymPass style app

## đź›  Requisitos funcionais

**Autenticação e Cadastro**

- [x] Deve ser possĂ­vel se cadastrar;
- [x] Deve ser possĂ­vel se autenticar;

**Usuário**

- [x] Deve ser possível obter o perfil de um usuário logado;

**Check-in**

- [x] Deve ser possível obter o número de check-ins realizados pelo usuário logado;
- [x] Deve ser possível o usuário obter seu histórico de check-ins;
- [x] Deve ser possível o usuário realizar check-in em uma academia;
- [x] Deve ser possível validar o check-in de um usuário;

**Academia**

- [x] Deve ser possível o usuário buscar por academias próximas (até 10km);
- [x] Deve ser possível o usuário buscar academias pelo nome;
- [x] Deve ser possĂ­vel cadastrar uma academia;

## đź“„ Regras de negĂłcio

**Usuário**

- [x] O usuário não pode se cadastrar com e-mail duplicado;

**Check-in**

- [x] O usuário não pode realizar 2 check-ins no mesmo dia;
- [x] O usuário não pode realizar check-in se não estiver perto (100m) da 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;

**Academia**

- [x] A academia sĂł pode ser cadastrada por administradores;

## 👨‍💻 Requisitos não-funcionais

- [x] A senha do usuário precisa estar criptografada;
- [x] Os dados da aplicação precisam estar persistidos em um banco PostgreSQL;
- [x] Todas as listas de dados precisam estar paginadas com 20 itens por página;
- [x] O usuário deve ser indentificado por um JWT;

## 🚀 Techs

âś… Node.js

âś… TypeScript

âś… Fastify

âś… Prisma

âś… Vitest

âś… Supertest

âś… Zod

âś… dayjs

âś… bcryptjs