| android | ||
| ios | ||
| lib | ||
| test | ||
| .gitignore | ||
| .metadata | ||
| analysis_options.yaml | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
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
ColorSchemeand 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:
- Clone the repository:
git clone <repository-url> - Navigate to the project dir:
cd <project-directory> - Install Dependencies:
flutter pub get - Run The App:
flutter run
Contributing
Follow this steps:
- Clone the repository:
git clone <repository-url> - Create a feature branch:
cd <project-directory> - Commit your changes:
git commit -m "Add new feature" - Push to the branch:
git push origin feature/<feature-name> - Open a pull request.