Skip to content

josejefferson/cranio

Repository files navigation

Logo

💀 O Crânio

O "Crânio" é um sistema de mural de avisos eletrônicos desenvolvido especificamente para o IFPB. Além de servir como um mural informativo, o Crânio oferece aos alunos a oportunidade de participar de um jogo de perguntas integrado, onde podem responder às questões e, a critério do professor, ter a chance de ganhar recompensas.

Este projeto foi concebido por um professor do campus com a ideia de executá-lo em uma Raspberry Pi, conectada a um monitor e um teclado numérico. Isso permite que os alunos visualizem os avisos no mural e interajam facilmente com o jogo de perguntas. Quando um aluno responde a uma pergunta corretamente, o sistema envia automaticamente um e-mail ao professor notificando-o da resposta correta.

👨‍💻 Autores

💿 Tecnologias utilizadas

TypeScript NodeJS Next JS React Chakra Bootstrap MongoDB

🔑 Variáveis de Ambiente

Para rodar esse projeto, você vai precisar adicionar as seguintes variáveis de ambiente no seu .env

MONGO_DB - Connection string do MongoDB

GMAIL_CLIENT_ID, GMAIL_CLIENT_SECRET, GMAIL_EMAIL, GMAIL_REFRESH_TOKEN - Credenciais do Gmail

🚀 Rodando localmente

Clone o projeto

git clone https://github.com/josejefferson/cranio

Entre no diretório do projeto

cd cranio

Instale as dependências

yarn

Faça o build

yarn build

Inicie o servidor

yarn start

📷 Screenshots

Tela inicial, onde passam anúncios

Tela inicial

Ao pressionar qualquer tecla, aparece a tela para digitar a matrícula do aluno

Digitar matrícula

Após digitar a matrícula, inicia-se o desafio, se o aluno acertar a pergunta, um e-mail será enviado ao professor que criou a pergunta

Desafio

Administração / Editando desafio

Administração / Editando desafio

Administração / Editando anúncio

Administração / Editando anúncio

📖 Documentação da API

Note Algumas chamadas de API podem requerer um cabeçalho de autenticação!

Retorna todos os anúncios ativos

GET /highlights/active

Retorna um desafio para um determinado estudante

GET /challenges/start/:registration
Parâmetro Tipo Descrição
registration string Obrigatório. Matrícula do estudante

Verifica se a resposta está correta

POST /challenges/check
Parâmetro Tipo Descrição
studentRegistration string Obrigatório. Matrícula do estudante
challengeID string Obrigatório. ID do desafio
choiceID string Obrigatório. ID da alternativa escolhida

Retorna os dados de um estudante

GET /students/find/:registration
Parâmetro Tipo Descrição
registration string Obrigatório. Matrícula do estudante

🗨 Feedback

Se você tiver algum feedback, por favor nos deixe saber por meio do formulário.