A comprehensive monorepo containing the Flutter source code for the SmaRT App ecosystem.
.
├── .vscode/
│ └── launch.json
├── app/
│ ├── smart
│ └── smart_widgetbook
├── coverage_report
├── features/
│ ├── home
│ ├── kyc
│ └── ...
├── packages/
│ ├── core
│ └── smart_ui_kit
├── plugins
├── scripts
├── shared
├── test_reports
├── config.json
├── melos.yaml
├── pubspec.yaml
└── README.md
- app/: Contains Flutter apps in this repository. Includes smart (the main app) and smart_widgetbook (used to showcase widgets/components from
smart_ui_kit
). - coverage_report/: Stores combined test coverage
.lcov
files for the entire monorepo. - features/: Houses micro-packages for features reusable across different apps in the app directory.
- packages/: Contains micro-packages or internal packages reusable across apps.
- plugins/: Repositories for Flutter plugins reusable in different apps.
- scripts/: Scripts for automated tasks, including running tests with coverage and combining coverage data.
- test_reports/: Stores individual and combined test coverage reports.
Warning
Warning on Environment Configuration:
Before running the app, ensure your environment variables are correctly set up in shared/config
. Copy the .env.example
file and create three specific environment files: .env
(production), .env.development
, and .env.staging
.
-
Clone the Repository: Clone the repository to your local machine using your preferred method (SSH/HTTPS).
-
Activate Melos: Run the following command to activate Melos, a tool for managing Dart & Flutter mono repositories:
dart pub global activate melos
-
Configure Environment Variables: Update your environment variables in
shared/config
. Use the.env.example
file as a template to create environment-specific configurations:.env
for production.env.development
for development.env.staging
for staging Ensureshared/config/lib/src/env/env.dart
is correctly configured to reflect your.env
file settings.
-
Running the App: Open the project in VSCode and select the desired app flavor
prod
,dev
,staging
, orwidgetbook
from the run configuration dropdown to launch the respective app.