A Flutter Application made as a hiring assignment for S.Rocks.Music.
The App is based on a Home Page UI described in a figma file provided by the organization.
- Flutter SDK (version 3.32.0 stable)
- Dart (v3.8.0)
- Firebase Console and CLI
- Android Studio or VS Code with necessary extensions
- Emulator or Paired Mobile Device
- firebase_core : For Initializing Firebase in the App
- firebase_storafe : To store the card icons and background images
- cloud_firestore : NoSQL database to store service_card details
- provider : For State Management
- get_it : For Dependency Injection
- speech_to_text : For recording audio for search bar
- Responsive UI with the following components :
- Search Bar with Mic button
- Profile Button
- Bottom Navigation Bar
- Banner
- Book Now Button
- Service Cards with asynchronous loading
- Navigation with proper State Management using Provider package
- MVVM ( Model - View - View_Model ) architecture with get_it dependency injection
- Storage of Service Card details in Firestore, and their asynchronous loading with Model and ViewModel classes.
- Navigation to other included simple pages
Note : The following files have been removed to ensure API security :
- lib/firebase_options.dart
- firebase.json
- android/app/google-services.json
- /assets/images/ : Contains all image assets for banner, navbar and icons other than service cards
- /assets/fonts/ : Contains custom fonts
- lib/models/ : Containing the model file service.dart
- lib/screens/ : Contains the view layer : All the screens of the app
- lib/services/ : Contains the service file firestore_service.dart that stores the firestore document details in a list
- lib/viewmodels/ : Contains the view_model layer, communicates between view and model layer
- lib/widgets/ : Contains reusable widget files
- lib/firebase_options.dart : Generated by FlutterFire CLI, contains options and API keys adjusted according to file
- lib/locator.dart : Dependency Injection using Get_it
- lib/main.dart : Main file that runs the app