No description
Find a file
2024-11-29 14:18:08 +07:00
android first Commit 2024-11-29 14:18:08 +07:00
ios first Commit 2024-11-29 14:18:08 +07:00
lib first Commit 2024-11-29 14:18:08 +07:00
test first Commit 2024-11-29 14:18:08 +07:00
.gitignore first Commit 2024-11-29 14:18:08 +07:00
.metadata first Commit 2024-11-29 14:18:08 +07:00
analysis_options.yaml first Commit 2024-11-29 14:18:08 +07:00
pubspec.lock first Commit 2024-11-29 14:18:08 +07:00
pubspec.yaml first Commit 2024-11-29 14:18:08 +07:00
README.md first Commit 2024-11-29 14:18:08 +07:00

Starbhak Mobile

Starbhak App But Mobile.

School Management Super App

This is Starbhak Mobile developed using Flutter and Riverpod for state management. The app is designed to provide a seamless experience for teachers, staff, students, and parents. It employs Clean Code Architecture and follows a feature-first pattern for maintainability and scalability.


File Structure Overview

The app's structure ensures modularity, testability, and separation of concerns:

lib/
  core/
    config/
    constants/
    exceptions/
    themes/
    utilities/
    widgets/
  features/
    feature_name/
      data/
          models/
          providers/
          repositories/
      domain/
          actions/
          entities/
      presentations/
          pages/
          providers/
          widgets/
      feature_name.dart
  providers/
  routes/
  services/
  main.dart

core/

  • config/: Application-wide configurations.
  • constants/: Global constants such as API endpoints and fixed values.
  • exceptions/: Custom exception handling and error definitions.
  • themes/: Theming utilities using ColorScheme and more.
  • utilities/: General-purpose utilities, e.g., formatters, helpers.
  • widgets/: Reusable widgets shared across multiple features.

features/

Each feature has its folder with three primary layers:

  • data/:
    • models/: Data models (e.g., API responses or database entities).
    • providers/: Riverpod providers for accessing data sources.
    • repositories/: Abstractions and implementations for data access.
  • domain/:
    • actions/: Business logic encapsulated in actions.
    • entities/: Core entities representing domain concepts.
  • presentations/:
    • pages/: UI screens for the feature.
    • providers/: UI-specific Riverpod providers for state management.
    • widgets/: UI components specific to the feature.
  • feature_name.dart: A barrel file exporting key files from the feature.

providers/

Global Riverpod providers that span multiple features, such as authentication.

routes/

Navigation and route definitions for the application.

services/

General services, such as API clients, database helpers, or logging utilities.

main.dart

The entry point of the application, initializing dependencies and setting up providers, routes, and themes.


Getting Started

Prerequisites

  • Install Flutter and ensure it's up-to-date.
  • Set up the Dart SDK.

Running the App

Follow this steps to run the app:

  1. Clone the repository:
      git clone <repository-url>
    
  2. Navigate to the project dir:
      cd <project-directory>
    
  3. Install Dependencies:
      flutter pub get
    
  4. Run The App:
      flutter run
    

Contributing

Follow this steps:

  1. Clone the repository:
      git clone <repository-url>
    
  2. Create a feature branch:
      cd <project-directory>
    
  3. Commit your changes:
      git commit -m "Add new feature"
    
  4. Push to the branch:
      git push origin feature/<feature-name>
    
  5. Open a pull request.