Skip to content

Recriação da API do aplicativo de academias gympass utilizando arquitetura SOLID, práticas TDD e conceitos de DevOps

Notifications You must be signed in to change notification settings

samuka7abr/Gympass-API

Repository files navigation

🏋️ Gympass API

Uma API REST robusta e completa inspirada no Gympass, desenvolvida com Node.js e TypeScript, permitindo o gerenciamento de usuários, academias e check-ins com autenticação JWT e validação de proximidade.

🚀 Tecnologias Utilizadas

Node.js TypeScript Fastify Prisma PostgreSQL Docker Vitest JWT Zod

📁 Estrutura do Projeto

├── src/
│   ├── @types/           # Definições de tipos TypeScript
│   ├── env/              # Configurações de ambiente
│   ├── http/             # Camada HTTP (controllers, middlewares)
│   │   ├── controllers/
│   │   │   ├── users/    # Controllers de usuários
│   │   │   ├── gyms/     # Controllers de academias
│   │   │   └── check-ins/ # Controllers de check-ins
│   │   └── middlewares/  # Middlewares da aplicação
│   ├── lib/              # Bibliotecas e configurações
│   ├── repositories/     # Repositories (camada de dados)
│   ├── use-cases/        # Casos de uso (regras de negócio)
│   │   ├── factories/    # Factories dos use cases
│   │   └── errors/       # Erros customizados
│   ├── utils/            # Utilitários
│   ├── app.ts           # Configuração do Fastify
│   └── server.ts        # Servidor principal
├── prisma/
│   ├── schema.prisma    # Schema do banco de dados
│   └── migrations/      # Migrações do banco
├── coverage/            # Relatórios de cobertura de testes
├── build/              # Arquivos compilados
└── docker-compose.yml  # Configuração do Docker

⚡ Funcionalidades

👥 Usuários

  • ✅ Cadastro de usuários com validação
  • ✅ Autenticação JWT
  • ✅ Perfil do usuário
  • ✅ Sistema de roles (ADMIN/MEMBER)
  • ✅ Hash seguro de senhas com bcrypt

🏢 Academias

  • ✅ Cadastro de academias (apenas ADMIN)
  • ✅ Busca de academias por nome
  • ✅ Busca de academias próximas (por geolocalização)

📍 Check-ins

  • ✅ Realizar check-in em academias
  • ✅ Validação de proximidade (máx. 100m)
  • ✅ Histórico de check-ins do usuário
  • ✅ Métricas de check-ins
  • ✅ Validação de check-ins (apenas ADMIN)
  • ✅ Regra: apenas 1 check-in por dia

📚 Scripts Disponíveis

  • npm run dev - Inicia o servidor em modo desenvolvimento
  • npm run build - Compila o projeto
  • npm start - Inicia o servidor em produção
  • npm run lint - Executa o linter
  • npm test - Executa os testes unitários
  • npm run test:e2e - Executa os testes E2E
  • npm run test:coverage - Gera relatório de cobertura

👨‍💻 Autor

Samuel Abrão

GitHub Portfolio

Desenvolvedor Full Stack apaixonado por criar soluções inovadoras


Feito com ❤️ por Samuel Abrão

About

Recriação da API do aplicativo de academias gympass utilizando arquitetura SOLID, práticas TDD e conceitos de DevOps

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published