Início Profile Projeto
Avatar de

Lucas Maciel

⚽ Copa API

  • nodejs
  • prisma
  • typescript
  • prisma erd generator
  • short unique id
  • fastify
  • mermaid-js
  • jwt
  • zod
  • npm
🇺🇸 English
🇧🇷 Português

luk4x-repo-status luk4x-repo-license

⚽ Copa Project API


ERD   |    Tecnologias   |    Sobre   |    Rotas   |    Plugins   |    Clone   |    Contato


🌳 ERD

prisma erd image

🚀 Tecnologias utilizadas

📝 Sobre

Esse projeto é a API da Copa, que é resumidamente, uma aplicação temática da copa do mundo que realiza o cadastro e a gerência de bolões, jogos e usuários, desenvolvida durante a trilha Ignite da NLW Copa da Rocketseat.
Essa API é a base para a sua interface Web desenvolvida essencialmente com NextJS, e Mobile desenvolvida essencialmente com React Native.

📃 Rotas e Exemplos

  • GET /me: Essa rota retorna informações sobre o usuário.

  • POST /users: Essa é responsável por criar/autenticar um usuário pelo google, preenchendo-o com as seguintes informações recebidas do google e validadas com o zod. Seu schema é:

    {
        id: z.string(),
        email: z.string().email(),
        name: z.string(),
        picture: z.string().url()
    }
    
  • GET /pools/:id/games: Com base no id enviado, essa rota lista todos os jogos relacionados ao determinado bolão.

  • GET /guesses/count: Essa rota retorna o total de palpites feitos.

  • POST /pools/:poolId/games/:gameId/guesses: Com base nos parâmetros de id nos valores de firstTeamPoints e secondTeamPoints enviados pelo body, essa rota cria um palpite para o determinado jogo no determinado bolão com os valores recebidos.

  • GET /pools/count: Essa rota retorna o total de bolões criados.

  • POST /pools: Com base no title enviado pelo body, essa rota cria um bolão com o determinado título, e gera seu code automáticamente com o auxílio do short-unique-id.

  • POST /pools/join: Com base no code enviado pelo body, essa rota permite um determinado usuário se tornar participante do determinado bolão.

  • GET /pools: Essa rota retorna os primeiros 4 bolões que ela encontrar.

  • GET /pools/:id: Com base no id enviado, essa rota retorna informações sobre um determinado bolão.

  • GET /users/count: Retorna o total de usuários cadastrados.

🔑 Plugins

  • authenticate: Sua função é realizar a verificação/validação do usuário com JWT.

📖 Clonando o Projeto

Para clonar e executar este projeto em seu computador, você precisará do Git, Node.js v18.12.0 ou superior e de preferência, um API Client como o Insomnia (mas também pode ser acessado pelo navegador, porém com suas funcionalidades limitadas) previamente instalados.
No terminal:

# Clone esse repositório com:
> git clone https://github.com/Luk4x/copa-server.git

# Entre no repositório com:
> cd copa-server

# Instale as dependências com: 
> npm install

# Execute o projeto com:
> npm run dev

# Feito isso, você já poderá acessar o projeto pelo link que aparecerá no terminal! (algo como http://localhost:3333/ ou http://0.0.0.0:3333/)

🤝 Contato dos Contribuintes

Vitrine.Dev 🪟
Luk4x Github Photo
Lucas Maciel
🪧 Vitrine.Dev Lucas Maciel
Nome ⚽ Copa API
🏷️ Tecnologias nodejs, prisma, typescript, prisma erd generator, short unique id, fastify, mermaid-js, jwt, zod, npm
📷 Img

Voltar ao Topo