A modern Flutter application for alcohol delivery with a comprehensive e-commerce experience. Built with Firebase backend, Riverpod state management, and a beautiful Material Design interface.
- User Registration & Login: Email/password authentication with Firebase Auth
- Password Reset: Secure password recovery via email
- Form Validation: Comprehensive input validation for email and password fields
- Error Handling: User-friendly error messages and loading states
- Auto-login: Persistent authentication state management
- Featured Banner: Dynamic promotional banner with remote configuration support
- Remote Config Integration: Banner content, images, and links managed via Firebase Remote Config
- Real-time Updates: Banner changes without app updates
- Fallback Support: Graceful handling when remote config is unavailable
- Latest Products: Recently added products (within last 7 days)
- Category Navigation: Quick access to different product categories
- Product Grid: Beautifully designed product cards with images and pricing
- Multi-Category Support:
- πΊ Beers: Various beer brands (Heineken, Budweiser, Corona, etc.)
- π· Wine: Red, white, and rosΓ© wines
- π₯ Spirits: Premium spirits (Jack Daniels, Absolut, Bombay, etc.)
- πΈ Other: Shots, cocktails, and specialty drinks
- Product Details: Comprehensive product information including:
- Alcohol percentage
- Volume (ml)
- Origin information
- Available quantity
- Product descriptions
- Search & Filter: Category-based product filtering
- Product Modals: Detailed product views with full specifications
- Add to Cart: Seamless product addition with quantity selection
- Cart Management:
- Quantity adjustment (+/- buttons)
- Item removal (swipe to delete)
- Bulk cart clearing
- Real-time Updates: Live cart total calculation
- Persistent Storage: Cart state maintained across app sessions
- Order Summary: Detailed breakdown of items and pricing
- Delivery Fee Calculation: Transparent pricing with delivery costs
- Order Confirmation: Complete order processing workflow
- Personal Information: User details and account management
- Order History: Complete order tracking and history
- Favorites: Saved favorite products
- Settings: App preferences and configuration
- Logout: Secure session termination
- Material Design 3: Modern, clean interface following Material Design guidelines
- Responsive Design: Optimized for various screen sizes
- Custom Components:
- Siply buttons (primary, secondary, icon buttons)
- Custom text form fields with validation
- Modal sheets and bottom sheets
- Loading indicators and animations
- Custom Color Palette: Carefully crafted color scheme
- Typography: Consistent text styling with Google Fonts
- Icons: Material Design icons throughout the app
- Animations: Smooth transitions and micro-interactions
- Accessibility: Screen reader support and accessibility features
- Flutter: Cross-platform mobile development framework
- Dart: Programming language
- Riverpod: State management and dependency injection
- Go Router: Declarative routing and navigation
- Material Design: UI component library
- Firebase Auth: User authentication and management
- Cloud Firestore: NoSQL database for products and user data
- Firebase Core: Firebase initialization and configuration
- Firebase Remote Config: Dynamic configuration management for app features
- ImageKit: Image storage and optimization (cost-effective alternative to Firebase Storage)
- Freezed: Code generation for immutable classes
- JSON Annotation: JSON serialization
- Build Runner: Code generation automation
- Flutter Lints: Code quality and style enforcement
- Riverpod Lint: Riverpod-specific linting rules
- Google Fonts: Typography
- Cached Network Image: Optimized image loading and caching
- Flutter SpinKit: Loading animations
- Wolt Modal Sheet: Beautiful modal presentations
lib/
βββ firebase_options.dart # Firebase configuration
βββ main.dart # App entry point
βββ root.dart # Root navigation wrapper
βββ screens/
β βββ auth/ # Authentication screens
β β βββ model/ # User data models
β β βββ provider/ # Auth state management
β β βββ service/ # Auth service layer
β β βββ widgets/ # Auth UI components
β βββ cart/ # Shopping cart functionality
β β βββ model/ # Cart data models
β β βββ provider/ # Cart state management
β β βββ service/ # Cart service layer
β β βββ widgets/ # Cart UI components
β βββ checkout/ # Order processing
β β βββ provider/ # Checkout state management
β β βββ service/ # Checkout service layer
β β βββ widgets/ # Checkout UI components
β βββ favorites/ # User favorites functionality
β β βββ model/ # Favorites data models
β β βββ provider/ # Favorites state management
β β βββ service/ # Favorites service layer
β β βββ widgets/ # Favorites UI components
β βββ home/ # Home screen and widgets
β β βββ provider/ # Home state management
β β βββ service/ # Home service layer
β β βββ widgets/ # Home UI components
β βββ orders/ # Order history
β β βββ model/ # Order data models
β β βββ provider/ # Orders state management
β β βββ service/ # Orders service layer
β β βββ widgets/ # Orders UI components
β βββ product/ # Product catalog
β β βββ model/ # Product data models
β β βββ provider/ # Product state management
β β βββ service/ # Product service layer
β β βββ widgets/ # Product UI components
β βββ profile/ # User profile management
β β βββ widgets/ # Profile UI components
β βββ shared/ # Shared UI components
βββ utils/
β βββ data/ # Local data and constants
β βββ theme/ # Theme configuration
β βββ constants.dart # App constants and configuration
β βββ extensions.dart # Dart extensions
β βββ local_data.dart # Local data utilities
β βββ routes.dart # Navigation configuration
β βββ timestamp_converter.dart # Timestamp utilities
β βββ validators.dart # Form validation logic
βββ assets/ # App assets
βββ icons/ # App icons
βββ images/ # App images
βββ vectors/ # App vector graphics
- Figma
- Illustrations from unDraw (Katerina Limpitsouni)
- Images and Logo from Canva
- Font Family: Playfair Display & Lato
- Color palette:
- Riverpod Providers: Centralized state management
- Async Providers: Efficient data fetching and caching
- State Notifiers: Reactive state updates
- Provider Scoping: Optimized widget rebuilds
- Go Router: Type-safe navigation
- Nested Routes: Complex navigation hierarchies
- Route Guards: Authentication-based route protection
- Firestore Integration: Real-time database synchronization
- Image Optimization: Cached network images
- Data Models: Type-safe data structures with Freezed
- Responsive Design: Adaptive layouts for different screen sizes (In progress)
- Loading States: Comprehensive loading indicators
- Error Handling: User-friendly error messages
- Form Validation: Real-time input validation
- Accessibility: Screen reader and accessibility support (In progress)
The app leverages Firebase Remote Config to dynamically manage content and features without requiring app updates:
- Dynamic Content: Banner images, text, and promotional messages can be updated remotely
- Real-time Updates: Changes are fetched and applied when the app is opened
- Fallback Strategy: Local default values ensure the app functions even when remote config is unavailable
- Provider Pattern: Remote config state managed through Riverpod providers
- Error Handling: Graceful fallback to default values on fetch failures
- Loading States: Smooth loading indicators during config fetch
- Type Safety: Strongly typed configuration models using Freezed