Skip to content

Akshitwadhwa/Unibites--A-all-in-one-for-food-needs

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

17 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🍽️ UniBites - Your All-in-One Food Ordering Solution

Platform Language Backend Min SDK Target SDK License

UniBites is a modern, feature-rich Android food ordering application that brings your favorite meals right to your fingertips. Built with cutting-edge technology and designed for seamless user experience.


πŸ“± Features

πŸ” Authentication & Security

  • Multi-Authentication Support: Email/Password and Google Sign-In
  • Secure Firebase Authentication: Industry-standard security protocols
  • Password Recovery: Easy password reset functionality
  • Session Management: Automatic login state persistence

πŸ• Food Catalog & Discovery

  • Categorized Menu: Browse by Breakfast, Lunch, Snacks, and Dinner
  • Rich Product Details: High-quality images, descriptions, and pricing
  • Real-time Data: Live updates from Firebase Firestore
  • Search & Filter: Easy product discovery (Coming Soon)

πŸ›’ Smart Shopping Cart

  • Dynamic Cart Management: Add, remove, and modify quantities
  • Real-time Calculations: Automatic subtotal, tax (10%), and total computation
  • Persistent Storage: Cart items saved across sessions
  • User-specific Carts: Individual cart management per user

🎨 Modern UI/UX

  • Material Design 3: Latest Google design principles
  • Responsive Layout: Optimized for all screen sizes
  • Intuitive Navigation: Bottom navigation with fragment architecture
  • Smooth Animations: Enhanced user experience with fluid transitions

πŸ’³ Payment Integration (Coming Soon)

  • Multiple payment methods (UPI, QR Code, Cash)
  • Secure transaction processing
  • Order history and tracking

πŸ—οΈ Technical Architecture

Tech Stack

Frontend: Android (Java)
Backend: Firebase (Authentication + Firestore)
UI Framework: Material Design Components
Image Loading: Glide Library
Architecture: MVVM with Fragment-based Navigation

Project Structure

app/src/main/java/com/example/unibites/
β”œβ”€β”€ πŸ“ Activities/
β”‚   β”œβ”€β”€ MainActivity.java          # Main container with bottom navigation
β”‚   β”œβ”€β”€ LoginActivity.java         # User authentication
β”‚   β”œβ”€β”€ SignUpActivity.java        # User registration
β”‚   β”œβ”€β”€ ProfileActivity.java       # User profile management
β”‚   └── PaymentActivity.java       # Payment processing (WIP)
β”œβ”€β”€ πŸ“ Fragments/
β”‚   β”œβ”€β”€ HomeFragment.java          # Home screen with featured items
β”‚   β”œβ”€β”€ FoodFragment.java          # Complete food catalog
β”‚   β”œβ”€β”€ CartFragment.java          # Shopping cart management
β”‚   └── HistoryFragment.java       # Order history (WIP)
β”œβ”€β”€ πŸ“ Models/
β”‚   β”œβ”€β”€ Product.java               # Product data model
β”‚   └── CartItem.java              # Cart item data model
β”œβ”€β”€ πŸ“ Adapters/
β”‚   β”œβ”€β”€ ProductAdapter.java        # Product grid display
β”‚   └── CartAdapter.java           # Cart items list
└── πŸ“ Utils/
    └── [Firebase configuration files]

πŸš€ Getting Started

Prerequisites

  • Android Studio Arctic Fox or later
  • JDK 8 or higher
  • Android SDK (API level 24+)
  • Firebase project setup

Installation Steps

  1. Clone the Repository

    git clone https://github.com/yourusername/unibites-android.git
    cd unibites-android
  2. Firebase Setup

    • Create a new Firebase project at Firebase Console
    • Enable Authentication (Email/Password & Google Sign-In)
    • Create a Firestore database
    • Download google-services.json and place it in app/ directory
  3. Configure Authentication

    • In Firebase Console, go to Authentication > Sign-in method
    • Enable Email/Password and Google Sign-In providers
    • For Google Sign-In, add your app's SHA-1 fingerprint
  4. Firestore Database Structure

    πŸ“ Products/
    β”œβ”€β”€ πŸ“„ {productId}
    β”‚   β”œβ”€β”€ Productname: "Product Name"
    β”‚   β”œβ”€β”€ ProductPrice: 99.99
    β”‚   β”œβ”€β”€ description: "Product description"
    β”‚   β”œβ”€β”€ Productimage: "image_url"
    β”‚   └── ProductCategory: "breakfast|lunch|snacks|dinner"
    
    πŸ“ carts/
    β”œβ”€β”€ πŸ“ {userId}/
    β”‚   └── πŸ“ items/
    β”‚       └── πŸ“„ {itemId}
    β”‚           β”œβ”€β”€ productId: "product_reference"
    β”‚           β”œβ”€β”€ name: "Product Name"
    β”‚           β”œβ”€β”€ price: 99.99
    β”‚           β”œβ”€β”€ quantity: 1
    β”‚           └── timestamp: 1234567890
    
  5. Build and Run

    # Open in Android Studio
    # Sync project with Gradle files
    # Run on device or emulator

πŸ”§ Configuration

Firebase Configuration

  1. Add your google-services.json file to the app/ directory
  2. Ensure Firebase dependencies are up to date in build.gradle.kts
  3. Configure Firestore security rules:

πŸ› οΈ Development

Adding New Features

  1. Create feature branch: git checkout -b feature/new-feature
  2. Follow existing code patterns and architecture
  3. Add appropriate error handling and loading states
  4. Test on multiple devices and screen sizes
  5. Submit pull request with detailed description

Code Style Guidelines

  • Follow Android coding conventions
  • Use meaningful variable and method names
  • Add comments for complex logic
  • Implement proper error handling
  • Use Firebase best practices for data operations

🚧 Roadmap

Phase 1 βœ…

  • User Authentication (Email/Password, Google)
  • Product Catalog with Categories
  • Shopping Cart Functionality
  • Firebase Integration

Phase 2 🚧

  • Payment Gateway Integration
  • Order Management System
  • Push Notifications
  • User Profile Enhancement

Phase 3 πŸ“‹

  • Order Tracking
  • Reviews & Ratings
  • Favorites & Wishlist
  • Advanced Search & Filters
  • Delivery Address Management
  • Promotional Codes & Discounts

🀝 Contributing

We welcome contributions! Please follow these steps:

  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

Contribution Guidelines

  • Ensure code follows project conventions
  • Add tests for new features
  • Update documentation as needed
  • Verify Firebase integration works correctly

πŸ“„ License

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


πŸ™ Acknowledgments

  • Firebase team for excellent backend services
  • Material Design team for beautiful UI components
  • Glide library for efficient image loading
  • Android development community for continuous support

Made with ❀️ for food lovers everywhere

⭐ Star this repo if you found it helpful!

About

No description or website provided.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published