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
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ê.
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!
- 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.
- Clone o repositório rodando no seu terminal/cmd
git clone https://github.com/Gust4voSales/QuizSphere-Backend.git
- Entre na pasta do projeto e rode
yarn
para instalar todas as dependências - 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)
- Crie um arquivo .env seguindo como base o .env.example,
- Preencha o arquivo .env adicionando a URL de conexão com o MongoAtlas gerada no passo anterior e os demais campos
- Por fim,
yarn dev
para iniciar o server
Página do desenvolvimento do aplicativo no Trello - https://trello.com/b/niEoJsnl/quizspher