Inspiration

I noticed that local NGOs and community organizers were still managing volunteers through spreadsheets and WhatsApp groups. Admins wasted hours manually verifying task completions, and volunteers had no way to track their contributions or feel recognized for their efforts. I built ImpactForge to bridge that gap, to give organizers a real-time dashboard and volunteers a gamified, transparent way to see exactly how their actions create community impact.

What it does

ImpactForge is a cross-platform volunteer management and community engagement platform built with Flutter and Firebase. Admins can create, assign, and monitor tasks in real time. Volunteers discover available tasks, claim them, and submit photo evidence upon completion. The app automatically verifies submissions via an admin review queue, awards points, and updates a global leaderboard to gamify community contribution. It features dual authentication through Email/Password and Google OAuth, an admin analytics dashboard, and role-based access to keep volunteer and admin actions securely separated.

How we built it

The frontend was built with Flutter using Dart and Material 3 UI design, featuring custom glassmorphic cards and responsive overlays for both web and mobile. For state management and routing, I used GetX for reactive state management, dependency injection, and clean hash-based web routing. The backend relies on Cloud Firestore for real time NoSQL data storage and Firebase Storage for secure image uploads of submission evidence. Security is enforced through Attribute Based Access Control using granular Cloud Firestore Security Rules, ensuring volunteers can only view and edit their own data while admins have full operational control. The architecture follows a clean separation of concerns with presentation layers, reactive controllers, and a cloud data source layer for maintainability.

Challenges we ran into

The biggest challenge was implementing ABAC securely inside Firestore Security Rules. Writing declarative rules that correctly distinguish admin versus volunteer write permissions without breaking real time updates required multiple iterations and heavy testing. Another challenge was handling image uploads from both web and mobile clients, ensuring compression did not degrade quality while keeping uploads fast. Finally, designing a scalable leaderboard system that updates points in real time without excessive Firestore reads took careful Firestore indexing and batched writes.

Accomplishments that we're proud of

I am proud that ImpactForge is a fully functional, production ready application and not just a prototype. It runs seamlessly across web browsers and mobile devices with a single codebase. The admin dashboard provides real time impact analytics, and the submission verification workflow feels intuitive and secure. Most importantly, I significantly refined and prepared the project for submission within the hackathon window, bringing it to production-ready polish with comprehensive documentation.

What we learned

This project deepened my understanding of real time database architecture, specifically how to structure Firestore collections for users, tasks, active tasks, and submissions to minimize costly reads and writes. I also learned the nuances of Flutter web deployment, especially handling hash based routing with GetX and ensuring Firebase Storage CORS policies were configured correctly for web image uploads. Most importantly, I learned that building for social good forces you to think about user experience from a diverse set of perspectives, such as admins versus volunteers, rather than just technical functionality.

What's next for ImpactForge

Next, I plan to integrate push notifications through FCM so volunteers get alerted when new tasks are posted near them. I also want to add a heatmap or map based feature for location aware task discovery using the Google Maps API. On the analytics side, I am planning to expand the impact dashboard to visualize aggregate metrics like total community hours served, carbon offset estimates, and milestone badges for consistent volunteers. Finally, I aim to pilot this with two or three local NGOs to gather real world feedback and iterate on the admin workflow.

Built With

Share this project:

Updates

Submission history