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