
⚡ Flutter GetX MVC Project
This project is a Flutter application scaffolded with GetX ( BloC working in it ... ) and follows the MVC ( Model-View-Controller) architecture.
💻 How to Use Thunder CLI
To streamline the process of creating project structures and modules, we've developed a command-line tool called Thunder CLI. It simplifies the setup of your Flutter project. Below are the available commands and their usage:
📌 Installation
To install Thunder CLI, run the following command:
dart pub global activate thunder_cli
🧑🏻💻 Commands
Usage
To create and initialize a new Flutter project Folders and packages
with Thunder CLI, use the following command:
thunder --init
This command will set up the following components for your project:
- Main File
- Components for Application (e.g., animated widgets, snackbar)
- Themes (Dark and Light)
- Constants (e.g., colors, strings)
- Routes and App Pages
- Local storage
- Remote storage
- Awesome Notification
- FCM
- Dio Base Client
- Translations (e.g., localization service, strings)
- Publish app to GitHub
- Open the folder in VS code
- Setup GitHub action
- Setup flavor
To create a new Feature , use the following command:
thunder --feature
This command will set up the following components for your module:
- Binding
- Controller
- View
- Add view in routes and app pages
To create a new model via url (e.g., https://jsonplaceholder.typicode.com/posts), use the following command:
thunder --model
This command will set up the following components for your model:
- Model
- Named constructor
- FromJson
- ToJson
thunder --c_api
This command will auto convert api collection to code :
- Read all variables from collection
- Extract all request
- Add all api routes to api_contents.dart
- Build body model for all requests
- Build response model for all requests
- Build repos for all requests
- Build basic controller for all requests
To show help, use the following command:
thunder --h
🏛️ Project Structure
The project structure URL :
https://github.com/abdAlftahSalem/flutter_getx_template.git
📨 Contact with me
Contributing
Feel free to contribute to this project by opening issues, suggesting new features, or submitting pull requests.
License
This project is licensed under the MIT License.
Libraries
- core/consts/const_strings
- core/consts/folder_paths
- core/extensions/app_data_extension
- core/extensions/string_extensions
- core/networking/dio_handler
- core/services/cmd_service/run_in_cmd
- core/services/command_service/command_service
- core/services/command_service/get_command
- core/services/folder_and_file_service/create_path_if_not_found
- core/services/folder_and_file_service/folder_and_file_service
- features/convert_api_collection_to_code/build_body_model_file
- features/convert_api_collection_to_code/build_controller_for_requests
- features/convert_api_collection_to_code/build_repos_for_requests
- features/convert_api_collection_to_code/convert_api_collection_to_code
- features/convert_api_collection_to_code/extract_request_details
- features/convert_api_collection_to_code/get_variables_data
- features/convert_api_collection_to_code/models/request_model
- features/convert_api_collection_to_code/models/variable_model
- features/convert_api_collection_to_code/read_file_path_and_data
- features/convert_api_collection_to_code/set_routes_in_api_const
- features/create_api_model/build_model_file
- features/create_api_model/create_api_model
- features/create_api_model/setup_helper_methods
- features/create_api_model/setup_request_data
- features/create_feature/create_feature
- features/create_feature/setup_feature_files
- features/create_feature/setup_feature_folders
- features/init_project/clone_repo_and_setup_project
- features/init_project/get_project_data
- features/init_project/init_project
- features/init_project/models/app_data_model
- features/init_project/open_project_in_vs_code
- features/init_project/publish_project_to_github
- features/init_project/set_up_github_action
- features/init_project/setup_flavor
- features/localization_feature/get_string_to_translate
- features/localization_feature/get_translate_languages
- features/localization_feature/localization_feature
- features/localization_feature/models/from_to_language_model
- features/localization_feature/models/localization_variables_name
- features/localization_feature/models/translated_words_model
- features/localization_feature/setup_languages_files
- features/localization_feature/translate_languages
- features/routes_feature/add_in_app_router
- features/routes_feature/add_in_route_file
- features/routes_feature/route_feature
- main
- thunder
- Support for doing something awesome.