Skip to content

Black-Lights/grocery_app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

24 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Grocery Management App πŸ›’

A Flutter application for managing household groceries with storage tracking, shopping lists, expiry notifications, and barcode scanning.

✨ Features

πŸ” Authentication

  • Email/Password Sign Up and Login
  • Email Verification & Password Reset
  • Google Sign-In Integration
  • Secure Authentication via Firebase

πŸ“¦ Storage Management

  • Manage Multiple Storage Areas (Refrigerator, Freezer, Pantry, etc.)
  • Track Product Details:
    • Name
    • Category
    • Manufacturing Date
    • Expiry Date (with alerts)
    • Quantity and Unit
    • Additional Notes
  • Details Recognition using OpenFoodFacts API

πŸ› Shopping List

  • Add Items with Quantity & Units
  • Real-time Updates
  • Mark Items as Complete
  • Batch Delete Completed Items
  • Quick Add Functionality
  • Barcode Scanning for Quick Item Addition

πŸ“Έ Product Image Support

  • Scan Barcodes to auto-fetch product details via OpenFoodFacts API
  • Capture and Upload Images for grocery items
  • OCR Recognition for expiry dates

🌟 Responsive Design

  • Optimized for Mobile & Tablet
  • Portrait & Landscape Support
  • Adaptive Layouts for Different Screen Sizes

πŸ›  Technology Stack

  • Frontend: Flutter
  • Backend: Firebase
    • Authentication
    • Cloud Firestore
    • Real-time Database
  • External API: OpenFoodFacts API for product details

πŸ“Œ Prerequisites

  • Flutter (Latest Version)
  • Dart SDK
  • Firebase Account
  • Android Studio / VS Code
  • Git

⚑ Installation

  1. Clone the repository
git clone https://github.com/Black-Lights/grocery_app.git  
  1. Navigate to the project directory
cd grocery_app  
  1. Install dependencies
flutter pub get  
  1. Configure Firebase

    • Create a Firebase project
    • Add Android/iOS apps in Firebase console
    • Download & add configuration files
    • Enable Authentication methods (Email/Password & Google Sign-In)
    • Set up Cloud Firestore
  2. Run the app

flutter run  

πŸ”₯ Firebase Configuration

Firestore Rules

rules_version = '2';  
service cloud.firestore {  
  match /databases/{database}/documents {  
    match /users/{userId} {  
      allow read, write: if request.auth != null && request.auth.uid == userId;  
      
      match /areas/{areaId} {  
        allow read, write: if request.auth != null && request.auth.uid == userId;  
      }  
      
      match /shopping_list/{itemId} {  
        allow read, write: if request.auth != null && request.auth.uid == userId;  
      }  
    }  
  }  
}  

πŸ“‚ Project Structure

lib/
β”œβ”€β”€ models/
β”‚   β”œβ”€β”€ area.dart
β”‚   β”œβ”€β”€ product.dart
β”‚   β”œβ”€β”€ shopping_item.dart
β”œβ”€β”€ services/
β”‚   β”œβ”€β”€ firestore_service.dart
β”‚   β”œβ”€β”€ shopping_service.dart
β”‚   β”œβ”€β”€ barcode_scanner.dart
β”‚   └── openfoodfacts_service.dart
β”œβ”€β”€ pages/
β”‚   β”œβ”€β”€ login.dart
β”‚   β”œβ”€β”€ signup.dart
β”‚   β”œβ”€β”€ forgot_password.dart
β”‚   β”œβ”€β”€ verify.dart
β”‚   β”œβ”€β”€ homepage.dart
β”‚   β”œβ”€β”€ shopping_list_page.dart
β”‚   β”œβ”€β”€ product_details_page.dart
β”‚   └── settings_page.dart
└── main.dart

πŸš€ Features in Detail

πŸ“¦ Storage Areas

  • Default storage areas provided
  • Add custom storage areas
  • View products by area
  • Track expiry dates with notifications
  • Manage quantities

πŸ“Œ Product Management

  • Add products with details
  • Track expiry dates (with alerts)
  • Monitor quantities
  • Add notes & categorize products
  • Scan barcodes for quick entry
  • Fetch product details from OpenFoodFacts API

πŸ› Shopping List

  • Quick add items
  • Specify quantities & units
  • Mark items as purchased
  • Clear completed items
  • Real-time updates
  • Barcode scanning for faster entry

πŸ“± Responsive Design

The app is designed to work seamlessly across different devices and orientations:

πŸ“± Mobile

  • Portrait: Optimized single-column layout
  • Landscape: Adapted two-column layout

πŸ“Ÿ Tablet

  • Enhanced spacing & typography
  • Optimized input fields
  • Better use of available space
  • Side-by-side layouts where appropriate

πŸ›  Contributing

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

πŸ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™Œ Acknowledgments

  • Firebase for backend services
  • Flutter team for the amazing framework
  • GetX for state management
  • OpenFoodFacts for barcode product details
  • All contributors and testers

πŸ“ž Contact

Project Link: https://github.com/Black-Lights/grocery_app

πŸ“Έ Screenshots

SS_Mob_login

2025-04-23 17-58-41 High Res Screenshot

2025-04-23 17-59-26 High Res Screenshot

2025-04-23 18-00-05 High Res Screenshot

2025-04-23 18-00-15 High Res Screenshot

πŸš€ Future Enhancements

  • Enhanced Product Image Support
  • Improved Expiry Recognition using OCR
  • Shopping List Sharing
  • Detailed Statistics & Analytics
  • Multiple Themes
  • Language Support

Made with ❀️ by Ammar and Moldir

About

This project is a Smart Grocery Manager App built with Flutter and Firebase. It helps users efficiently manage and track their groceries by organizing them into different storage areas such as the refrigerator, freezer, pantry, and more.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors