Sistema open source para gerenciamento de presença em atividades extra-classe do IFRN. Professores e gestores cadastram atividades, e os participantes registram presença através de QR Codes dinâmicos.
Utiliza o SUAP para autenticação institucional e identificação dos participantes, com geração de relatórios integrada.
- CRUD completo com suporte a múltiplos responsáveis
- Controle automático de status (não iniciada, ativa, encerrada)
- Página pública com QR Code para registro de presença
- Sincronização de tempo com o servidor
- Recarregamento automático da interface ao término
- Registro via QR Code dinâmico ou link direto
- QR Codes com renovação configurável (padrão: 30 segundos)
- Tokens com validação de expiração
- Histórico completo por atividade e por usuário
- Contadores em tempo real
- Restrição por endereço IP ou faixa de rede (CIDR)
- Gerenciamento de redes permitidas (superusuários)
- Registro de IP e timestamp em cada marcação
- Sincronização de relógio cliente-servidor para prevenir manipulação
- Filtros por nome, tipo de usuário, curso e período
- Seleção de colunas para impressão
- Ordenação customizável
- Formato otimizado para impressão física
- Design responsivo (Bootstrap/AdminLTE)
- Atualizações via HTMX (sem reload completo)
- Contadores regressivos em tempo real
- Feedback visual de erros e sucessos
- Painel para superusuários
- Gerenciamento de usuários e redes
- Visualização de todas as atividades do sistema
O sistema utiliza a API do SUAP para:
- Autenticação institucional.
- Importação de dados de turmas, diários e alunos.
Para utilizar a integração, é necessário configurar credenciais de acesso à API do SUAP fornecidas pela instituição.
-
Clone o repositório:
git clone https://github.com/IFRN-SPP/presente.git cd presente -
Configure o ambiente (Python/Django):
python -m venv venv source venv/bin/activate pip install -r requirements.txt -
Defina as variáveis de ambiente no arquivo
.env, usando o arquivo.env.examplecomo modelo:SUAP_API_URL=https://suap.ifrn.edu.br/api/ SUAP_CLIENT_ID=xxxx SUAP_CLIENT_SECRET=yyyy etc... -
Execute as migrações e inicie o servidor:
python manage.py migrate python manage.py runserver
-
Acesse o sistema em: http://localhost:8000
O projeto é aberto a contribuições.
- Faça um fork do repositório.
- Crie uma branch para sua modificação.
- Envie um pull request com a descrição das alterações.
Distribuído sob a licença MIT. Veja LICENSE para mais informações.