Skip to content

jovemegidio/Pontto

Repository files navigation


Pontto



Python Flask Bootstrap Chart.js SQLite License

Sistema de ponto eletrônico com gamificação, wellness tracking e analytics em tempo real.

Aplicação web full-stack desenvolvida com Python/Flask que transforma o controle de jornada em uma
experiência inteligente — combinando registro de ponto, mood tracker, focus timer (Pomodoro),
conquistas gamificadas, wellness score e dashboards administrativos em tempo real.

Demo



Sobre o Projeto

Pontto é um sistema de ponto eletrônico completo que transforma o registro de jornada em uma experiência inteligente. Além do controle de entrada e saída, o sistema monitora o bem-estar dos colaboradores, gamifica a consistência e entrega analytics acionáveis para gestores.

Projetado para uso diário em equipes reais, com interface responsiva, dark mode e arquitetura modular.


Diferenciais

O Pontto combina funcionalidades que não existem juntas em nenhum sistema de ponto do mercado:

Funcionalidade Descrição
Registro diário de humor e energia para prevenção de burnout
Sistema de XP, níveis e streaks por consistência de ponto
10 badges desbloqueáveis com critérios progressivos
Índice 0–100 calculado por humor, energia e padrões de jornada
Pomodoro integrado com XP por sessão completada
Presença da equipe em tempo real no painel admin
Gráficos de horas semanais, tendência de humor e saldo mensal
Tema claro/escuro persistente por usuário

Stack Técnica

Backend       Python 3.10+ · Flask 3.0 · SQLAlchemy · Flask-Login
Frontend      Bootstrap 5.3 · Chart.js 4.4 · Inter (Google Fonts)
Banco         SQLite (desenvolvimento) — compatível com PostgreSQL
Auth          Werkzeug (bcrypt hashing) · sessões seguras
Arquitetura   Blueprints · MVC · API REST interna

Estrutura do Projeto

Pontto/
├── app.py                 # Factory da aplicação
├── config.py              # Configurações via variáveis de ambiente
├── extensions.py          # Instâncias de SQLAlchemy e LoginManager
├── models.py              # Modelos: Usuario, RegistroPonto, MoodLog, Conquista, SessaoFoco
├── run.py                 # Entrypoint
├── requirements.txt       # Dependências Python
├── .env.example           # Template de variáveis de ambiente
│
├── routes/
│   ├── auth.py            # Login, logout, perfil
│   ├── ponto.py           # Dashboard, registro, mood, foco, histórico, conquistas
│   ├── admin.py           # Painel admin, funcionários, relatórios
│   └── api.py             # Endpoints JSON: presença, analytics, tema
│
├── templates/
│   ├── base.html          # Layout principal com navbar e tema
│   ├── login.html         # Tela de login
│   ├── dashboard.html     # Dashboard com clock, stats, mood, foco, gráficos
│   ├── historico.html     # Histórico mensal com charts
│   ├── perfil.html        # Perfil do colaborador
│   ├── conquistas.html    # Galeria de conquistas
│   └── admin/
│       ├── painel.html    # Painel administrativo com team heatmap
│       ├── funcionarios.html
│       ├── form_funcionario.html
│       └── relatorio.html
│
└── docs/                  # GitHub Pages (demo estática)
    └── index.html

Funcionalidades Detalhadas

Para Colaboradores

  • Registro de ponto em 1 clique — 4 batidas diárias (Entrada, Saída Almoço, Volta Almoço, Saída)
  • Relógio em tempo real com o próximo tipo de registro destacado
  • Mood & Energy Tracker — seleção visual de humor (5 níveis) e energia a cada dia
  • Focus Timer — Pomodoro configurável (25/5/15 min) com XP automático
  • Histórico mensal com gráficos de horas e tendência de humor
  • Saldo de horas calculado automaticamente contra carga horária esperada
  • Sistema de XP — +5 XP por batida, +3 XP por mood, +10 XP por sessão de foco
  • Streaks — dias consecutivos de ponto com indicador visual
  • 10 Conquistas — Primeiro Passo, Constância, Dedicação, Inabalável, Pontualidade, Mestre do Foco, Madrugador, Equilíbrio, Centurião, Veterano
  • Wellness Score — índice de 0 a 100 que cruza humor, energia e padrões
  • Dark/Light mode persistente

Para Administradores

  • Dashboard executivo — funcionários ativos, presentes hoje, total de registros
  • Team Presence Heatmap — status em tempo real de cada colaborador (presente, almoço, saiu, ausente)
  • CRUD de funcionários — cadastro, edição, ativação/desativação, definição de admin
  • Relatório mensal — horas por funcionário, dias trabalhados, wellness score
  • Filtros por mês, ano e funcionário

API Endpoints

Método Rota Descrição
GET /api/team-presence Status de presença de toda a equipe
GET /api/mood-analytics Dados de humor dos últimos 30 dias
GET /api/horas-semana Horas trabalhadas na semana corrente
POST /api/toggle-theme Alterna dark/light mode do usuário

Modelo de Dados

Usuario ──┬── RegistroPonto (entrada, saída_almoço, volta_almoço, saída)
           ├── MoodLog (humor 1-5, energia 1-5, nota)
           ├── UserConquista ── Conquista (10 tipos)
           └── SessaoFoco (pomodoro, pausas)

Configuração

1. Copie o template de variáveis de ambiente:

cp .env.example .env

2. Edite o .env com suas configurações:

SECRET_KEY=sua-chave-secreta
NOME_EMPRESA=Nome da Empresa
CARGA_HORARIA_DIARIA=8

3. Instale as dependências:

pip install -r requirements.txt

4. Execute:

python run.py

5. Acesse http://localhost:5000

Credenciais padrão: admin@empresa.com / admin123


Screenshots

Acesse a demo online para ver a interface completa.


Roadmap

  • Exportação para PDF/Excel
  • Notificações por e-mail
  • Geolocalização na batida
  • PWA (Progressive Web App)
  • Integração com Slack/Teams
  • Deploy com Docker

Licença

Distribuído sob a licença MIT. Veja LICENSE para mais informações.



Desenvolvido por jovemegidio

About

Sistema inteligente de ponto eletrônico com gamificação, mood tracker, wellness score, focus timer e dashboards em tempo real. Python/Flask + Bootstrap 5 + Chart.js.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors