FridgeList is a modern Android application that revolutionizes how you manage your refrigerator contents. This intelligent app helps you track food items, monitor inventory levels, and automatically generate shopping lists based on your consumption patterns.
FridgeList includes a custom ESP32-powered smart fridge hardware component that seamlessly integrates with the mobile app:
- ESP32 Microcontroller: Powerful WiFi-enabled processor for real-time communication
- Barcode Scanner Integration: Built-in barcode scanner for quick food item identification
- 3-Button Interface: Simple physical controls for basic fridge operations:
- Add Item: Scan and add new food items to inventory
- Remove Item: Remove consumed items from the system
- Settings: Access hardware configuration and WiFi setup
- Fridge-Style Design: Hardware unit designed to look and feel like a real refrigerator
- Real-time Communication: Instant sync between hardware and mobile app via WiFi
- Power Management: Efficient power consumption for continuous operation
- 4-Digit ID System: Hardware generates unique identifiers for fridge connection
- Automatic Inventory Updates: Barcode scans instantly update the mobile app
- Bidirectional Communication: Hardware can send data to app and receive commands
- Status Monitoring: Real-time monitoring of hardware connectivity and operation
FridgeList is a comprehensive smart fridge management solution that connects users to their refrigerators through a unique 4-digit ID system. The app provides real-time inventory tracking, automated shopping list generation, and an intuitive user interface that makes food management effortless.
- 4-Digit ID System: Connect to your smart fridge using a unique 4-digit identifier
- Real-time Synchronization: Live updates between your fridge and mobile app
- Multi-user Support: Multiple users can connect to the same fridge
- Food Item Tracking: Monitor current and minimum stock levels for each item
- Visual Status Indicators:
- π΄ Red Alert: Items below minimum threshold (needs restocking)
- π‘ Yellow Warning: Items at minimum level (1 item remaining)
- π’ Green Good: Items well stocked (2+ items remaining)
- Barcode Integration: Scan and identify food items quickly
- Photo Recognition: Visual food item identification with images
- Smart List Generation: Automatically creates shopping lists based on low stock items
- Quantity Calculations: Shows exactly how much to buy (minimum + 1 - current amount)
- Empty List Handling: Elegant empty state when fridge is well stocked
- Firebase Authentication: Secure user registration and login
- Google Sign-in Integration: Quick authentication with Google accounts
- Password Recovery: Forgot password functionality
- User Profiles: Personalized experience with username and profile pictures
- Account Information: Manage user details and preferences
- Animated Splash Screen: Engaging Lottie animations on app launch
- Material Design: Modern, intuitive interface following Material Design principles
- Custom Typography: Beautiful fonts (Honey Latte, custom dish fonts)
- Orange Theme: Warm, food-friendly color scheme
- Responsive Layouts: Optimized for different screen sizes
- Firebase Realtime Database: Instant synchronization across devices
- Live Updates: Changes reflect immediately across all connected devices
- Offline Capability: Works seamlessly with Firebase offline persistence
- Platform: Android (Java)
- Minimum SDK: API 26 (Android 8.0)
- Target SDK: API 32 (Android 12L)
- Build System: Gradle 7.2.2
- ESP32 Microcontroller: WiFi-enabled IoT processor for hardware communication
- Barcode Scanner Module: Integrated barcode scanning for food identification
- Physical Interface: 3-button control system for basic operations
- Power Supply: Efficient power management for continuous operation
- Enclosure Design: Custom fridge-styled housing for aesthetic appeal
- Firebase Authentication: User management and security
- Firebase Realtime Database: Real-time data synchronization
- Firebase Firestore: Additional cloud storage capabilities
- Google Play Services: Enhanced authentication features
- Material Design Components: Modern UI components
- Lottie Animations: Beautiful vector animations (v3.4.0)
- Picasso: Image loading and caching (v2.71828)
- Constraint Layout: Flexible, responsive layouts
- AndroidX Libraries: Modern Android support libraries
- AppCompat: Backward compatibility
- Espresso Testing: UI testing framework
- JUnit: Unit testing framework
app/
βββ src/main/
β βββ java/com/example/electronicsprojectapp/
β β βββ Activities/
β β β βββ SplashScreenActivity.java # Animated app launch
β β β βββ SignInActivity.java # User authentication
β β β βββ SignUpActivity.java # User registration
β β β βββ ForgotPasswordActivity.java # Password recovery
β β β βββ ConnectToFridgeActivity.java # Fridge connection
β β β βββ FridgeListActivity.java # Main fridge view
β β β βββ ShoppingListActivity.java # Shopping list management
β β β βββ EditFoodActivity.java # Food item editing
β β β βββ AccountInfoActivity.java # User profile
β β βββ Models/
β β β βββ User.java # User data model
β β β βββ Food.java # Food item model
β β βββ Adapters/
β β βββ FoodArrayAdapter.java # List view adapter
β βββ res/
β β βββ layout/ # UI layouts
β β βββ drawable/ # Icons and images
β β βββ values/ # Colors, strings, styles
β β βββ font/ # Custom fonts
β βββ AndroidManifest.xml # App configuration
βββ google-services.json # Firebase configuration
βββ build.gradle # Dependencies and build config
- Android Studio (latest version)
- Android SDK API 26 or higher
- Firebase project setup
- Google Play Services
- Clone the repository
- Open the project in Android Studio
- Configure Firebase:
- Replace
google-services.jsonwith your Firebase project configuration - Enable Authentication, Realtime Database, and Firestore in Firebase Console
- Replace
- Sync project with Gradle files
- Build and run the application
- Create a new Firebase project
- Add Android app with package name:
com.example.electronicsprojectapp - Download and replace
google-services.json - Enable the following services:
- Authentication (Email/Password, Google)
- Realtime Database
- Firestore Database
-
ESP32 Configuration:
- Flash ESP32 with custom firmware for barcode scanning and WiFi communication
- Configure WiFi credentials for network connectivity
- Set up Firebase connection for real-time data sync
-
Hardware Assembly:
- Install barcode scanner module
- Connect 3-button interface (Add Item, Remove Item, Settings)
- Mount components in custom fridge-styled enclosure
- Connect power supply and test all functionality
-
Initial Setup:
- Power on the ESP32 hardware unit
- Scan QR code or enter 4-digit ID in mobile app
- Verify real-time communication between hardware and mobile app
*Animated logo with Lottie animations and custom typography* *Clean login interface with email/password and Google Sign-in options* *Simple 4-digit ID system with QR code scanning option* *Real-time inventory display with status indicators (red/yellow/green)* *Automatically generated shopping list with quantities* *Custom ESP32-powered device with fridge-style design* *Device displaying food item management with 3-button interface*Note: Make sure to add your actual screenshots to the
images/directory with the filenames referenced below.
- Splash Screen: Animated logo with Lottie animations
- Authentication: Secure login with email/password and Google Sign-in
- Fridge Connection: Simple 4-digit ID system to connect to smart fridges
- Food Inventory: Visual list with current/minimum amounts and status indicators
- Shopping Lists: Automatically generated based on low stock items
- User Profile: Manage account information and preferences
- Hardware Integration: Physical ESP32 device with barcode scanner and 3-button interface
- Modern Material Design interface
- Custom orange color scheme
- Beautiful typography with custom fonts
- Responsive layouts for all screen sizes
- Smooth animations and transitions
- Intuitive status indicators (π΄ Red Alert, π‘ Warning, π’ Good Stock)
{
"rules": {
"Users": {
"$uid": {
".read": "$uid === auth.uid",
".write": "$uid === auth.uid"
}
},
"Fridges": {
"$fridgeId": {
".read": "auth != null",
".write": "auth != null"
}
}
}
}- Fork the repository
- Create a feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project was developed as part of an electronics project, showcasing modern Android development practices, Firebase integration, and user-centered design principles and the hardware capabilities of automating simple tasks!
FridgeList - Making food management simple, smart, and efficient! π§π±






