Skip to content

Silapareddy-Praveen-Kumar-Reddy/Agribridge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

8 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

🌾 AgriBridge β€” Farm-to-Consumer Mobile App

Flutter CI Flutter Firebase Dart

A Flutter mobile shopping application connecting farmers directly to consumers. Browse fresh vegetables and lifestyle products, manage your cart, and register as a vendor β€” all in one app.

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        AgriBridge App                           β”‚
β”‚                                                                 β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                    Presentation Layer                     β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”‚   β”‚
β”‚  β”‚  β”‚ HomePage β”‚ β”‚ Products β”‚ β”‚   Cart   β”‚ β”‚  Checkout  β”‚  β”‚   β”‚
β”‚  β”‚  β”‚          β”‚ β”‚ + Search β”‚ β”‚  Screen  β”‚ β”‚   Screen   β”‚  β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                 β”‚   β”‚
β”‚  β”‚  β”‚ Profile  β”‚ β”‚  Vendor  β”‚ β”‚ Contact  β”‚                 β”‚   β”‚
β”‚  β”‚  β”‚  Screen  β”‚ β”‚   Form   β”‚ β”‚  Screen  β”‚                 β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                 β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                              β”‚                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                   State Management                        β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚   β”‚
β”‚  β”‚  β”‚ CartProvider  β”‚  β”‚  Favorites   β”‚  β”‚ AuthProvider   β”‚   β”‚   β”‚
β”‚  β”‚  β”‚ (add/remove)  β”‚  β”‚   Provider   β”‚  β”‚ (Firebase)     β”‚   β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β”‚                              β”‚                                   β”‚
β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”‚
β”‚  β”‚                     Data Layer                            β”‚   β”‚
β”‚  β”‚  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”  β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                      β”‚   β”‚
β”‚  β”‚  β”‚ Product Modelβ”‚  β”‚  CartItem    β”‚                      β”‚   β”‚
β”‚  β”‚  β”‚  + Data      β”‚  β”‚   Model     β”‚                      β”‚   β”‚
β”‚  β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚   β”‚
β”‚  β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β”‚
                       Firebase Backend
                 (Auth Β· Firestore Β· Storage)

πŸ“‚ Project Structure

Agribridge/
β”œβ”€β”€ .github/workflows/dart.yml  # Flutter CI pipeline
β”œβ”€β”€ .env.example                # Firebase config template
β”œβ”€β”€ pubspec.yaml                # Flutter dependencies
β”œβ”€β”€ lib/
β”‚   β”œβ”€β”€ main.dart               # App entry point + Provider setup
β”‚   β”œβ”€β”€ firebase_options.dart   # Firebase configuration
β”‚   β”œβ”€β”€ data/
β”‚   β”‚   └── product_data.dart   # Centralized product catalog
β”‚   β”œβ”€β”€ models/
β”‚   β”‚   β”œβ”€β”€ product.dart        # Product model with copyWith
β”‚   β”‚   └── cart_item.dart      # Cart item model with copyWith
β”‚   β”œβ”€β”€ providers/
β”‚   β”‚   β”œβ”€β”€ auth_provider.dart  # Authentication state
β”‚   β”‚   β”œβ”€β”€ cart_provider.dart  # Shopping cart state
β”‚   β”‚   └── favorites_provider.dart
β”‚   β”œβ”€β”€ screens/
β”‚   β”‚   β”œβ”€β”€ main_screen.dart    # Bottom navigation host
β”‚   β”‚   β”œβ”€β”€ home_page.dart      # Landing page with categories
β”‚   β”‚   β”œβ”€β”€ product_list_screen.dart  # Product grid + search
β”‚   β”‚   β”œβ”€β”€ cart_screen.dart    # Cart management
β”‚   β”‚   β”œβ”€β”€ checkout_screen.dart
β”‚   β”‚   β”œβ”€β”€ profile_screen.dart
β”‚   β”‚   β”œβ”€β”€ contact_screen.dart
β”‚   β”‚   β”œβ”€β”€ vendor_form_screen.dart
β”‚   β”‚   └── vendor_opportunities_screen.dart
β”‚   └── widgets/
β”‚       └── floating_cart_button.dart
β”œβ”€β”€ android/
β”œβ”€β”€ ios/
β”œβ”€β”€ web/
└── test/

πŸš€ Getting Started

Prerequisites

  • Flutter SDK β‰₯ 3.0.0
  • Dart SDK β‰₯ 3.0.0
  • Android Studio or VS Code with Flutter extension
  • Firebase project (for auth & database)

Setup

# 1. Clone the repository
git clone https://github.com/silapareddy/Agribridge.git
cd Agribridge

# 2. Install dependencies
flutter pub get

# 3. Configure Firebase
# Copy .env.example and fill in your Firebase credentials
# Then update lib/firebase_options.dart with your values
# See: https://console.firebase.google.com/

# 4. Run the app
flutter run

Environment Variables

Variable Description Where to find
FIREBASE_API_KEY Firebase API key Firebase Console β†’ Project Settings
FIREBASE_APP_ID Firebase App ID Firebase Console β†’ Project Settings
FIREBASE_PROJECT_ID Firebase Project ID Firebase Console β†’ Project Settings
FIREBASE_AUTH_DOMAIN Auth domain {project-id}.firebaseapp.com
FIREBASE_STORAGE_BUCKET Storage bucket {project-id}.appspot.com

✨ Features

  • πŸ›’ Shopping Cart β€” Add/remove products with quantity management
  • πŸ” Product Search β€” Filter products by name or description in real-time
  • πŸ“‹ Product Categories β€” Browse Vegetables and Lifestyle products
  • πŸ§‘β€πŸŒΎ Vendor Registration β€” Form with validation for farmer onboarding
  • πŸ‘€ Profile Management β€” User profile and purchase history
  • πŸ“± Responsive UI β€” Material Design 3 with green agricultural theme

🧰 Tech Stack

Technology Purpose
Flutter 3.22 Cross-platform UI framework
Dart 3.x Programming language
Provider State management
Firebase Auth User authentication
Cloud Firestore NoSQL database
cached_network_image Image caching
GitHub Actions CI/CD pipeline

πŸ“Έ Screenshots

Home Page Products Cart Vendor Registration
Home Products Cart Vendor

About

No description, website, or topics provided.

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages