How umjs/ponto-smart works
Ponto Smart is a Streamlit time-and-attendance application for employees and administrators. Employees use the kiosk to authenticate, record or correct PIN details, and receive a confirmation; administrators manage employees, inspect and correct time entries, and produce reports. The main runtime is concentrated in app.py, with PDF generation, hour calculations, and email delivery in utils.py, backed by Supabase. The README documents PIN lockout and audit behavior, but the excerpts do not expose their wiring in detail.
Main entry points: app.py Employee kiosk · utils.py PDF generation · database_schema.sql Database schema
Components 21
User workflows
- App routing
app.py - Employee kiosk
app.py - PIN access
app.py - Attendance actions
app.py - Admin panel
app.py - Employee management
app.py - Entry review
app.py - Corrections and audit
app.py - Admin settings
app.py
Persistence
- Employee data access
app.py - Time-entry data access
app.py - Supabase
- Database schema
database_schema.sql
Reports and delivery
- Report workflow
app.py - PDF generation
utils.py - Hour calculation
utils.py - Email delivery
utils.py - Attendance confirmation
app.py
Other components
- Employee
- Administrator
- SMTP service
Connections 29
- Employee → App routing: selects mode
- Administrator → App routing: selects mode
- App routing → Employee kiosk: dispatches
- App routing → Admin panel: dispatches
- Employee kiosk → PIN access: requests authentication
- Employee → PIN access: provides PIN
- Employee kiosk → Attendance actions: records action
- Attendance actions → Employee data access: loads employees
- Attendance actions → Time-entry data access: reads and writes entries
- Attendance actions → Attendance confirmation: shows confirmation
- Admin panel → Employee management: dispatches
- Admin panel → Entry review: dispatches
- Admin panel → Report workflow: dispatches
- Admin panel → Admin settings: dispatches
- Employee management → Employee data access: manages employees
- Entry review → Time-entry data access: loads entries
- Entry review → Corrections and audit: requests correction
- Corrections and audit → Time-entry data access: updates entry
- Report workflow → Employee data access: loads employees
- Report workflow → Time-entry data access: loads entries
- Report workflow → PDF generation: generates report
- PDF generation → Hour calculation: calculates hours
- Report workflow → Email delivery: sends report
- Employee kiosk → PDF generation: creates receipt
- Employee kiosk → Email delivery: sends receipt
- Email delivery → SMTP service: delivers message
- Employee data access → Supabase: reads and writes
- Time-entry data access → Supabase: reads and writes
- Database schema → Supabase: defines tables