Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 months ago
JSON representation
API de uma aplicação no estilo Gympass
- Host: GitHub
- URL: https://github.com/ffavareto/gympass-style-app-api
- Owner: ffavareto
- Created: 2024-08-08T21:12:10.000Z (5 months ago)
- Default Branch: main
- Last Pushed: 2024-08-09T15:39:51.000Z (5 months ago)
- Last Synced: 2024-09-28T11:22:28.939Z (3 months ago)
- Topics: api, docker, docker-compose, fastify, nodejs, postgresql, prisma, typescript, vitest, zod
- Language: TypeScript
- Homepage:
- Size: 64.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
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