This is the source code for the frontend of LB Planner.
-
Flutter Version Manager (fvm): Installation Guide
-
You may want to set an alias for flutter to fvm in your shell configuration file.
alias flutter="fvm flutter" alias dart="fvm dart"
-
-
VsCode
-
slidy (optional): Installation Guide
dart pub global activate slidy
-
Once you've cloned the repository open it in VsCode
-
If not already, install the recommended extensions.
- VsCode should prompt you upon opening the project.
-
Copy the
.env.examplefile to.envand fill in the required values.cp .env.example .env
-
Run
fvm use && fvm flutter pub getto install the flutter version used for this project. -
Restart VsCode so that it recognizes the flutter version.
-
If you are running the app from a terminal, run
fvm flutter run --dart-define-from-file=.envto start the app.- VsCode should automatically detect the
.envfile and run the app with the correct environment variables.
- VsCode should automatically detect the
-
flutter_modular_bricks: A tool to generate boilerplate code for flutter_modular.
mason make moduleto create a new module.mason make serviceto create a new service.mason make service-implto implement a service.mason make datasourceto create a new datasource.mason make datasource-implto implement a datasource.mason make repoto create a new repository.mason make widgetto create a new widget.mason make screento create a new screen.mason make modelto create a new model.mason make utilto create a new utility group.mason make guardto create a new route guard
-
slidy run translateto generate the dart code for the translation files. -
slidy run generateto run all generators. -
slidy run cleanto clean the project and refetch dependencies.
Coding style is enforced as defined per the Effective Dart guidelines and the analysis_options.yaml file.
- LB Planner uses
flutter_modularand adheres to Clean Dart principles (a port of Clean Architecture to Dart). - The project is divided into modules, each module representing a feature or a group of features (e.g.
auth,home,settings). - Each module has its own
domain,infra, andpresentationlayers.- Domain: Defines contracts logic and entities.
- Infra: Implements the contracts defined in the domain layer.
- Presentation: Contains the UI and business logic.
- Use Conventional Commits for commit messages.
- It is recommended to use the Conventional Commits VsCode extension to help you write conventional commit messages.
- You should be prompted to install this extension upon opening the project.