⚽ 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 ozod
. Seu schema é:{ id: z.string(), email: z.string().email(), name: z.string(), picture: z.string().url() }
GET /pools/:id/games
: Com base noid
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 deid
nos valores defirstTeamPoints
esecondTeamPoints
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 notitle
enviado pelobody
, essa rota cria um bolão com o determinado título, e gera seucode
automáticamente com o auxílio doshort-unique-id
.POST /pools/join
: Com base nocode
enviado pelobody
, 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 noid
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 🪟
|
Lucas Maciel
|