Sistema web desenvolvido para gerenciar o processo de escolha de tutores pelos alunos de forma eficiente e organizada.
- Interface intuitiva para escolha de tutores
- Sistema de fila em tempo real com Socket.IO
- Painel administrativo para gestão
- Importação de dados de alunos e professores via CSV
- Cache inteligente para melhor performance
- Sistema de fila distribuído com Bull/Redis
- Monitoramento em tempo real das escolhas
- Interface responsiva e moderna
- Suporte a modo offline (PWA)
- Node.js (versão LTS recomendada)
- MongoDB
- Redis
- npm ou yarn
- Clone o repositório
git clone [url-do-repositorio]
cd escolha_tutoria- Instale as dependências
npm install- Configure as variáveis de ambiente
Crie um arquivo
.envna raiz do projeto com as seguintes variáveis:
MONGODB_URI=
PORT=
REDIS_HOST=
REDIS_PORT=6379
NODE_ENV=
- Importe os dados iniciais
node scripts/importar-alunos.js
node scripts/importar-professores.jsnpm run devnpm start/data- Arquivos CSV com dados de alunos e professores/public- Arquivos estáticos e interface do usuário/scripts- Scripts utilitários para importação e gestão de dados/src- Código fonte do servidor/config- Configurações do servidor e conexões/models- Modelos de dados/routes- Rotas da API
- Express.js - Framework web
- Socket.IO - Comunicação em tempo real
- MongoDB - Banco de dados
- Redis - Cache e filas
- Bull - Gerenciamento de filas
- Helmet - Segurança
- Compression - Otimização de performance
- Express Rate Limit - Controle de requisições
O sistema implementa várias camadas de segurança:
- Rate limiting para prevenir sobrecarga
- Helmet para headers HTTP seguros
- Validação de dados
- Sanitização de entradas
- Cache inteligente
- Proteção contra CSRF
O sistema inclui monitoramento em tempo real de:
- Status da fila
- Estatísticas de escolhas
- Performance do sistema
- Logs detalhados
- Faça o fork do projeto
- Crie sua feature branch (
git checkout -b feature/AmazingFeature) - Commit suas mudanças (
git commit -m 'Add some AmazingFeature') - Push para a branch (
git push origin feature/AmazingFeature) - Abra um Pull Request
Este projeto está sob a licença ISC.