Inspiration

The idea for UATS came from the challenges faced in managing Umuganda (community service) attendance manually. Paper-based tracking often caused inaccuracies, delays in fine payments, and lack of transparency. I wanted to create a digital solution to automate attendance tracking, fine management, and real-time analytics for both citizens and local leaders.


What it does

  • Tracks attendance for each Umuganda session in real-time.
  • Automatically generates fines for absentees with configurable rates.
  • Integrates with MTN MoMo and Airtel Money APIs for fine payments.
  • Provides admin dashboards for managing citizens, sessions, and analytics.
  • Allows citizens to view their attendance history, fines, and make instant payments.
  • Generates downloadable reports (CSV, PDF) for attendance and payment trends.
  • Sends browser notifications for upcoming sessions.

How we built it

  • Frontend: React (TypeScript), Material-UI, React Router, Context API for state management.
  • Backend: Node.js, Express, MongoDB (Mongoose), RESTful API.
  • Payments: MTN MoMo & Airtel Money API integrations.
  • Core logic:
    • When a citizen is marked Absent, a fine is automatically created or updated.
    • When marked Present, any related fine is removed.
    • Payment status (Paid/Unpaid) updates in real-time across dashboards.
  • Deployed using Vercel (frontend) and Render/Heroku (backend).

Challenges we ran into

  • Payment API Integration: Limited documentation and sandbox testing issues with MTN/Airtel APIs.
  • Real-Time Sync: Ensuring instant updates between the database and UI required careful state and API management.
  • Role-Based Authentication: Implementing secure JWT-based roles (Admin, Leader, Citizen).
  • Report Generation: Building clean, accurate CSV and PDF exports.

Accomplishments that we're proud of

  • Successfully digitized the manual Umuganda attendance system.
  • Built a fully responsive, real-time platform accessible on both desktop and mobile.
  • Integrated mobile payment APIs (MTN MoMo and Airtel Money).
  • Developed push notifications for session reminders.
  • Implemented data analytics to visualize absentee trends and session participation.

What we learned

  • Full-stack development with React + Node.js + MongoDB.
  • API integration for mobile payments.
  • Best practices for role-based security and JWT authentication.
  • How to create real-time dashboards and data export features.
  • Advanced state management using React Context API.

What's next for Umuganda Tracking System

  • Mobile App: Build a cross-platform app with React Native.
  • AI-based analytics: Predict absentee trends using historical data.
  • SMS notifications: Remind citizens via SMS in addition to browser notifications.
  • Offline mode: Allow leaders to record attendance without internet and sync later.
  • Multi-language support: For better accessibility.

Fine Calculation Logic

The fine amount ( F ) for each absentee is calculated using: [ F = N \cdot R ] Where:

  • ( N ) = Number of missed sessions
  • ( R ) = Fine rate per session
Share this project:

Updates