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.
- When a citizen is marked
- 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


Log in or sign up for Devpost to join the conversation.