Skip to content

Sayakd915/SRocks_Assignment

Repository files navigation

SRocks_Assignment

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.

Prerequisites

  1. Flutter SDK (version 3.32.0 stable)
  2. Dart (v3.8.0)
  3. Firebase Console and CLI
  4. Android Studio or VS Code with necessary extensions
  5. Emulator or Paired Mobile Device

Packages used :

  1. firebase_core : For Initializing Firebase in the App
  2. firebase_storafe : To store the card icons and background images
  3. cloud_firestore : NoSQL database to store service_card details
  4. provider : For State Management
  5. get_it : For Dependency Injection
  6. speech_to_text : For recording audio for search bar

Features :

  1. 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
  2. Navigation with proper State Management using Provider package
  3. MVVM ( Model - View - View_Model ) architecture with get_it dependency injection
  4. Storage of Service Card details in Firestore, and their asynchronous loading with Model and ViewModel classes.
  5. 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

Folder Structure :

  • /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

Preview :

s.rocks.preview.mp4

About

App built for Hiring Assessment of SRocks

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages