Skip to main content

Overview

As an administrator, you have access to the monitoring dashboard where you can track employee attendance, send reminders, generate reports, and analyze tardiness patterns.
The admin account is identified by the username “admin” in the system. Upon login, you’re automatically redirected to the monitoring panel instead of the employee dashboard.

Accessing the Admin Panel

Logging In

1

Navigate to the login page

Go to your organization’s Checawaa URL.
2

Enter admin credentials

Use your administrator username and password:
Username: admin
Password: [your admin password]
Keep your admin credentials secure. This account has access to all employee attendance data.
3

Access the monitoring panel

After successful login, you’ll be automatically redirected to /monitor - the administrative dashboard.

Understanding the Admin Dashboard

The monitoring panel is divided into several key sections:

Dashboard Layout

Attendance History Table

Shows all attendance records with timestamps and status indicators

Tardiness Analytics

Visual breakdown of accumulated tardiness by employee

Quick Actions

Buttons to send reminders and generate PDF reports

System Summary

Total record count and system statistics

Monitoring Employee Attendance

Attendance History Table

The main table displays all attendance records with the following columns:
ColumnDescriptionExample
MaestroEmployee usernameempleado1
FechaDate of attendance2026-03-05
Hora de RegistroFirst check-in time08:15:23
EstadoPunctuality statusPUNTUAL / RETARDO
PUNTUAL (On Time)
  • Green badge
  • Check-in at 8:30 AM or earlier
  • Employee arrived on time
RETARDO (Late)
  • Red badge
  • Check-in after 8:30 AM
  • Employee arrived late

Interpreting the Data

Timestamps are in 24-hour format (HH:MM:SS):
  • 08:15:23 = 8:15 AM and 23 seconds ✅ On time
  • 08:45:12 = 8:45 AM and 12 seconds ❌ Late
  • 07:30:00 = 7:30 AM ✅ Early arrival
Look for patterns in the attendance data:
  • Consistent early arrival - Reliable employee
  • Frequent tardiness - May need coaching or schedule adjustment
  • No records for today - Employee hasn’t started tracking yet
  • Multiple entries per day - Normal (system updates every 50 minutes)

Sending Reminder Notifications

Manual Reminders

You can manually trigger reminder emails to employees who haven’t checked in:
1

Click the '📧 Notificar Faltantes' button

Located in the header of the admin panel, this button triggers the reminder system.
2

Monitor the status indicator

Watch for status messages below the analytics chart:
  • ”⏳ Enviando correos…” - Emails are being sent
  • ”✅ Recordatorios enviados con éxito” - Successfully sent
  • ”❌ Error al enviar” - Failed to send
3

Verify delivery

The system sends emails to all employees who:
  • Are not the admin user
  • Have NOT checked in today
  • Have a valid email address in the system

Automated 8 AM Reminders

Checawaa automatically sends reminders at 8:00 AM every day:
# Automated reminder schedule
scheduler.add_job(enviar_recordatorio_automatizado, 
                  'cron', 
                  hour=8, 
                  minute=0)
The automated reminder runs every day at exactly 8:00 AM server time. Employees who haven’t started their shift tracking receive an email notification.
Email Content:
To: [employees who haven't checked in]
Subject: ⚠️ Recordatorio Automático: Inicia tu Turno

Buenos días. Son las 8:00 AM y el sistema aún no detecta 
tu registro de hoy. Por favor inicia tu monitoreo.

Who Receives Reminders

The system determines recipients using this logic:
1

Get today's date

Current date in format YYYY-MM-DD
2

Find who has checked in

Scan all attendance records for entries matching today’s date
3

Identify absent employees

Create list of all non-admin users who haven’t checked in
4

Send to their registered emails

Use the email addresses from the user database
Reminders are only sent if employees have valid email addresses configured. Check the user database to ensure all employees have email addresses set.

Generating Reports

PDF Attendance Reports

Generate comprehensive PDF reports with all attendance data:
1

Click '📥 Reporte PDF'

The PDF button in the header generates a downloadable report.
2

Wait for generation

The system processes all attendance records and creates a PDF file.
3

Download begins automatically

File name: reporte_asistencia.pdfThe PDF downloads to your browser’s default download location.

Report Contents

The PDF report includes:
  • Report title: “REPORTE DE ASISTENCIA”
  • Generation timestamp
  • Horizontal divider line
The report automatically spans multiple pages if there are many records. Each page can hold approximately 40 records before starting a new page.

Using Reports for Performance Reviews

Reports are valuable for:
  • Monthly performance evaluations - Track attendance trends over time
  • Disciplinary documentation - Evidence of chronic tardiness
  • Payroll verification - Confirm work hours and presence
  • Compliance audits - Provide attendance records to regulators
  • Identifying patterns - Spot trends across teams or individuals

Interpreting Tardiness Analytics

The Doughnut Chart

The admin panel displays a visual breakdown of accumulated tardiness:

What It Shows

  • Each slice represents an employee
  • Size proportional to number of tardy days
  • Color-coded for easy identification
  • Legend shows employee names

How It's Calculated

The system counts records where:
if(d.status === "RETARDO") {
    conteoRetardos[d.usuario]++;
}
Only late arrivals are counted, not on-time check-ins.

Reading the Chart

1

Identify problem areas

Larger slices indicate employees with more tardiness issues.
2

Compare across team

See relative tardiness between employees at a glance.
3

Track improvement

Monitor the chart over time to see if interventions are working.
Take a screenshot of the chart periodically to track trends. Compare charts from different months to see if attendance is improving or declining.

Acting on the Data

Based on tardiness analytics, you can:
  • Minimal action needed - Occasional lateness happens
  • Send a friendly reminder about start times
  • Check if there are legitimate reasons (traffic, family issues)
  • Moderate intervention - Pattern emerging
  • Schedule a one-on-one discussion
  • Understand underlying causes
  • Set clear expectations going forward
  • Document the conversation
  • Serious intervention - Chronic issue
  • Formal performance improvement plan
  • Consider disciplinary action per company policy
  • Investigate if role/schedule is a good fit
  • Document all actions taken

Managing User Accounts

User Database Structure

Users are stored in /data/usuarios.json:
[
    {
        "username": "admin",
        "pass": "123",
        "email": "[email protected]"
    },
    {
        "username": "empleado1",
        "pass": "123",
        "email": "[email protected]"
    }
]

Adding New Employees

1

Access the server

Log into the server hosting Checawaa via SSH or file manager.
2

Edit usuarios.json

Navigate to the data directory and open usuarios.json.
3

Add the new user entry

{
    "username": "empleado3",
    "pass": "securepass123",
    "email": "[email protected]"
}
Ensure proper JSON formatting with commas between entries. Invalid JSON will break the system.
4

Save and restart

Save the file. The system reads this file on each login, so changes take effect immediately.

User Account Best Practices

  • Use strong, unique passwords for each employee
  • Consider implementing a password policy
  • Never share passwords between users
  • Change default passwords immediately
  • Store passwords securely (consider a password manager)

Removing Employees

When an employee leaves:
1

Decide on data retention

Determine if you need to keep historical attendance records.
2

Option A: Delete the user

Remove their entry from usuarios.json. They won’t be able to log in, but their attendance history remains in registros.json.
3

Option B: Disable login

Change their password to a random string to prevent login while keeping the account for historical reference.
Even after removing a user from usuarios.json, their attendance records remain in the system. This is important for audit trails and payroll verification.

System Administration

Monitoring System Health

Regular checks to ensure Checawaa is running smoothly:
Verify the 8 AM reminder is running:
  • Check server logs for scheduled task execution
  • Confirm employees are receiving automated emails
  • Look for error messages in console output
Periodically review the data files:
  • data/registros.json - Attendance records
  • data/usuarios.json - User accounts
  • Ensure files are not corrupted
  • Check file sizes are growing as expected
  • Use the manual reminder button to test email sending
  • Verify employees receive the notifications
  • Check spam folders if emails aren’t arriving
  • Confirm SMTP credentials are still valid

Backup and Recovery

Always maintain backups of the data directory to prevent loss of attendance records.
Backup Strategy:
1

Regular backups

Schedule daily backups of the /data directory containing:
  • usuarios.json - User accounts
  • registros.json - All attendance records
2

Automated backup script

# Example backup command
tar -czf backup_$(date +%Y%m%d).tar.gz data/
3

Off-site storage

Store backups in a separate location (cloud storage, different server).
4

Test restoration

Periodically test that you can restore from backups.

Troubleshooting Admin Issues

Symptom: Redirected to employee dashboard instead of /monitorCause: Your username is not exactly “admin”Solution:
  • Verify your username in usuarios.json is exactly "admin"
  • The system checks: if user_input == 'admin'
  • Case and spacing matter
Symptoms: Download fails or PDF is corruptedPossible causes:
  • ReportLab library not installed
  • File permissions issue
  • Too many records causing timeout
Solutions:
  • Verify ReportLab installation: pip install reportlab
  • Check server error logs
  • Test with smaller date ranges
Symptoms: Status shows error, or employees don’t receive emailsCommon causes:
  1. SMTP credentials expired - Gmail app passwords expire or are revoked
  2. Network/firewall blocking - Port 587 might be blocked
  3. Invalid email addresses - Bounced emails due to typos
  4. Gmail security restrictions - Google blocking the login attempt
Solutions:
  • Verify SMTP settings in configuration
  • Test with a different email provider
  • Check server logs for specific error messages
  • Ensure “Less secure apps” is enabled (or use app-specific password)

Advanced Features

Customizing the Tardiness Threshold

The default tardiness threshold is 8:30 AM. To change it:
  1. Locate the threshold in code (app.py:149):
    es_retardo = hora_reg > "08:30:00"
    
  2. Change to your desired time:
    es_retardo = hora_reg > "09:00:00"  # 9 AM threshold
    
  3. Also update in the report generation (app.py:206):
    estado = "RETARDO" if hora > "09:00:00" else "PUNTUAL"
    
Make this change in both locations to ensure consistency across the monitoring panel and PDF reports.

Adjusting Location Update Frequency

Employees send location updates every 50 minutes by default. To change this: In templates/index.html:27:
// Current: 50 minutes
setInterval(enviarUbicacion, 50 * 60 * 1000);

// Change to 30 minutes:
setInterval(enviarUbicacion, 30 * 60 * 1000);

// Change to 1 hour:
setInterval(enviarUbicacion, 60 * 60 * 1000);
More frequent updates increase accuracy but also increase server load and battery drain on mobile devices. Find a balance that works for your organization.

Changing Automated Reminder Time

The 8 AM reminder time can be adjusted in app.py:90:
# Current setting: 8:00 AM
scheduler.add_job(enviar_recordatorio_automatizado, 
                  'cron', 
                  hour=8,  # Change this
                  minute=0)

# Example: 7:30 AM
scheduler.add_job(enviar_recordatorio_automatizado, 
                  'cron', 
                  hour=7, 
                  minute=30)
Set the reminder time 30-60 minutes before your tardiness threshold to give employees time to respond.

Best Practices for Administrators

Daily Routine

1

Morning check (8:00-8:30 AM)

  • Log into admin panel
  • Review who has checked in
  • Note any absent employees
  • Verify automated reminder sent successfully
2

Mid-day review (12:00 PM)

  • Check if late employees have now checked in
  • Review any unusual patterns
  • Follow up on chronic absence
3

End-of-day verification (5:00 PM)

  • Confirm all expected employees checked in
  • Document any discrepancies
  • Prepare notes for follow-up conversations

Weekly Tasks

  • Generate PDF report for the week
  • Review tardiness analytics chart for trends
  • Compare week-over-week attendance patterns
  • Schedule conversations with employees showing concerning patterns

Monthly Activities

  • Export and archive monthly attendance data
  • Performance reviews using attendance as one factor
  • System maintenance - check backups, update passwords
  • Review and adjust policies if needed

Communication Tips

When Addressing Tardiness

  • Be fact-based (use exact timestamps)
  • Listen to employee’s perspective
  • Identify root causes
  • Collaborate on solutions
  • Document the discussion

When Recognizing Good Attendance

  • Acknowledge consistent punctuality
  • Highlight employees with zero tardies
  • Consider attendance in performance reviews
  • Set positive examples for the team

Security Considerations

Protecting Attendance Data

Attendance records contain sensitive employee information. Treat this data with appropriate security measures.
Security best practices:
  • Secure the admin account - Use a strong, unique password
  • Limit admin access - Only give credentials to authorized personnel
  • Use HTTPS - Ensure the site uses SSL/TLS encryption
  • Regular password rotation - Change admin password periodically
  • Audit admin actions - Keep logs of who accesses the panel
  • Secure the server - Implement firewall rules and SSH key authentication

Data Privacy Compliance

Consider your jurisdiction’s privacy laws:
  • GDPR (Europe) - Employee consent, data minimization, right to access
  • CCPA (California) - Employee rights to know what data is collected
  • Local labor laws - May regulate employee monitoring
Consult with your legal team to ensure Checawaa’s attendance tracking complies with applicable privacy and labor laws.

Getting Support

If you need help with administrative tasks:
  • Technical issues - Check system logs for error messages
  • Email problems - Verify SMTP configuration and credentials
  • Data questions - Review the JSON files in the /data directory
  • Feature requests - Document your needs and discuss with your IT team
This guide is based on Checawaa’s current implementation. Custom modifications may require additional documentation or support from your development team.

Build docs developers (and LLMs) love