From ef5c18ca4564c4a9dd820da9ef34c8b5d85a4814 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:33:54 +0300 Subject: [PATCH 01/10] init dart project --- .gitignore | 138 ++++++++++++++ .idea/.gitignore | 8 + .idea/misc.xml | 74 +++++++ CHANGELOG.md | 3 + README.md | 7 +- analysis_options.yaml | 30 +++ bin/git_lab_1.dart | 5 + lib/git_lab_1.dart | 3 + pubspec.lock | 402 +++++++++++++++++++++++++++++++++++++++ pubspec.yaml | 15 ++ test/git_lab_1_test.dart | 8 + 11 files changed, 688 insertions(+), 5 deletions(-) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/misc.xml create mode 100644 CHANGELOG.md create mode 100644 analysis_options.yaml create mode 100644 bin/git_lab_1.dart create mode 100644 lib/git_lab_1.dart create mode 100644 pubspec.lock create mode 100644 pubspec.yaml create mode 100644 test/git_lab_1_test.dart diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..47bc1a0 --- /dev/null +++ b/.gitignore @@ -0,0 +1,138 @@ +# Do not remove or rename entries in this file, only add new ones +# See https://github.com/flutter/flutter/issues/128635 for more context. + +# Miscellaneous +*.class +*.lock +*.log +*.pyc +*.swp +.DS_Store +.atom/ +.buildlog/ +.history +.svn/ + +# IntelliJ related +*.iml +*.ipr +*.iws +.idea/ + +# Visual Studio Code related +.classpath +.project +.settings/ +.vscode/* + +# Flutter repo-specific +/bin/cache/ +/bin/internal/bootstrap.bat +/bin/internal/bootstrap.sh +/bin/mingit/ +/dev/benchmarks/mega_gallery/ +/dev/bots/.recipe_deps +/dev/bots/android_tools/ +/dev/devicelab/ABresults*.json +/dev/docs/doc/ +/dev/docs/api_docs.zip +/dev/docs/flutter.docs.zip +/dev/docs/lib/ +/dev/docs/pubspec.yaml +/dev/integration_tests/**/xcuserdata +/dev/integration_tests/**/Pods +/packages/flutter/coverage/ +version +analysis_benchmark.json + +# packages file containing multi-root paths +.packages.generated + +# Flutter/Dart/Pub related +**/doc/api/ +.dart_tool/ +.flutter-plugins +.flutter-plugins-dependencies +**/generated_plugin_registrant.dart +.packages +.pub-preload-cache/ +.pub-cache/ +.pub/ +build/ +flutter_*.png +linked_*.ds +unlinked.ds +unlinked_spec.ds + +# Android related +**/android/**/gradle-wrapper.jar +.gradle/ +**/android/captures/ +**/android/gradlew +**/android/gradlew.bat +**/android/local.properties +**/android/**/GeneratedPluginRegistrant.java +**/android/key.properties +*.jks + +# iOS/XCode related +**/ios/**/*.mode1v3 +**/ios/**/*.mode2v3 +**/ios/**/*.moved-aside +**/ios/**/*.pbxuser +**/ios/**/*.perspectivev3 +**/ios/**/*sync/ +**/ios/**/.sconsign.dblite +**/ios/**/.tags* +**/ios/**/.vagrant/ +**/ios/**/DerivedData/ +**/ios/**/Icon? +**/ios/**/Pods/ +**/ios/**/.symlinks/ +**/ios/**/profile +**/ios/**/xcuserdata +**/ios/.generated/ +**/ios/Flutter/.last_build_id +**/ios/Flutter/App.framework +**/ios/Flutter/Flutter.framework +**/ios/Flutter/Flutter.podspec +**/ios/Flutter/Generated.xcconfig +**/ios/Flutter/ephemeral +**/ios/Flutter/app.flx +**/ios/Flutter/app.zip +**/ios/Flutter/flutter_assets/ +**/ios/Flutter/flutter_export_environment.sh +**/ios/ServiceDefinitions.json +**/ios/Runner/GeneratedPluginRegistrant.* + +# macOS +**/Flutter/ephemeral/ +**/Pods/ +**/macos/Flutter/GeneratedPluginRegistrant.swift +**/macos/Flutter/ephemeral +**/xcuserdata/ + +# Windows +**/windows/flutter/generated_plugin_registrant.cc +**/windows/flutter/generated_plugin_registrant.h +**/windows/flutter/generated_plugins.cmake + +# Linux +**/linux/flutter/generated_plugin_registrant.cc +**/linux/flutter/generated_plugin_registrant.h +**/linux/flutter/generated_plugins.cmake + +# Coverage +coverage/ + +# Symbols +app.*.symbols + +# Exceptions to above rules. +!**/ios/**/default.mode1v3 +!**/ios/**/default.mode2v3 +!**/ios/**/default.pbxuser +!**/ios/**/default.perspectivev3 +!/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages +!/dev/ci/**/Gemfile.lock +!.vscode/settings.json!/awesome_README.zip diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..694ee95 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,74 @@ + + + + + + + + + Android Lint: Performance + + + Angular + + + Class structureJava + + + Concurrency annotation issuesJava + + + ES2015 migration aidsJavaScript and TypeScript + + + Gradle + + + Groovy + + + Java + + + JavaScript and TypeScript + + + Markdown + + + PerformanceJava + + + Probable bugsGradle + + + Probable bugsJava + + + Properties files + + + SQL + + + Threading issuesGroovy + + + Threading issuesJava + + + Validity issuesGradle + + + + + Android + + + + + + + + + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..effe43c --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,3 @@ +## 1.0.0 + +- Initial version. diff --git a/README.md b/README.md index 7076308..3816eca 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,2 @@ -# Quiz App -This lab will be a simple quiz app designed to test your knowledge of Git and GitHub. The app includes five functions, each representing a different aspect of Git and GitHub. - -## Note: -Each function has been developed and committed separately to showcase progress. You can check each commit to see the development history and understand how each function was implemented. +A sample command-line application with an entrypoint in `bin/`, library code +in `lib/`, and example unit test in `test/`. diff --git a/analysis_options.yaml b/analysis_options.yaml new file mode 100644 index 0000000..dee8927 --- /dev/null +++ b/analysis_options.yaml @@ -0,0 +1,30 @@ +# This file configures the static analysis results for your project (errors, +# warnings, and lints). +# +# This enables the 'recommended' set of lints from `package:lints`. +# This set helps identify many issues that may lead to problems when running +# or consuming Dart code, and enforces writing Dart using a single, idiomatic +# style and format. +# +# If you want a smaller set of lints you can change this to specify +# 'package:lints/core.yaml'. These are just the most critical lints +# (the recommended set includes the core lints). +# The core lints are also what is used by pub.dev for scoring packages. + +include: package:lints/recommended.yaml + +# Uncomment the following section to specify additional rules. + +# linter: +# rules: +# - camel_case_types + +# analyzer: +# exclude: +# - path/to/excluded/files/** + +# For more information about the core and recommended set of lints, see +# https://dart.dev/go/core-lints + +# For additional information about configuring this file, see +# https://dart.dev/guides/language/analysis-options diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart new file mode 100644 index 0000000..0a3e84a --- /dev/null +++ b/bin/git_lab_1.dart @@ -0,0 +1,5 @@ +import 'package:git_lab_1/git_lab_1.dart' as git_lab_1; + +void main(List arguments) { + print('Hello world: ${git_lab_1.calculate()}!'); +} diff --git a/lib/git_lab_1.dart b/lib/git_lab_1.dart new file mode 100644 index 0000000..f64ad72 --- /dev/null +++ b/lib/git_lab_1.dart @@ -0,0 +1,3 @@ +int calculate() { + return 6 * 7; +} diff --git a/pubspec.lock b/pubspec.lock new file mode 100644 index 0000000..af73031 --- /dev/null +++ b/pubspec.lock @@ -0,0 +1,402 @@ +# Generated by pub +# See https://dart.dev/tools/pub/glossary#lockfile +packages: + _fe_analyzer_shared: + dependency: transitive + description: + name: _fe_analyzer_shared + sha256: "5aaf60d96c4cd00fe7f21594b5ad6a1b699c80a27420f8a837f4d68473ef09e3" + url: "https://pub.dev" + source: hosted + version: "68.0.0" + _macros: + dependency: transitive + description: dart + source: sdk + version: "0.1.0" + analyzer: + dependency: transitive + description: + name: analyzer + sha256: "21f1d3720fd1c70316399d5e2bccaebb415c434592d778cce8acb967b8578808" + url: "https://pub.dev" + source: hosted + version: "6.5.0" + args: + dependency: transitive + description: + name: args + sha256: "7cf60b9f0cc88203c5a190b4cd62a99feea42759a7fa695010eb5de1c0b2252a" + url: "https://pub.dev" + source: hosted + version: "2.5.0" + async: + dependency: transitive + description: + name: async + sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" + url: "https://pub.dev" + source: hosted + version: "2.11.0" + boolean_selector: + dependency: transitive + description: + name: boolean_selector + sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + collection: + dependency: transitive + description: + name: collection + sha256: a1ace0a119f20aabc852d165077c036cd864315bd99b7eaa10a60100341941bf + url: "https://pub.dev" + source: hosted + version: "1.19.0" + convert: + dependency: transitive + description: + name: convert + sha256: "0f08b14755d163f6e2134cb58222dd25ea2a2ee8a195e53983d57c075324d592" + url: "https://pub.dev" + source: hosted + version: "3.1.1" + coverage: + dependency: transitive + description: + name: coverage + sha256: "3945034e86ea203af7a056d98e98e42a5518fff200d6e8e6647e1886b07e936e" + url: "https://pub.dev" + source: hosted + version: "1.8.0" + crypto: + dependency: transitive + description: + name: crypto + sha256: ff625774173754681d66daaf4a448684fb04b78f902da9cb3d308c19cc5e8bab + url: "https://pub.dev" + source: hosted + version: "3.0.3" + file: + dependency: transitive + description: + name: file + sha256: "5fc22d7c25582e38ad9a8515372cd9a93834027aacf1801cf01164dac0ffa08c" + url: "https://pub.dev" + source: hosted + version: "7.0.0" + frontend_server_client: + dependency: transitive + description: + name: frontend_server_client + sha256: f64a0333a82f30b0cca061bc3d143813a486dc086b574bfb233b7c1372427694 + url: "https://pub.dev" + source: hosted + version: "4.0.0" + glob: + dependency: transitive + description: + name: glob + sha256: "0e7014b3b7d4dac1ca4d6114f82bf1782ee86745b9b42a92c9289c23d8a0ab63" + url: "https://pub.dev" + source: hosted + version: "2.1.2" + http_multi_server: + dependency: transitive + description: + name: http_multi_server + sha256: "97486f20f9c2f7be8f514851703d0119c3596d14ea63227af6f7a481ef2b2f8b" + url: "https://pub.dev" + source: hosted + version: "3.2.1" + http_parser: + dependency: transitive + description: + name: http_parser + sha256: "40f592dd352890c3b60fec1b68e786cefb9603e05ff303dbc4dda49b304ecdf4" + url: "https://pub.dev" + source: hosted + version: "4.1.0" + io: + dependency: transitive + description: + name: io + sha256: "2ec25704aba361659e10e3e5f5d672068d332fc8ac516421d483a11e5cbd061e" + url: "https://pub.dev" + source: hosted + version: "1.0.4" + js: + dependency: transitive + description: + name: js + sha256: c1b2e9b5ea78c45e1a0788d29606ba27dc5f71f019f32ca5140f61ef071838cf + url: "https://pub.dev" + source: hosted + version: "0.7.1" + lints: + dependency: "direct dev" + description: + name: lints + sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 + url: "https://pub.dev" + source: hosted + version: "3.0.0" + logging: + dependency: transitive + description: + name: logging + sha256: "623a88c9594aa774443aa3eb2d41807a48486b5613e67599fb4c41c0ad47c340" + url: "https://pub.dev" + source: hosted + version: "1.2.0" + macros: + dependency: transitive + description: + name: macros + sha256: "12e8a9842b5a7390de7a781ec63d793527582398d16ea26c60fed58833c9ae79" + url: "https://pub.dev" + source: hosted + version: "0.1.0-main.0" + matcher: + dependency: transitive + description: + name: matcher + sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb + url: "https://pub.dev" + source: hosted + version: "0.12.16+1" + meta: + dependency: transitive + description: + name: meta + sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 + url: "https://pub.dev" + source: hosted + version: "1.15.0" + mime: + dependency: transitive + description: + name: mime + sha256: "2e123074287cc9fd6c09de8336dae606d1ddb88d9ac47358826db698c176a1f2" + url: "https://pub.dev" + source: hosted + version: "1.0.5" + node_preamble: + dependency: transitive + description: + name: node_preamble + sha256: "6e7eac89047ab8a8d26cf16127b5ed26de65209847630400f9aefd7cd5c730db" + url: "https://pub.dev" + source: hosted + version: "2.0.2" + package_config: + dependency: transitive + description: + name: package_config + sha256: "1c5b77ccc91e4823a5af61ee74e6b972db1ef98c2ff5a18d3161c982a55448bd" + url: "https://pub.dev" + source: hosted + version: "2.1.0" + path: + dependency: transitive + description: + name: path + sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" + url: "https://pub.dev" + source: hosted + version: "1.9.0" + pool: + dependency: transitive + description: + name: pool + sha256: "20fe868b6314b322ea036ba325e6fc0711a22948856475e2c2b6306e8ab39c2a" + url: "https://pub.dev" + source: hosted + version: "1.5.1" + pub_semver: + dependency: transitive + description: + name: pub_semver + sha256: "40d3ab1bbd474c4c2328c91e3a7df8c6dd629b79ece4c4bd04bee496a224fb0c" + url: "https://pub.dev" + source: hosted + version: "2.1.4" + shelf: + dependency: transitive + description: + name: shelf + sha256: e7dd780a7ffb623c57850b33f43309312fc863fb6aa3d276a754bb299839ef12 + url: "https://pub.dev" + source: hosted + version: "1.4.2" + shelf_packages_handler: + dependency: transitive + description: + name: shelf_packages_handler + sha256: "89f967eca29607c933ba9571d838be31d67f53f6e4ee15147d5dc2934fee1b1e" + url: "https://pub.dev" + source: hosted + version: "3.0.2" + shelf_static: + dependency: transitive + description: + name: shelf_static + sha256: a41d3f53c4adf0f57480578c1d61d90342cd617de7fc8077b1304643c2d85c1e + url: "https://pub.dev" + source: hosted + version: "1.1.2" + shelf_web_socket: + dependency: transitive + description: + name: shelf_web_socket + sha256: "073c147238594ecd0d193f3456a5fe91c4b0abbcc68bf5cd95b36c4e194ac611" + url: "https://pub.dev" + source: hosted + version: "2.0.0" + source_map_stack_trace: + dependency: transitive + description: + name: source_map_stack_trace + sha256: "84cf769ad83aa6bb61e0aa5a18e53aea683395f196a6f39c4c881fb90ed4f7ae" + url: "https://pub.dev" + source: hosted + version: "2.1.1" + source_maps: + dependency: transitive + description: + name: source_maps + sha256: "708b3f6b97248e5781f493b765c3337db11c5d2c81c3094f10904bfa8004c703" + url: "https://pub.dev" + source: hosted + version: "0.10.12" + source_span: + dependency: transitive + description: + name: source_span + sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" + url: "https://pub.dev" + source: hosted + version: "1.10.0" + stack_trace: + dependency: transitive + description: + name: stack_trace + sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" + url: "https://pub.dev" + source: hosted + version: "1.11.1" + stream_channel: + dependency: transitive + description: + name: stream_channel + sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 + url: "https://pub.dev" + source: hosted + version: "2.1.2" + string_scanner: + dependency: transitive + description: + name: string_scanner + sha256: "688af5ed3402a4bde5b3a6c15fd768dbf2621a614950b17f04626c431ab3c4c3" + url: "https://pub.dev" + source: hosted + version: "1.3.0" + term_glyph: + dependency: transitive + description: + name: term_glyph + sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 + url: "https://pub.dev" + source: hosted + version: "1.2.1" + test: + dependency: "direct dev" + description: + name: test + sha256: "713a8789d62f3233c46b4a90b174737b2c04cb6ae4500f2aa8b1be8f03f5e67f" + url: "https://pub.dev" + source: hosted + version: "1.25.8" + test_api: + dependency: transitive + description: + name: test_api + sha256: "664d3a9a64782fcdeb83ce9c6b39e78fd2971d4e37827b9b06c3aa1edc5e760c" + url: "https://pub.dev" + source: hosted + version: "0.7.3" + test_core: + dependency: transitive + description: + name: test_core + sha256: "12391302411737c176b0b5d6491f466b0dd56d4763e347b6714efbaa74d7953d" + url: "https://pub.dev" + source: hosted + version: "0.6.5" + typed_data: + dependency: transitive + description: + name: typed_data + sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c + url: "https://pub.dev" + source: hosted + version: "1.3.2" + vm_service: + dependency: transitive + description: + name: vm_service + sha256: f652077d0bdf60abe4c1f6377448e8655008eef28f128bc023f7b5e8dfeb48fc + url: "https://pub.dev" + source: hosted + version: "14.2.4" + watcher: + dependency: transitive + description: + name: watcher + sha256: "3d2ad6751b3c16cf07c7fca317a1413b3f26530319181b37e3b9039b84fc01d8" + url: "https://pub.dev" + source: hosted + version: "1.1.0" + web: + dependency: transitive + description: + name: web + sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 + url: "https://pub.dev" + source: hosted + version: "1.0.0" + web_socket: + dependency: transitive + description: + name: web_socket + sha256: "3c12d96c0c9a4eec095246debcea7b86c0324f22df69893d538fcc6f1b8cce83" + url: "https://pub.dev" + source: hosted + version: "0.1.6" + web_socket_channel: + dependency: transitive + description: + name: web_socket_channel + sha256: "9f187088ed104edd8662ca07af4b124465893caf063ba29758f97af57e61da8f" + url: "https://pub.dev" + source: hosted + version: "3.0.1" + webkit_inspection_protocol: + dependency: transitive + description: + name: webkit_inspection_protocol + sha256: "87d3f2333bb240704cd3f1c6b5b7acd8a10e7f0bc28c28dcf14e782014f4a572" + url: "https://pub.dev" + source: hosted + version: "1.2.1" + yaml: + dependency: transitive + description: + name: yaml + sha256: "75769501ea3489fca56601ff33454fe45507ea3bfb014161abc3b43ae25989d5" + url: "https://pub.dev" + source: hosted + version: "3.1.2" +sdks: + dart: ">=3.4.4 <4.0.0" diff --git a/pubspec.yaml b/pubspec.yaml new file mode 100644 index 0000000..7f28c5e --- /dev/null +++ b/pubspec.yaml @@ -0,0 +1,15 @@ +name: git_lab_1 +description: A sample command-line application. +version: 1.0.0 +# repository: https://github.com/my_org/my_repo + +environment: + sdk: ^3.4.4 + +# Add regular dependencies here. +dependencies: + # path: ^1.8.0 + +dev_dependencies: + lints: ^3.0.0 + test: ^1.24.0 diff --git a/test/git_lab_1_test.dart b/test/git_lab_1_test.dart new file mode 100644 index 0000000..29b009f --- /dev/null +++ b/test/git_lab_1_test.dart @@ -0,0 +1,8 @@ +import 'package:git_lab_1/git_lab_1.dart'; +import 'package:test/test.dart'; + +void main() { + test('calculate', () { + expect(calculate(), 42); + }); +} From 7c2329b8a282f6830678889f324d86c43f513079 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:35:51 +0300 Subject: [PATCH 02/10] delete unnecessary files and update main function --- lib/git_lab_1.dart | 3 --- test/git_lab_1_test.dart | 8 -------- 2 files changed, 11 deletions(-) delete mode 100644 lib/git_lab_1.dart delete mode 100644 test/git_lab_1_test.dart diff --git a/lib/git_lab_1.dart b/lib/git_lab_1.dart deleted file mode 100644 index f64ad72..0000000 --- a/lib/git_lab_1.dart +++ /dev/null @@ -1,3 +0,0 @@ -int calculate() { - return 6 * 7; -} diff --git a/test/git_lab_1_test.dart b/test/git_lab_1_test.dart deleted file mode 100644 index 29b009f..0000000 --- a/test/git_lab_1_test.dart +++ /dev/null @@ -1,8 +0,0 @@ -import 'package:git_lab_1/git_lab_1.dart'; -import 'package:test/test.dart'; - -void main() { - test('calculate', () { - expect(calculate(), 42); - }); -} From 3810caf57b11bcc6354cd3a7ad4e0e393c635458 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Wed, 31 Jul 2024 14:49:58 +0300 Subject: [PATCH 03/10] create a function to print a colorized text in console --- bin/functions/menu_display.dart | 19 +++++++++++ bin/git_lab_1.dart | 42 +++++++++++++++++++++-- bin/utility/print_with_color.dart | 57 +++++++++++++++++++++++++++++++ 3 files changed, 115 insertions(+), 3 deletions(-) create mode 100644 bin/functions/menu_display.dart create mode 100644 bin/utility/print_with_color.dart diff --git a/bin/functions/menu_display.dart b/bin/functions/menu_display.dart new file mode 100644 index 0000000..4327f3a --- /dev/null +++ b/bin/functions/menu_display.dart @@ -0,0 +1,19 @@ +import '../utility/print_with_color.dart'; + +/* +* +* This function will display menu options +* +* */ +void displayMenu() { + // Print menu options + printWithColor(text: 'CLI Calculator program', color: 'Yellow'); + printWithColor(text: '1.Addition', color: 'Blue'); + printWithColor(text: '2.Subtraction', color: 'Blue'); + printWithColor(text: '3.Multiplication', color: 'Blue'); + printWithColor(text: '4.Division', color: 'Blue'); + printWithColor(text: '5.Modulus', color: 'Blue'); + + // Print with yellow color + printWithColor(text: '7. Exit'); +} \ No newline at end of file diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart index 0a3e84a..2b247b3 100644 --- a/bin/git_lab_1.dart +++ b/bin/git_lab_1.dart @@ -1,5 +1,41 @@ -import 'package:git_lab_1/git_lab_1.dart' as git_lab_1; +import './functions/menu_display.dart'; +import 'dart:io'; -void main(List arguments) { - print('Hello world: ${git_lab_1.calculate()}!'); +// Here we go :) +void main() { + + do{ + // To show my menu options + displayMenu(); + + // Write a message in CLI + stdout.write('Choose an option: '); + + // Get user input + final input = stdin.readLineSync(); + + // Switch case to handle user input + switch (input) { + case '1': + print('Addition'); + break; + case '2': + print('Subtraction'); + break; + case '3': + print('Multiplication'); + break; + case '4': + print('Division'); + break; + case '5': + print('Modulus'); + break; + case '6': + print('Exit'); + break; + default: + print('Invalid option'); + } + }while(true); } diff --git a/bin/utility/print_with_color.dart b/bin/utility/print_with_color.dart new file mode 100644 index 0000000..858403b --- /dev/null +++ b/bin/utility/print_with_color.dart @@ -0,0 +1,57 @@ +/* +* +* This Function to print text with color in console +* +* */ +void printWithColor({required dynamic text, String color = "Yellow"}) { + /** + Meaning: + \x1B: ANSI escape sequence starting marker + [31m: Escape sequence for red + [0m: Escape sequence for reset (stop making the text red) + + ANSI escape code explanation + Res: https://www.lihaoyi.com/post/BuildyourownCommandLinewithANSIescapecodes.html#colors + + Black: \x1B[30m + Red: \x1B[31m + Green: \x1B[32m + Yellow: \x1B[33m + Blue: \x1B[34m + Magenta: \x1B[35m + Cyan: \x1B[36m + White: \x1B[37m + Reset: \x1B[0m + **/ + switch (color) { + case ('Black'): + print('\x1B[30m$text\x1B[0m'); + break; + case ('Red'): + print('\x1B[31m$text\x1B[0m'); + break; + case ('Green'): + print('\x1B[32m$text\x1B[0m'); + break; + case ('Yellow'): + print('\x1B[33m$text\x1B[0m'); + break; + case ('Blue'): + print('\x1B[34m$text\x1B[0m'); + break; + case ('Magenta'): + print('\x1B[35m$text\x1B[0m'); + break; + case ('Cyan'): + print('\x1B[36m$text\x1B[0m'); + break; + case ('White'): + print('\x1B[37m$text\x1B[0m'); + break; + case ('Reset'): + print('\x1B[0m$text\x1B[0m'); + break; + default: + print('\x1B[33m$text\x1B[0m'); + } +} From 1c5240517b858675bbfc1c2ecb7661c2a2d4ec41 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Wed, 31 Jul 2024 17:31:48 +0300 Subject: [PATCH 04/10] add function to do addition operation and mintance maintain some issues --- bin/functions/addition.dart | 14 ++++++++++++++ bin/functions/menu_display.dart | 2 +- bin/git_lab_1.dart | 28 ++++++++++++++++++++++------ 3 files changed, 37 insertions(+), 7 deletions(-) create mode 100644 bin/functions/addition.dart diff --git a/bin/functions/addition.dart b/bin/functions/addition.dart new file mode 100644 index 0000000..14a2e3a --- /dev/null +++ b/bin/functions/addition.dart @@ -0,0 +1,14 @@ +import '../utility/print_with_color.dart'; + +/* +* +* Function to add two numbers +* +* */ +void addition({required double num1, required double num2}) { + // Add two numbers + final result = num1 + num2; + + // Print result + printWithColor(text: "$num1 + $num2 = $result \n"); +} diff --git a/bin/functions/menu_display.dart b/bin/functions/menu_display.dart index 4327f3a..5cc879b 100644 --- a/bin/functions/menu_display.dart +++ b/bin/functions/menu_display.dart @@ -15,5 +15,5 @@ void displayMenu() { printWithColor(text: '5.Modulus', color: 'Blue'); // Print with yellow color - printWithColor(text: '7. Exit'); + printWithColor(text: '6. Exit'); } \ No newline at end of file diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart index 2b247b3..8eb5103 100644 --- a/bin/git_lab_1.dart +++ b/bin/git_lab_1.dart @@ -1,10 +1,11 @@ -import './functions/menu_display.dart'; import 'dart:io'; +import './functions/menu_display.dart'; +import './functions/addition.dart'; +import './utility/print_with_color.dart'; // Here we go :) void main() { - - do{ + do { // To show my menu options displayMenu(); @@ -17,7 +18,15 @@ void main() { // Switch case to handle user input switch (input) { case '1': - print('Addition'); + // Write a message in CLI to get user input + stdout.write('Write the first number: '); + final number1 = double.parse(stdin.readLineSync()!); + + stdout.write('Write the scound number: '); + final number2 = double.parse(stdin.readLineSync()!); + + // Call addition function + addition(num1: number1, num2: number2); break; case '2': print('Subtraction'); @@ -35,7 +44,14 @@ void main() { print('Exit'); break; default: - print('Invalid option'); + /* + * + * In this case, we will save the data to a JSON file before exiting + * + * */ + printWithColor(text: 'Data was saved 😍', color: 'green'); + printWithColor(text: 'Exiting... see you again 🌹', color: 'Cyan'); + return; } - }while(true); + } while (true); } From b3cc60a74d618bcf41ea529c284d99278a315021 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Thu, 1 Aug 2024 06:52:46 +0300 Subject: [PATCH 05/10] create function to print a cleard message and takes input from users --- README.md | 11 +++++++++-- bin/git_lab_1.dart | 34 ++++++++++++++++++++++++++-------- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 3816eca..0a269d4 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,9 @@ -A sample command-line application with an entrypoint in `bin/`, library code -in `lib/`, and example unit test in `test/`. +# Quiz App + +This lab will be a simple quiz app designed to test your knowledge of Git and GitHub. The app includes five functions, +each representing a different aspect of Git and GitHub. + +## Note: + +Each function has been developed and committed separately to showcase progress. You can check each commit to see the +development history and understand how each function was implemented. \ No newline at end of file diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart index 8eb5103..452be12 100644 --- a/bin/git_lab_1.dart +++ b/bin/git_lab_1.dart @@ -3,6 +3,31 @@ import './functions/menu_display.dart'; import './functions/addition.dart'; import './utility/print_with_color.dart'; +/* +* +* Function to print a message to user and take his inputs +* It will return a List with 2 double +* [0] = number 1 +* [1] = number 2 +* */ +List getUserInput() { + // Init the list + List numbers = []; + + // Write a message in CLI then save his inputs + stdout.write('Write the first number: '); + final number1 = double.parse(stdin.readLineSync()!); + stdout.write('Write the second number: '); + final number2 = double.parse(stdin.readLineSync()!); + + // Add it to the list + numbers.add(number1); + numbers.add(number2); + + // Return the list + return numbers; +} + // Here we go :) void main() { do { @@ -18,15 +43,8 @@ void main() { // Switch case to handle user input switch (input) { case '1': - // Write a message in CLI to get user input - stdout.write('Write the first number: '); - final number1 = double.parse(stdin.readLineSync()!); - - stdout.write('Write the scound number: '); - final number2 = double.parse(stdin.readLineSync()!); - // Call addition function - addition(num1: number1, num2: number2); + addition(num1: getUserInput()[0], num2: getUserInput()[1]); break; case '2': print('Subtraction'); From 5332fb375accfc20216bf64e5a3e688ef0b419ab Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Thu, 1 Aug 2024 06:56:48 +0300 Subject: [PATCH 06/10] add function to do subtravtion operation --- bin/functions/subtraction.dart | 13 +++++++++++++ bin/git_lab_1.dart | 4 +++- 2 files changed, 16 insertions(+), 1 deletion(-) create mode 100644 bin/functions/subtraction.dart diff --git a/bin/functions/subtraction.dart b/bin/functions/subtraction.dart new file mode 100644 index 0000000..465f279 --- /dev/null +++ b/bin/functions/subtraction.dart @@ -0,0 +1,13 @@ +import '../utility/print_with_color.dart'; + +/* +* +* Function to subtract two numbers +* +* */ +void subtraction({required double num1, required double num2}) { + // Subtract two numbers + final result = num1 - num2; + // Print result + printWithColor(text: "$num1 - $num2 = $result \n"); +} diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart index 452be12..7cb28be 100644 --- a/bin/git_lab_1.dart +++ b/bin/git_lab_1.dart @@ -1,6 +1,7 @@ import 'dart:io'; import './functions/menu_display.dart'; import './functions/addition.dart'; +import './functions/subtraction.dart'; import './utility/print_with_color.dart'; /* @@ -47,7 +48,8 @@ void main() { addition(num1: getUserInput()[0], num2: getUserInput()[1]); break; case '2': - print('Subtraction'); + // Call subtraction function + subtraction(num1: getUserInput()[0], num2: getUserInput()[1]); break; case '3': print('Multiplication'); From f67a76f578597d94d233c6e1cc1a16986502366e Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Thu, 1 Aug 2024 06:59:25 +0300 Subject: [PATCH 07/10] add function to do multiplication operation --- bin/functions/multiplication.dart | 13 +++++++++++++ bin/git_lab_1.dart | 3 ++- 2 files changed, 15 insertions(+), 1 deletion(-) create mode 100644 bin/functions/multiplication.dart diff --git a/bin/functions/multiplication.dart b/bin/functions/multiplication.dart new file mode 100644 index 0000000..a720b4e --- /dev/null +++ b/bin/functions/multiplication.dart @@ -0,0 +1,13 @@ +import '../utility/print_with_color.dart'; + +/* +* +* Function to multiplication tow numbers +* +* */ +void multiplication({required double num1, required double num2}) { + // Subtract two numbers + final result = num1 * num2; + // Print result + printWithColor(text: "$num1 - $num2 = $result \n"); +} diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart index 7cb28be..d091fb4 100644 --- a/bin/git_lab_1.dart +++ b/bin/git_lab_1.dart @@ -2,6 +2,7 @@ import 'dart:io'; import './functions/menu_display.dart'; import './functions/addition.dart'; import './functions/subtraction.dart'; +import './functions/multiplication.dart'; import './utility/print_with_color.dart'; /* @@ -52,7 +53,7 @@ void main() { subtraction(num1: getUserInput()[0], num2: getUserInput()[1]); break; case '3': - print('Multiplication'); + multiplication(num1: getUserInput()[0], num2: getUserInput()[1]); break; case '4': print('Division'); From 243a21689eaa9425f5163533a0ff8234efe84f06 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Thu, 1 Aug 2024 07:16:41 +0300 Subject: [PATCH 08/10] add functions to division and clean code --- bin/functions/division.dart | 15 ++++++++++++ bin/functions/menu_display.dart | 5 ++-- bin/git_lab_1.dart | 43 +++++++++++++++++++++++---------- 3 files changed, 47 insertions(+), 16 deletions(-) create mode 100644 bin/functions/division.dart diff --git a/bin/functions/division.dart b/bin/functions/division.dart new file mode 100644 index 0000000..1a1c6c2 --- /dev/null +++ b/bin/functions/division.dart @@ -0,0 +1,15 @@ +import '../utility/print_with_color.dart'; + +/* +* +* Function to Division tow number +* +* */ +void division({required double num1, required double num2}) { + if (num2 == 0) { + printWithColor(text: 'Division by zero is not allowed', color: 'Red'); + } else { + printWithColor( + text: 'The result of division is ${num1 / num2}', color: 'green'); + } +} diff --git a/bin/functions/menu_display.dart b/bin/functions/menu_display.dart index 5cc879b..f7f3946 100644 --- a/bin/functions/menu_display.dart +++ b/bin/functions/menu_display.dart @@ -12,8 +12,7 @@ void displayMenu() { printWithColor(text: '2.Subtraction', color: 'Blue'); printWithColor(text: '3.Multiplication', color: 'Blue'); printWithColor(text: '4.Division', color: 'Blue'); - printWithColor(text: '5.Modulus', color: 'Blue'); // Print with yellow color - printWithColor(text: '6. Exit'); -} \ No newline at end of file + printWithColor(text: '5. Exit'); +} diff --git a/bin/git_lab_1.dart b/bin/git_lab_1.dart index d091fb4..f094a0e 100644 --- a/bin/git_lab_1.dart +++ b/bin/git_lab_1.dart @@ -1,8 +1,10 @@ +import 'dart:ffi'; import 'dart:io'; import './functions/menu_display.dart'; import './functions/addition.dart'; import './functions/subtraction.dart'; import './functions/multiplication.dart'; +import './functions/division.dart'; import './utility/print_with_color.dart'; /* @@ -45,34 +47,49 @@ void main() { // Switch case to handle user input switch (input) { case '1': + /* + * Addition operation + * */ + List userInputs = getUserInput(); // Call addition function - addition(num1: getUserInput()[0], num2: getUserInput()[1]); + addition(num1: userInputs[0], num2: userInputs[1]); break; case '2': - // Call subtraction function - subtraction(num1: getUserInput()[0], num2: getUserInput()[1]); + /* + * Subtraction operation + * */ + List userInputs = getUserInput(); + // Call subtraction function to get result + subtraction(num1: userInputs[0], num2: userInputs[1]); break; case '3': - multiplication(num1: getUserInput()[0], num2: getUserInput()[1]); + /* + * Multiplication operation + * */ + List userInputs = getUserInput(); + // Call multiplication function to get result + multiplication(num1: userInputs[0], num2: userInputs[1]); break; case '4': - print('Division'); + /* + * Division operation + * */ + List userInputs = getUserInput(); + // Call addition function + division(num1: userInputs[0], num2: userInputs[1]); break; case '5': - print('Modulus'); - break; - case '6': - print('Exit'); - break; - default: /* * - * In this case, we will save the data to a JSON file before exiting + * Exit * * */ - printWithColor(text: 'Data was saved 😍', color: 'green'); printWithColor(text: 'Exiting... see you again 🌹', color: 'Cyan'); return; + + default: + printWithColor(text: "Invalid input, please try again.", color: 'Red'); + break; } } while (true); } From 387cdf6ba33a80699ccd9612b72a764d7cd8d472 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Thu, 1 Aug 2024 07:18:54 +0300 Subject: [PATCH 09/10] add screanshot from cli for the result --- screenshot/img.png | Bin 0 -> 71002 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshot/img.png diff --git a/screenshot/img.png b/screenshot/img.png new file mode 100644 index 0000000000000000000000000000000000000000..62a14633c504c4ea6a6eb4aa18d01c9207bfa5a0 GIT binary patch literal 71002 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 literal 0 HcmV?d00001 From b4c46c95932aeb27d2c6406add1b322c292cc6b4 Mon Sep 17 00:00:00 2001 From: FaHaDoF69 <93477293+FaHaDoF69@users.noreply.github.com> Date: Thu, 1 Aug 2024 07:21:41 +0300 Subject: [PATCH 10/10] update readme file with screenshot of result --- README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 0a269d4..de0e4b6 100644 --- a/README.md +++ b/README.md @@ -6,4 +6,10 @@ each representing a different aspect of Git and GitHub. ## Note: Each function has been developed and committed separately to showcase progress. You can check each commit to see the -development history and understand how each function was implemented. \ No newline at end of file +development history and understand how each function was implemented. + +-- + +## Screenshot: + +result from cli \ No newline at end of file