A modern, scalable, and responsive Volunteer Management & Community Engagement Platform built with Flutter and Firebase.
ImpactForge empowers organizations to coordinate volunteer activities in real-time, verify task submissions securely, and gamify community contributions through progress dashboards and leaderboards. Designed with a clean, responsive layout suited for both web and mobile clients.
- Secure Authentication: Dual-mode login supporting Email/Password and Google OAuth.
- Real-time Task Allocation: Interactive task boards for volunteers to discover and join local community drives.
- Multimedia Evidence Verification: Secure report submission with image uploading for task completion verification.
- Impact Analytics Dashboard: Real-time charts demonstrating volunteer metrics, hours spent, and overall community impact.
- Gamification & Leaderboard: Global ranking system based on active points, milestones, and reward badges.
- Administrative Suite: Dedicated admin dashboard for creating tasks, reviewing submissions, elevating volunteer roles, and monitoring operations.
- Frontend: Flutter (Dart)
- State Management & Routing: GetX (reactive state, dependency injection, and clean hash-based web routing)
- Styling & UI: Material 3 UI design, custom glassmorphic cards, responsive overlays, and custom Google Fonts typography
- Database: Cloud Firestore (Real-time NoSQL database)
- Backend Storage: Firebase Storage (Secure hosting for submitted completion images)
- Security: Attribute-Based Access Control (ABAC) enforced via granular Cloud Firestore Security Rules
The project follows a clean architecture separating the presentation layer, reactive state controllers, and the cloud data source layer.
graph TD
%% Styling
classDef default fill:#f9f9f9,stroke:#333,stroke-width:1px,color:#111;
classDef presentation fill:#e1f5fe,stroke:#0288d1,stroke-width:1.5px,color:#0b3c5d;
classDef controller fill:#e8f5e9,stroke:#388e3c,stroke-width:1.5px,color:#0f5112;
classDef backend fill:#fffde7,stroke:#fbc02d,stroke-width:1.5px,color:#684a01;
subgraph Presentation [Presentation Layer - Flutter]
UI[App Shell / Screens]:::presentation
end
subgraph State [State & Business Logic - GetX]
AC[AuthController]:::controller
TC[TaskController]:::controller
LC[LeaderboardController]:::controller
end
subgraph Cloud [Data Source Layer - Firebase]
FA[Firebase Authentication]:::backend
FS[(Cloud Firestore)]:::backend
FST[(Firebase Storage)]:::backend
end
%% Interactions
UI <--> AC
UI <--> TC
UI <--> LC
AC <--> FA
TC <--> FS
LC <--> FS
UI -.-> FST
FST -.-> FS
├── users (Key: email)
│ ├── name (String)
│ ├── role (String: 'volunteer' | 'admin')
│ ├── points (Number)
│ └── joinDate (Timestamp)
│
├── tasks (Key: auto-generated ID)
│ ├── title (String)
│ ├── description (String)
│ ├── pointsAwarded (Number)
│ └── deadline (Timestamp)
│
├── active_tasks (Key: auto-generated ID)
│ ├── taskId (String)
│ ├── userEmail (String)
│ ├── status (String: 'ongoing' | 'submitted' | 'verified')
│ └── assignedAt (Timestamp)
│
└── submissions (Key: auto-generated ID)
├── taskId (String)
├── userEmail (String)
├── description (String)
├── imageUrl (String)
└── submittedAt (Timestamp)
- Flutter SDK (v3.0.0 or higher)
- Dart SDK (v3.0.0 to v4.0.0)
-
Clone the repository:
git clone https://github.com/yourusername/impactforge.git cd impactforge -
Retrieve package dependencies:
flutter pub get
-
Configure Firebase:
- Place your
google-services.jsoninsideandroid/app/for Android. - Web parameters are preconfigured inside
lib/constants/app_config.dart.
- Place your
-
Build and run locally:
# Run app in default browser flutter run -d chrome
Once you place your captured screenshots in the screenshots/ directory, they will be displayed here in high resolution:
Splash Screen
|
Login Screen
|
Signup Screen
|
Home Dashboard
|
Tasks List
|
Task Details
|
Task Submission
|
Impact Analytics
|
Profile Screen
|
Edit Profile
|
Account Settings
|
Distributed under the MIT License. See LICENSE for more information.










