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.
- 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
- 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)
- 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
- 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
- Multiple payment methods (UPI, QR Code, Cash)
- Secure transaction processing
- Order history and tracking
Frontend: Android (Java)
Backend: Firebase (Authentication + Firestore)
UI Framework: Material Design Components
Image Loading: Glide Library
Architecture: MVVM with Fragment-based Navigation
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]
- Android Studio Arctic Fox or later
- JDK 8 or higher
- Android SDK (API level 24+)
- Firebase project setup
-
Clone the Repository
git clone https://github.com/yourusername/unibites-android.git cd unibites-android
-
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 inapp/
directory
-
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
-
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
-
Build and Run
# Open in Android Studio # Sync project with Gradle files # Run on device or emulator
- Add your
google-services.json
file to theapp/
directory - Ensure Firebase dependencies are up to date in
build.gradle.kts
- Configure Firestore security rules:
- Create feature branch:
git checkout -b feature/new-feature
- Follow existing code patterns and architecture
- Add appropriate error handling and loading states
- Test on multiple devices and screen sizes
- Submit pull request with detailed description
- 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
- User Authentication (Email/Password, Google)
- Product Catalog with Categories
- Shopping Cart Functionality
- Firebase Integration
- Payment Gateway Integration
- Order Management System
- Push Notifications
- User Profile Enhancement
- Order Tracking
- Reviews & Ratings
- Favorites & Wishlist
- Advanced Search & Filters
- Delivery Address Management
- Promotional Codes & Discounts
We welcome contributions! Please follow these steps:
- 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
- Ensure code follows project conventions
- Add tests for new features
- Update documentation as needed
- Verify Firebase integration works correctly
This project is licensed under the MIT License - see the LICENSE file for details.
- 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!