⚡ 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

Thunder CLI on pub.dev

📨 Contact with me

Whats App || Telegram

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.