Skip to content

maryprecious/WasteGrid

Repository files navigation

Waste Grid

Waste Grid is a Flutter mobile app prototype intended to gamify recycling and waste collection. It provides an earn ecosystem with challenges, redeemable rewards, and a leaderboard. The architecture is controller-driven with organized models, controller, and pages folders.

Project Features

  • Onboarding and authentication flows
  • Home dashboard with resource cards and quick actions
  • Community feed and challenges
  • Scan-based waste submission (camera + barcode)
  • Rewards system and leaderboard
  • Profile settings with location/notifications/security

Firebase Integration

The project now includes Firebase to enhance its scalability and provide robust backend services. Key integrations include:

  • Authentication: Secure user sign-in and management.
  • Real-time Database/Firestore: For live updates to the community feed and leaderboard.
  • Analytics: To track user engagement and app performance.
  • Cloud Messaging: For pushing notifications and reminders to users.

This integration ensures the app can handle a growing user base while maintaining a responsive and dynamic experience.

Dependency Setup

  1. Ensure Flutter SDK is installed (>=3.8.0 as required).
  2. Clone repository:
    git clone <repo-url>
    cd waste_grid
  3. Install dependencies:
    flutter pub get
  4. Generate JSON-model code (for json_serializable):
    flutter pub run build_runner build --delete-conflicting-outputs

Run App

  • Android:
    flutter run -d android
  • iOS:
    flutter run -d ios
  • Web:
    flutter run -d chrome

Folder Structure

  • lib/main.dart: App entry and route registration
  • lib/controller/*: Business controllers (GetX compatible pattern)
  • lib/models/*: Local data models, e.g., CommunityImage, Challenge
  • lib/pages/*: UI screens and nested page folders
  • lib/theme: Colors, typography, and global style
  • lib/utils: Reusable helper functions
  • lib/widget: Shared widget components (buttons, cards, etc.)

App Screens (not exhaustive)

  • lib/pages/home/home_screen.dart
  • lib/pages/recycle/recycle_screen.dart
  • lib/pages/earning/earning_screen.dart
  • lib/pages/community/community_screen.dart
  • lib/pages/scan/scan_screen.dart
  • lib/pages/profile/*

Testing

  • Widget tests can be added under the test folder (currently one template test included).
  • Run tests:
    flutter test

Troubleshooting

  • If you see Dart version mismatch, set SDK to compatible version in pubspec.yaml:
    environment:
      sdk: ">=3.8.0 <4.0.0"
  • If build_runner fails due to conflicting outputs, run:
    flutter pub run build_runner clean
    flutter pub run build_runner build --delete-conflicting-outputs

About

Waste management app

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors