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
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy