Skip to content

Back-end desenvolvido com NodeJS, TypeScript, Prisma e Express para prover dados para as aplicações em desenvolvimento.plicações do evento NLW eSports.

Notifications You must be signed in to change notification settings

ImFelippe365/nlw-esports-server

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NLW eSports Back-End Badge Badge Badge Badge



Aplicação back-end para surprir as necessidades de dados das demais plataformas desenvolvidas que são citadas mais abaixo. Este sistema é capaz de listar os jogos disponíveis, seus respectivos anúncios e cadastrar novos anúncios de um jogo.

Durante o evento do NLW da Rocketseat, essa foi a aplicação a ser desenvolvida durante o evento.

Além do atual projeto, foi desenvolvido uma aplicação mobile e para web, na qual requisitam os dados para essa API.

Tecnologias utilizadas no projeto

  • Prisma
  • Express
  • NodeJS
  • TypeScript

Instalação

Para instalar e usar pelo repositório, clone o repositório e instale as dependências usando o seguinte comando no diretório raiz.

npm install

ou se preferir:

yarn install

Execução

E por fim, para executar o projeto basta inserir o seguinte comando:

npm run dev

ou se preferir:

yarn run dev

Rotas

Importante ressaltar que localmente a url para acesso é localhost:3333, caso o repositório seja hospedado em um servidor é necessário revisar essas informações na hora de usufruir da API.

Listar jogos

get('/games/')

Saída:

[
  {
    "id": "e5bdc648-c1bf-4cc1-8721-a548d58775b5",
    "title": "League of Legends",
    "bannerUrl": "https://static-cdn.jtvnw.net/ttv-boxart/21779-285x380.jpg",
    "_count": {
      "ads": 0
    }
  },
  {
    "id": "6cf741e6-9893-44a8-931f-414b083de6aa",
    "title": "Minecraft",
    "bannerUrl": "https://static-cdn.jtvnw.net/ttv-boxart/27471_IGDB-285x380.jpg",
    "_count": {
      "ads": 0
    }
  },
  {...}
]

Listar anúncios de um jogo

get('/games/id/ads')

Saída:

[
  {
    "id": "c8e82ced-6878-4cad-8ea0-466320de00ff",
    "name": "ImFelippe365",
    "weekDays": [
      "0", "6"
    ],
    "useVoiceChannel": true,
    "yearsPlaying": 2,
    "hoursStart": "13:00",
    "hoursEnd": "18:00"
  },
  {...}
]

Listar discord do jogador conectado

get('/ads/id/discord')

Saída:

{
  "discord": "ImFelippe365#2814"
}

Criar novo anúncio

post('/games/gameId/ads')

Params

gameId - ID do jogo que o anúncio será criado

Body

name - Nome do jogador (string)

yearsPlaying - Por quantos anos já jogou (number)

discord - Nome de usuário do discord (string)

weekDays - Dias da semana em que joga (number[])

hoursStart - Horário que começa a jogar (string)

hoursEnd - Horário que para de jogar (string)

useVoiceChannel - Se utiliza canal de voz para comunição (boolean)

Entrada

A requisição deve ter o corpo parecido com este:

{
  "name": "Felippe Rian",
  "yearsPlaying": 2,
  "discord": "ImFelippe365#2814",
  "weekDays": [0, 6],
  "hoursStart": "18:00",
  "hoursEnd": "23:00",
  "useVoiceChannel": true
}

About

Back-end desenvolvido com NodeJS, TypeScript, Prisma e Express para prover dados para as aplicações em desenvolvimento.plicações do evento NLW eSports.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published