- Reliability, DevOps & legacy
AEM Controle de Ponto (CPonto)
Time and attendance with a public kiosk by code or scan, and an admin area for attendance and schedules.
- Period
- 2025–2026
- Status
- In development
- Role
- Environment configuration and deployment; the application was built by a colleague
Problem
The organisation tracked attendance by hand and could not easily tell who arrived, who was late and how many hours each person worked.
Solution
An Ionic + Angular app with a Supabase backend, written by a colleague. Staff identify themselves at a kiosk by internal code or scan, confirm check-in or check-out, and managers see who is present, late or absent. My part was moving keys out of the code into environment variables and preparing deployment.
Technical decisions
01
Configuration through environment variables
Hard-coded values in the environment files were replaced by variables read at build time, with placeholder values for local development only.
02
Kiosk separate from the admin area
The attendance terminal has its own route and the admin area is behind a guard, so the kiosk never needs an admin session.
03
Confirmation before saving
After reading the code, the app shows the name, time and type (in or out) and asks for confirmation, which cuts down wrong entries.
Images
01 / 03 — Kiosk on a phone: internal code field and a scan button
Technologies
- Ionic
- Angular
- Capacitor
- Supabase
- TypeScript
