Unipass — Wiki de Requisitos do Ecossistema
Esta wiki documenta os três produtos do ecossistema Unipass (transporte universitário municipal) em nível de engenharia de requisitos: conceitos de domínio, fluxos, regras de negócio, exceções, requisitos não-funcionais, funcionalidades e casos de uso. É a fonte técnica a partir da qual um engenheiro de requisitos produz a wiki e o tutorial voltados ao usuário final (gestor municipal, operador de frota, motorista, estudante).
1. Propósito e uso deste documento
Esta wiki é grounded em código — cada regra de negócio, exceção e fluxo aqui descrito foi extraído do backend (Django/DRF), dos frontends (Next.js, Expo/React Native) e da documentação institucional existente do projeto, não de memória ou suposição. Onde a documentação institucional antiga diverge do comportamento real do sistema, a divergência é sinalizada explicitamente (ver nota sobre RBAC "3-gate" vs. 2-gate real).
Esta wiki não é o tutorial de usuário final — é o insumo técnico para produzi-lo. Por isso o tom é denso e assume vocabulário de engenharia (entidades, endpoints, estados, RBAC), mas cada seção termina em casos de uso escritos em linguagem próxima da experiência real do usuário, para facilitar a tradução.
2. O problema que o Unipass resolve
Municípios brasileiros que mantêm transporte universitário público dependem hoje de planilhas, WhatsApp e confirmações verbais para gerenciar centenas de estudantes, rotas, motoristas e viagens diárias. Não há rastreabilidade de presença, controle formal de execução, nem evidência auditável para prestação de contas ao TCE e ao FNDE. O resultado é risco de evasão por falha de acesso ao transporte, subutilização de frota e ausência de dado para decisão do gestor municipal.
| Persona | Dor principal | O que o Unipass resolve |
|---|---|---|
| Gestor municipal | Visibilidade zero da operação | Dashboard e relatórios em tempo real |
| Operador de frota | Confirmação manual de viagens | Confirmação digital com trilha de auditoria |
| Motorista | Sem registro formal de presença | App com presença digital offline-first |
| Estudante | Sem visibilidade da rota | App com localização do ônibus e carteirinha digital |
3. Arquitetura do ecossistema — 3 produtos + 2 camadas de suporte
Esta wiki cobre os três produtos voltados a usuário final. Cada um é sustentado por uma API comum (Django) e por infraestrutura compartilhada.
Gestão
Painel web (Next.js) para gestores municipais e operadores de frota. Cadastros, planejamento, operação diária, relatórios, auditoria.
App Motorista
App (Expo/React Native) para o profissional que conduz o veículo. Fluxo de viagem, presença, GPS offline-first.
App Estudante
PWA (Expo/React Native Web) para o beneficiário do transporte. Confirmação de presença, acompanhamento de rota, carteirinha digital.
API (suporte)
Django 5 + DRF + PostGIS — lógica de domínio e persistência para os 3 produtos acima.
Infraestrutura (suporte)
Docker Compose — Postgres, Redis, MinIO, Grafana.
4. Vocabulário essencial do domínio
Termos usados em todo o ecossistema — cada produto detalha os que lhe são específicos.
| Termo | Definição |
|---|---|
| Estudante | Beneficiário do transporte universitário subsidiado, vinculado a uma IES. |
| Motorista | Profissional habilitado que conduz o veículo. Entidade separada de usuário interno — tem CNH, disponibilidade e histórico de substituições. |
| Monitor | Segundo ocupante do veículo com função de supervisão de embarque — é um Motorista com tipo "monitor", não um usuário autônomo. |
| Rota | Itinerário com direção (ida/volta), turno, IES destino e lista ordenada de pontos de embarque. Unidade de planejamento. |
| Ponto de Embarque | Local físico georreferenciado onde estudantes embarcam ou desembarcam. |
| Vínculo Estudante-Rota | Associação formal entre estudante e rota para um turno e período — o documento de inscrição no serviço. |
| Confirmação Diária | Confirmação do estudante de que vai usar o transporte no dia seguinte, sujeita a um prazo (cutoff) configurável por rota. |
| Dia de Operação | Agregado de todas as viagens de um dia. Ciclo de vida: rascunho → publicado → em andamento → concluído. |
| Viagem | Execução de uma rota em um dia de operação, com veículo e motorista atribuídos. Unidade de operação em campo. |
| IES | Instituição de Ensino Superior — destino de cada rota. |
| Registro de Presença | Registro individual de embarque/desembarque de um estudante em uma viagem (nunca chamado de "check-in" no sistema). |
| Carteirinha digital | Identidade visual do estudante no sistema, com QR de validação sob demanda e camadas anti-fraude. |
Cada produto tem sua página com glossário detalhado (contextos de disciplina, comunicação, gamificação etc.).
5. Fora do escopo atual (v0.5)
- Biometria facial
- Roteirização automática de rotas
- Módulo financeiro completo (abastecimento/manutenção têm API, mas não gestão dedicada no painel)
- Integração nativa com WhatsApp/SMS
- Multi-tenant SaaS — arquitetura é single-tenant por instância/VPS