Status: pausado em 9 de novembro de 2026. Sem desenvolvimento ativo por enquanto. Nada foi removido, e o trabalho pode ser retomado a partir daqui.
Safari Escolar é um web app de gestão de sala de aula criado para auxiliar professores e professoras do ensino público no acompanhamento de frequência, comportamento, atividades e comunicação com famílias. O projeto foi desenvolvido com foco em impacto real, simplicidade operacional e demonstração ponta a ponta.
O aplicativo parte de um princípio simples: menos burocracia, mais tempo para ensinar.
| Recurso | Link |
|---|---|
| 🎨 Design | Abrir no Figma |
| 🎬 Pitch | Assistir no YouTube |
| 🎬 MVP | Assistir no YouTube |
| 📖 Arquitetura | docs/ARCH.md |
| 📡 Referência da API | docs/API.md |
| 🧪 Testes | docs/TESTING.md |
| 📘 Tutorial | docs/TUTORIAL.md |
| 🔑 Credenciais | docs/CREDENTIALS.md |
| docs/CONSTRAINTS.md |
Professores da rede pública enfrentam:
- Sobrecarga administrativa
- Falta de ferramentas digitais integradas
- Dificuldade de engajar alunos
- Comunicação fragmentada com famílias
- Pouca visibilidade de dados para coordenação
Esses fatores consomem tempo, energia e afetam diretamente a qualidade do ensino.
O Safari Escolar centraliza, em um único sistema:
- Controle de presença
- Registro de comportamento e atividades
- Gamificação leve (pontuação + avatar animal)
- Comunicação estruturada com famílias
- Visão estratégica para coordenação
Tudo com uma interface simples, amigável e pensada para a realidade da escola pública.
- Professor(a): usuário principal
- Coordenação: visão macro e acompanhamento
- Família/Responsável: acesso às informações do próprio aluno
- Administrador: gestão do sistema
- Login seguro
- Criação e seleção de turmas
- Cadastro de alunos
- Atribuição de avatar animal por aluno
- Lista de presença (Presente / Atrasado / Ausente)
- Registro de eventos de comportamento (+ / − pontos + motivo)
- Histórico por aluno e por turma
- Envio de mensagens para famílias
- Visualização de histórico de mensagens
- Acesso apenas ao(s) aluno(s) vinculado(s)
- Visualização de:
- Presença
- Pontuação
- Histórico de mensagens
- Visualização de turmas e professores
- Acompanhamento de frequência e comportamento
- Identificação de padrões (ex.: faltas recorrentes)
- Envio de mensagens para professores
- CRUD de usuários (professor, aluno, coordenação, admin)
- Configurações gerais do sistema
Cada aluno é representado por:
- 🐯 Um animal-avatar
- 🎯 Um sistema simples de pontuação positiva ou negativa
O objetivo não é punição, mas engajamento e feedback visual rápido.
- Professor faz login
- Seleciona ou cria uma turma
- Visualiza lista de alunos
- Registra presença do dia
- Registra eventos de comportamento/atividade
- Envia mensagem para a família
- Família visualiza informações
- Coordenação acompanha indicadores
| Camada | Tecnologia |
|---|---|
| Frontend | Next.js (App Router) · React · TypeScript · Tailwind CSS |
| Backend | Node.js · Express · TypeScript |
| Banco de Dados | PostgreSQL · Prisma ORM |
| Testes | Vitest · Supertest |
| Design | Figma |
| Infra / Deploy | Docker Compose · Vercel / Render |
Este repositório já contém um scaffold funcional dividido em frontend e backend, pensado para facilitar testes, demonstrações e evolução do MVP.
- Node.js 18+
- npm ou yarn
- Git
cd backend
cp .env.example .env
npm install
npx prisma generate
npm run dev- Health check:
GET http://localhost:3000/api/health - Base da API:
http://localhost:3000/api - As rotas de demonstração utilizam dados em memória (ideal para o MVP).
Quando desejar usar banco real (SQLite em desenvolvimento):
npx prisma migrate dev --name init
npx prisma db seed- Senha padrão:
demo123(ou variávelDEMO_PASSWORDno.env) - Professor:
marina@safari-escolar.demo - Coordenação:
coordenacao@safari-escolar.demo - Família:
familia.joao@safari-escolar.demo - Administrador:
admin@safari-escolar.demo
Endpoint auxiliar:
GET /api/auth/demo-credentials
cd frontend
npm install
npm run dev- Aplicação disponível em:
http://localhost:3000 - Arquivo inicial:
frontend/src/app/page.tsx
O foco do MVP é demonstração funcional. Caso o backend não esteja ativo, o frontend pode utilizar stubs ou dados mockados, desde que o fluxo principal esteja claro no vídeo de apresentação.
/safari-escolar
│
├── frontend/ # Next.js (App Router) + Tailwind CSS
├── backend/ # Express + Prisma + PostgreSQL
├── apps/ # protótipos legados (não usados no fluxo atual)
├── packages/ # placeholders para libs compartilhadas futuras
├── docs/
│ ├── API.md # Referência completa da API REST
│ ├── ARCH.md # Arquitetura do sistema
│ ├── CONSTRAINTS.md # Restrições e decisões técnicas
│ ├── CREDENTIALS.md # Credenciais de demonstração
│ ├── TESTING.md # Estratégia e guia de testes
│ ├── tree.md # Árvore de arquivos do projeto
│ └── TUTORIAL.md # Tutorial de uso passo a passo
│
├── docker-compose.yml # Setup do PostgreSQL via Docker
├── README.md
└── .env.example
O projeto atende aos requisitos do hackathon “Auxílio aos professores e professoras no ensino público”, incluindo:
- Problema claramente definido
- MVP funcional
- Demonstração em vídeo
- Documentação técnica e conceitual
- Proposta de impacto social
- Redução de tempo gasto com controle manual
- Melhor acompanhamento individual de alunos
- Comunicação mais clara com famílias
- Mais dados para decisões pedagógicas
- Maior engajamento em sala de aula
Licença de Uso Educacional Público Restrito (Brasil).
É permitido o uso, a cópia e a reprodução do Safari Escolar exclusivamente por escolas públicas e repartições da educação pública no território brasileiro, desde que haja menção explícita ao projeto original e aos criadores.
É vedada a reprodução, modificação, redistribuição ou uso do software em instituições privadas, projetos comerciais ou qualquer outro contexto fora da educação pública, sem acordo com os criadores.
Criadores: Pedro Brito, Rubens Cruz.