Skip to content

About

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.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Latest commit

Β 

History

11 Commits

Folders and files

Repository files navigation

🧊 FridgeList - Smart Fridge Management App

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.

πŸ”Œ Hardware Integration

FridgeList includes a custom ESP32-powered smart fridge hardware component that seamlessly integrates with the mobile app:

🧊 Smart Fridge Hardware Features

  • 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

πŸ”— Hardware-Software Integration

  • 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

πŸ“± Application Overview

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.

✨ Key Features

🏠 Smart Fridge Connection

  • 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

πŸ“‹ Intelligent Inventory Management

  • 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

πŸ›’ Automated Shopping Lists

  • 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

πŸ‘€ User Management

  • 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

🎨 Beautiful User Interface

  • 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

πŸ“Š Real-time Data Sync

  • Firebase Realtime Database: Instant synchronization across devices
  • Live Updates: Changes reflect immediately across all connected devices
  • Offline Capability: Works seamlessly with Firebase offline persistence

πŸ› οΈ Tech Stack & Libraries

Core Technologies

  • Platform: Android (Java)
  • Minimum SDK: API 26 (Android 8.0)
  • Target SDK: API 32 (Android 12L)
  • Build System: Gradle 7.2.2

Hardware Components

  • 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

Backend & Database

  • 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

UI/UX Libraries

  • 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

Development Tools

  • AndroidX Libraries: Modern Android support libraries
  • AppCompat: Backward compatibility
  • Espresso Testing: UI testing framework
  • JUnit: Unit testing framework

πŸ—οΈ Project Structure

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

πŸš€ Getting Started

Prerequisites

  • Android Studio (latest version)
  • Android SDK API 26 or higher
  • Firebase project setup
  • Google Play Services

Installation

  1. Clone the repository
  2. Open the project in Android Studio
  3. Configure Firebase:
    • Replace google-services.json with your Firebase project configuration
    • Enable Authentication, Realtime Database, and Firestore in Firebase Console
  4. Sync project with Gradle files
  5. Build and run the application

Firebase Setup

  1. Create a new Firebase project
  2. Add Android app with package name: com.example.electronicsprojectapp
  3. Download and replace google-services.json
  4. Enable the following services:
    • Authentication (Email/Password, Google)
    • Realtime Database
    • Firestore Database

Hardware Setup

  1. 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
  2. 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
  3. 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

πŸ“± Screenshots & Features

Note: Make sure to add your actual screenshots to the images/ directory with the filenames referenced below.

Mobile Application Interface

πŸš€ Splash Screen

Splash Screen

*Animated logo with Lottie animations and custom typography*

πŸ” Authentication Screen

Sign In Screen

*Clean login interface with email/password and Google Sign-in options*

πŸ”Œ Fridge Connection

Connect to Fridge

*Simple 4-digit ID system with QR code scanning option*

🧊 Main Fridge Interface

Fridge List

*Real-time inventory display with status indicators (red/yellow/green)*

πŸ›’ Shopping List

Shopping List

*Automatically generated shopping list with quantities*

Hardware Component

πŸ”§ ESP32 Smart Fridge Device

Hardware Component

*Custom ESP32-powered device with fridge-style design*

πŸ“± Hardware in Action

Hardware Usage

*Device displaying food item management with 3-button interface*

Key Features Showcase:

  • 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

UI Highlights:

  • 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)

πŸ”§ Configuration

Firebase Database Rules

{
  "rules": {
    "Users": {
      "$uid": {
        ".read": "$uid === auth.uid",
        ".write": "$uid === auth.uid"
      }
    },
    "Fridges": {
      "$fridgeId": {
        ".read": "auth != null",
        ".write": "auth != null"
      }
    }
  }
}

🀝 Contributing

  1. Fork the repository
  2. Create a 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

πŸ‘¨β€πŸ’» Development Team

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! πŸ§ŠπŸ“±

About

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.

Topics

Resources

Stars

1 star

Watchers

1 watching

Forks

Contributors

Languages