Skip to content
Edson Francisco
  • 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

  1. 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.

  2. 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.

  3. 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