├── ios ├── Flutter │ ├── Debug.xcconfig │ ├── Release.xcconfig │ └── AppFrameworkInfo.plist ├── Runner │ ├── Runner-Bridging-Header.h │ ├── Assets.xcassets │ │ ├── LaunchImage.imageset │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ ├── README.md │ │ │ └── Contents.json │ │ └── AppIcon.appiconset │ │ │ ├── Icon-App-20x20@1x.png │ │ │ ├── Icon-App-20x20@2x.png │ │ │ ├── Icon-App-20x20@3x.png │ │ │ ├── Icon-App-29x29@1x.png │ │ │ ├── Icon-App-29x29@2x.png │ │ │ ├── Icon-App-29x29@3x.png │ │ │ ├── Icon-App-40x40@1x.png │ │ │ ├── Icon-App-40x40@2x.png │ │ │ ├── Icon-App-40x40@3x.png │ │ │ ├── Icon-App-60x60@2x.png │ │ │ ├── Icon-App-60x60@3x.png │ │ │ ├── Icon-App-76x76@1x.png │ │ │ ├── Icon-App-76x76@2x.png │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── Icon-App-83.5x83.5@2x.png │ │ │ └── Contents.json │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.storyboard │ └── Info.plist ├── Runner.xcodeproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── WorkspaceSettings.xcsettings │ │ │ └── IDEWorkspaceChecks.plist │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── Runner.xcscheme │ └── project.pbxproj ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── WorkspaceSettings.xcsettings │ │ └── IDEWorkspaceChecks.plist ├── RunnerTests │ └── RunnerTests.swift └── .gitignore ├── images ├── eg1.jpg ├── appLogo.png ├── unit_1 │ ├── eg4.png │ ├── eg5.png │ ├── eg6.png │ ├── eg.3.png │ ├── eg222.jpg │ └── data_dbms.jpg ├── unit_3 │ ├── e1.png │ ├── e10.png │ ├── e11.png │ ├── e12.png │ ├── e13.png │ ├── e14.png │ ├── e15.png │ ├── e16.png │ ├── e2.png │ ├── e3.png │ ├── e4.png │ ├── e5.png │ ├── e6.png │ ├── e7.png │ ├── e8.png │ ├── e9.png │ ├── js.jpg │ ├── sql.jpg │ └── html.jpg ├── unit_4 │ ├── p1.png │ ├── p2.png │ ├── p3.png │ ├── p4.png │ ├── p5.png │ ├── p6.png │ ├── eg_1.png │ └── file-handling.png ├── unit_5 │ ├── eg11.png │ └── eg22.png ├── unit_6 │ ├── sdlc.png │ ├── prototype.png │ ├── sprialmodel.png │ ├── component_system.png │ ├── informationsystem.png │ └── software_develop.png ├── unit_2 │ ├── simplex.jpg │ ├── fullDuplex.png │ ├── half-duplex.jpg │ └── internet_intranet.jpg └── loading.json ├── screenshots ├── img1.png ├── img2.png ├── img3.png └── project-6.png ├── fonts ├── Poppins-Regular.ttf └── Ubuntu-Regular.ttf ├── analysis_options.yaml ├── android ├── app │ ├── src │ │ ├── main │ │ │ ├── res │ │ │ │ ├── appstore.png │ │ │ │ ├── playstore.png │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ └── ic_launcher.png │ │ │ │ ├── drawable │ │ │ │ │ └── launch_background.xml │ │ │ │ ├── drawable-v21 │ │ │ │ │ └── launch_background.xml │ │ │ │ ├── values │ │ │ │ │ └── styles.xml │ │ │ │ └── values-night │ │ │ │ │ └── styles.xml │ │ │ ├── kotlin │ │ │ │ └── com │ │ │ │ │ └── example │ │ │ │ │ └── computer_12 │ │ │ │ │ └── MainActivity.kt │ │ │ └── AndroidManifest.xml │ │ ├── debug │ │ │ └── AndroidManifest.xml │ │ └── profile │ │ │ └── AndroidManifest.xml │ └── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties ├── .gitignore ├── build.gradle └── settings.gradle ├── lib ├── constant │ └── const.dart ├── views │ ├── components │ │ ├── footer.dart │ │ ├── drawer │ │ │ ├── menu.dart │ │ │ └── header.dart │ │ ├── app_bar.dart │ │ ├── headings.dart │ │ ├── banner_ad_helper.dart │ │ ├── cards.dart │ │ ├── interstitial_ad.dart │ │ └── custom_drawer.dart │ ├── main_screen.dart │ ├── topics │ │ └── topics.dart │ ├── drawer │ │ └── drawer.dart │ └── pages │ │ ├── unit4.dart │ │ ├── unit5.dart │ │ └── unit3.dart ├── splash_screen.dart ├── providers │ ├── rating_providers.dart │ └── privacy_policy_provider.dart ├── main.dart ├── widgets │ └── widgets.dart └── strings │ └── string_unit2.dart ├── .gitignore ├── pubspec.yaml ├── LICENSE ├── .metadata ├── README.md └── pubspec.lock /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /images/eg1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/eg1.jpg -------------------------------------------------------------------------------- /images/appLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/appLogo.png -------------------------------------------------------------------------------- /images/unit_1/eg4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_1/eg4.png -------------------------------------------------------------------------------- /images/unit_1/eg5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_1/eg5.png -------------------------------------------------------------------------------- /images/unit_1/eg6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_1/eg6.png -------------------------------------------------------------------------------- /images/unit_3/e1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e1.png -------------------------------------------------------------------------------- /images/unit_3/e10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e10.png -------------------------------------------------------------------------------- /images/unit_3/e11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e11.png -------------------------------------------------------------------------------- /images/unit_3/e12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e12.png -------------------------------------------------------------------------------- /images/unit_3/e13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e13.png -------------------------------------------------------------------------------- /images/unit_3/e14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e14.png -------------------------------------------------------------------------------- /images/unit_3/e15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e15.png -------------------------------------------------------------------------------- /images/unit_3/e16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e16.png -------------------------------------------------------------------------------- /images/unit_3/e2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e2.png -------------------------------------------------------------------------------- /images/unit_3/e3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e3.png -------------------------------------------------------------------------------- /images/unit_3/e4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e4.png -------------------------------------------------------------------------------- /images/unit_3/e5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e5.png -------------------------------------------------------------------------------- /images/unit_3/e6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e6.png -------------------------------------------------------------------------------- /images/unit_3/e7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e7.png -------------------------------------------------------------------------------- /images/unit_3/e8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e8.png -------------------------------------------------------------------------------- /images/unit_3/e9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/e9.png -------------------------------------------------------------------------------- /images/unit_3/js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/js.jpg -------------------------------------------------------------------------------- /images/unit_3/sql.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/sql.jpg -------------------------------------------------------------------------------- /images/unit_4/p1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/p1.png -------------------------------------------------------------------------------- /images/unit_4/p2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/p2.png -------------------------------------------------------------------------------- /images/unit_4/p3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/p3.png -------------------------------------------------------------------------------- /images/unit_4/p4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/p4.png -------------------------------------------------------------------------------- /images/unit_4/p5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/p5.png -------------------------------------------------------------------------------- /images/unit_4/p6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/p6.png -------------------------------------------------------------------------------- /screenshots/img1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/screenshots/img1.png -------------------------------------------------------------------------------- /screenshots/img2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/screenshots/img2.png -------------------------------------------------------------------------------- /screenshots/img3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/screenshots/img3.png -------------------------------------------------------------------------------- /images/unit_1/eg.3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_1/eg.3.png -------------------------------------------------------------------------------- /images/unit_1/eg222.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_1/eg222.jpg -------------------------------------------------------------------------------- /images/unit_3/html.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_3/html.jpg -------------------------------------------------------------------------------- /images/unit_4/eg_1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/eg_1.png -------------------------------------------------------------------------------- /images/unit_5/eg11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_5/eg11.png -------------------------------------------------------------------------------- /images/unit_5/eg22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_5/eg22.png -------------------------------------------------------------------------------- /images/unit_6/sdlc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_6/sdlc.png -------------------------------------------------------------------------------- /fonts/Poppins-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/fonts/Poppins-Regular.ttf -------------------------------------------------------------------------------- /fonts/Ubuntu-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/fonts/Ubuntu-Regular.ttf -------------------------------------------------------------------------------- /images/unit_2/simplex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_2/simplex.jpg -------------------------------------------------------------------------------- /screenshots/project-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/screenshots/project-6.png -------------------------------------------------------------------------------- /images/unit_1/data_dbms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_1/data_dbms.jpg -------------------------------------------------------------------------------- /images/unit_2/fullDuplex.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_2/fullDuplex.png -------------------------------------------------------------------------------- /images/unit_6/prototype.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_6/prototype.png -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | analyzer: 2 | errors: 3 | must_be_immutable: ignore 4 | include: package:flutter_lints/flutter.yaml 5 | -------------------------------------------------------------------------------- /images/unit_2/half-duplex.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_2/half-duplex.jpg -------------------------------------------------------------------------------- /images/unit_4/file-handling.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_4/file-handling.png -------------------------------------------------------------------------------- /images/unit_6/sprialmodel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_6/sprialmodel.png -------------------------------------------------------------------------------- /images/unit_2/internet_intranet.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_2/internet_intranet.jpg -------------------------------------------------------------------------------- /images/unit_6/component_system.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_6/component_system.png -------------------------------------------------------------------------------- /images/unit_6/informationsystem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_6/informationsystem.png -------------------------------------------------------------------------------- /images/unit_6/software_develop.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/images/unit_6/software_develop.png -------------------------------------------------------------------------------- /android/app/src/main/res/appstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/appstore.png -------------------------------------------------------------------------------- /android/app/src/main/res/playstore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/playstore.png -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G -XX:+HeapDumpOnOutOfMemoryError 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/computer_12/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.computer_12 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() 6 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Nishan-Pradhan06/Flutter_E-Note-App/HEAD/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | zipStoreBase=GRADLE_USER_HOME 4 | zipStorePath=wrapper/dists 5 | distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.3-all.zip 6 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /android/.gitignore: -------------------------------------------------------------------------------- 1 | gradle-wrapper.jar 2 | /.gradle 3 | /captures/ 4 | /gradlew 5 | /gradlew.bat 6 | /local.properties 7 | GeneratedPluginRegistrant.java 8 | 9 | # Remember to never publicly share your keystore. 10 | # See https://flutter.dev/docs/deployment/android#reference-the-keystore-from-the-app 11 | key.properties 12 | **/*.keystore 13 | **/*.jks 14 | -------------------------------------------------------------------------------- /ios/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | import XCTest 4 | 5 | class RunnerTests: XCTestCase { 6 | 7 | func testExample() { 8 | // If you add code to the Runner application, consider adding tests here. 9 | // See https://developer.apple.com/documentation/xctest for more information about using XCTest. 10 | } 11 | 12 | } 13 | -------------------------------------------------------------------------------- /lib/constant/const.dart: -------------------------------------------------------------------------------- 1 | import 'package:url_launcher/url_launcher.dart'; 2 | 3 | // URL Launcher 4 | void openURL(String url) => launchUrl(Uri.parse(url)); 5 | 6 | // Github Link 7 | const String gitHub = 'https://github.com/Nishan-Pradhan06'; 8 | const String mail = 'mailto:nishanpradhan500@gmail.com'; 9 | const String website = 'https://cs-notes.nishanpradhan.com.np/'; 10 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md: -------------------------------------------------------------------------------- 1 | # Launch Screen Assets 2 | 3 | You can customize the launch screen with your own desired assets by replacing the image files in this directory. 4 | 5 | You can also do it by opening your Flutter project's Xcode project with `open ios/Runner.xcworkspace`, selecting `Runner/Assets.xcassets` in the Project Navigator and dropping in the desired images. -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | allprojects { 2 | repositories { 3 | google() 4 | mavenCentral() 5 | } 6 | } 7 | 8 | rootProject.buildDir = "../build" 9 | subprojects { 10 | project.buildDir = "${rootProject.buildDir}/${project.name}" 11 | } 12 | subprojects { 13 | project.evaluationDependsOn(":app") 14 | } 15 | 16 | tasks.register("clean", Delete) { 17 | delete rootProject.buildDir 18 | } 19 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /lib/views/components/footer.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Footer extends StatelessWidget { 4 | const Footer({ 5 | super.key, 6 | }); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | return const Text( 11 | '***END***', 12 | textAlign: TextAlign.center, 13 | style: TextStyle( 14 | fontSize: 24.0, 15 | fontWeight: FontWeight.bold, 16 | ), 17 | ); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Flutter 2 | import UIKit 3 | 4 | @UIApplicationMain 5 | @objc class AppDelegate: FlutterAppDelegate { 6 | override func application( 7 | _ application: UIApplication, 8 | didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? 9 | ) -> Bool { 10 | GeneratedPluginRegistrant.register(with: self) 11 | return super.application(application, didFinishLaunchingWithOptions: launchOptions) 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "LaunchImage.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "LaunchImage@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "LaunchImage@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/splash_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:computer_12/main.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:lottie/lottie.dart'; 4 | import 'package:animated_splash_screen/animated_splash_screen.dart'; 5 | 6 | class SplashScreen extends StatelessWidget { 7 | const SplashScreen({super.key}); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return AnimatedSplashScreen( 12 | splash: Lottie.network( 13 | 'https://assets4.lottiefiles.com/packages/lf20_f4dmlwbs.json'), 14 | nextScreen: const MyApp(), 15 | ); 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /ios/.gitignore: -------------------------------------------------------------------------------- 1 | **/dgph 2 | *.mode1v3 3 | *.mode2v3 4 | *.moved-aside 5 | *.pbxuser 6 | *.perspectivev3 7 | **/*sync/ 8 | .sconsign.dblite 9 | .tags* 10 | **/.vagrant/ 11 | **/DerivedData/ 12 | Icon? 13 | **/Pods/ 14 | **/.symlinks/ 15 | profile 16 | xcuserdata 17 | **/.generated/ 18 | Flutter/App.framework 19 | Flutter/Flutter.framework 20 | Flutter/Flutter.podspec 21 | Flutter/Generated.xcconfig 22 | Flutter/ephemeral/ 23 | Flutter/app.flx 24 | Flutter/app.zip 25 | Flutter/flutter_assets/ 26 | Flutter/flutter_export_environment.sh 27 | ServiceDefinitions.json 28 | Runner/GeneratedPluginRegistrant.* 29 | 30 | # Exceptions to above rules. 31 | !default.mode1v3 32 | !default.mode2v3 33 | !default.pbxuser 34 | !default.perspectivev3 35 | -------------------------------------------------------------------------------- /lib/views/components/drawer/menu.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class MenuDrawer extends StatelessWidget { 4 | final IconData icon; 5 | final String title; 6 | final VoidCallback onTap; 7 | 8 | const MenuDrawer({ 9 | super.key, 10 | required this.icon, 11 | required this.title, 12 | required this.onTap, 13 | }); 14 | 15 | @override 16 | Widget build(BuildContext context) { 17 | return ListTile( 18 | leading: Icon(icon, color: Colors.black), 19 | title: Text( 20 | title, 21 | style: const TextStyle( 22 | fontSize: 15, 23 | fontWeight: FontWeight.bold, 24 | ), 25 | ), 26 | onTap: onTap, 27 | ); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /lib/views/main_screen.dart: -------------------------------------------------------------------------------- 1 | import 'package:computer_12/views/components/app_bar.dart'; 2 | import 'package:computer_12/views/components/custom_drawer.dart'; 3 | import 'package:computer_12/views/topics/topics.dart'; 4 | import 'package:flutter/material.dart'; 5 | 6 | class ActionButton extends StatelessWidget { 7 | const ActionButton({super.key}); 8 | 9 | @override 10 | Widget build(BuildContext context) { 11 | return const Scaffold( 12 | appBar: CustomAppBar( 13 | titleText: 'Computer Science', 14 | ), 15 | body: SizedBox( 16 | child: TopicsList(), 17 | ), 18 | backgroundColor: Color.fromARGB(130, 173, 223, 241), 19 | // bottomNavigationBar: BannerAdHelper(), 20 | drawer: CustomDrawerComponent(), 21 | ); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/views/components/app_bar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CustomAppBar extends StatelessWidget implements PreferredSizeWidget { 4 | final String titleText; 5 | 6 | const CustomAppBar({super.key, required this.titleText}); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | return AppBar( 11 | elevation: 40.0, 12 | backgroundColor: const Color(0xff618989), 13 | centerTitle: true, 14 | title: Text( 15 | titleText, 16 | style: const TextStyle( 17 | color: Colors.white, 18 | fontSize: 25.0, 19 | fontWeight: FontWeight.bold, 20 | ), 21 | ), 22 | ); 23 | } 24 | 25 | @override 26 | Size get preferredSize => const Size.fromHeight(kToolbarHeight); 27 | } 28 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | pluginManagement { 2 | def flutterSdkPath = { 3 | def properties = new Properties() 4 | file("local.properties").withInputStream { properties.load(it) } 5 | def flutterSdkPath = properties.getProperty("flutter.sdk") 6 | assert flutterSdkPath != null, "flutter.sdk not set in local.properties" 7 | return flutterSdkPath 8 | }() 9 | 10 | includeBuild("$flutterSdkPath/packages/flutter_tools/gradle") 11 | 12 | repositories { 13 | google() 14 | mavenCentral() 15 | gradlePluginPortal() 16 | } 17 | } 18 | 19 | plugins { 20 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 21 | id "com.android.application" version "7.3.0" apply false 22 | id "org.jetbrains.kotlin.android" version "1.7.10" apply false 23 | } 24 | 25 | include ":app" 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Miscellaneous 2 | *.class 3 | *.log 4 | *.pyc 5 | *.swp 6 | .DS_Store 7 | .atom/ 8 | .buildlog/ 9 | .history 10 | .svn/ 11 | migrate_working_dir/ 12 | 13 | # IntelliJ related 14 | *.iml 15 | *.ipr 16 | *.iws 17 | .idea/ 18 | 19 | # The .vscode folder contains launch configuration and tasks you configure in 20 | # VS Code which you may wish to be included in version control, so this line 21 | # is commented out by default. 22 | #.vscode/ 23 | 24 | # Flutter/Dart/Pub related 25 | **/doc/api/ 26 | **/ios/Flutter/.last_build_id 27 | .dart_tool/ 28 | .flutter-plugins 29 | .flutter-plugins-dependencies 30 | .pub-cache/ 31 | .pub/ 32 | /build/ 33 | 34 | # Symbolication related 35 | app.*.symbols 36 | 37 | # Obfuscation related 38 | app.*.map.json 39 | 40 | # Android Studio will place build artifacts here 41 | /android/app/debug 42 | /android/app/profile 43 | /android/app/release 44 | -------------------------------------------------------------------------------- /ios/Flutter/AppFrameworkInfo.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | App 9 | CFBundleIdentifier 10 | io.flutter.flutter.app 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | App 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1.0 23 | MinimumOSVersion 24 | 12.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /pubspec.yaml: -------------------------------------------------------------------------------- 1 | name: computer_12 2 | description: "A new Flutter project." 3 | publish_to: "none" 4 | version: 0.1.0 5 | 6 | environment: 7 | sdk: ">=3.4.1 <4.0.0" 8 | 9 | dependencies: 10 | flutter: 11 | sdk: flutter 12 | 13 | share: ^2.0.4 14 | rating_dialog: ^2.0.4 15 | lottie: ^3.1.0 16 | animated_splash_screen: ^1.3.0 17 | bulleted_list: ^0.0.1+0.1a 18 | url_launcher: ^6.3.0 19 | # facebook_audience_network: ^1.0.1 20 | provider: ^6.1.2 21 | 22 | dev_dependencies: 23 | flutter_test: 24 | sdk: flutter 25 | flutter_lints: ^3.0.0 26 | 27 | flutter: 28 | uses-material-design: true 29 | 30 | assets: 31 | - images/ 32 | - images/unit_1/ 33 | - images/unit_2/ 34 | - images/unit_4/ 35 | - images/unit_5/ 36 | - images/unit_6/ 37 | - images/unit_3/ 38 | 39 | fonts: 40 | - family: Poppins 41 | fonts: 42 | - asset: fonts/Poppins-Regular.ttf 43 | -------------------------------------------------------------------------------- /lib/views/components/headings.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class TopicsHeadings extends StatelessWidget { 4 | final String unit; 5 | const TopicsHeadings({required this.unit, super.key}); 6 | 7 | @override 8 | Widget build(BuildContext context) { 9 | return Column( 10 | children: [ 11 | Padding( 12 | padding: const EdgeInsets.all(2.0), 13 | child: Text( 14 | unit, 15 | textAlign: TextAlign.center, 16 | style: const TextStyle( 17 | fontSize: 24.0, 18 | fontWeight: FontWeight.bold, 19 | ), 20 | ), 21 | ), 22 | const Text( 23 | 'Sources: Buddha Publication Pvt. Ltd.', 24 | textAlign: TextAlign.center, 25 | style: TextStyle( 26 | fontSize: 14.0, 27 | fontStyle: FontStyle.italic, 28 | ), 29 | ), 30 | ], 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /lib/views/components/banner_ad_helper.dart: -------------------------------------------------------------------------------- 1 | // import 'package:facebook_audience_network/facebook_audience_network.dart'; 2 | // import 'package:flutter/cupertino.dart'; 3 | 4 | // class BannerAdHelper extends StatefulWidget { 5 | // const BannerAdHelper({super.key}); 6 | 7 | // @override 8 | // State createState() => _BannerAdHelperState(); 9 | // } 10 | 11 | // class _BannerAdHelperState extends State { 12 | // @override 13 | // void initState() { 14 | // super.initState(); 15 | // FacebookAudienceNetwork.init( 16 | // testingId: "b9f2908b-1a6b-4a5b-b862-ded7ce289e41", 17 | // ); 18 | // } 19 | 20 | // @override 21 | // Widget build(BuildContext context) { 22 | // return FacebookBannerAd( 23 | // placementId: "IMG_16_9_APP_INSTALL#2312433698835503_2964944860251047", 24 | // bannerSize: BannerSize.STANDARD, 25 | // listener: (result, value) { 26 | // debugPrint("Banner Ad: $result --> $value"); 27 | // }, 28 | // ); 29 | // } 30 | // } 31 | -------------------------------------------------------------------------------- /lib/views/components/cards.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class TopicsCards extends StatelessWidget { 4 | final String title; 5 | final VoidCallback onPressed; 6 | const TopicsCards({super.key, required this.title, required this.onPressed}); 7 | 8 | @override 9 | Widget build(BuildContext context) { 10 | final screenSize = MediaQuery.of(context).size; 11 | double textSize = screenSize.width * 0.04; 12 | return GestureDetector( 13 | onTap: onPressed, 14 | child: Card( 15 | color: const Color(0xff618989), 16 | elevation: 5.0, 17 | child: Padding( 18 | padding: const EdgeInsets.all(30.0), 19 | child: Center( 20 | child: Text( 21 | title, 22 | style: TextStyle( 23 | fontSize: textSize, 24 | fontWeight: FontWeight.bold, 25 | color: Colors.black87, 26 | ), 27 | ), 28 | ), 29 | ), 30 | ), 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 [Nishan-Pradhan] 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including the rights to use, copy, modify, 8 | merge, publish, distribute, sublicense, and/or sell copies of the Software, 9 | and to permit persons to whom the Software is furnished to do so, subject to 10 | the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS," WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /lib/views/components/drawer/header.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class CustomDrawerHeader extends StatelessWidget { 4 | const CustomDrawerHeader({super.key}); 5 | 6 | @override 7 | Widget build(BuildContext context) { 8 | return UserAccountsDrawerHeader( 9 | accountName: const Text( 10 | 'Computer Science', 11 | textAlign: TextAlign.center, 12 | style: TextStyle( 13 | fontSize: 15, 14 | fontWeight: FontWeight.bold, 15 | ), 16 | ), 17 | accountEmail: const Text( 18 | 'Grade 12 New Curriculam Course Notes', 19 | style: TextStyle( 20 | fontSize: 15, 21 | fontWeight: FontWeight.bold, 22 | ), 23 | selectionColor: Colors.black, 24 | ), 25 | currentAccountPicture: CircleAvatar( 26 | child: ClipOval( 27 | child: Image.asset( 28 | 'images/appLogo.png', 29 | width: 95, 30 | height: 95, 31 | ), 32 | ), 33 | ), 34 | decoration: const BoxDecoration( 35 | color: Colors.lightBlue, 36 | image: DecorationImage( 37 | image: NetworkImage( 38 | 'https://images.unsplash.com/photo-1635350181304-be3f00f5af76?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1974&q=80', 39 | ), 40 | fit: BoxFit.cover, 41 | ), 42 | ), 43 | ); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/providers/rating_providers.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:rating_dialog/rating_dialog.dart'; 3 | 4 | class RatingProvider with ChangeNotifier { 5 | void showRatingDialog(BuildContext context) { 6 | showDialog( 7 | barrierDismissible: false, 8 | context: context, 9 | builder: (context) { 10 | return RatingDialog( 11 | initialRating: 1.0, 12 | title: const Text( 13 | 'Feedback', 14 | textHeightBehavior: 15 | TextHeightBehavior(applyHeightToFirstAscent: true), 16 | softWrap: true, 17 | textAlign: TextAlign.center, 18 | style: TextStyle( 19 | fontSize: 25, 20 | fontWeight: FontWeight.bold, 21 | ), 22 | ), 23 | message: const Text( 24 | 'Tap a star to set your rating. Add more description here if you want.', 25 | textAlign: TextAlign.center, 26 | style: TextStyle(fontSize: 14), 27 | ), 28 | image: Image.asset( 29 | "images/appLogo.png", 30 | height: 100.0, 31 | width: 100, 32 | ), 33 | starSize: 25, 34 | submitButtonText: 'Submit', 35 | commentHint: 'Tell Us Your Comments', 36 | onCancelled: () => debugPrint('Cancelled'), 37 | onSubmitted: (response) { 38 | debugPrint( 39 | 'Rating: ${response.rating}, Comment: ${response.comment}'); 40 | }, 41 | ); 42 | }, 43 | ); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /lib/views/components/interstitial_ad.dart: -------------------------------------------------------------------------------- 1 | // import 'package:facebook_audience_network/ad/ad_interstitial.dart'; 2 | // import 'package:flutter/material.dart'; 3 | 4 | // class InterstitialAdManager { 5 | // // Function to load and show the interstitial ad with a callback for when the ad is done loading 6 | // static void loadAndShowInterstitialAd( 7 | // BuildContext context, VoidCallback onAdComplete) { 8 | // showDialog( 9 | // context: context, 10 | // barrierDismissible: false, 11 | // builder: (context) { 12 | // return const Center( 13 | // child: CircularProgressIndicator( 14 | // color: Color(0xff618989), 15 | // ), 16 | // ); 17 | // }, 18 | // ); 19 | 20 | // FacebookInterstitialAd.loadInterstitialAd( 21 | // placementId: "IMG_16_9_APP_INSTALL#299486252083346_299911042040867", 22 | // listener: (result, value) { 23 | // if (result == InterstitialAdResult.LOADED) { 24 | // Navigator.of(context).pop(); // Close the loading dialog 25 | // FacebookInterstitialAd.showInterstitialAd(); 26 | // Future.delayed(const Duration(milliseconds: 500), 27 | // onAdComplete); // Call callback after the ad 28 | // } else if (result == InterstitialAdResult.DISMISSED || 29 | // result == InterstitialAdResult.ERROR) { 30 | // Navigator.of(context) 31 | // .pop(); // Close the loading dialog in case of error or dismissal 32 | // onAdComplete(); // Continue to the next page if the ad fails or is dismissed 33 | // } 34 | // }, 35 | // ); 36 | // } 37 | // } 38 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | Computer 12 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | computer_12 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | $(FLUTTER_BUILD_NAME) 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | $(FLUTTER_BUILD_NUMBER) 25 | LSRequiresIPhoneOS 26 | 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIMainStoryboardFile 30 | Main 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | CADisableMinimumFrameDurationOnPhone 45 | 46 | UIApplicationSupportsIndirectInputEvents 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /.metadata: -------------------------------------------------------------------------------- 1 | # This file tracks properties of this Flutter project. 2 | # Used by Flutter tool to assess capabilities and perform upgrades etc. 3 | # 4 | # This file should be version controlled and should not be manually edited. 5 | 6 | version: 7 | revision: "a14f74ff3a1cbd521163c5f03d68113d50af93d3" 8 | channel: "stable" 9 | 10 | project_type: app 11 | 12 | # Tracks metadata for the flutter migrate command 13 | migration: 14 | platforms: 15 | - platform: root 16 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 17 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 18 | - platform: android 19 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 20 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 21 | - platform: ios 22 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 23 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 24 | - platform: linux 25 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 26 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 27 | - platform: macos 28 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 29 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 30 | - platform: web 31 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 32 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 33 | - platform: windows 34 | create_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 35 | base_revision: a14f74ff3a1cbd521163c5f03d68113d50af93d3 36 | 37 | # User provided section 38 | 39 | # List of Local paths (relative to this file) that should be 40 | # ignored by the migrate tool. 41 | # 42 | # Files that are not part of the templates will be ignored by default. 43 | unmanaged_files: 44 | - 'lib/main.dart' 45 | - 'ios/Runner.xcodeproj/project.pbxproj' 46 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:computer_12/providers/privacy_policy_provider.dart'; 2 | import 'package:computer_12/providers/rating_providers.dart'; 3 | import 'package:computer_12/views/main_screen.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:animated_splash_screen/animated_splash_screen.dart'; 6 | import 'package:lottie/lottie.dart'; 7 | import 'package:provider/provider.dart'; 8 | 9 | /////initializing 10 | void main() { 11 | runApp(const MyApp()); 12 | } 13 | 14 | // splash strating screen 15 | class MyApp extends StatelessWidget { 16 | const MyApp({super.key}); 17 | 18 | @override 19 | Widget build(BuildContext context) { 20 | return MultiProvider( 21 | providers: [ 22 | ChangeNotifierProvider(create: (_) => PrivacyPolicyProvider()), 23 | ChangeNotifierProvider(create: (_) => RatingProvider()), 24 | ], 25 | child: MaterialApp( 26 | theme: ThemeData( 27 | fontFamily: "Poppins", 28 | useMaterial3: true, 29 | ), 30 | debugShowCheckedModeBanner: false, //removes debug banner 31 | themeAnimationCurve: Curves.fastLinearToSlowEaseIn, 32 | home: AnimatedSplashScreen( 33 | splash: Column( 34 | //starting splash screen 35 | children: [ 36 | Lottie.asset( 37 | 'images/loading.json', 38 | height: 350, 39 | width: 200, 40 | ), 41 | ], 42 | ), 43 | nextScreen: const MainScreen(), 44 | splashIconSize: 350, 45 | duration: 4500, 46 | splashTransition: SplashTransition.fadeTransition, 47 | backgroundColor: Colors.white, 48 | ), 49 | // const HomeView() 50 | ), 51 | ); 52 | } 53 | } 54 | 55 | // /appbar title and bottom ad call 56 | class MainScreen extends StatelessWidget { 57 | const MainScreen({super.key}); 58 | 59 | @override 60 | Widget build(BuildContext context) { 61 | return const Scaffold( 62 | body: ActionButton(), 63 | ); 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "com.android.application" 3 | id "kotlin-android" 4 | // The Flutter Gradle Plugin must be applied after the Android and Kotlin Gradle plugins. 5 | id "dev.flutter.flutter-gradle-plugin" 6 | } 7 | 8 | def localProperties = new Properties() 9 | def localPropertiesFile = rootProject.file("local.properties") 10 | if (localPropertiesFile.exists()) { 11 | localPropertiesFile.withReader("UTF-8") { reader -> 12 | localProperties.load(reader) 13 | } 14 | } 15 | 16 | def flutterVersionCode = localProperties.getProperty("flutter.versionCode") 17 | if (flutterVersionCode == null) { 18 | flutterVersionCode = "1" 19 | } 20 | 21 | def flutterVersionName = localProperties.getProperty("flutter.versionName") 22 | if (flutterVersionName == null) { 23 | flutterVersionName = "1.0" 24 | } 25 | 26 | android { 27 | namespace = "com.example.computer_12" 28 | compileSdk = flutter.compileSdkVersion 29 | ndkVersion = flutter.ndkVersion 30 | 31 | compileOptions { 32 | sourceCompatibility = JavaVersion.VERSION_1_8 33 | targetCompatibility = JavaVersion.VERSION_1_8 34 | } 35 | 36 | defaultConfig { 37 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 38 | applicationId = "com.example.computer_12" 39 | // You can update the following values to match your application needs. 40 | // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. 41 | minSdk = flutter.minSdkVersion 42 | targetSdk = flutter.targetSdkVersion 43 | versionCode = flutterVersionCode.toInteger() 44 | versionName = flutterVersionName 45 | } 46 | 47 | buildTypes { 48 | release { 49 | // TODO: Add your own signing config for the release build. 50 | // Signing with the debug keys for now, so `flutter run --release` works. 51 | signingConfig = signingConfigs.debug 52 | } 53 | } 54 | } 55 | 56 | flutter { 57 | source = "../.." 58 | } 59 | -------------------------------------------------------------------------------- /lib/views/components/custom_drawer.dart: -------------------------------------------------------------------------------- 1 | import 'dart:io'; 2 | import 'package:computer_12/views/components/drawer/header.dart'; 3 | import 'package:computer_12/views/components/drawer/menu.dart'; 4 | import 'package:flutter/material.dart'; 5 | import 'package:flutter/services.dart'; 6 | import 'package:provider/provider.dart'; 7 | import '../../providers/privacy_policy_provider.dart'; 8 | import 'package:share/share.dart'; 9 | import '../../providers/rating_providers.dart'; 10 | 11 | class CustomDrawerComponent extends StatelessWidget { 12 | const CustomDrawerComponent({super.key}); 13 | 14 | @override 15 | Widget build(BuildContext context) { 16 | return Drawer( 17 | elevation: 5.0, 18 | child: ListView( 19 | padding: EdgeInsets.zero, 20 | children: [ 21 | const CustomDrawerHeader(), 22 | MenuDrawer( 23 | icon: Icons.home, 24 | title: 'Home', 25 | onTap: () { 26 | Navigator.of(context).pop(); 27 | }, 28 | ), 29 | MenuDrawer( 30 | icon: Icons.share_rounded, 31 | title: 'Share', 32 | onTap: () { 33 | Share.share( 34 | 'https://play.google.com/store/apps/details?id=com.instructivetech.testapp'); 35 | }, 36 | ), 37 | MenuDrawer( 38 | icon: Icons.star_outlined, 39 | title: 'Rating', 40 | onTap: () { 41 | Provider.of(context, listen: false) 42 | .showRatingDialog(context); 43 | }, 44 | ), 45 | MenuDrawer( 46 | icon: Icons.lock_outline_rounded, 47 | title: 'Privacy Policies', 48 | onTap: () { 49 | Provider.of(context, listen: false) 50 | .showPrivacyDialog(context); 51 | }, 52 | ), 53 | MenuDrawer( 54 | icon: Icons.exit_to_app_rounded, 55 | title: 'Exit', 56 | onTap: () { 57 | if (Platform.isAndroid) { 58 | SystemNavigator.pop(); 59 | } 60 | }, 61 | ), 62 | ], 63 | ), 64 | ); 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Computer Science Grade 12 E-Note-App 2 | 3 | Welcome to the Computer Science Grade 12 E-Note-App, a Flutter-based application designed to provide comprehensive notes for computer science enthusiasts. Whether you are a student or a professional, this app aims to be your go-to resource for mastering the concepts of computer science. 4 | 5 | #### visit [website](https://cs-notes.nishanpradhan.com.np/) for more details. 6 | 7 | ## Live Preview Demo 8 | 9 | Experience the app firsthand by clicking on the following link: [Live Preview Demo](https://appetize.io/app/android/com.example.computer_12?device=pixel8&osVersion=14.0) 10 | 11 | ![project-6](https://github.com/Nishan-Pradhan06/Flutter_E-Note-App/assets/105001135/8815dd17-efc0-41c1-b1db-bdb6bcf4b18e) 12 | 13 | ## Installation Guide 14 | 15 | To run this project on your local machine, make sure you have Flutter installed. If Flutter is not installed, follow the [official installation guide](https://flutter.dev/docs/get-started/install). 16 | 17 | 1. **Clone the Repository:** 18 | 19 | ```bash 20 | git clone https://github.com/Nishan-Pradhan06/Flutter_E-Note-App.git 21 | 2. **Navigate to the Project Directory:** 22 | ```bash 23 | cd Flutter_E-Note-App 24 | 3. **Install Dependencies:** 25 | ```bash 26 | flutter pub get 27 | 4. **Run the Application::** 28 | ```bash 29 | flutter run 30 | ## Project Structure 31 | The project is organized into the following directories: 32 | 33 | - lib/: Contains the Dart code for the DigitalNote app. 34 | - android/: Android-specific configurations and files. 35 | - ios/: iOS-specific configurations and files. 36 | - test/: Tests for the application. 37 | ## Contributing 38 | We welcome contributions! If you'd like to enhance this DigitalNote app, please follow these steps: 39 | 40 | - Fork the repository. 41 | - Create your branch: git checkout -b feature/fooBar 42 | - Commit your changes: git commit -m 'Add some fooBar' 43 | - Push to the branch: git push origin feature/fooBar 44 | - Create a Pull Request. 45 | ## Support 46 | For any queries or issues, please open an issue on the [GitHub repository](https://github.com/Nishan-Pradhan06/Flutter_E-Note-App). 47 | 48 | ## License 49 | This project is licensed under the MIT License. 50 | 51 | Thank you for your interest and contributions! Together, let's make learning computer science an engaging and enriching experience. 52 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 16 | 20 | 24 | 25 | 26 | 27 | 28 | 29 | 31 | 34 | 35 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /ios/Runner/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /lib/widgets/widgets.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: must_be_immutable, non_constant_identifier_names 2 | 3 | import 'package:flutter/material.dart'; 4 | 5 | //headings 6 | Column chapterHeading() { 7 | return const Column( 8 | children: [ 9 | Padding( 10 | padding: EdgeInsets.all(2.0), 11 | child: Text( 12 | 'Database', 13 | textAlign: TextAlign.center, 14 | style: TextStyle( 15 | fontSize: 24.0, 16 | fontWeight: FontWeight.bold, 17 | ), 18 | ), 19 | ), 20 | Text( 21 | 'Sources: Buddha Publication Pvt. Ltd.', 22 | textAlign: TextAlign.center, 23 | style: TextStyle( 24 | fontSize: 14.0, 25 | fontStyle: FontStyle.italic, 26 | ), 27 | ), 28 | ], 29 | ); 30 | } 31 | 32 | 33 | 34 | //contents of heading 35 | class HeadingDetails extends StatelessWidget { 36 | String contents; 37 | HeadingDetails({ 38 | required this.contents, 39 | super.key, 40 | }); 41 | 42 | @override 43 | Widget build(BuildContext context) { 44 | return SelectableText( 45 | contents, 46 | textAlign: TextAlign.justify, 47 | // ignore: deprecated_member_use 48 | toolbarOptions: 49 | // ignore: deprecated_member_use 50 | const ToolbarOptions(copy: true, cut: true, selectAll: true), 51 | style: const TextStyle( 52 | fontSize: 16.0, 53 | ), 54 | ); 55 | } 56 | } 57 | //topics 58 | 59 | class ChapterTopics extends StatelessWidget { 60 | String heading; 61 | ChapterTopics({ 62 | required this.heading, 63 | super.key, 64 | }); 65 | 66 | @override 67 | Widget build(BuildContext context) { 68 | return Text( 69 | heading, 70 | textAlign: TextAlign.start, 71 | style: const TextStyle( 72 | decoration: TextDecoration.underline, 73 | fontSize: 21.0, 74 | fontWeight: FontWeight.bold, 75 | ), 76 | ); 77 | } 78 | } 79 | 80 | class ChapterHeadingMedium extends StatelessWidget { 81 | final String medium_heading; 82 | const ChapterHeadingMedium({ 83 | required this.medium_heading, 84 | super.key, 85 | }); 86 | 87 | @override 88 | Widget build(BuildContext context) { 89 | return Text( 90 | medium_heading, 91 | textAlign: TextAlign.left, 92 | textDirection: TextDirection.ltr, 93 | style: const TextStyle( 94 | decoration: TextDecoration.underline, 95 | fontSize: 17.0, 96 | fontWeight: FontWeight.bold, 97 | ), 98 | ); 99 | } 100 | } 101 | -------------------------------------------------------------------------------- /lib/strings/string_unit2.dart: -------------------------------------------------------------------------------- 1 | //details 2 | 3 | 4 | String titleText = 'Unit 2'; 5 | 6 | String topics = 'Data Communication and Networking'; 7 | 8 | String sources = 'Sources: Buddha Publication Pvt. Ltd.'; 9 | 10 | //data communications 11 | String headline1 = "Data Communication"; 12 | 13 | String pragraph1 = 14 | "Data communication is the process of using computing and communication technologies to transfer data from one place to another, or between participating parites. Data communication enables the movement of electronic or digital data between two or more network modes, regardless of geographical location, technological medium or data contents."; 15 | 16 | //type of data communications 17 | String headline2 = 'Types of data communicatin mode'; 18 | String pragraph2 = 19 | "There are three types of data communication modes which are given below: -\ni) Simplex\nii) Half-Duplex\niii) Full-Duplex"; 20 | 21 | //explaination 22 | String point1 = "1.Simplex"; 23 | String point1Explanations = 24 | "In simplex mode, the commmunication is undirectional, as on a one way street. Only one of the two devices on a link can transmit, the other can only receive. Keyboard and traditional monitors are both examples of simplex. Keyboard can be only intorduce input, the monitor xan only accept the output. "; 25 | String exmaple1 = 'Simples Only A to B\nFig:- Simplex Communication'; 26 | 27 | String point2 = '2.Half-Duplex'; 28 | String point2Explanations = 29 | "In Half-Fuplex mode, each station can both transmit and receive is sending, the other can only receive, anmd vice versa. In this mode, the entire capacity of a channel is taken over by whichever of teo deveices is transmittnig at the time. Wakie-Talkie is the best example of half-duplex system."; 30 | String example2 = 31 | "Half-Duplex A to B or B to A\nFig:- Half-Duplex Communication"; 32 | 33 | String point3 = '3.Full-Duplex'; 34 | String point3Explanations = 35 | "In the Full-Duplex mode, both stations can transmit and receive simultaneously. This mde is like a two way traffic flowing in both directions at the same time. Here, signals going in either direction share the capacity of the link. Telephone network, online chatting are the example of full-duplex."; 36 | String example3 = 37 | 'Transmission in both directions simultaneously \nFig:- Full duplex communication'; 38 | 39 | String headline3 = 'Computer Network'; 40 | String pragraph3 = 41 | "Computer Network is defined as the interconnection of two or more computers or networking devices with the help of transmission media and set of protocols."; 42 | 43 | String h4 = 'Merits of Computer Network'; 44 | String p4 = 'a. Sharing Resource'; 45 | String p5 = 46 | "Hardware resources such as processor, storage devices, printers, scanner etc can be shared among us using computer network. It hepls to minimize the operational cost of an organization. Similarly software can be shared among us within a network."; 47 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-60x60@2x.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "60x60", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-60x60@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "size" : "20x20", 59 | "idiom" : "ipad", 60 | "filename" : "Icon-App-20x20@1x.png", 61 | "scale" : "1x" 62 | }, 63 | { 64 | "size" : "20x20", 65 | "idiom" : "ipad", 66 | "filename" : "Icon-App-20x20@2x.png", 67 | "scale" : "2x" 68 | }, 69 | { 70 | "size" : "29x29", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-29x29@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "29x29", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-29x29@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "40x40", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-40x40@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "40x40", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-40x40@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "76x76", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-76x76@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "76x76", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-76x76@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "83.5x83.5", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-App-83.5x83.5@2x.png", 109 | "scale" : "2x" 110 | }, 111 | { 112 | "size" : "1024x1024", 113 | "idiom" : "ios-marketing", 114 | "filename" : "Icon-App-1024x1024@1x.png", 115 | "scale" : "1x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 37 | 38 | 39 | 40 | 43 | 49 | 50 | 51 | 52 | 53 | 63 | 65 | 71 | 72 | 73 | 74 | 80 | 82 | 88 | 89 | 90 | 91 | 93 | 94 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /lib/views/topics/topics.dart: -------------------------------------------------------------------------------- 1 | import 'package:computer_12/views/components/cards.dart'; 2 | import 'package:flutter/material.dart'; 3 | import 'package:computer_12/views/pages/unit1.dart'; 4 | import 'package:computer_12/views/pages/unit2.dart'; 5 | import 'package:computer_12/views/pages/unit3.dart'; 6 | import 'package:computer_12/views/pages/unit4.dart'; 7 | import 'package:computer_12/views/pages/unit5.dart'; 8 | import 'package:computer_12/views/pages/unit6.dart'; 9 | import 'package:computer_12/views/pages/unit7.dart'; 10 | 11 | class TopicsList extends StatelessWidget { 12 | const TopicsList({super.key}); 13 | 14 | // Function to navigate after the ad 15 | void navigateToPage(BuildContext context, Widget page) { 16 | Navigator.of(context).push( 17 | MaterialPageRoute( 18 | builder: (context) => page, 19 | ), 20 | ); 21 | } 22 | 23 | @override 24 | Widget build(BuildContext context) { 25 | return SizedBox( 26 | height: MediaQuery.of(context).size.height, 27 | width: MediaQuery.of(context).size.width, 28 | child: ListView( 29 | children: [ 30 | TopicsCards( 31 | title: 'DataBase', 32 | onPressed: () { 33 | Navigator.of(context).push( 34 | MaterialPageRoute( 35 | builder: (context) => const DataBase(), 36 | ), 37 | ); 38 | }, 39 | ), 40 | const SizedBox( 41 | height: 8.0, 42 | ), 43 | TopicsCards( 44 | title: 'Data Communication and Networking', 45 | onPressed: () { 46 | Navigator.of(context).push( 47 | MaterialPageRoute( 48 | builder: (context) => NetWork(), 49 | ), 50 | ); 51 | }, 52 | ), 53 | const SizedBox( 54 | height: 8.0, 55 | ), 56 | TopicsCards( 57 | title: 'Web Technology II', 58 | onPressed: () { 59 | Navigator.of(context).push( 60 | MaterialPageRoute( 61 | builder: (context) => const WebDevelopment(), 62 | ), 63 | ); 64 | }, 65 | ), 66 | const SizedBox( 67 | height: 8.0, 68 | ), 69 | TopicsCards( 70 | title: 'Programming in C', 71 | onPressed: () { 72 | Navigator.of(context).push( 73 | MaterialPageRoute( 74 | builder: (context) => const ProgrammingC(), 75 | ), 76 | ); 77 | }, 78 | ), 79 | const SizedBox( 80 | height: 8.0, 81 | ), 82 | TopicsCards( 83 | title: 'Objected Oriented Programming', 84 | onPressed: () { 85 | Navigator.of(context).push( 86 | MaterialPageRoute( 87 | builder: (context) => OoP(), 88 | ), 89 | ); 90 | }, 91 | ), 92 | const SizedBox( 93 | height: 8.0, 94 | ), 95 | TopicsCards( 96 | title: 'Software Process Model', 97 | onPressed: () { 98 | Navigator.of(context).push( 99 | MaterialPageRoute( 100 | builder: (context) => SpM(), 101 | ), 102 | ); 103 | }, 104 | ), 105 | const SizedBox( 106 | height: 8.0, 107 | ), 108 | TopicsCards( 109 | title: 'Recent Trend in Technology', 110 | onPressed: () { 111 | Navigator.of(context).push( 112 | MaterialPageRoute( 113 | builder: (context) => TechnologyChaper(), 114 | ), 115 | ); 116 | }, 117 | ), 118 | const SizedBox( 119 | height: 8.0, 120 | ), 121 | ], 122 | ), 123 | ); 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /lib/providers/privacy_policy_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:computer_12/constant/const.dart'; 2 | import 'package:flutter/gestures.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:url_launcher/url_launcher_string.dart'; 5 | 6 | class PrivacyPolicyProvider with ChangeNotifier { 7 | // Updated showPrivacyDialog method 8 | 9 | Future showPrivacyDialog(BuildContext context) async { 10 | await showDialog( 11 | context: context, 12 | builder: (BuildContext context) { 13 | return AlertDialog( 14 | title: const Text( 15 | "Privacy Policies", 16 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), 17 | ), 18 | content: SingleChildScrollView( 19 | child: Column( 20 | children: [ 21 | RichText( 22 | textAlign: TextAlign.justify, 23 | text: TextSpan( 24 | style: const TextStyle( 25 | color: Colors.black), // default text style 26 | children: [ 27 | const TextSpan( 28 | text: 29 | 'Our Computer Science 12 app does not collect, store, or share any personal information. It provides notes from public websites and does not need any permissions or access to your device. Some content comes from other websites, and they may have their own privacy policies. If we update this policy, changes will be posted here.\nFor any questions, contact us at ', 30 | style: TextStyle( 31 | fontSize: 12, 32 | ), 33 | ), 34 | TextSpan( 35 | style: const TextStyle( 36 | fontSize: 12, 37 | color: Colors.blue, 38 | decoration: TextDecoration.underline, 39 | ), 40 | text: "Mail Us.", 41 | recognizer: TapGestureRecognizer() 42 | ..onTap = () async { 43 | launchUrlString(mail); 44 | }, 45 | ), 46 | ], 47 | ), 48 | ), 49 | RichText( 50 | textAlign: TextAlign.justify, 51 | text: TextSpan( 52 | style: const TextStyle( 53 | color: Colors.black), // default text style 54 | children: [ 55 | const TextSpan( 56 | text: 57 | "\n\nIf you'd like to contribute to the app, you can do so through our ", 58 | style: TextStyle( 59 | fontSize: 12, 60 | ), 61 | ), 62 | TextSpan( 63 | style: const TextStyle( 64 | fontSize: 12, 65 | color: Colors.blue, 66 | decoration: TextDecoration.underline, 67 | ), 68 | text: "GitHub repository.", 69 | recognizer: TapGestureRecognizer() 70 | ..onTap = () async { 71 | launchUrlString(gitHub); 72 | }, 73 | ), 74 | ], 75 | ), 76 | ), 77 | RichText( 78 | textAlign: TextAlign.justify, 79 | text: TextSpan( 80 | style: const TextStyle( 81 | color: Colors.black), // default text style 82 | children: [ 83 | const TextSpan( 84 | text: "\n\nFor more information about app visit ", 85 | style: TextStyle( 86 | fontSize: 12, 87 | ), 88 | ), 89 | TextSpan( 90 | style: const TextStyle( 91 | fontSize: 12, 92 | color: Colors.blue, 93 | decoration: TextDecoration.underline, 94 | ), 95 | text: "Websites.", 96 | recognizer: TapGestureRecognizer() 97 | ..onTap = () async { 98 | launchUrlString(website); 99 | }, 100 | ), 101 | ], 102 | ), 103 | ), 104 | ], 105 | ), 106 | ), 107 | actions: [ 108 | TextButton( 109 | onPressed: () { 110 | Navigator.of(context).pop(); 111 | }, 112 | child: const Text('Close'), 113 | ), 114 | ], 115 | ); 116 | }, 117 | ); 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /lib/views/drawer/drawer.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: avoid_print, deprecated_member_use 2 | import 'package:flutter/gestures.dart'; 3 | import 'package:flutter/material.dart'; 4 | import 'package:flutter/services.dart'; 5 | import 'dart:io'; 6 | import 'package:share/share.dart'; 7 | import 'package:rating_dialog/rating_dialog.dart'; 8 | import 'package:url_launcher/url_launcher.dart'; 9 | 10 | //slide nav bar drawer 11 | class NavDrawer extends StatefulWidget { 12 | const NavDrawer({super.key}); 13 | 14 | @override 15 | State createState() => _NavDrawerState(); 16 | } 17 | 18 | class _NavDrawerState extends State { 19 | var defaultText = const TextStyle( 20 | color: Colors.black, 21 | fontSize: 14.0, 22 | fontFamily: "Poppins", 23 | ); 24 | var linkText = TextStyle( 25 | color: Colors.blue[900], 26 | fontSize: 14.0, 27 | fontFamily: "Poppins", 28 | ); 29 | 30 | ///raating dilogue box. libary 31 | void show() { 32 | showDialog( 33 | barrierDismissible: false, 34 | context: context, 35 | builder: (context) { 36 | return Padding( 37 | padding: const EdgeInsets.symmetric(horizontal: 0.2), 38 | child: rateDilogPopUp(), 39 | ); 40 | }, 41 | ); 42 | } 43 | 44 | RatingDialog rateDilogPopUp() { 45 | return RatingDialog( 46 | initialRating: 1.0, 47 | title: const Text( 48 | 'Feedback', 49 | textHeightBehavior: TextHeightBehavior(applyHeightToFirstAscent: true), 50 | softWrap: true, 51 | textAlign: TextAlign.center, 52 | style: TextStyle( 53 | fontSize: 25, 54 | fontWeight: FontWeight.bold, 55 | ), 56 | ), 57 | message: const Text( 58 | 'Tap a star to set your rating. Add more description here if you want.', 59 | textAlign: TextAlign.center, 60 | style: TextStyle(fontSize: 14), 61 | ), 62 | image: Image.asset( 63 | "images/icon_logo_app.png", 64 | height: 100.0, 65 | width: 100, 66 | ), 67 | starSize: 25, 68 | submitButtonText: 'Submit', 69 | commentHint: 'Tell Us Your Comments', 70 | onCancelled: () => print('cancelled'), 71 | onSubmitted: (response) { 72 | print('rating:${response.rating},comment:${response.comment}'); 73 | }, 74 | ); 75 | } 76 | 77 | /// main drawer 78 | @override 79 | Widget build(BuildContext context) { 80 | return Drawer( 81 | elevation: 5.0, 82 | child: ListView( 83 | padding: EdgeInsets.zero, 84 | children: [ 85 | UserAccountsDrawerHeader( 86 | accountName: const Text( 87 | 'Computer Science', 88 | textAlign: TextAlign.center, 89 | style: TextStyle( 90 | fontSize: 15, 91 | fontWeight: FontWeight.bold, 92 | ), 93 | ), 94 | accountEmail: const Text( 95 | 'Grade 12 New Curriculam Course Notes', 96 | style: TextStyle( 97 | fontSize: 15, 98 | fontWeight: FontWeight.bold, 99 | ), 100 | selectionColor: Colors.black, 101 | ), 102 | currentAccountPicture: CircleAvatar( 103 | child: ClipOval( 104 | child: Image.asset( 105 | 'images/icon_logo_app.png', 106 | width: 95, 107 | height: 95, 108 | ), 109 | ), 110 | ), 111 | decoration: const BoxDecoration( 112 | color: Colors.lightBlue, 113 | image: DecorationImage( 114 | image: NetworkImage( 115 | 'https://images.unsplash.com/photo-1635350181304-be3f00f5af76?ixlib=rb-4.0.3&ixid=MnwxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8&auto=format&fit=crop&w=1974&q=80', 116 | ), 117 | fit: BoxFit.cover, 118 | ), 119 | ), 120 | ), 121 | 122 | // icons.... 123 | Padding( 124 | padding: const EdgeInsets.symmetric(horizontal: 10), 125 | child: ListTile( 126 | leading: const Icon(Icons.home, color: Colors.black87), 127 | title: const Text( 128 | 'Home', 129 | style: TextStyle( 130 | fontSize: 15, 131 | fontWeight: FontWeight.bold, 132 | ), 133 | ), 134 | onTap: () { 135 | Navigator.of(context).pop(); 136 | 137 | print('home'); 138 | }, 139 | ), 140 | ), 141 | Padding( 142 | padding: const EdgeInsets.symmetric(horizontal: 10), 143 | child: ListTile( 144 | leading: const Icon(Icons.share_rounded, color: Colors.black87), 145 | title: const Text( 146 | 'Share', 147 | style: TextStyle( 148 | fontSize: 15, 149 | fontWeight: FontWeight.bold, 150 | ), 151 | ), 152 | onTap: () { 153 | Share.share( 154 | 'https://play.google.com/store/apps/details?id=com.instructivetech.testapp'); 155 | print('share'); 156 | }, 157 | ), 158 | ), 159 | Padding( 160 | padding: const EdgeInsets.symmetric(horizontal: 10), 161 | child: ListTile( 162 | leading: const Icon(Icons.star_outlined, color: Colors.black87), 163 | title: const Text( 164 | 'Rating', 165 | style: TextStyle( 166 | fontSize: 15, 167 | fontWeight: FontWeight.bold, 168 | ), 169 | ), 170 | onTap: () { 171 | show(); 172 | print('Rate'); 173 | }, 174 | ), 175 | ), 176 | Padding( 177 | padding: const EdgeInsets.symmetric(horizontal: 10), 178 | child: ListTile( 179 | leading: 180 | const Icon(Icons.lock_outline_rounded, color: Colors.black87), 181 | title: const Text( 182 | 'Privacy Polices', 183 | style: TextStyle( 184 | fontSize: 15, 185 | fontWeight: FontWeight.bold, 186 | ), 187 | ), 188 | onTap: () { 189 | privacyDilogBox(context); 190 | }, 191 | ), 192 | ), 193 | 194 | Padding( 195 | padding: const EdgeInsets.symmetric(horizontal: 10), 196 | child: ListTile( 197 | leading: const Icon( 198 | Icons.exit_to_app_rounded, 199 | color: Colors.black87, 200 | ), 201 | title: const Text( 202 | 'Exit', 203 | style: TextStyle( 204 | fontSize: 15, 205 | fontWeight: FontWeight.bold, 206 | ), 207 | ), 208 | onTap: () { 209 | if (Platform.isAndroid) { 210 | SystemNavigator.pop(); 211 | print('exit'); 212 | } 213 | }, 214 | ), 215 | ), 216 | ], 217 | ), 218 | ); 219 | } 220 | 221 | Future privacyDilogBox(BuildContext context) { 222 | return showDialog( 223 | context: context, 224 | builder: (BuildContext context) { 225 | return AlertDialog( 226 | title: const Text( 227 | "Privacy Policies", 228 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), 229 | ), 230 | content: SingleChildScrollView( 231 | child: RichText( 232 | textAlign: TextAlign.justify, 233 | text: TextSpan( 234 | style: defaultText, 235 | children: [ 236 | const TextSpan( 237 | text: 238 | "We prioritize your privacy. Notebook does not collect any personal data. Any information gathered is strictly limited to enhancing app functionality, such as device information and usage statistics. We do not store or share personally identifiable information with third parties. Our commitment to your privacy means we refrain from requesting or storing unnecessary personal details. While Notebook may include links to external sites, we do not assume responsibility for their privacy practices. Your data is safeguarded using industry-standard security measures. For any questions or concerns regarding our privacy policies. ", 239 | style: TextStyle( 240 | fontSize: 12, 241 | ), 242 | ), 243 | TextSpan( 244 | style: linkText, 245 | text: "GITHUB", 246 | recognizer: TapGestureRecognizer() 247 | ..onTap = () async { 248 | var url = 249 | "https://github.com/Nishan-Pradhan06/Flutter_E-Note-App"; 250 | if (await canLaunch(url)) { 251 | await launch(url); 252 | } else { 253 | throw "cannot thorw url"; 254 | } 255 | }, 256 | ), 257 | ], 258 | ), 259 | ), 260 | ), 261 | actions: [ 262 | TextButton( 263 | onPressed: () { 264 | Navigator.of(context).pop(); 265 | }, 266 | child: const Text('Close'), 267 | ), 268 | ], 269 | ); 270 | }, 271 | ); 272 | } 273 | } 274 | -------------------------------------------------------------------------------- /lib/views/pages/unit4.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: must_be_immutable 2 | 3 | import 'package:computer_12/views/components/footer.dart'; 4 | import 'package:computer_12/widgets/widgets.dart'; 5 | import 'package:flutter/cupertino.dart'; 6 | import 'package:flutter/material.dart'; 7 | import '../components/app_bar.dart'; 8 | import '../components/headings.dart'; 9 | 10 | class ProgrammingC extends StatelessWidget { 11 | const ProgrammingC({super.key}); 12 | 13 | @override 14 | Widget build(BuildContext context) { 15 | return Scaffold( 16 | appBar: const CustomAppBar( 17 | titleText: 'Unit 4', 18 | ), 19 | body: PageView( 20 | children: [ 21 | GestureDetector( 22 | child: CupertinoScrollbar( 23 | thickness: 10.0, 24 | thumbVisibility: true, 25 | thicknessWhileDragging: 10.0, 26 | child: InteractiveViewer( 27 | child: Padding( 28 | padding: const EdgeInsets.symmetric(horizontal: 7.0), 29 | child: SingleChildScrollView( 30 | child: Column( 31 | crossAxisAlignment: CrossAxisAlignment.stretch, 32 | children: [ 33 | const TopicsHeadings( 34 | unit: 'Programming in C', 35 | ), 36 | const SizedBox( 37 | height: 8.0, 38 | ), 39 | ChapterTopics(heading: 'Functions:'), 40 | HeadingDetails( 41 | contents: 42 | 'Functions are the self-contained program that contains several block of statement which performs the defined task. In C language, we can create one or more functions according to the requirements.\n\nUsually, In C programs flows from top left to right bottom of main() functions. We can create any number of functions below that main() functions. These function are called from main() function. Requirement while creating a functions.\n\na) Declare a function\n\nb) Call statement\n\nc) Definition of function.\n\nAfter the function is called from the main(), the flow of control will return to the main() function.\nProgram example of function.', 43 | ), 44 | const ImageWidget(imagePath: 'images/unit_4/p1.png'), 45 | const ImageWidget(imagePath: 'images/unit_4/p2.png'), 46 | const ChapterHeadingMedium( 47 | medium_heading: 'Advantages'), 48 | HeadingDetails( 49 | contents: 50 | '1. Big programs can be divided into smaller module using functions.\n2. Program development will be faster.\n3. Program debugging will be easier and faster.\n4. Use of functions reduce program complexity.\n5. Program length can be reduced through code reusability.\n6. Use of functions enhance program readability.\n7. Several developer can work on a single project.\n8. Functions are used to create own header file i.e mero.h\n9. Functions can be independently tested.', 51 | ), 52 | const SizedBox( 53 | height: 6.0, 54 | ), 55 | const ChapterHeadingMedium( 56 | medium_heading: 'Recursive functions: (V.Imp)'), 57 | HeadingDetails( 58 | contents: 59 | 'Those function which calls itself is known as recursive function and the concept of using recursive functions to repeat the execution of statements as per the requirement is known as recursion. The criteria for recursive functions are:\n1. The function should call itself.\n2. There should be terminating condition so that function calling will not be for infinite number of time. \n\nProgram example of recursive function', 60 | ), 61 | const ImageWidget(imagePath: 'images/unit_4/p3.png'), 62 | const ImageWidget(imagePath: 'images/unit_4/p4.png'), 63 | const SizedBox( 64 | height: 6.0, 65 | ), 66 | const ChapterHeadingMedium( 67 | medium_heading: 'Pointer (v-imp)'), 68 | HeadingDetails( 69 | contents: 70 | 'Pointers in C are similar to as other variables that we use to hold the data in our program but, instead of containing actual data, they contain a pointer to the address (memory location) where the data or information can be found.\n\nThese is an important and advance concept of C language since, variables names are not sufficient to provide the requirement of user while developing a complex program. However, use of pointers help to access memory address of that entities globally to any number of functions that we use in our program.\n\nImportance of Pointer.\n\n While using several numbers of functions in C program, every functions should be called and value should be passed locally. However, using pointer variable, which can access the address or memory location and points whatever the address (memory location) contains.\n\nPointer declaration\nData_type *variable_name\nEg, int *age;', 71 | ), 72 | const ChapterHeadingMedium( 73 | medium_heading: 'Advantages'), 74 | HeadingDetails( 75 | contents: 76 | '1. It helps us to access a variable that is not defined within a function.\n2. It helps to reduce program length and complexity i.e. faster program execution time.\n3. It is more convenient to handle datas.\n4. It helps to return one or more than one value from the functions.\nProgram example:', 77 | ), 78 | const ImageWidget(imagePath: 'images/unit_4/p5.png'), 79 | ChapterTopics(heading: 'File Handling in C'), 80 | HeadingDetails( 81 | contents: 82 | 'As we know, while program is in execution the content of variables are temporarily stored in main memory i.e. RAM. Data reside temporarily in RAM only at the time of program execution. After the completion of execution data gets erased away which means the data cannot be used for future references. To overcome this problem, file handling comes into existence through which we can store data permanently in our secondary storage and retrieve it whenever in future. Data are stored as datafile in our disk.'), 83 | Column( 84 | children: [ 85 | Image.asset( 86 | "images/unit_4/file-handling.png", 87 | ), 88 | const Text('Fig:- File handling in C') 89 | ], 90 | ), 91 | const ChapterHeadingMedium( 92 | medium_heading: 'Opening a data file'), 93 | HeadingDetails( 94 | contents: 95 | 'Syntax:\n\n\t\t\tFILE *fptr\n\t\t\tfptr = fopen (“filename” , ”mode”)\n\nWhere, File name can be “library.txt”, “student.dat” ..etc\nMode:\n“w” to write/store data in a data file.\n“r” to display/read/retrieve/access data from a datafile.\n“a” to add/append data in existing datafile.', 96 | ), 97 | const ChapterHeadingMedium( 98 | medium_heading: 'Store/write data'), 99 | HeadingDetails( 100 | contents: 101 | 'Syntax:\n\n\t\t\tfprintf(fptr,”format specifiers” ,variables);\n\n\t\t\tEg; suppose if we want to store name, \n\t\t\tdisease, age and bed number of a \n\t\t\tpatient then, it is written as \n\n\t\t\tfprintf(fptr , ”%s %s %d %d”, n, d, a, b);\n\n\t\t\tWhere, variable are initialized as:\n\t\t\tchar n[10], d[10];\n\t\t\tint a, b;', 102 | ), 103 | const SizedBox( 104 | height: 6.0, 105 | ), 106 | HeadingDetails( 107 | contents: 108 | '1) Create a datafile “patient.txt” and store name, disease, age and bed number of a patient.', 109 | ), 110 | const ImageWidget(imagePath: 'images/unit_4/p6.png'), 111 | const ChapterHeadingMedium( 112 | medium_heading: 113 | 'Read/Display/retrieve/access data from a datafile'), 114 | HeadingDetails( 115 | contents: 116 | 'Syntax:\n\n\t\t\tfscanf(fptr , ”format specifiers” ,variables);\n\n\t\t\tEg; suppose if we want to display/ \n\t\t\tread name,disease, age and bed \n\t\t\tnumber of a patient then, it is written as \n\n\t\t\tfscanf(fptr , ”%s %s %d %d”, n, d, &a, &b);\n\n\t\t\tWhere, variable are initialized as:\n\t\t\tchar n[10], d[10];\n\t\t\tint a, b;', 117 | ), 118 | const SizedBox( 119 | height: 6.0, 120 | ), 121 | const Footer(), 122 | ], 123 | ), 124 | ), 125 | ), 126 | ), 127 | ), 128 | ) 129 | ], 130 | ), 131 | // bottomNavigationBar: const BannerAdHelper(), 132 | ); 133 | } 134 | } 135 | 136 | class ImageWidget extends StatelessWidget { 137 | final String imagePath; 138 | const ImageWidget({ 139 | required this.imagePath, 140 | super.key, 141 | }); 142 | 143 | @override 144 | Widget build(BuildContext context) { 145 | return Column( 146 | children: [ 147 | Image.asset( 148 | imagePath, 149 | ), 150 | const SizedBox( 151 | height: 3.0, 152 | ), 153 | ], 154 | ); 155 | } 156 | } 157 | -------------------------------------------------------------------------------- /images/loading.json: -------------------------------------------------------------------------------- 1 | {"v":"4.10.1","fr":24,"ip":0,"op":72,"w":400,"h":400,"nm":"Comp 1","ddd":0,"assets":[{"id":"comp_0","layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Capa de formas 12","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[81.5,370.25,0],"e":[445.5,199.25,0],"to":[60.6666679382324,-28.5,0],"ti":[-60.6666679382324,28.5,0]},{"t":48}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[43,43,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[28,0],[34.935,-19.483],[31.619,18.821],[33,-14],[57,29],[0,0],[0,0],[0,0]],"o":[[-28,0],[-52,29],[-42,-25],[-28.892,12.257],[-57,-29],[0,0],[0,0],[0,0]],"v":[[367.75,-97],[277,-75],[155,-82],[35,-82],[-94,-82.326],[-200,-74],[-352.07,320.209],[499.162,354.093]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2980392156862745,0.7333333333333333,0.6313725490196078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":144,"st":0,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"Capa de formas 2","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":24,"s":[-133,374,0],"e":[231,203,0],"to":[60.6666679382324,-28.5,0],"ti":[-60.6666679382324,28.5,0]},{"t":48}],"ix":2},"a":{"a":0,"k":[0,0,0],"ix":1},"s":{"a":0,"k":[43,43,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[28,0],[34.935,-19.483],[31.619,18.821],[33,-14],[57,29],[0,0],[0,0],[0,0]],"o":[[-28,0],[-52,29],[-42,-25],[-28.892,12.257],[-57,-29],[0,0],[0,0],[0,0]],"v":[[367.75,-97],[277,-75],[155,-82],[35,-82],[-94,-82.326],[-200,-74],[-352.07,320.209],[499.162,354.093]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.3137254901960784,0.8901960784313725,0.7607843137254902,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":144,"st":0,"bm":0}]}],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"Capa de formas 5","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":15,"s":[100],"e":[0]},{"t":16}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":0,"s":[199,-14.000000000000002,0],"e":[199,156,0],"to":[0,28.3333339691162,0],"ti":[0,-28.9375,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":12,"s":[199,156,0],"e":[199,164.066,0],"to":[0,4.54861259460449,0],"ti":[0,-2.45892143249512,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":13,"s":[199,164.066,0],"e":[199,166.125,0],"to":[0,13.1843204498291,0],"ti":[0,-1.72074222564697,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":14,"s":[199,166.125,0],"e":[199,168.375,0],"to":[0,2.04166674613953,0],"ti":[0,-0.04166666790843,0]},{"t":15}],"ix":2},"a":{"a":0,"k":[-1,-182.375,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":0,"s":[50,50,100],"e":[50,94,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":12,"s":[50,94,100],"e":[70,43.333,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":13,"s":[70,43.333,100],"e":[104.25800000000001,32,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":14,"s":[104.25800000000001,32,100],"e":[212,18,100]},{"t":15}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"ind":0,"ty":"sh","ix":1,"ks":{"a":0,"k":{"i":[[0.938,0],[0,-5.25],[-4.563,0.125],[0.108,4.624]],"o":[[-0.813,0.125],[0,4.813],[4.563,-0.125],[-0.125,-5.375]],"v":[[-1.344,-193.078],[-8.75,-180.5],[-1.063,-172.313],[6.938,-180.188]],"c":true},"ix":2},"nm":"Trazado 1","mn":"ADBE Vector Shape - Group","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2980392156862745,0.7333333333333333,0.6313725490196078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[0,0],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Forma 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":8,"ty":4,"nm":"Capa de formas 3","sr":1,"ks":{"o":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":46,"s":[0],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":47,"s":[100],"e":[100]},{"t":48}],"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":47,"s":[199.98,168.25,0],"e":[199.98,158.037,0],"to":[0,-0.20375619828701,0],"ti":[0,17.58864402771,0]},{"i":{"x":0.833,"y":0.833},"o":{"x":0.167,"y":0.167},"n":"0p833_0p833_0p167_0p167","t":48,"s":[199.98,158.037,0],"e":[199.98,-10,0],"to":[-2.8421709430404e-14,-50.4047393798828,0],"ti":[0,1.17485654354095,0]},{"t":53}],"ix":2},"a":{"a":0,"k":[-32,-31,0],"ix":1},"s":{"a":1,"k":[{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":47,"s":[-4,1,100],"e":[1.5,4,100]},{"i":{"x":[0.833,0.833,0.833],"y":[0.833,0.833,0.833]},"o":{"x":[0.167,0.167,0.167],"y":[0.167,0.167,0.167]},"n":["0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167","0p833_0p833_0p167_0p167"],"t":48,"s":[1.5,4,100],"e":[2,3,100]},{"t":53}],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[308,308],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2980392156862745,0.7333333333333333,0.6313725490196078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-31,-31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":9,"ty":4,"nm":"Capa de formas 4","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[199,252.99999999999997,0],"ix":2},"a":{"a":0,"k":[-32,-31,0],"ix":1},"s":{"a":0,"k":[55.00000000000001,55.00000000000001,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[308,308],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"st","c":{"a":0,"k":[0.2980392156862745,0.7333333333333333,0.6313725490196078,1],"ix":3},"o":{"a":0,"k":100,"ix":4},"w":{"a":0,"k":10,"ix":5},"lc":1,"lj":1,"ml":4,"nm":"Trazo 1","mn":"ADBE Vector Graphic - Stroke","hd":false},{"ty":"tr","p":{"a":0,"k":[-31,-31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false},{"ty":"tm","s":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[50],"e":[100]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24,"s":[100],"e":[50]},{"t":48}],"ix":1},"e":{"a":1,"k":[{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":12,"s":[50],"e":[0]},{"i":{"x":[0.833],"y":[0.833]},"o":{"x":[0.167],"y":[0.167]},"n":["0p833_0p833_0p167_0p167"],"t":24,"s":[0],"e":[50]},{"t":48}],"ix":2},"o":{"a":0,"k":180,"ix":3},"m":1,"ix":2,"nm":"Recortar trazados 1","mn":"ADBE Vector Filter - Trim","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":10,"ty":4,"nm":"Capa de formas 1","td":1,"sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[199,252.99999999999997,0],"ix":2},"a":{"a":0,"k":[-32,-31,0],"ix":1},"s":{"a":0,"k":[50,50,100],"ix":6}},"ao":0,"shapes":[{"ty":"gr","it":[{"d":1,"ty":"el","s":{"a":0,"k":[308,308],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"nm":"Trazado elíptico 1","mn":"ADBE Vector Shape - Ellipse","hd":false},{"ty":"fl","c":{"a":0,"k":[0.2980392156862745,0.7333333333333333,0.6313725490196078,1],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"nm":"Relleno 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-31,-31],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transformar"}],"nm":"Elipse 1","np":3,"cix":2,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":60,"st":0,"bm":0},{"ddd":0,"ind":11,"ty":0,"nm":"Precomp. 1","tt":1,"refId":"comp_0","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":0,"k":[200,200,0],"ix":2},"a":{"a":0,"k":[200,200,0],"ix":1},"s":{"a":0,"k":[100,100,100],"ix":6}},"ao":0,"w":400,"h":400,"ip":0,"op":144,"st":0,"bm":0}]} -------------------------------------------------------------------------------- /pubspec.lock: -------------------------------------------------------------------------------- 1 | # Generated by pub 2 | # See https://dart.dev/tools/pub/glossary#lockfile 3 | packages: 4 | animated_splash_screen: 5 | dependency: "direct main" 6 | description: 7 | name: animated_splash_screen 8 | sha256: f45634db6ec4e8cf034c53e03f3bd83898a16fe3c9286bf5510b6831dfcf2124 9 | url: "https://pub.dev" 10 | source: hosted 11 | version: "1.3.0" 12 | archive: 13 | dependency: transitive 14 | description: 15 | name: archive 16 | sha256: cb6a278ef2dbb298455e1a713bda08524a175630ec643a242c399c932a0a1f7d 17 | url: "https://pub.dev" 18 | source: hosted 19 | version: "3.6.1" 20 | async: 21 | dependency: transitive 22 | description: 23 | name: async 24 | sha256: "947bfcf187f74dbc5e146c9eb9c0f10c9f8b30743e341481c1e2ed3ecc18c20c" 25 | url: "https://pub.dev" 26 | source: hosted 27 | version: "2.11.0" 28 | boolean_selector: 29 | dependency: transitive 30 | description: 31 | name: boolean_selector 32 | sha256: "6cfb5af12253eaf2b368f07bacc5a80d1301a071c73360d746b7f2e32d762c66" 33 | url: "https://pub.dev" 34 | source: hosted 35 | version: "2.1.1" 36 | bulleted_list: 37 | dependency: "direct main" 38 | description: 39 | name: bulleted_list 40 | sha256: "35ddc56b7fd9977ae3932264f5b722e702748a044aa16f0a7109bf7e4886fedb" 41 | url: "https://pub.dev" 42 | source: hosted 43 | version: "0.0.1+0.1a" 44 | characters: 45 | dependency: transitive 46 | description: 47 | name: characters 48 | sha256: "04a925763edad70e8443c99234dc3328f442e811f1d8fd1a72f1c8ad0f69a605" 49 | url: "https://pub.dev" 50 | source: hosted 51 | version: "1.3.0" 52 | clock: 53 | dependency: transitive 54 | description: 55 | name: clock 56 | sha256: cb6d7f03e1de671e34607e909a7213e31d7752be4fb66a86d29fe1eb14bfb5cf 57 | url: "https://pub.dev" 58 | source: hosted 59 | version: "1.1.1" 60 | collection: 61 | dependency: transitive 62 | description: 63 | name: collection 64 | sha256: ee67cb0715911d28db6bf4af1026078bd6f0128b07a5f66fb2ed94ec6783c09a 65 | url: "https://pub.dev" 66 | source: hosted 67 | version: "1.18.0" 68 | crypto: 69 | dependency: transitive 70 | description: 71 | name: crypto 72 | sha256: ec30d999af904f33454ba22ed9a86162b35e52b44ac4807d1d93c288041d7d27 73 | url: "https://pub.dev" 74 | source: hosted 75 | version: "3.0.5" 76 | fake_async: 77 | dependency: transitive 78 | description: 79 | name: fake_async 80 | sha256: "511392330127add0b769b75a987850d136345d9227c6b94c96a04cf4a391bf78" 81 | url: "https://pub.dev" 82 | source: hosted 83 | version: "1.3.1" 84 | flutter: 85 | dependency: "direct main" 86 | description: flutter 87 | source: sdk 88 | version: "0.0.0" 89 | flutter_lints: 90 | dependency: "direct dev" 91 | description: 92 | name: flutter_lints 93 | sha256: "9e8c3858111da373efc5aa341de011d9bd23e2c5c5e0c62bccf32438e192d7b1" 94 | url: "https://pub.dev" 95 | source: hosted 96 | version: "3.0.2" 97 | flutter_rating_bar: 98 | dependency: transitive 99 | description: 100 | name: flutter_rating_bar 101 | sha256: d2af03469eac832c591a1eba47c91ecc871fe5708e69967073c043b2d775ed93 102 | url: "https://pub.dev" 103 | source: hosted 104 | version: "4.0.1" 105 | flutter_test: 106 | dependency: "direct dev" 107 | description: flutter 108 | source: sdk 109 | version: "0.0.0" 110 | flutter_web_plugins: 111 | dependency: transitive 112 | description: flutter 113 | source: sdk 114 | version: "0.0.0" 115 | http: 116 | dependency: transitive 117 | description: 118 | name: http 119 | sha256: b9c29a161230ee03d3ccf545097fccd9b87a5264228c5d348202e0f0c28f9010 120 | url: "https://pub.dev" 121 | source: hosted 122 | version: "1.2.2" 123 | http_parser: 124 | dependency: transitive 125 | description: 126 | name: http_parser 127 | sha256: "2aa08ce0341cc9b354a498388e30986515406668dbcc4f7c950c3e715496693b" 128 | url: "https://pub.dev" 129 | source: hosted 130 | version: "4.0.2" 131 | leak_tracker: 132 | dependency: transitive 133 | description: 134 | name: leak_tracker 135 | sha256: "3f87a60e8c63aecc975dda1ceedbc8f24de75f09e4856ea27daf8958f2f0ce05" 136 | url: "https://pub.dev" 137 | source: hosted 138 | version: "10.0.5" 139 | leak_tracker_flutter_testing: 140 | dependency: transitive 141 | description: 142 | name: leak_tracker_flutter_testing 143 | sha256: "932549fb305594d82d7183ecd9fa93463e9914e1b67cacc34bc40906594a1806" 144 | url: "https://pub.dev" 145 | source: hosted 146 | version: "3.0.5" 147 | leak_tracker_testing: 148 | dependency: transitive 149 | description: 150 | name: leak_tracker_testing 151 | sha256: "6ba465d5d76e67ddf503e1161d1f4a6bc42306f9d66ca1e8f079a47290fb06d3" 152 | url: "https://pub.dev" 153 | source: hosted 154 | version: "3.0.1" 155 | lints: 156 | dependency: transitive 157 | description: 158 | name: lints 159 | sha256: cbf8d4b858bb0134ef3ef87841abdf8d63bfc255c266b7bf6b39daa1085c4290 160 | url: "https://pub.dev" 161 | source: hosted 162 | version: "3.0.0" 163 | lottie: 164 | dependency: "direct main" 165 | description: 166 | name: lottie 167 | sha256: "6a24ade5d3d918c306bb1c21a6b9a04aab0489d51a2582522eea820b4093b62b" 168 | url: "https://pub.dev" 169 | source: hosted 170 | version: "3.1.2" 171 | matcher: 172 | dependency: transitive 173 | description: 174 | name: matcher 175 | sha256: d2323aa2060500f906aa31a895b4030b6da3ebdcc5619d14ce1aada65cd161cb 176 | url: "https://pub.dev" 177 | source: hosted 178 | version: "0.12.16+1" 179 | material_color_utilities: 180 | dependency: transitive 181 | description: 182 | name: material_color_utilities 183 | sha256: f7142bb1154231d7ea5f96bc7bde4bda2a0945d2806bb11670e30b850d56bdec 184 | url: "https://pub.dev" 185 | source: hosted 186 | version: "0.11.1" 187 | meta: 188 | dependency: transitive 189 | description: 190 | name: meta 191 | sha256: bdb68674043280c3428e9ec998512fb681678676b3c54e773629ffe74419f8c7 192 | url: "https://pub.dev" 193 | source: hosted 194 | version: "1.15.0" 195 | mime: 196 | dependency: transitive 197 | description: 198 | name: mime 199 | sha256: "801fd0b26f14a4a58ccb09d5892c3fbdeff209594300a542492cf13fba9d247a" 200 | url: "https://pub.dev" 201 | source: hosted 202 | version: "1.0.6" 203 | nested: 204 | dependency: transitive 205 | description: 206 | name: nested 207 | sha256: "03bac4c528c64c95c722ec99280375a6f2fc708eec17c7b3f07253b626cd2a20" 208 | url: "https://pub.dev" 209 | source: hosted 210 | version: "1.0.0" 211 | page_transition: 212 | dependency: transitive 213 | description: 214 | name: page_transition 215 | sha256: dee976b1f23de9bbef5cd512fe567e9f6278caee11f5eaca9a2115c19dc49ef6 216 | url: "https://pub.dev" 217 | source: hosted 218 | version: "2.1.0" 219 | path: 220 | dependency: transitive 221 | description: 222 | name: path 223 | sha256: "087ce49c3f0dc39180befefc60fdb4acd8f8620e5682fe2476afd0b3688bb4af" 224 | url: "https://pub.dev" 225 | source: hosted 226 | version: "1.9.0" 227 | plugin_platform_interface: 228 | dependency: transitive 229 | description: 230 | name: plugin_platform_interface 231 | sha256: "4820fbfdb9478b1ebae27888254d445073732dae3d6ea81f0b7e06d5dedc3f02" 232 | url: "https://pub.dev" 233 | source: hosted 234 | version: "2.1.8" 235 | provider: 236 | dependency: "direct main" 237 | description: 238 | name: provider 239 | sha256: c8a055ee5ce3fd98d6fc872478b03823ffdb448699c6ebdbbc71d59b596fd48c 240 | url: "https://pub.dev" 241 | source: hosted 242 | version: "6.1.2" 243 | rating_dialog: 244 | dependency: "direct main" 245 | description: 246 | name: rating_dialog 247 | sha256: "4856ba266c255081f05c57148345ea13f0d86c4049859d66e14c47e2ab1f90d3" 248 | url: "https://pub.dev" 249 | source: hosted 250 | version: "2.0.4" 251 | share: 252 | dependency: "direct main" 253 | description: 254 | name: share 255 | sha256: "97e6403f564ed1051a01534c2fc919cb6e40ea55e60a18ec23cee6e0ce19f4be" 256 | url: "https://pub.dev" 257 | source: hosted 258 | version: "2.0.4" 259 | sky_engine: 260 | dependency: transitive 261 | description: flutter 262 | source: sdk 263 | version: "0.0.99" 264 | source_span: 265 | dependency: transitive 266 | description: 267 | name: source_span 268 | sha256: "53e943d4206a5e30df338fd4c6e7a077e02254531b138a15aec3bd143c1a8b3c" 269 | url: "https://pub.dev" 270 | source: hosted 271 | version: "1.10.0" 272 | stack_trace: 273 | dependency: transitive 274 | description: 275 | name: stack_trace 276 | sha256: "73713990125a6d93122541237550ee3352a2d84baad52d375a4cad2eb9b7ce0b" 277 | url: "https://pub.dev" 278 | source: hosted 279 | version: "1.11.1" 280 | stream_channel: 281 | dependency: transitive 282 | description: 283 | name: stream_channel 284 | sha256: ba2aa5d8cc609d96bbb2899c28934f9e1af5cddbd60a827822ea467161eb54e7 285 | url: "https://pub.dev" 286 | source: hosted 287 | version: "2.1.2" 288 | string_scanner: 289 | dependency: transitive 290 | description: 291 | name: string_scanner 292 | sha256: "556692adab6cfa87322a115640c11f13cb77b3f076ddcc5d6ae3c20242bedcde" 293 | url: "https://pub.dev" 294 | source: hosted 295 | version: "1.2.0" 296 | term_glyph: 297 | dependency: transitive 298 | description: 299 | name: term_glyph 300 | sha256: a29248a84fbb7c79282b40b8c72a1209db169a2e0542bce341da992fe1bc7e84 301 | url: "https://pub.dev" 302 | source: hosted 303 | version: "1.2.1" 304 | test_api: 305 | dependency: transitive 306 | description: 307 | name: test_api 308 | sha256: "5b8a98dafc4d5c4c9c72d8b31ab2b23fc13422348d2997120294d3bac86b4ddb" 309 | url: "https://pub.dev" 310 | source: hosted 311 | version: "0.7.2" 312 | typed_data: 313 | dependency: transitive 314 | description: 315 | name: typed_data 316 | sha256: facc8d6582f16042dd49f2463ff1bd6e2c9ef9f3d5da3d9b087e244a7b564b3c 317 | url: "https://pub.dev" 318 | source: hosted 319 | version: "1.3.2" 320 | url_launcher: 321 | dependency: "direct main" 322 | description: 323 | name: url_launcher 324 | sha256: "21b704ce5fa560ea9f3b525b43601c678728ba46725bab9b01187b4831377ed3" 325 | url: "https://pub.dev" 326 | source: hosted 327 | version: "6.3.0" 328 | url_launcher_android: 329 | dependency: transitive 330 | description: 331 | name: url_launcher_android 332 | sha256: f0c73347dfcfa5b3db8bc06e1502668265d39c08f310c29bff4e28eea9699f79 333 | url: "https://pub.dev" 334 | source: hosted 335 | version: "6.3.9" 336 | url_launcher_ios: 337 | dependency: transitive 338 | description: 339 | name: url_launcher_ios 340 | sha256: e43b677296fadce447e987a2f519dcf5f6d1e527dc35d01ffab4fff5b8a7063e 341 | url: "https://pub.dev" 342 | source: hosted 343 | version: "6.3.1" 344 | url_launcher_linux: 345 | dependency: transitive 346 | description: 347 | name: url_launcher_linux 348 | sha256: e2b9622b4007f97f504cd64c0128309dfb978ae66adbe944125ed9e1750f06af 349 | url: "https://pub.dev" 350 | source: hosted 351 | version: "3.2.0" 352 | url_launcher_macos: 353 | dependency: transitive 354 | description: 355 | name: url_launcher_macos 356 | sha256: "9a1a42d5d2d95400c795b2914c36fdcb525870c752569438e4ebb09a2b5d90de" 357 | url: "https://pub.dev" 358 | source: hosted 359 | version: "3.2.0" 360 | url_launcher_platform_interface: 361 | dependency: transitive 362 | description: 363 | name: url_launcher_platform_interface 364 | sha256: "552f8a1e663569be95a8190206a38187b531910283c3e982193e4f2733f01029" 365 | url: "https://pub.dev" 366 | source: hosted 367 | version: "2.3.2" 368 | url_launcher_web: 369 | dependency: transitive 370 | description: 371 | name: url_launcher_web 372 | sha256: "772638d3b34c779ede05ba3d38af34657a05ac55b06279ea6edd409e323dca8e" 373 | url: "https://pub.dev" 374 | source: hosted 375 | version: "2.3.3" 376 | url_launcher_windows: 377 | dependency: transitive 378 | description: 379 | name: url_launcher_windows 380 | sha256: "49c10f879746271804767cb45551ec5592cdab00ee105c06dddde1a98f73b185" 381 | url: "https://pub.dev" 382 | source: hosted 383 | version: "3.1.2" 384 | vector_math: 385 | dependency: transitive 386 | description: 387 | name: vector_math 388 | sha256: "80b3257d1492ce4d091729e3a67a60407d227c27241d6927be0130c98e741803" 389 | url: "https://pub.dev" 390 | source: hosted 391 | version: "2.1.4" 392 | vm_service: 393 | dependency: transitive 394 | description: 395 | name: vm_service 396 | sha256: "5c5f338a667b4c644744b661f309fb8080bb94b18a7e91ef1dbd343bed00ed6d" 397 | url: "https://pub.dev" 398 | source: hosted 399 | version: "14.2.5" 400 | web: 401 | dependency: transitive 402 | description: 403 | name: web 404 | sha256: d43c1d6b787bf0afad444700ae7f4db8827f701bc61c255ac8d328c6f4d52062 405 | url: "https://pub.dev" 406 | source: hosted 407 | version: "1.0.0" 408 | sdks: 409 | dart: ">=3.4.1 <4.0.0" 410 | flutter: ">=3.22.0" 411 | -------------------------------------------------------------------------------- /lib/views/pages/unit5.dart: -------------------------------------------------------------------------------- 1 | import 'package:computer_12/strings/string_unit2.dart'; 2 | import 'package:computer_12/widgets/widgets.dart'; 3 | import 'package:flutter/cupertino.dart'; 4 | import 'package:flutter/material.dart'; 5 | import '../components/app_bar.dart'; 6 | import '../components/footer.dart'; 7 | 8 | class OoP extends StatelessWidget { 9 | OoP({super.key}); 10 | 11 | //defining the textstyle 12 | var headlineText = const TextStyle( 13 | fontSize: 21.0, 14 | decoration: TextDecoration.underline, 15 | fontWeight: FontWeight.bold, 16 | ); 17 | 18 | var pragraphStyleText = const TextStyle( 19 | color: Colors.black, 20 | fontSize: 17.0, 21 | ); 22 | 23 | var pointStyleText = const TextStyle( 24 | color: Colors.black, 25 | fontWeight: FontWeight.bold, 26 | fontSize: 17.0, 27 | ); 28 | 29 | @override 30 | Widget build(BuildContext context) { 31 | return Scaffold( 32 | appBar: const CustomAppBar( 33 | titleText: 'Unit 5', 34 | ), 35 | body: PageView( 36 | children: [ 37 | GestureDetector( 38 | child: CupertinoScrollbar( 39 | thickness: 10.0, 40 | thumbVisibility: true, 41 | thicknessWhileDragging: 10.0, 42 | child: InteractiveViewer( 43 | child: Padding( 44 | padding: const EdgeInsets.symmetric(horizontal: 7.0), 45 | child: SingleChildScrollView( 46 | child: Column( 47 | crossAxisAlignment: CrossAxisAlignment.stretch, 48 | children: [ 49 | const Padding( 50 | padding: EdgeInsets.all(2.0), 51 | child: Text( 52 | "Object Oriented Programming", 53 | textAlign: TextAlign.center, 54 | style: TextStyle( 55 | fontSize: 24.0, 56 | fontWeight: FontWeight.bold, 57 | ), 58 | ), 59 | ), 60 | Text( 61 | sources, 62 | textAlign: TextAlign.center, 63 | style: const TextStyle( 64 | fontSize: 14.0, 65 | fontStyle: FontStyle.italic, 66 | ), 67 | ), 68 | const SizedBox( 69 | height: 8.0, 70 | ), 71 | ChapterTopics( 72 | heading: 'Object Oriented Programming(OOP)'), 73 | const SizedBox( 74 | height: 6.0, 75 | ), 76 | const SelectableText( 77 | "Object orinted programming is a programming paradigm in which a program is viewed as a collection of discrete that are self contained collection of (data structures and functions) and that interact with other objects also. The fundamental idea behind OOP is to combine into a single unit both data and functions that operate on the data. Such a unit is called an object. So in OOP, every program is divided into set of objects and all programming activities revolve around the object. Each individual object has its own member function. An object can only access data of its own by the help of its own member function.", 78 | textAlign: TextAlign.justify, 79 | // ignore: deprecated_member_use 80 | toolbarOptions: ToolbarOptions( 81 | copy: true, cut: true, selectAll: true), 82 | style: TextStyle( 83 | fontFamily: "Ubuntu", 84 | fontSize: 17.0, 85 | ), 86 | ), 87 | const SizedBox( 88 | height: 20.0, 89 | ), 90 | ChapterTopics(heading: 'Characteristics of OOP'), 91 | const SizedBox( 92 | height: 6.0, 93 | ), 94 | const SelectableText( 95 | "1. Emphasis is on data rather than procedure.\n2. Programs are composed of number of objects.\n3. Functions which operate on data of an object are tied together.\n4. Objects can communicate with each another by the medium of member\nnctions.\n5. Data is hidden and cannot be accessed by external functions.\n6. New data and functions can be easily added whenever necessary.\n7. It follows bottom up approach in the process of programming.", 96 | textAlign: TextAlign.start, 97 | style: TextStyle( 98 | fontFamily: "Ubuntu", 99 | fontSize: 17.0, 100 | ), 101 | ), 102 | const SizedBox( 103 | height: 20.0, 104 | ), 105 | ChapterTopics(heading: 'Features/Element of OOP'), 106 | const SizedBox( 107 | height: 6.0, 108 | ), 109 | const Text( 110 | '1.Object: ', 111 | textAlign: TextAlign.left, 112 | style: TextStyle( 113 | decoration: TextDecoration.underline, 114 | fontSize: 17.0, 115 | fontWeight: FontWeight.bold, 116 | fontFamily: "Ubuntu", 117 | ), 118 | ), 119 | const SelectableText( 120 | "Object is any entity, things or organization that exits in real world. it consists of two fundamentals characteristics: Its attributes and behaviours such as color, weight, age, types etc. and behaviours such as barking wagging tail etc. ", 121 | textAlign: TextAlign.justify, 122 | style: TextStyle( 123 | fontFamily: "Ubuntu", 124 | fontSize: 17.0, 125 | ), 126 | ), 127 | const SizedBox( 128 | height: 6.0, 129 | ), 130 | const Text( 131 | '2.Class:', 132 | textAlign: TextAlign.left, 133 | style: TextStyle( 134 | decoration: TextDecoration.underline, 135 | fontSize: 17.0, 136 | fontWeight: FontWeight.bold, 137 | fontFamily: "Ubuntu", 138 | ), 139 | ), 140 | const SelectableText( 141 | "A class is the collection of similar objects which is defined as the template or prototype to define the common attributes and behaviour for all the objects of the class. There are areas of class: public, private and protected. so class is incroporates the concept of data hiding.", 142 | textAlign: TextAlign.justify, 143 | style: TextStyle( 144 | fontFamily: "Ubuntu", 145 | fontSize: 17.0, 146 | ), 147 | ), 148 | const SizedBox( 149 | height: 6.0, 150 | ), 151 | const Text( 152 | '3.Data encapsulation', 153 | textAlign: TextAlign.left, 154 | style: TextStyle( 155 | decoration: TextDecoration.underline, 156 | fontSize: 17.0, 157 | fontWeight: FontWeight.bold, 158 | fontFamily: "Ubuntu", 159 | ), 160 | ), 161 | const SelectableText( 162 | "Encapsulation is a way of organizing data and function into a structure (called class) by concealing(hiding) way the object is implemented.", 163 | textAlign: TextAlign.justify, 164 | style: TextStyle( 165 | fontFamily: "Ubuntu", 166 | fontSize: 17.0, 167 | ), 168 | ), 169 | const SizedBox( 170 | height: 6.0, 171 | ), 172 | const Text( 173 | '4.Data abstraction:', 174 | textAlign: TextAlign.left, 175 | style: TextStyle( 176 | decoration: TextDecoration.underline, 177 | fontSize: 17.0, 178 | fontWeight: FontWeight.bold, 179 | fontFamily: "Ubuntu", 180 | ), 181 | ), 182 | const SelectableText( 183 | "Data Abstraction refers to the conceptual boundaries of an object. so, abstraction is the act of representing essential features without including the background details.", 184 | textAlign: TextAlign.justify, 185 | style: TextStyle( 186 | fontFamily: "Ubuntu", 187 | fontSize: 17.0, 188 | ), 189 | ), 190 | const SizedBox( 191 | height: 6.0, 192 | ), 193 | const Text( 194 | '5.Inheritance: ', 195 | textAlign: TextAlign.left, 196 | style: TextStyle( 197 | decoration: TextDecoration.underline, 198 | fontSize: 17.0, 199 | fontWeight: FontWeight.bold, 200 | fontFamily: "Ubuntu", 201 | ), 202 | ), 203 | const SelectableText( 204 | "The process of creating a new class from on exiting class in which objects of a new class inherits the existing class is known as inheritance.", 205 | textAlign: TextAlign.justify, 206 | style: TextStyle( 207 | fontFamily: "Ubuntu", 208 | fontSize: 17.0, 209 | ), 210 | ), 211 | const SizedBox( 212 | height: 6.0, 213 | ), 214 | ChapterTopics(heading: 'Types of inheritance:'), 215 | const SizedBox( 216 | height: 6.0, 217 | ), 218 | const SelectableText( 219 | "There are following tyeps of inhertance:-", 220 | textAlign: TextAlign.justify, 221 | style: TextStyle( 222 | fontFamily: "Ubuntu", 223 | fontSize: 17.0, 224 | ), 225 | ), 226 | const SizedBox( 227 | height: 6.0, 228 | ), 229 | const Text( 230 | 'a. Single inheritance', 231 | textAlign: TextAlign.left, 232 | style: TextStyle( 233 | decoration: TextDecoration.underline, 234 | fontSize: 17.0, 235 | fontWeight: FontWeight.bold, 236 | fontFamily: "Ubuntu", 237 | ), 238 | ), 239 | const SizedBox( 240 | height: 6.0, 241 | ), 242 | const SelectableText( 243 | "The process of creating a class from an existing class is known as single inhertance. There is only one base and only one derived class in single inheritance.", 244 | textAlign: TextAlign.justify, 245 | style: TextStyle( 246 | fontFamily: "Ubuntu", 247 | fontSize: 17.0, 248 | ), 249 | ), 250 | const SizedBox( 251 | height: 6.0, 252 | ), 253 | const Text( 254 | 'b. Multiple inheritance', 255 | textAlign: TextAlign.left, 256 | style: TextStyle( 257 | decoration: TextDecoration.underline, 258 | fontSize: 17.0, 259 | fontWeight: FontWeight.bold, 260 | fontFamily: "Ubuntu", 261 | ), 262 | ), 263 | const SizedBox( 264 | height: 6.0, 265 | ), 266 | const SelectableText( 267 | "The proces of creating only one new from several existing classes is known as multiple inhertance.There is only one derived class and two or more base classes in multiple inheritance. ", 268 | textAlign: TextAlign.justify, 269 | style: TextStyle( 270 | fontFamily: "Ubuntu", 271 | fontSize: 17.0, 272 | ), 273 | ), 274 | const SizedBox( 275 | height: 6.0, 276 | ), 277 | Image.asset("images/unit_5/eg11.png", height: 120), 278 | const Text( 279 | 'c. Hierarchical inheritance', 280 | textAlign: TextAlign.left, 281 | style: TextStyle( 282 | decoration: TextDecoration.underline, 283 | fontSize: 17.0, 284 | fontWeight: FontWeight.bold, 285 | fontFamily: "Ubuntu", 286 | ), 287 | ), 288 | const SizedBox( 289 | height: 6.0, 290 | ), 291 | const SelectableText( 292 | "The process of creating several classes from only one class is called hierarchical inheritance. There are two or more derived classes and only one base class in hierarchical inheritance.", 293 | textAlign: TextAlign.justify, 294 | style: TextStyle( 295 | fontFamily: "Ubuntu", 296 | fontSize: 17.0, 297 | ), 298 | ), 299 | Image.asset("images/unit_5/eg22.png", height: 120), 300 | const SizedBox( 301 | height: 6.0, 302 | ), 303 | const Text( 304 | 'd. Multilevel inheritance', 305 | textAlign: TextAlign.left, 306 | style: TextStyle( 307 | decoration: TextDecoration.underline, 308 | fontSize: 17.0, 309 | fontWeight: FontWeight.bold, 310 | fontFamily: "Ubuntu", 311 | ), 312 | ), 313 | const SizedBox( 314 | height: 6.0, 315 | ), 316 | const SelectableText( 317 | "The process of creating a new class from another derived class is called multilevel inheritance.", 318 | textAlign: TextAlign.justify, 319 | style: TextStyle( 320 | fontFamily: "Ubuntu", 321 | fontSize: 17.0, 322 | ), 323 | ), 324 | const SizedBox( 325 | height: 6.0, 326 | ), 327 | Image.asset("images/unit_5/eg11.png", height: 120), 328 | const Text( 329 | 'e. Hybrid inheritance', 330 | textAlign: TextAlign.left, 331 | style: TextStyle( 332 | fontSize: 17.0, 333 | decoration: TextDecoration.underline, 334 | fontWeight: FontWeight.bold, 335 | fontFamily: "Ubuntu", 336 | ), 337 | ), 338 | const SizedBox( 339 | height: 6.0, 340 | ), 341 | const SelectableText( 342 | "It is the combinatin of two or more types of inheritance.", 343 | textAlign: TextAlign.justify, 344 | style: TextStyle( 345 | fontFamily: "Ubuntu", 346 | fontSize: 17.0, 347 | ), 348 | ), 349 | const SizedBox( 350 | height: 18.0, 351 | ), 352 | const Text( 353 | '6. Polymorphism:', 354 | textAlign: TextAlign.left, 355 | style: TextStyle( 356 | fontSize: 17.0, 357 | decoration: TextDecoration.underline, 358 | fontWeight: FontWeight.bold, 359 | fontFamily: "Ubuntu", 360 | ), 361 | ), 362 | const SizedBox( 363 | height: 6.0, 364 | ), 365 | const SelectableText( 366 | "Polymorphism refres the ability of an object to take on different forms depending upon situations. Polymorphism is an important feature of OOP which refers to the ability of an object to take on different forms depending uopn. an opreations may exhibit different behaviours in different instance. The behaviour depends upon the types of fata used in the opreation. It simplifies coding and reduces the rework involved in modifing and developing an application. It is extensively used in implementing inheritance.", 367 | textAlign: TextAlign.justify, 368 | style: TextStyle( 369 | fontFamily: "Ubuntu", 370 | fontSize: 17.0, 371 | ), 372 | ), 373 | const SizedBox( 374 | height: 20.0, 375 | ), 376 | ChapterTopics(heading: 'Advantages of OOP '), 377 | const SizedBox( 378 | height: 6.0, 379 | ), 380 | const SelectableText( 381 | "1. We can eliminate redudant codes by using inheritance feature of oop.\n2. It is very easy for managing complex and large sixe problem.\n3. The most important is the reusability of codes by using the features inheritance.\n4. It follows bottom up approach.\n5. It is efficient for testing and implementation of the system.\n6. It takes less times for the testing and implementaion and maintain the software. ", 382 | textAlign: TextAlign.start, 383 | style: TextStyle( 384 | fontFamily: "Ubuntu", 385 | fontSize: 17.0, 386 | ), 387 | ), 388 | const SizedBox( 389 | height: 20.0, 390 | ), 391 | ChapterTopics(heading: 'Disadvantages of OOP '), 392 | const SizedBox( 393 | height: 6.0, 394 | ), 395 | const SelectableText( 396 | "1. OOP demands more resource to get processed.\n2. It is beneficial only in long run while managing large software projects.\n3. Message passing between many objects is a complex process and difficult to trace and debug.\n4. OOP needs mastery in software engineering and also in programming methodology.", 397 | textAlign: TextAlign.start, 398 | style: TextStyle( 399 | fontFamily: "Ubuntu", 400 | fontSize: 17.0, 401 | ), 402 | ), 403 | const SizedBox( 404 | height: 20.0, 405 | ), 406 | ChapterTopics(heading: 'Applications of OOP '), 407 | const SizedBox( 408 | height: 6.0, 409 | ), 410 | const SelectableText( 411 | "1. Images processing and pattern Recognition.\n2. Computer Aided design and manufacturing.\n3. Object oriented database management systems.\n4. Internet and web based application.\n5. Mobile Computing.\n6. Data warehouse and data mining.\n7. Digital Electronics. ", 412 | textAlign: TextAlign.left, 413 | style: TextStyle( 414 | fontFamily: "Ubuntu", 415 | fontSize: 17.0, 416 | ), 417 | ), 418 | const SizedBox( 419 | height: 6.0, 420 | ), 421 | const Footer(), 422 | ], 423 | ), 424 | ), 425 | ), 426 | ), 427 | ), 428 | ), 429 | ], 430 | ), 431 | // bottomNavigationBar: const BannerAdHelper(), 432 | ); 433 | } 434 | } 435 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 54; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */ = {isa = PBXBuildFile; fileRef = 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */; }; 11 | 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 331C807B294A618700263BE5 /* RunnerTests.swift */; }; 12 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 13 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 74858FAE1ED2DC5600515810 /* AppDelegate.swift */; }; 14 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 15 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 16 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXContainerItemProxy section */ 20 | 331C8085294A63A400263BE5 /* PBXContainerItemProxy */ = { 21 | isa = PBXContainerItemProxy; 22 | containerPortal = 97C146E61CF9000F007C117D /* Project object */; 23 | proxyType = 1; 24 | remoteGlobalIDString = 97C146ED1CF9000F007C117D; 25 | remoteInfo = Runner; 26 | }; 27 | /* End PBXContainerItemProxy section */ 28 | 29 | /* Begin PBXCopyFilesBuildPhase section */ 30 | 9705A1C41CF9048500538489 /* Embed Frameworks */ = { 31 | isa = PBXCopyFilesBuildPhase; 32 | buildActionMask = 2147483647; 33 | dstPath = ""; 34 | dstSubfolderSpec = 10; 35 | files = ( 36 | ); 37 | name = "Embed Frameworks"; 38 | runOnlyForDeploymentPostprocessing = 0; 39 | }; 40 | /* End PBXCopyFilesBuildPhase section */ 41 | 42 | /* Begin PBXFileReference section */ 43 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 44 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 45 | 331C807B294A618700263BE5 /* RunnerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RunnerTests.swift; sourceTree = ""; }; 46 | 331C8081294A63A400263BE5 /* RunnerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = RunnerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 47 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = AppFrameworkInfo.plist; path = Flutter/AppFrameworkInfo.plist; sourceTree = ""; }; 48 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Runner-Bridging-Header.h"; sourceTree = ""; }; 49 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 50 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = Release.xcconfig; path = Flutter/Release.xcconfig; sourceTree = ""; }; 51 | 9740EEB21CF90195004384FC /* Debug.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Debug.xcconfig; path = Flutter/Debug.xcconfig; sourceTree = ""; }; 52 | 9740EEB31CF90195004384FC /* Generated.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = Generated.xcconfig; path = Flutter/Generated.xcconfig; sourceTree = ""; }; 53 | 97C146EE1CF9000F007C117D /* Runner.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Runner.app; sourceTree = BUILT_PRODUCTS_DIR; }; 54 | 97C146FB1CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 55 | 97C146FD1CF9000F007C117D /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 56 | 97C147001CF9000F007C117D /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 57 | 97C147021CF9000F007C117D /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 58 | /* End PBXFileReference section */ 59 | 60 | /* Begin PBXFrameworksBuildPhase section */ 61 | 97C146EB1CF9000F007C117D /* Frameworks */ = { 62 | isa = PBXFrameworksBuildPhase; 63 | buildActionMask = 2147483647; 64 | files = ( 65 | ); 66 | runOnlyForDeploymentPostprocessing = 0; 67 | }; 68 | /* End PBXFrameworksBuildPhase section */ 69 | 70 | /* Begin PBXGroup section */ 71 | 331C8082294A63A400263BE5 /* RunnerTests */ = { 72 | isa = PBXGroup; 73 | children = ( 74 | 331C807B294A618700263BE5 /* RunnerTests.swift */, 75 | ); 76 | path = RunnerTests; 77 | sourceTree = ""; 78 | }; 79 | 9740EEB11CF90186004384FC /* Flutter */ = { 80 | isa = PBXGroup; 81 | children = ( 82 | 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */, 83 | 9740EEB21CF90195004384FC /* Debug.xcconfig */, 84 | 7AFA3C8E1D35360C0083082E /* Release.xcconfig */, 85 | 9740EEB31CF90195004384FC /* Generated.xcconfig */, 86 | ); 87 | name = Flutter; 88 | sourceTree = ""; 89 | }; 90 | 97C146E51CF9000F007C117D = { 91 | isa = PBXGroup; 92 | children = ( 93 | 9740EEB11CF90186004384FC /* Flutter */, 94 | 97C146F01CF9000F007C117D /* Runner */, 95 | 97C146EF1CF9000F007C117D /* Products */, 96 | 331C8082294A63A400263BE5 /* RunnerTests */, 97 | ); 98 | sourceTree = ""; 99 | }; 100 | 97C146EF1CF9000F007C117D /* Products */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | 97C146EE1CF9000F007C117D /* Runner.app */, 104 | 331C8081294A63A400263BE5 /* RunnerTests.xctest */, 105 | ); 106 | name = Products; 107 | sourceTree = ""; 108 | }; 109 | 97C146F01CF9000F007C117D /* Runner */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 97C146FA1CF9000F007C117D /* Main.storyboard */, 113 | 97C146FD1CF9000F007C117D /* Assets.xcassets */, 114 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */, 115 | 97C147021CF9000F007C117D /* Info.plist */, 116 | 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */, 117 | 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */, 118 | 74858FAE1ED2DC5600515810 /* AppDelegate.swift */, 119 | 74858FAD1ED2DC5600515810 /* Runner-Bridging-Header.h */, 120 | ); 121 | path = Runner; 122 | sourceTree = ""; 123 | }; 124 | /* End PBXGroup section */ 125 | 126 | /* Begin PBXNativeTarget section */ 127 | 331C8080294A63A400263BE5 /* RunnerTests */ = { 128 | isa = PBXNativeTarget; 129 | buildConfigurationList = 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */; 130 | buildPhases = ( 131 | 331C807D294A63A400263BE5 /* Sources */, 132 | 331C807F294A63A400263BE5 /* Resources */, 133 | ); 134 | buildRules = ( 135 | ); 136 | dependencies = ( 137 | 331C8086294A63A400263BE5 /* PBXTargetDependency */, 138 | ); 139 | name = RunnerTests; 140 | productName = RunnerTests; 141 | productReference = 331C8081294A63A400263BE5 /* RunnerTests.xctest */; 142 | productType = "com.apple.product-type.bundle.unit-test"; 143 | }; 144 | 97C146ED1CF9000F007C117D /* Runner */ = { 145 | isa = PBXNativeTarget; 146 | buildConfigurationList = 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */; 147 | buildPhases = ( 148 | 9740EEB61CF901F6004384FC /* Run Script */, 149 | 97C146EA1CF9000F007C117D /* Sources */, 150 | 97C146EB1CF9000F007C117D /* Frameworks */, 151 | 97C146EC1CF9000F007C117D /* Resources */, 152 | 9705A1C41CF9048500538489 /* Embed Frameworks */, 153 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */, 154 | ); 155 | buildRules = ( 156 | ); 157 | dependencies = ( 158 | ); 159 | name = Runner; 160 | productName = Runner; 161 | productReference = 97C146EE1CF9000F007C117D /* Runner.app */; 162 | productType = "com.apple.product-type.application"; 163 | }; 164 | /* End PBXNativeTarget section */ 165 | 166 | /* Begin PBXProject section */ 167 | 97C146E61CF9000F007C117D /* Project object */ = { 168 | isa = PBXProject; 169 | attributes = { 170 | BuildIndependentTargetsInParallel = YES; 171 | LastUpgradeCheck = 1510; 172 | ORGANIZATIONNAME = ""; 173 | TargetAttributes = { 174 | 331C8080294A63A400263BE5 = { 175 | CreatedOnToolsVersion = 14.0; 176 | TestTargetID = 97C146ED1CF9000F007C117D; 177 | }; 178 | 97C146ED1CF9000F007C117D = { 179 | CreatedOnToolsVersion = 7.3.1; 180 | LastSwiftMigration = 1100; 181 | }; 182 | }; 183 | }; 184 | buildConfigurationList = 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */; 185 | compatibilityVersion = "Xcode 9.3"; 186 | developmentRegion = en; 187 | hasScannedForEncodings = 0; 188 | knownRegions = ( 189 | en, 190 | Base, 191 | ); 192 | mainGroup = 97C146E51CF9000F007C117D; 193 | productRefGroup = 97C146EF1CF9000F007C117D /* Products */; 194 | projectDirPath = ""; 195 | projectRoot = ""; 196 | targets = ( 197 | 97C146ED1CF9000F007C117D /* Runner */, 198 | 331C8080294A63A400263BE5 /* RunnerTests */, 199 | ); 200 | }; 201 | /* End PBXProject section */ 202 | 203 | /* Begin PBXResourcesBuildPhase section */ 204 | 331C807F294A63A400263BE5 /* Resources */ = { 205 | isa = PBXResourcesBuildPhase; 206 | buildActionMask = 2147483647; 207 | files = ( 208 | ); 209 | runOnlyForDeploymentPostprocessing = 0; 210 | }; 211 | 97C146EC1CF9000F007C117D /* Resources */ = { 212 | isa = PBXResourcesBuildPhase; 213 | buildActionMask = 2147483647; 214 | files = ( 215 | 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */, 216 | 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */, 217 | 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */, 218 | 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */, 219 | ); 220 | runOnlyForDeploymentPostprocessing = 0; 221 | }; 222 | /* End PBXResourcesBuildPhase section */ 223 | 224 | /* Begin PBXShellScriptBuildPhase section */ 225 | 3B06AD1E1E4923F5004D2608 /* Thin Binary */ = { 226 | isa = PBXShellScriptBuildPhase; 227 | alwaysOutOfDate = 1; 228 | buildActionMask = 2147483647; 229 | files = ( 230 | ); 231 | inputPaths = ( 232 | "${TARGET_BUILD_DIR}/${INFOPLIST_PATH}", 233 | ); 234 | name = "Thin Binary"; 235 | outputPaths = ( 236 | ); 237 | runOnlyForDeploymentPostprocessing = 0; 238 | shellPath = /bin/sh; 239 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" embed_and_thin"; 240 | }; 241 | 9740EEB61CF901F6004384FC /* Run Script */ = { 242 | isa = PBXShellScriptBuildPhase; 243 | alwaysOutOfDate = 1; 244 | buildActionMask = 2147483647; 245 | files = ( 246 | ); 247 | inputPaths = ( 248 | ); 249 | name = "Run Script"; 250 | outputPaths = ( 251 | ); 252 | runOnlyForDeploymentPostprocessing = 0; 253 | shellPath = /bin/sh; 254 | shellScript = "/bin/sh \"$FLUTTER_ROOT/packages/flutter_tools/bin/xcode_backend.sh\" build"; 255 | }; 256 | /* End PBXShellScriptBuildPhase section */ 257 | 258 | /* Begin PBXSourcesBuildPhase section */ 259 | 331C807D294A63A400263BE5 /* Sources */ = { 260 | isa = PBXSourcesBuildPhase; 261 | buildActionMask = 2147483647; 262 | files = ( 263 | 331C808B294A63AB00263BE5 /* RunnerTests.swift in Sources */, 264 | ); 265 | runOnlyForDeploymentPostprocessing = 0; 266 | }; 267 | 97C146EA1CF9000F007C117D /* Sources */ = { 268 | isa = PBXSourcesBuildPhase; 269 | buildActionMask = 2147483647; 270 | files = ( 271 | 74858FAF1ED2DC5600515810 /* AppDelegate.swift in Sources */, 272 | 1498D2341E8E89220040F4C2 /* GeneratedPluginRegistrant.m in Sources */, 273 | ); 274 | runOnlyForDeploymentPostprocessing = 0; 275 | }; 276 | /* End PBXSourcesBuildPhase section */ 277 | 278 | /* Begin PBXTargetDependency section */ 279 | 331C8086294A63A400263BE5 /* PBXTargetDependency */ = { 280 | isa = PBXTargetDependency; 281 | target = 97C146ED1CF9000F007C117D /* Runner */; 282 | targetProxy = 331C8085294A63A400263BE5 /* PBXContainerItemProxy */; 283 | }; 284 | /* End PBXTargetDependency section */ 285 | 286 | /* Begin PBXVariantGroup section */ 287 | 97C146FA1CF9000F007C117D /* Main.storyboard */ = { 288 | isa = PBXVariantGroup; 289 | children = ( 290 | 97C146FB1CF9000F007C117D /* Base */, 291 | ); 292 | name = Main.storyboard; 293 | sourceTree = ""; 294 | }; 295 | 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */ = { 296 | isa = PBXVariantGroup; 297 | children = ( 298 | 97C147001CF9000F007C117D /* Base */, 299 | ); 300 | name = LaunchScreen.storyboard; 301 | sourceTree = ""; 302 | }; 303 | /* End PBXVariantGroup section */ 304 | 305 | /* Begin XCBuildConfiguration section */ 306 | 249021D3217E4FDB00AE95B9 /* Profile */ = { 307 | isa = XCBuildConfiguration; 308 | buildSettings = { 309 | ALWAYS_SEARCH_USER_PATHS = NO; 310 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 311 | CLANG_ANALYZER_NONNULL = YES; 312 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 313 | CLANG_CXX_LIBRARY = "libc++"; 314 | CLANG_ENABLE_MODULES = YES; 315 | CLANG_ENABLE_OBJC_ARC = YES; 316 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 317 | CLANG_WARN_BOOL_CONVERSION = YES; 318 | CLANG_WARN_COMMA = YES; 319 | CLANG_WARN_CONSTANT_CONVERSION = YES; 320 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 321 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 322 | CLANG_WARN_EMPTY_BODY = YES; 323 | CLANG_WARN_ENUM_CONVERSION = YES; 324 | CLANG_WARN_INFINITE_RECURSION = YES; 325 | CLANG_WARN_INT_CONVERSION = YES; 326 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 327 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 328 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 329 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 330 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 331 | CLANG_WARN_STRICT_PROTOTYPES = YES; 332 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 333 | CLANG_WARN_UNREACHABLE_CODE = YES; 334 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 335 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 336 | COPY_PHASE_STRIP = NO; 337 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 338 | ENABLE_NS_ASSERTIONS = NO; 339 | ENABLE_STRICT_OBJC_MSGSEND = YES; 340 | ENABLE_USER_SCRIPT_SANDBOXING = NO; 341 | GCC_C_LANGUAGE_STANDARD = gnu99; 342 | GCC_NO_COMMON_BLOCKS = YES; 343 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 344 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 345 | GCC_WARN_UNDECLARED_SELECTOR = YES; 346 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 347 | GCC_WARN_UNUSED_FUNCTION = YES; 348 | GCC_WARN_UNUSED_VARIABLE = YES; 349 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 350 | MTL_ENABLE_DEBUG_INFO = NO; 351 | SDKROOT = iphoneos; 352 | SUPPORTED_PLATFORMS = iphoneos; 353 | TARGETED_DEVICE_FAMILY = "1,2"; 354 | VALIDATE_PRODUCT = YES; 355 | }; 356 | name = Profile; 357 | }; 358 | 249021D4217E4FDB00AE95B9 /* Profile */ = { 359 | isa = XCBuildConfiguration; 360 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 361 | buildSettings = { 362 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 363 | CLANG_ENABLE_MODULES = YES; 364 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 365 | ENABLE_BITCODE = NO; 366 | INFOPLIST_FILE = Runner/Info.plist; 367 | LD_RUNPATH_SEARCH_PATHS = ( 368 | "$(inherited)", 369 | "@executable_path/Frameworks", 370 | ); 371 | PRODUCT_BUNDLE_IDENTIFIER = com.example.computer12; 372 | PRODUCT_NAME = "$(TARGET_NAME)"; 373 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 374 | SWIFT_VERSION = 5.0; 375 | VERSIONING_SYSTEM = "apple-generic"; 376 | }; 377 | name = Profile; 378 | }; 379 | 331C8088294A63A400263BE5 /* Debug */ = { 380 | isa = XCBuildConfiguration; 381 | buildSettings = { 382 | BUNDLE_LOADER = "$(TEST_HOST)"; 383 | CODE_SIGN_STYLE = Automatic; 384 | CURRENT_PROJECT_VERSION = 1; 385 | GENERATE_INFOPLIST_FILE = YES; 386 | MARKETING_VERSION = 1.0; 387 | PRODUCT_BUNDLE_IDENTIFIER = com.example.computer12.RunnerTests; 388 | PRODUCT_NAME = "$(TARGET_NAME)"; 389 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 390 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 391 | SWIFT_VERSION = 5.0; 392 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; 393 | }; 394 | name = Debug; 395 | }; 396 | 331C8089294A63A400263BE5 /* Release */ = { 397 | isa = XCBuildConfiguration; 398 | buildSettings = { 399 | BUNDLE_LOADER = "$(TEST_HOST)"; 400 | CODE_SIGN_STYLE = Automatic; 401 | CURRENT_PROJECT_VERSION = 1; 402 | GENERATE_INFOPLIST_FILE = YES; 403 | MARKETING_VERSION = 1.0; 404 | PRODUCT_BUNDLE_IDENTIFIER = com.example.computer12.RunnerTests; 405 | PRODUCT_NAME = "$(TARGET_NAME)"; 406 | SWIFT_VERSION = 5.0; 407 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; 408 | }; 409 | name = Release; 410 | }; 411 | 331C808A294A63A400263BE5 /* Profile */ = { 412 | isa = XCBuildConfiguration; 413 | buildSettings = { 414 | BUNDLE_LOADER = "$(TEST_HOST)"; 415 | CODE_SIGN_STYLE = Automatic; 416 | CURRENT_PROJECT_VERSION = 1; 417 | GENERATE_INFOPLIST_FILE = YES; 418 | MARKETING_VERSION = 1.0; 419 | PRODUCT_BUNDLE_IDENTIFIER = com.example.computer12.RunnerTests; 420 | PRODUCT_NAME = "$(TARGET_NAME)"; 421 | SWIFT_VERSION = 5.0; 422 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Runner.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Runner"; 423 | }; 424 | name = Profile; 425 | }; 426 | 97C147031CF9000F007C117D /* Debug */ = { 427 | isa = XCBuildConfiguration; 428 | buildSettings = { 429 | ALWAYS_SEARCH_USER_PATHS = NO; 430 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 431 | CLANG_ANALYZER_NONNULL = YES; 432 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 433 | CLANG_CXX_LIBRARY = "libc++"; 434 | CLANG_ENABLE_MODULES = YES; 435 | CLANG_ENABLE_OBJC_ARC = YES; 436 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 437 | CLANG_WARN_BOOL_CONVERSION = YES; 438 | CLANG_WARN_COMMA = YES; 439 | CLANG_WARN_CONSTANT_CONVERSION = YES; 440 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 441 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 442 | CLANG_WARN_EMPTY_BODY = YES; 443 | CLANG_WARN_ENUM_CONVERSION = YES; 444 | CLANG_WARN_INFINITE_RECURSION = YES; 445 | CLANG_WARN_INT_CONVERSION = YES; 446 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 447 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 448 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 449 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 450 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 451 | CLANG_WARN_STRICT_PROTOTYPES = YES; 452 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 453 | CLANG_WARN_UNREACHABLE_CODE = YES; 454 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 455 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 456 | COPY_PHASE_STRIP = NO; 457 | DEBUG_INFORMATION_FORMAT = dwarf; 458 | ENABLE_STRICT_OBJC_MSGSEND = YES; 459 | ENABLE_TESTABILITY = YES; 460 | ENABLE_USER_SCRIPT_SANDBOXING = NO; 461 | GCC_C_LANGUAGE_STANDARD = gnu99; 462 | GCC_DYNAMIC_NO_PIC = NO; 463 | GCC_NO_COMMON_BLOCKS = YES; 464 | GCC_OPTIMIZATION_LEVEL = 0; 465 | GCC_PREPROCESSOR_DEFINITIONS = ( 466 | "DEBUG=1", 467 | "$(inherited)", 468 | ); 469 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 470 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 471 | GCC_WARN_UNDECLARED_SELECTOR = YES; 472 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 473 | GCC_WARN_UNUSED_FUNCTION = YES; 474 | GCC_WARN_UNUSED_VARIABLE = YES; 475 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 476 | MTL_ENABLE_DEBUG_INFO = YES; 477 | ONLY_ACTIVE_ARCH = YES; 478 | SDKROOT = iphoneos; 479 | TARGETED_DEVICE_FAMILY = "1,2"; 480 | }; 481 | name = Debug; 482 | }; 483 | 97C147041CF9000F007C117D /* Release */ = { 484 | isa = XCBuildConfiguration; 485 | buildSettings = { 486 | ALWAYS_SEARCH_USER_PATHS = NO; 487 | ASSETCATALOG_COMPILER_GENERATE_SWIFT_ASSET_SYMBOL_EXTENSIONS = YES; 488 | CLANG_ANALYZER_NONNULL = YES; 489 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 490 | CLANG_CXX_LIBRARY = "libc++"; 491 | CLANG_ENABLE_MODULES = YES; 492 | CLANG_ENABLE_OBJC_ARC = YES; 493 | CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; 494 | CLANG_WARN_BOOL_CONVERSION = YES; 495 | CLANG_WARN_COMMA = YES; 496 | CLANG_WARN_CONSTANT_CONVERSION = YES; 497 | CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; 498 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 499 | CLANG_WARN_EMPTY_BODY = YES; 500 | CLANG_WARN_ENUM_CONVERSION = YES; 501 | CLANG_WARN_INFINITE_RECURSION = YES; 502 | CLANG_WARN_INT_CONVERSION = YES; 503 | CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; 504 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; 505 | CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; 506 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 507 | CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; 508 | CLANG_WARN_STRICT_PROTOTYPES = YES; 509 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 510 | CLANG_WARN_UNREACHABLE_CODE = YES; 511 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 512 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 513 | COPY_PHASE_STRIP = NO; 514 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 515 | ENABLE_NS_ASSERTIONS = NO; 516 | ENABLE_STRICT_OBJC_MSGSEND = YES; 517 | ENABLE_USER_SCRIPT_SANDBOXING = NO; 518 | GCC_C_LANGUAGE_STANDARD = gnu99; 519 | GCC_NO_COMMON_BLOCKS = YES; 520 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 521 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 522 | GCC_WARN_UNDECLARED_SELECTOR = YES; 523 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 524 | GCC_WARN_UNUSED_FUNCTION = YES; 525 | GCC_WARN_UNUSED_VARIABLE = YES; 526 | IPHONEOS_DEPLOYMENT_TARGET = 12.0; 527 | MTL_ENABLE_DEBUG_INFO = NO; 528 | SDKROOT = iphoneos; 529 | SUPPORTED_PLATFORMS = iphoneos; 530 | SWIFT_COMPILATION_MODE = wholemodule; 531 | SWIFT_OPTIMIZATION_LEVEL = "-O"; 532 | TARGETED_DEVICE_FAMILY = "1,2"; 533 | VALIDATE_PRODUCT = YES; 534 | }; 535 | name = Release; 536 | }; 537 | 97C147061CF9000F007C117D /* Debug */ = { 538 | isa = XCBuildConfiguration; 539 | baseConfigurationReference = 9740EEB21CF90195004384FC /* Debug.xcconfig */; 540 | buildSettings = { 541 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 542 | CLANG_ENABLE_MODULES = YES; 543 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 544 | ENABLE_BITCODE = NO; 545 | INFOPLIST_FILE = Runner/Info.plist; 546 | LD_RUNPATH_SEARCH_PATHS = ( 547 | "$(inherited)", 548 | "@executable_path/Frameworks", 549 | ); 550 | PRODUCT_BUNDLE_IDENTIFIER = com.example.computer12; 551 | PRODUCT_NAME = "$(TARGET_NAME)"; 552 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 553 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 554 | SWIFT_VERSION = 5.0; 555 | VERSIONING_SYSTEM = "apple-generic"; 556 | }; 557 | name = Debug; 558 | }; 559 | 97C147071CF9000F007C117D /* Release */ = { 560 | isa = XCBuildConfiguration; 561 | baseConfigurationReference = 7AFA3C8E1D35360C0083082E /* Release.xcconfig */; 562 | buildSettings = { 563 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 564 | CLANG_ENABLE_MODULES = YES; 565 | CURRENT_PROJECT_VERSION = "$(FLUTTER_BUILD_NUMBER)"; 566 | ENABLE_BITCODE = NO; 567 | INFOPLIST_FILE = Runner/Info.plist; 568 | LD_RUNPATH_SEARCH_PATHS = ( 569 | "$(inherited)", 570 | "@executable_path/Frameworks", 571 | ); 572 | PRODUCT_BUNDLE_IDENTIFIER = com.example.computer12; 573 | PRODUCT_NAME = "$(TARGET_NAME)"; 574 | SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h"; 575 | SWIFT_VERSION = 5.0; 576 | VERSIONING_SYSTEM = "apple-generic"; 577 | }; 578 | name = Release; 579 | }; 580 | /* End XCBuildConfiguration section */ 581 | 582 | /* Begin XCConfigurationList section */ 583 | 331C8087294A63A400263BE5 /* Build configuration list for PBXNativeTarget "RunnerTests" */ = { 584 | isa = XCConfigurationList; 585 | buildConfigurations = ( 586 | 331C8088294A63A400263BE5 /* Debug */, 587 | 331C8089294A63A400263BE5 /* Release */, 588 | 331C808A294A63A400263BE5 /* Profile */, 589 | ); 590 | defaultConfigurationIsVisible = 0; 591 | defaultConfigurationName = Release; 592 | }; 593 | 97C146E91CF9000F007C117D /* Build configuration list for PBXProject "Runner" */ = { 594 | isa = XCConfigurationList; 595 | buildConfigurations = ( 596 | 97C147031CF9000F007C117D /* Debug */, 597 | 97C147041CF9000F007C117D /* Release */, 598 | 249021D3217E4FDB00AE95B9 /* Profile */, 599 | ); 600 | defaultConfigurationIsVisible = 0; 601 | defaultConfigurationName = Release; 602 | }; 603 | 97C147051CF9000F007C117D /* Build configuration list for PBXNativeTarget "Runner" */ = { 604 | isa = XCConfigurationList; 605 | buildConfigurations = ( 606 | 97C147061CF9000F007C117D /* Debug */, 607 | 97C147071CF9000F007C117D /* Release */, 608 | 249021D4217E4FDB00AE95B9 /* Profile */, 609 | ); 610 | defaultConfigurationIsVisible = 0; 611 | defaultConfigurationName = Release; 612 | }; 613 | /* End XCConfigurationList section */ 614 | }; 615 | rootObject = 97C146E61CF9000F007C117D /* Project object */; 616 | } 617 | -------------------------------------------------------------------------------- /lib/views/pages/unit3.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/cupertino.dart'; 2 | import 'package:flutter/material.dart'; 3 | import '../../widgets/widgets.dart'; 4 | import '../components/app_bar.dart'; 5 | import '../components/footer.dart'; 6 | import '../components/headings.dart'; 7 | 8 | class WebDevelopment extends StatelessWidget { 9 | const WebDevelopment({super.key}); 10 | 11 | @override 12 | Widget build(BuildContext context) { 13 | return Scaffold( 14 | appBar: const CustomAppBar( 15 | titleText: 'Unit 3', 16 | ), 17 | body: PageView( 18 | children: [ 19 | GestureDetector( 20 | child: CupertinoScrollbar( 21 | thickness: 10.0, 22 | thumbVisibility: true, 23 | thicknessWhileDragging: 10.0, 24 | child: InteractiveViewer( 25 | child: SingleChildScrollView( 26 | child: Padding( 27 | padding: const EdgeInsets.all(8.0), 28 | child: Column( 29 | crossAxisAlignment: CrossAxisAlignment.stretch, 30 | children: [ 31 | const TopicsHeadings( 32 | unit: 'Web Technology', 33 | ), 34 | const SizedBox( 35 | height: 16.0, 36 | ), 37 | ChapterTopics( 38 | heading: 39 | 'Web technology with Server side and client side programming', 40 | ), 41 | HeadingDetails( 42 | contents: 43 | 'Web technology is the tools and techniques which enables two or more computing devices to communicate over a network i.e. Internet. Web Technology consist of two words, the web refers to the World Wide Web generally known as World Wide Web. WWW is the cyber space containing webpages, documents, and any other resources which are identified and located with the help of their URLs. Technology refers to the tools and techniques that makes these resources available on the Web such as, web browsers to view content of web, Programming languages and frameworks for the development of websites, Database to store data at back end, protocols for communicating on the web, multimedia elements etc.\n\nWeb development is the process of designing and developing website which are hosted through internet or intranet. The process of developing web can range from developing static page to a complex such as web based application social media sites, E-commerce. Web development includes web design, web content development, client side scripting, server side scripting, web engineering etc. Since, web development consists of several inter-related task which can be accomplish by different types of developer who focuses on different aspect of web creation. ', 44 | ), 45 | Image.asset("images/unit_3/html.jpg"), 46 | const SizedBox( 47 | height: 8, 48 | ), 49 | ChapterTopics( 50 | heading: 'Server side and client side programming', 51 | ), 52 | const ChapterHeadingMedium( 53 | medium_heading: 54 | 'Client-Side Scripting programming'), 55 | HeadingDetails( 56 | contents: 57 | 'Client-side scripting is performed to generate a code that can run on the client side i.e (front end) browser without needing the server-side (back end) processing. Basically, client-side scripts are placed inside an HTML document. The client-side scripting can be used to layout the content of the web. For example, when a user makes a request through web browser for a webpage to the server, it just sent the HTML and CSS as plain text, and the browser interprets and renders the content of web in the client end (user). Client-side scripting is designed to run as a scripting language which can be executed by web browser. Front end developer is someone who design and develop client side of a website. Generally. he or she works in user interface (UI) of a website. Front end developer must be at least fluent in three different languages i.e. HTML, CSS, JavaScript whereas, there are several other libraries which can be used for front end development.', 58 | ), 59 | const ChapterHeadingMedium( 60 | medium_heading: 61 | 'Server-Side Scripting programming'), 62 | HeadingDetails( 63 | contents: 64 | 'Server-side scripting also known as back-end runs on the server where the application is hosted. Server-side is used to serve content depending upon the user request. Back end helps to create dynamic web based application that allows user to interact and communicate with the application. Back end language also helps to connect front end with data base. So that, User can store and retrieve data as per the requirement. Back-end developer is responsible for server-side programming. Some of the popular server-side (back-end) scripting language are ASP, JavaScript (using SSJS (Server-side JavaScript e.g. node.js), Perl, PHP, Ruby, Python etc.\n\nClient-side scripting and server-side scripting both works along side. The client-side scripting emphasizes making the interface of the web application or website (UI) more appealing and functional. Whereas, server-side scripting emphasizes on data accessing methods, error handling and fast processing etc..\n\nNote: Full-stack developer understand both Front end and back end development process. They can accomplish entire project. Full stack developer must have expertise in client site and server site Scripting language. Moreover, he/she has a great knowledge of integrating database with the application.', 65 | ), 66 | const SizedBox( 67 | height: 8.0, 68 | ), 69 | ChapterTopics( 70 | heading: 'How to add JavaScript in web pages?', 71 | ), 72 | HeadingDetails( 73 | contents: 74 | 'JavaScript is a client-side scripting language used for web development along with other front-end development tool such as HTML and CSS. JavaScript helps to give dynamic behavior to our web pages such as adding animation, drop down menus, client-side validation etc. More over JS can be used for mobile apps development and game development. JavaScript is known as scripting language because it does not need to be compiled before execution, it executes in run-time environment through web browser. Several libraries of JavaScript such as React JS, Vue JS, Angular JS etc can be found and used to make more interactive, intuitive and advance web pages. JS is not only used for front-end rather it can be used in server side also. Node JS is an example of server-side JavaScript generally known as SSJS.', 75 | ), 76 | Image.asset("images/unit_3/js.jpg"), 77 | ChapterTopics(heading: 'Feature of JavaScript'), 78 | HeadingDetails( 79 | contents: 80 | '- It is light weighted and interpreted language which execute in run-time environment directly through web browser.\n- It is supported by all the web browser since 97% of all web sites use JS.\n - It is also a structural programming language since it support control structure such as branching and looping. \n - It is prototype based programming language which means we can create object without creating classes, so it is also a Object Oriented programming3. \n -JavaScript is a case-sensitive language, small and upper case differs. \n -Every operating system such as Windows, MacOS supports JS.', 81 | ), 82 | ChapterTopics(heading: 'Uses of JavaScript'), 83 | HeadingDetails( 84 | contents: 85 | '- JS is used for client-side validation.\n- JS can be used to make dynamic drop-down menus.\n- JS can be used to display date, time and even clock.\n- JS can be used to generate pop-up windows, alert message, dialog box etc\n- JS can also be used for Server application.\n- JS can be used for cross platform mobile apps development.\n- JS can be used for game development.', 86 | ), 87 | ChapterTopics( 88 | heading: 'Adding JavaScript to HTML document'), 89 | HeadingDetails( 90 | contents: 91 | 'As we know, JS is often used as client-side scripting language along with HTML and CSS. Like we add CSS to our HTML document, similarly we can add our JavaScript code to HTML document in three several ways. The several ways of adding JavaScript to HTML document are:'), 92 | const ChapterHeadingMedium( 93 | medium_heading: '1 .Inline JavaScript code'), 94 | HeadingDetails( 95 | contents: 96 | 'This is the method of adding JS code directly inside the HTML tag. We don’t have to create separate JS file or even we don’t have to place JS code with in script tag. Simple events like onclick, mouseover, keypress can easily be added through this method. But, its very much inconvenient to add large JS code inline. JavaScript code can be added in HTML document inline as follows:', 97 | ), 98 | Image.asset("images/unit_3/e1.png"), 99 | HeadingDetails( 100 | contents: 101 | 'Here, we have added alert message through onclick event. When user press the Click me button then alert message will be shown in the web browser.'), 102 | const SizedBox( 103 | height: 8.0, 104 | ), 105 | const ChapterHeadingMedium( 106 | medium_heading: 107 | '2. Internal (Embedding) JavaScript code'), 108 | HeadingDetails( 109 | contents: 110 | 'This is the method of adding JS code within the HTML document. JS code is added internally with in the script tag inside body of the HTML document. JavaScript code can be embedded within HTML document as follows:'), 111 | Image.asset("images/unit_3/e2.png"), 112 | HeadingDetails( 113 | contents: 114 | 'Here, we have created a JS function named disp( ), this function is called when user press the Click me button. Once button is pressed alert message is displayed which is defined inside function within Script tag.'), 115 | const SizedBox( 116 | height: 8.0, 117 | ), 118 | const ChapterHeadingMedium( 119 | medium_heading: '3. External JavaScript file'), 120 | HeadingDetails( 121 | contents: 122 | 'This is the most popular methods of adding JS in our web pages. To add external JavaScript we have to create separate JS file which is linked with our HTML document as:'), 123 | Image.asset("images/unit_3/e3.png"), 124 | HeadingDetails( 125 | contents: 126 | 'Where, name.js is the JavaScript file that we create to write all our JS code. It should be in same location with our HTML document. It is most convenient way of adding JS in our web page as JS code don’t get messed with other HTML and CSS code. JavaScript code can be externally added with HTML document as follows:\n\nCreate a HTML document with any name'), 127 | Image.asset("images/unit_3/e4.png"), 128 | HeadingDetails( 129 | contents: 130 | 'Also create a JS file with .js extension and add following code'), 131 | Image.asset("images/unit_3/e5.png"), 132 | HeadingDetails( 133 | contents: 134 | 'Here, we have created separate HTML and JS file in same location. Since, we have linked our JS file with our HTML document, every code which is written in JS file will be implemented on HTML document.', 135 | ), 136 | const SizedBox( 137 | height: 16.0, 138 | ), 139 | ChapterTopics( 140 | heading: 'Local and global variable in JavaScript'), 141 | HeadingDetails( 142 | contents: 143 | 'Variables are the identifiers which holds value during our program execution. These values may change throughout the program. Depending upon the nature of data variable can hold several type of value. The type of value stored in the variable are denoted by datatype. There are two types of datatypes used in JS.'), 144 | ChapterTopics(heading: 'Data types used in JavaScript'), 145 | const ChapterHeadingMedium( 146 | medium_heading: 'a) Primitive data type: '), 147 | HeadingDetails( 148 | contents: 'They are inbuilt datatype used in JS.'), 149 | Table( 150 | border: TableBorder.all(), 151 | columnWidths: const { 152 | 0: FixedColumnWidth( 153 | 80), // Adjust the width of the first column 154 | }, 155 | children: const [ 156 | TableRow( 157 | children: [ 158 | TableCell( 159 | child: Center(child: Text('Data Type')), 160 | ), 161 | TableCell( 162 | child: Center(child: Text('Function')), 163 | ), 164 | ], 165 | ), 166 | TableRow( 167 | children: [ 168 | TableCell( 169 | child: Center(child: Text('Number')), 170 | ), 171 | TableCell( 172 | child: Padding( 173 | padding: EdgeInsets.all( 174 | 8.0), // Add padding to the right column 175 | child: Center( 176 | child: Text( 177 | 'It represents numeric values, including integers and floating-point numbers. BigInt can be used to represent numbers with large values.'), 178 | ), 179 | ), 180 | ), 181 | ], 182 | ), 183 | TableRow( 184 | children: [ 185 | TableCell( 186 | child: Center(child: Text('String')), 187 | ), 188 | TableCell( 189 | child: Padding( 190 | padding: EdgeInsets.all( 191 | 8.0), // Add padding to the right column 192 | child: Center( 193 | child: Text( 194 | 'It represent alphanumeric values i.e. text'), 195 | ), 196 | ), 197 | ), 198 | ], 199 | ), 200 | TableRow( 201 | children: [ 202 | TableCell( 203 | child: Center(child: Text('Boolean')), 204 | ), 205 | TableCell( 206 | child: Padding( 207 | padding: EdgeInsets.all( 208 | 8.0), // Add padding to the right column 209 | child: Center( 210 | child: Text( 211 | 'It represent either true or false value.'), 212 | ), 213 | ), 214 | ), 215 | ], 216 | ), 217 | TableRow( 218 | children: [ 219 | TableCell( 220 | child: Center(child: Text('Null')), 221 | ), 222 | TableCell( 223 | child: Padding( 224 | padding: EdgeInsets.all( 225 | 8.0), // Add padding to the right column 226 | child: Center( 227 | child: Text( 228 | ' It represent empty or unknown value.'), 229 | ), 230 | ), 231 | ), 232 | ], 233 | ), 234 | TableRow( 235 | children: [ 236 | TableCell( 237 | child: Center(child: Text('Undefined')), 238 | ), 239 | TableCell( 240 | child: Padding( 241 | padding: EdgeInsets.all( 242 | 8.0), // Add padding to the right column 243 | child: Center( 244 | child: Text( 245 | ' If variable is declared but the value is not assigned then the variable is of undefined type.'), 246 | ), 247 | ), 248 | ), 249 | ], 250 | ), 251 | ], 252 | ), 253 | const ChapterHeadingMedium( 254 | medium_heading: 'b) Non-Primitive datatype:'), 255 | HeadingDetails( 256 | contents: 257 | 'They are the derived datatypes from primitive datatype.'), 258 | Table( 259 | border: TableBorder.all(), 260 | columnWidths: const { 261 | 0: FixedColumnWidth( 262 | 80), // Adjust the width of the first column 263 | }, 264 | children: const [ 265 | TableRow( 266 | children: [ 267 | TableCell( 268 | child: Center(child: Text('Data Type')), 269 | ), 270 | TableCell( 271 | child: Center(child: Text('Function')), 272 | ), 273 | ], 274 | ), 275 | TableRow( 276 | children: [ 277 | TableCell( 278 | child: Center(child: Text('Array')), 279 | ), 280 | TableCell( 281 | child: Padding( 282 | padding: EdgeInsets.all( 283 | 8.0), // Add padding to the right column 284 | child: Center( 285 | child: Text( 286 | ' It store multiple values of same type under a same name.'), 287 | ), 288 | ), 289 | ), 290 | ], 291 | ), 292 | TableRow( 293 | children: [ 294 | TableCell( 295 | child: Center(child: Text('Object ')), 296 | ), 297 | TableCell( 298 | child: Padding( 299 | padding: EdgeInsets.all( 300 | 8.0), // Add padding to the right column 301 | child: Center( 302 | child: Text( 303 | ' It has methods and properties.'), 304 | ), 305 | ), 306 | ), 307 | ], 308 | ), 309 | ], 310 | ), 311 | ChapterTopics(heading: 'Variables in JavaScript'), 312 | HeadingDetails( 313 | contents: 314 | ' Variables in JavaScript are declared by using keyword "var". for eg, \nvar a=3,b=4;\nvar fruit = "apple"; '), 315 | ChapterTopics( 316 | heading: 'Types of variable in JavaScript'), 317 | const ChapterHeadingMedium( 318 | medium_heading: 'a) Local variable '), 319 | HeadingDetails( 320 | contents: 321 | 'Those variable which are declared inside the block or function is called local variable. Local variable can only be accessed and used within the block or function.'), 322 | Image.asset("images/unit_3/e6.png"), 323 | HeadingDetails( 324 | contents: 325 | "In above example, the variable 'a' is declared inside the function disp(). So, it can be used only within the function block. Other function or block cannot use the value of 'a'. Hence, to overcome this limitation we have global variable.", 326 | ), 327 | const ChapterHeadingMedium( 328 | medium_heading: 'b) Global variable'), 329 | HeadingDetails( 330 | contents: 331 | 'Those variable which are declared outside the block or function is called global variable. Global variable can be accessed and used within any other function or the block.', 332 | ), 333 | Image.asset("images/unit_3/e7.png"), 334 | HeadingDetails( 335 | contents: 336 | "In above example, the variable 'a' is declared outside the two function disp() and cisp(). So, it can be used by both function block. When user press Click me then, disp() function is called, this function will display the value of 'a' i.e. 5 which is declared outside of the function. Similarly, when user press Push me then, cisp() function is called, this function will also display the value of 'a' i.e. 5. This is because variable ‘a’ is declared outside of function or block which can be used by any number of function or block. Note: Block represent the statement written inside curly bracket { }", 337 | ), 338 | ChapterTopics(heading: 'form validation in javascript'), 339 | HeadingDetails( 340 | contents: 341 | 'Once the client or user entered all the necessary data and press the submit button then all the data entered by the client must be correct and valid. Thus, form validation is the mechanism which allows client to enter only the correct information which can be send to the server. JavaScript provides easy method for form validation at client side. Forma validation can be done in two ways: Basic validation which checks whether all the required fields are filled properly or not kept empty whereas, Data Format validation check whether the data entered into the form field are logically correct.'), 342 | ChapterTopics( 343 | heading: 'Basic form validation in JavaScript', 344 | ), 345 | Image.asset("images/unit_3/e8.png"), 346 | ChapterTopics(heading: 'DDL DML and DCL with example'), 347 | HeadingDetails( 348 | contents: 349 | 'SQL stands for Structured Query Language. It is an international standard database query language introduced and developed by IBM in early 1970s. It was able to control relational database. SQL is not a complete programming language rather only used for communicating with database. SQL has several statement for data definition, data manipulation and data control generally known as DDL, DML and DCL respectively. A query is a request to a DBMS for the retrieval, modification, insertion and deletion of the data from database.'), 350 | Image.asset("images/unit_3/sql.jpg"), 351 | ChapterTopics(heading: 'DDL DML and DCL statements'), 352 | const ChapterHeadingMedium( 353 | medium_heading: 354 | '1) Data Definition Language (DDL)'), 355 | const ChapterHeadingMedium( 356 | medium_heading: '1.1 CREATE statement'), 357 | HeadingDetails( 358 | contents: 359 | 'In order to create a database we can use CREATE statement as follows:'), 360 | Image.asset("images/unit_3/e9.png"), 361 | HeadingDetails( 362 | contents: 363 | 'The above statement will create a database with the name student.\nIn order to create a database table we can use CREATE statement as follows:'), 364 | Image.asset("images/unit_3/e10.png"), 365 | HeadingDetails( 366 | contents: 367 | 'The above statement will create a database table named student with two column SN and Fname. The number of column can be increased accordingly.'), 368 | const ChapterHeadingMedium( 369 | medium_heading: '1.2 DROP statement'), 370 | HeadingDetails( 371 | contents: 372 | 'It is used to delete database or table from the SQL server.'), 373 | Image.asset("images/unit_3/e11.png"), 374 | HeadingDetails( 375 | contents: 376 | 'This statement will delete database named student from the SQL server.'), 377 | Image.asset("images/unit_3/e12.png"), 378 | HeadingDetails( 379 | contents: 380 | 'This statement will delete database table named student from the SQL server.'), 381 | const ChapterHeadingMedium( 382 | medium_heading: 383 | '2) Data Manipulation Language (DML)'), 384 | HeadingDetails( 385 | contents: 386 | 'DML is related with manipulation of records such as retrieval, sorting, displaying and deleting records or data. It helps user to submit query and display report of the table. It provide technique for processing the database. It includes commands like SELECT, INSERT, DELETE and UPDATE to manipulate the information stored in the database.'), 387 | const ChapterHeadingMedium( 388 | medium_heading: '2.1) SELECT statement'), 389 | Image.asset("images/unit_3/e13.png"), 390 | HeadingDetails( 391 | contents: 392 | 'This statement will select all the columns from the database table named student.'), 393 | const ChapterHeadingMedium( 394 | medium_heading: '2.2) INSERT statement'), 395 | Image.asset("images/unit_3/e14.png"), 396 | HeadingDetails( 397 | contents: 398 | 'The above statement will insert 3 and Ram into the database table named student.'), 399 | const ChapterHeadingMedium( 400 | medium_heading: '2.3) DELETE statement'), 401 | Image.asset("images/unit_3/e15.png"), 402 | HeadingDetails( 403 | contents: 404 | "This statement will delete all the records from the student table where the Fname value is 'Ram'."), 405 | const ChapterHeadingMedium( 406 | medium_heading: '2.4) UPDATE statement'), 407 | Image.asset("images/unit_3/e16.png"), 408 | HeadingDetails( 409 | contents: 410 | 'This stament will update the update the table record whose fname is "Ram".'), 411 | const ChapterHeadingMedium( 412 | medium_heading: '3) Data Control Language (DCL)'), 413 | HeadingDetails( 414 | contents: 415 | 'DCL provides additional feature for security of table and database. It includes commands for controlling data and access to the database. Some of the example of this command are GRANT, COMMIT etc.'), 416 | const Footer(), 417 | ], 418 | ), 419 | ), 420 | ), 421 | ), 422 | ), 423 | ) 424 | ], 425 | ), 426 | // bottomNavigationBar: const BannerAdHelper(), 427 | ); 428 | } 429 | } 430 | --------------------------------------------------------------------------------