Skip to content

Uma aplicação inspirada no GymPass, que permite aos usuários realizar check-ins em academias, buscar academias próximas, e mais. Esta aplicação foi desenvolvida com o objetivo de proporcionar uma experiência intuitiva e eficiente para os usuários que desejam frequentar academias de forma prática e conveniente.

License

Notifications You must be signed in to change notification settings

GabrielBorges2000/api-solid

Repository files navigation

API SOLID - Ignite GymPass

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 o seu histórico de check-ins;
  • Deve ser possível o usuário buscar academias próximas (até 10km);
  • Deve ser possível o usuário buscar academias 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;

RNs (Regras de negócio)

  • 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 validado 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)

  • A senha do usuário precisa estar criptografada;
  • 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);

Tecnologias Utilizadas

  • Node.js
  • Fastify
  • JWT
  • Zod
  • Swagger Fastify UI
  • Docker/Postgresql (para o banco de dados)
  • Vitest (Testes E2E)
  • Arquitetura Solid
  • TDD
  • CI - Github Actions

Como Rodar o Projeto

  1. Clone o repositório:

    git clone https://github.com/GabrielBorges2000/api-solid.git
  2. Navegue até o diretório do projeto:

    cd api-solid
  3. Instale as dependências:

    pnpm install
  4. Inicialize o container docker com o banco de dados Postgresql:

    pnpm docker:start
  5. Configure o schema do banco de dados com o prisma:

    pnpm db:migrate
  6. Abra o navegador e acesse a documentação do swagger e teste as rotas:

    http://localhost:3333/docs

Licença

Este projeto está licenciado sob a licença MIT. Consulte o arquivo LICENSE para mais detalhes.

About

Uma aplicação inspirada no GymPass, que permite aos usuários realizar check-ins em academias, buscar academias próximas, e mais. Esta aplicação foi desenvolvida com o objetivo de proporcionar uma experiência intuitiva e eficiente para os usuários que desejam frequentar academias de forma prática e conveniente.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published