Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/ffavareto/gympass-style-app-api

API de uma aplicação no estilo Gympass
https://github.com/ffavareto/gympass-style-app-api

api docker docker-compose fastify nodejs postgresql prisma typescript vitest zod

Last synced: 6 days ago
JSON representation

API de uma aplicação no estilo Gympass

Awesome Lists containing this project

README

        

# RFs (Requisitos funcionais)
- [x] Deve ser possível se cadastrar;
- [ ] Deve ser possível se autenticar;
- [x] 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 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 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;

# RNs (Regras de negócio)
- [x] 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 validada até 20 minutos após ser criado;
- [ ] O check-in só pode ser validado por administradores;
- [ ] A academia só pode ser cadastrada por administradores;

# RNFs (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;
- [ ] 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);

# Comandos

## npm
- `npm install` -> instala as dependências
- `npm run start:dev` -> inicia servidor local (ts)
- `npm run build` -> prepara a aplicação para deploy - gera arquivos js dentro da pasta build
- `npm run start` -> inicia servidor local para a pasta build (js)

## docker
- `docker compose up -d api-gympass-style-app-pg` -> inicia o container do banco de dados
- `docker stop api-gympass-style-app-pg` -> pausa o container do banco de dados
- `docker rm api-gympass-style-app-pg` -> apaga o container do banco de dados

## prisma
- `npx prisma migrate dev` -> executa migrations
- `npx prisma studio` -> abre a visualização da base de dados no navegador