Sistema Web Full Stack de Gestao Escolar (Monorepo)
O EduGestor e um sistema completo de gestao escolar desenvolvido em arquitetura monorepo, integrando backend em Flask + MongoDB e frontend em HTML/CSS/JS puro. O projeto inclui funcionalidades para professores e alunos, como autenticacao JWT, dashboards, lancamento de notas, boletins e controle de frequencia.
- Visao Geral
- Tecnologias Utilizadas
- Arquitetura do Projeto
- Instalacao
- Execucao-via-runsh
- Funcionalidades
O EduGestor foi criado com foco em simplicidade, responsividade e separacao clara de responsabilidades.
O sistema oferece:
- Interface web responsiva com tema claro e escuro
- Backend robusto com autenticacao JWT
- Dashboards separados para Aluno e Professor
- Banco MongoDB local via PyMongo
- Orquestracao completa via script
run.sh
- Python 3.12
- Flask
- PyMongo
- Flask-JWT-Extended
- Bcrypt
- HTML5
- CSS3 (variaveis de tema e modo escuro/claro)
- JavaScript ES6+ (fetch API e manipulacao de DOM)
- MongoDB em modo Standalone (Systemd)
- Linux (Ubuntu/Debian)
- Ambiente virtual
venv - Scripts Bash
/backend
app.py # Entry point Flask
database.py # Conexao Mongo isolada
.env # Variaveis de ambiente
/routes
auth.py
aluno.py
professor.py
/frontend
index.html
/css
/js
/img
run.sh # Script principal de automacao
- Separacao clara entre backend e frontend
- Evita circular imports usando modulo dedicado para conexao
- Frontend 100% em JS puro
git clone https://github.com/seu-usuario/EduGestor.git
cd EduGestor
cd backend
python3.12 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
sudo systemctl enable mongod
sudo systemctl start mongod
O script run.sh automatiza toda a execucao do projeto. O que ele faz automaticamente
- Encerra processos ocupando as portas 5000 e 5502
- Inicia o servico do MongoDB
- Ativa a venv do backend
- Inicia o backend Flask
- Inicia o servidor HTTP do frontend
- Abre o navegador
- Encerra todos os processos ao finalizar
Na raiz do projeto:
bash run.sh
Se necessario:
chmod +x run.sh ./run.sh
Login para aluno e professor
JWT armazenado no localStorage
Protecao de rotas no frontend
Painel do Professor
Dashboard com contadores
Cadastro de alunos
Listagem de alunos com turma
Lancamento de notas
Registro de faltas
Painel do Aluno
Dashboard pessoal
Boletim
Historico de faltas
Tema claro/escuro (variaveis CSS)
Layout responsivo com sidebar fixa