Gust4voSales / QuizSphere-Backend

API Rest server from my Quiz social-networking app

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

English README

icon
QuizSphere

Crie quizes abertos ou privados, favorite os melhores e envie para seus amigos.

-Link do aplicativo na PlayStore: https://play.google.com/store/apps/details?id=com.gust4
-Link no Youtube monstrando app: https://www.youtube.com/watch?v=bO2aJ0DFudk
-Link do server hospedado no Heroku: https://quiz-sphere-backend.herokuapp.com

šŸ“œ Sobre

Este projeto contĆ©m o backend da aplicaĆ§Ć£o QuizSphere (cĆ³digo do frontend mobile: https://github.com/Gust4voSales/QuizSphere-Cliente). O aplicativo foi desenvolvido com o intuito de adquirir experiĆŖncia e conhecimento utilizando tecnologias atuais. O QuizSphere Ć© uma mistura de jogo de perguntas e respostas com elementos caracterĆ­sticos de rede-sociais.

O que o aplicativo faz/permite:

  • Jogar quiz;
  • VocĆŖ pode criar jogos de Quiz de forma pĆŗblica ou privada (apenas o autor do quiz ou quem ele compartilhar pode jogar um quiz privado);
  • Pesquisar por quizes;
  • Avaliar um quiz com like;
  • Adicionar/remover um quiz da sua lista de favoritos;
  • Adicionar amigos;
  • Compartilhar quiz com amigos;
  • Receber notificaƧƵes no aplicativo em tempo real quando algum usuĆ”rio aceita sua solicitaĆ§Ć£o de amizade ou quando compartilham um quiz com vocĆŖ.

šŸ§© Rotas do server

Rota MĆ©todo HTTP FunĆ§Ć£o Requer autenticaĆ§Ć£o
/users/register POST Registra um novo usuĆ”rio NĆ£o
/auth/login POST Realiza o login do usuĆ”rio retornando um Token de autenticaĆ§Ć£o em caso de sucesso NĆ£o
/users/:id GET Retorna as informaƧƵes do usuƔrio Sim
/quiz/create POST Registra um novo quiz Sim
/quiz/show/:id GET Recebe o ID do quiz e retorna os dados dele Sim
/quiz/list GET Retorna a listagem dos quizes, podendo adicionar filtros Sim
/quiz/saved/add/:quizId POST Adiciona um quiz Ơ lista de favoritos do usuƔrio Sim
/quiz/saved/remove/:quizId DELETE Remove um quiz da lista de favoritos do usuƔrio Sim
/quiz/saved GET Retorna a listagem dos quizes favoritados pelo usuƔrio Sim
/quiz/:quizId/like POST DĆ” like no quiz Sim
/quiz/:quizId/dislike DELETE Remove like do quiz Sim
/quiz/share/:quizId POST Compartilha um quiz com amigo Sim
/quiz/received GET Retorna a listagem de quizes recebidos Sim
/friends GET Retorna a listagem de amigos do usuƔrio Sim
/friends/pendingInvitations GET Retorna a listagem das solicitaƧƵes de amizade pendentes Sim
/friends/add?userName= POST Envia solicitaĆ§Ć£o de amizade a algum usuĆ”rio Sim
/friends/accept/:recipientId POST Aceita solicitaĆ§Ć£o de amizade Sim
/friends/decline/:recipientId DELETE Rejeita solicitaĆ§Ć£o de amizade Sim
/friends/remove/:relationId DELETE Remover um amigo Sim
/notifications GET Retorna a listagem das notificaƧƵes do usuƔrio Sim
/notifications/setasread PUT Atualiza as notificaƧƵes recebidas como "visualizadas" Sim

Para testar a API sem um cliente front-end vocĆŖ pode utilizar o Insomnia. Ɖ sĆ³ clicar para importar o workspace!

Run in Insomnia

āš™ Ferramentas

  • Node Js ā€” Ɖ um interpretador de JavaScript assĆ­ncrono com cĆ³digo aberto orientado a eventos
  • Express ā€” Ɖ um framework para Node.js que permite o desenvolvimento de aplicaƧƵes Web de uma forma muito simples
  • MongoDB ā€” Banco de dados nĆ£o relacional
  • Mongoose ā€” Biblioteca que proporciona uma soluĆ§Ć£o baseada em esquemas para modelar os dados da sua aplicaĆ§Ć£o com MongoDB
  • SocketIO ā€” Socket.IO possibilita comunicaĆ§Ć£o em tempo real, biderecional e baseada em eventos
  • JSON Web Tokens ā€” Ɖ uma tĆ©cnica para autenticaĆ§Ć£o remota entre duas partes e Ć© uma das formas mais utilizadas para autenticar usuĆ”rios em APIs RESTful.

šŸ›  Iniciando

  1. Clone o repositĆ³rio rodando no seu terminal/cmd git clone https://github.com/Gust4voSales/QuizSphere-Backend.git
  2. Entre na pasta do projeto e rode yarn para instalar todas as dependĆŖncias
  3. Crie a o banco de dados da aplicaĆ§Ć£o utilizando a plataforma MongoAtlas (seguir este tutorial: https://medium.com/@sergio13prez/connecting-to-mongodb-atlas-d1381f184369)
  4. Crie um arquivo .env seguindo como base o .env.example,
  5. Preencha o arquivo .env adicionando a URL de conexĆ£o com o MongoAtlas gerada no passo anterior e os demais campos
  6. Por fim, yarn dev para iniciar o server

PƔgina do desenvolvimento do aplicativo no Trello - https://trello.com/b/niEoJsnl/quizspher

About

API Rest server from my Quiz social-networking app


Languages

Language:JavaScript 100.0%