Flash Cart is a modern, user-friendly Android shopping application built with Kotlin and Jetpack Compose. Designed to simulate a real-world e-commerce experience, it enables users to securely log in using OTP-based phone authentication, browse products by category, add items to a cart, and manage their shopping with an intuitive, clean interface.
The app follows the MVVM architecture to ensure clear separation of concerns and maintainable code. It features a responsive UI adhering to Material Design principles, dynamic state management, and robust error handling for offline scenarios. Flash Cart demonstrates core Android development practices—including Firebase Authentication integration—and serves as a strong foundation for building more advanced, production-ready shopping apps in the future.
✅ OTP-based login with Firebase Authentication
✅ Modern UI with Jetpack Compose
✅ Category-based product browsing
✅ Interactive cart system with dynamic updates
✅ Error screen for internet connectivity issues
✅ MVVM architecture for clean separation of concerns
✅ Logout with confirmation dialog
- OTP-based authentication using Firebase
- Mobile number verification with one-time password
- Smooth, password-free user onboarding
- Responsive grid layout of product categories
- Material Design styling
- Easy navigation to items
- Handles no-internet scenarios gracefully
- Displays clear warning message
- Items Screen
- Card layouts with image, name, price, and Add to Cart button
- Cart Screen
- Shows added items with quantity and total price
- Allows reviewing and managing cart before checkout
- Logout Confirmation
- Prevents accidental logouts with a confirmation dialog
Language: Kotlin
Architecture: MVVM (Model-View-ViewModel)
UI Framework: Jetpack Compose
Backend: Firebase Authentication
Build System: Gradle
IDE: Android Studio
Flash Cart uses the MVVM pattern for clear separation of concerns:
Model: Data sources and business logic
ViewModel: UI-related data management using StateFlow / LiveData
View: UI screens implemented with Jetpack Compose
Declarative UI with @Composable functions
State management via collectAsState()
Material Design components (Card, Button, TextField)
Responsive layouts (Column, Row, LazyVerticalGrid)
Phone number-based OTP login
Uses PhoneAuthProvider for sending OTP
Handles verification callbacks
Secure sign-in with PhoneAuthCredential
git clone https://github.com/Prateek-GitProjects/FlashCart-App
Enable Phone Authentication in Firebase Console.
Add your google-services.json to the app/ directory.
This project is an MVP (Minimum Viable Product) demo with scope for enhancements:
✅ Payment gateway integration (e.g., Razorpay, Google Pay)
✅ User profile management (purchase history, personal details)
✅ Admin dashboard for managing products, offers, and orders
✅ Real-time backend integration (Firebase Firestore or Room DB)
✅ Notifications, order tracking, and more





