MindYourShelf is a Flutter-based mobile app designed to help users manage their food inventory, track expiration dates, donate surplus food to local communities, and reduce food waste. It provides an intuitive user interface for users to view food expiry dates, track donations, and receive push notifications when items are about to expire.
- Track Food Expiry Dates: Keep track of the expiry dates of food items and receive notifications before they expire
- Donate Surplus Food: Easily donate surplus food to people in your local area
- Recipe Suggestions: Discover recipes tailored to the ingredients you already have at home
- Push Notifications: Get notified when items are about to expire
- Monthly Food Stats: Monitor food waste reduction progress through visual statistics and actionable insights
- Flutter: Cross-platform mobile app development
- Firebase: Real-time database and push notifications
- Google Maps API: Maps and donation markers
- Mapbox API: Address search and geocoding
- Spoonacular API: Recipe retrieval and cooking instructions
- Open Food Facts API: Barcode-based food details
- Flutter SDK
- Dart SDK
- Firebase CLI
- Code editor (VS Code recommended)
- Create a project at Firebase Console
- Enable Authentication, Firestore, and Storage
- Install Firebase CLI and login:
npm install -g firebase-tools
firebase login- Initialise Firebase:
firebase init- Add
google-services.jsontoandroid/app/ - Add
GoogleService-Info.plistto iOS
- Clone the repository:
git clone https://github.com/40125789/shelfaware_app.git
cd shelfaware_app- Install dependencies:
flutter pub get- Run the app:
flutter runFor detailed instructions on how to use MindYourShelf, please refer to the User Manual.
For a detailed report on tester feedback, including observations, issues, and suggested improvements, please refer to the Testers Feedback Report.
Create .env in root directory:
SPOONACULAR_API_KEY=your_api_key_here
GOOGLE_MAPS_API_KEY=your_other_api_key_here
MAPBOX_ACCESS_TOKEN=your_access_token_hereNote: Do not commit your .env file. Add it to .gitignore.
We welcome contributions! You can:
- Report bugs
- Suggest features
- Write tests
- Fix issues
- Improve documentation
- firebase_core
- firebase_auth
- cloud_firestore
- firebase_storage
- firebase_messaging
- cloud_functions
- firebase_app_check
- flutter_slidable
- flutter_swipe_action_cell
- lottie
- google_nav_bar
- flutter_launcher_icons
- curved_navigation_bar
- google_maps_flutter
- geolocator
- location
- geocoding
- flutter_dotenv
- provider
- Riverpod
- barcode_scan2
- camera
- google_ml_kit
Special thanks to my supervisor Leo Galway for his help and guidance throughout this project.
This project is licensed under the MIT License – see the LICENSE file for details.