⚽ Copa API
| 🇺🇸 English | 
| 🇧🇷 Português | 
⚽ Copa Project API
ERD | Tecnologias | Sobre | Rotas | Plugins | Clone | Contato
🌳 ERD
🚀 Tecnologias utilizadas
- Prisma
- Prisma Erd Generator
- Short Unique Id
- Typescript
- @mermaid-js/mermaid-cli
- Fastify
- @fastify/jwt
- Zod
- NodeJS
- npm
📝 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- idenviado, 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- idnos valores de- firstTeamPointse- secondTeamPointsenviados 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- titleenviado pelo- body, essa rota cria um bolão com o determinado título, e gera seu- codeautomáticamente com o auxílio do- short-unique-id.
- POST /pools/join: Com base no- codeenviado 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- idenviado, 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 🪟
           | Lucas Maciel 
 | 
