Skip to content

KaueASB/api-solid-node-prisma

Repository files navigation

Descrição do Projeto

Bem-vindo ao GymCheck API! Uma plataforma inspirada no modelo Gympass, criada para facilitar a gestão de academias e check-ins de usuários. Com esta API, você pode:

  • Cadastrar usuários e academias.
  • Realizar check-ins em academias próximas (até 100 metros).
  • Validar check-ins e manter um histórico detalhado.
  • Pesquisar academias pelo nome.
  • Atribuir permissões administrativas para controle total 💪🏋️‍♂️

Tecnologias e ferramentas utilizadas

Foi utilizado os seguintes Design Patterns

  • Repository
  • Factory

Para rodar o projeto

Antes de começar, certifique-se de ter o Docker Compose instalado.

  1. Clone este repositório:

    git clone [email protected]:KaueASB/api-solid-node-prisma.git
    cd api-solid
  2. Instale as dependências:

    npm install
  3. Inicie os contêineres Docker (certifique-se de que o Docker esteja em execução):

    docker-compose up -d
  4. Execute as migrações do banco de dados com o Prisma:

    npx prisma migrate dev
  5. Inicie o servidor de desenvolvimento:

    npm run dev

A aplicação estará disponível em http://localhost:3333.

Variáveis de Ambiente

Certifique-se de configurar as variáveis de ambiente necessárias em um arquivo .env na raiz do projeto.

  • PORT: Porta em que o servidor será executado.
  • DATABASE_URL: URL de conexão com o banco de dados PostgreSQL.

Agora você está pronto para explorar o projeto localmente. 😊

RFs (Requisitos funcionais)

  • Deve ser possível se cadastrar
  • Deve ser possível se autenticar
  • Deve ser possível obter o perfil do 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 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 pode 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 validar o mesmo check-in duas vezes
  • O usuário não pode fazer check-in se não estiver há 100 mts 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 as listas de dados precisam estar paginadas com 20 itens por página
  • O Usuário deve ser identificado por um JWT (JSON Web Token)

About

Aplicando o conceito de SOLID

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published