├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.yml │ ├── documentation_update.yml │ └── feature_request.yml ├── pull-request.md └── workflows │ ├── auto-assign.yml │ ├── autocomment-pr-merge.yml │ ├── dependabot.yaml │ ├── greetings.yaml │ └── main.yml ├── .gitignore ├── .metadata ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CONTRIBUTORS.md ├── LICENSE ├── README.md ├── SECURITY.md ├── analysis_options.yaml ├── android ├── .gitignore ├── app │ ├── build.gradle │ └── src │ │ ├── debug │ │ └── AndroidManifest.xml │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── io │ │ │ │ └── flutter │ │ │ │ └── app │ │ │ │ └── FlutterMultiDexApplication.java │ │ ├── kotlin │ │ │ ├── com │ │ │ │ ├── example │ │ │ │ │ └── learn │ │ │ │ │ │ └── MainActivity.kt │ │ │ │ └── sappu │ │ │ │ │ └── learn │ │ │ │ │ └── MainActivity.kt │ │ │ └── vdrs │ │ │ │ └── sappu │ │ │ │ └── lafk │ │ │ │ └── learn │ │ │ │ └── MainActivity.kt │ │ └── res │ │ │ ├── drawable-v21 │ │ │ └── launch_background.xml │ │ │ ├── drawable │ │ │ └── launch_background.xml │ │ │ ├── mipmap-anydpi-v26 │ │ │ └── ic_launcher.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-ldpi │ │ │ └── ic_launcher.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ ├── ic_launcher_background.png │ │ │ ├── ic_launcher_foreground.png │ │ │ └── ic_launcher_monochrome.png │ │ │ ├── values-night │ │ │ └── styles.xml │ │ │ └── values │ │ │ └── styles.xml │ │ └── profile │ │ └── AndroidManifest.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ └── gradle-wrapper.properties └── settings.gradle ├── assets ├── colours │ ├── black.svg │ ├── blue.svg │ ├── brown.svg │ ├── colours-cover.jpg │ ├── colours-cover.png │ ├── green.svg │ ├── orange.svg │ ├── pink.svg │ ├── red.svg │ ├── violet.svg │ ├── white.svg │ └── yellow.svg ├── data │ └── data.json ├── explore │ ├── dot.svg │ ├── drawing_board.svg │ └── notebook.svg ├── fonts │ ├── MaterialIcons-Regular.ttf │ └── comic-sans-ms │ │ ├── COMIC.TTF │ │ ├── ComicSansMS3.ttf │ │ ├── comici.ttf │ │ ├── comicz.ttf │ │ ├── design.graffiti.comicsansms.ttf │ │ └── design.graffiti.comicsansmsgras.ttf ├── fruitsVeges │ ├── apple.svg │ ├── banana.svg │ ├── carrot.svg │ ├── chilli.svg │ ├── cover.jpg │ ├── eggplant.svg │ ├── ginger.svg │ ├── grapes.svg │ ├── kiwi.svg │ ├── okra.svg │ ├── onion.png │ ├── orange.svg │ ├── pineapple.svg │ ├── potato.svg │ ├── strawberry.png │ ├── tomato.svg │ └── watermelon.svg ├── images │ ├── alphabet │ │ ├── alphabets.jpg │ │ ├── apple.svg │ │ ├── ball.svg │ │ ├── cat.svg │ │ ├── dog.svg │ │ ├── elephant.svg │ │ ├── fish.svg │ │ ├── grapes.svg │ │ ├── horse.svg │ │ ├── icecream.svg │ │ ├── joker.svg │ │ ├── king.svg │ │ ├── lion.svg │ │ ├── money.svg │ │ ├── nest.svg │ │ ├── orange.svg │ │ ├── parrot.svg │ │ ├── queen.svg │ │ ├── rabbit.svg │ │ ├── shiva.svg │ │ ├── table.svg │ │ ├── umbrella.svg │ │ ├── van.svg │ │ ├── window.svg │ │ ├── xerox.svg │ │ ├── yellow.svg │ │ └── zero.svg │ ├── animal │ │ ├── animals.jpg │ │ ├── bear.svg │ │ ├── cat.svg │ │ ├── cow.svg │ │ ├── deer.svg │ │ ├── dog.svg │ │ ├── elephant.svg │ │ ├── fox.svg │ │ ├── giraffe.svg │ │ ├── goat.svg │ │ ├── horse.svg │ │ ├── kangaroo.svg │ │ ├── lion.svg │ │ ├── monkey.svg │ │ ├── pig.svg │ │ ├── rabbit.svg │ │ ├── sheep.svg │ │ ├── snake.svg │ │ ├── squirrel.svg │ │ ├── tiger.svg │ │ └── zebra.svg │ ├── birds │ │ ├── Bagula.svg │ │ ├── Baya.svg │ │ ├── Bulbul.svg │ │ ├── Crow.svg │ │ ├── Duck.svg │ │ ├── Eagle.svg │ │ ├── Goose.svg │ │ ├── Hen.svg │ │ ├── Hummingbird.svg │ │ ├── Kingfisher.svg │ │ ├── Koel.svg │ │ ├── Maina.svg │ │ ├── Ostrich.svg │ │ ├── Owl.svg │ │ ├── Parrot.svg │ │ ├── Pigeon.svg │ │ ├── Robin.svg │ │ ├── Seagull.svg │ │ ├── Sparrow.svg │ │ ├── Swan.svg │ │ ├── Vulture.svg │ │ ├── Woodpecker.svg │ │ └── birds.jpg │ ├── body │ │ ├── Ankle.svg │ │ ├── Arm.svg │ │ ├── Back.svg │ │ ├── Belly.svg │ │ ├── Cheek.svg │ │ ├── Chest.svg │ │ ├── Chin.svg │ │ ├── Ear.svg │ │ ├── Elbow.svg │ │ ├── Eye.svg │ │ ├── Fingers.svg │ │ ├── Foot.svg │ │ ├── Hair.svg │ │ ├── Hips.svg │ │ ├── Knee.svg │ │ ├── Leg.svg │ │ ├── Lips.svg │ │ ├── Nail.svg │ │ ├── Neck.svg │ │ ├── Nose.svg │ │ ├── Palm.svg │ │ ├── Shoulder.svg │ │ ├── Stomach.svg │ │ ├── Teeth.svg │ │ ├── Thigh.svg │ │ ├── Thumb.svg │ │ ├── Toe.svg │ │ ├── Tongue.svg │ │ ├── Waist.svg │ │ ├── Wrist.svg │ │ └── body.jpg │ ├── dp.png │ ├── email.svg │ ├── flowers │ │ ├── carnation.svg │ │ ├── daffodil.svg │ │ ├── daisy.svg │ │ ├── dandelion.svg │ │ ├── flower-icon.svg │ │ ├── flower_banner.jpeg │ │ ├── hibiscus.svg │ │ ├── jasmine.svg │ │ ├── lavender.svg │ │ ├── lily.svg │ │ ├── lotus.svg │ │ ├── marigold.svg │ │ ├── poppy.svg │ │ ├── rose.svg │ │ ├── sunflower.svg │ │ └── tulip.svg │ ├── git.svg │ ├── github.svg │ ├── gitlab.svg │ ├── icon_abc.png │ ├── instagram.svg │ ├── linkedin.svg │ ├── numbers │ │ ├── eight.png │ │ ├── five.png │ │ ├── four.png │ │ ├── nine.png │ │ ├── numbers.jpg │ │ ├── one.png │ │ ├── seven.png │ │ ├── six.png │ │ ├── three.png │ │ ├── two.png │ │ └── zero.png │ ├── quiz.jpg │ ├── shape.gif │ ├── solar │ │ ├── earth.svg │ │ ├── jupiter.svg │ │ ├── mars.svg │ │ ├── mercury.svg │ │ ├── neptune.svg │ │ ├── saturn.svg │ │ ├── solar.gif │ │ ├── sun.svg │ │ ├── uranus.svg │ │ └── venus.svg │ └── studying.png ├── occupations │ ├── artist.svg │ ├── author.svg │ ├── barber.svg │ ├── carpenter.svg │ ├── dentist.svg │ ├── doctor.svg │ ├── electrician.svg │ ├── engineer.svg │ ├── farmer.svg │ ├── lawyer.svg │ ├── photographer.svg │ ├── pilot.svg │ ├── police.svg │ ├── teacher.svg │ └── vet.svg ├── quiz │ ├── q1.jpg │ ├── q10.jpg │ ├── q2.jpg │ ├── q5.jpg │ ├── q6.jpg │ ├── q7.jpg │ ├── q8.jpg │ └── q9.jpg ├── seasons │ ├── autumn.svg │ ├── spring.svg │ ├── summer.svg │ └── winter.svg └── sounds │ ├── animals │ ├── bear_sound.mp3 │ ├── cat_sound.wav │ ├── cow_sound.mp3 │ ├── deer_sound.mp3 │ ├── dog_sound.mp3 │ ├── elephant_sound.mp3 │ ├── fox_sound.mp3 │ ├── giraffe_sound.mp3 │ ├── goat_sound.mp3 │ ├── horse_sound.mp3 │ ├── kangaroo_sound.mp3 │ ├── lion_sound.mp3 │ ├── monkey_sound.mp3 │ ├── pig_sound.mp3 │ ├── rabbit_sound.mp3 │ ├── sheep_sound.mp3 │ ├── snake_sound.mp3 │ ├── squirrel_sound.mp3 │ ├── tiger_sound.mp3 │ └── zebra_sound.mp3 │ └── birds │ ├── Bagula.mp3 │ ├── Baya.mp3 │ ├── Bulbul.mp3 │ ├── Crow.mp3 │ ├── Duck.mp3 │ ├── Eagle.mp3 │ ├── Goose.mp3 │ ├── Hen.mp3 │ ├── Hummingbird.mp3 │ ├── Kingfisher.mp3 │ ├── Koel.mp3 │ ├── Maina.mp3 │ ├── Ostrich.mp3 │ ├── Owl.mp3 │ ├── Parrot.mp3 │ ├── Pigeon.mp3 │ ├── Robin.mp3 │ ├── Seagull.mp3 │ ├── Sparrow.mp3 │ ├── Swan.mp3 │ ├── Vulture.mp3 │ └── Woodpecker.mp3 ├── devtools_options.yaml ├── fastlane └── metadata │ └── android │ └── en-US │ ├── changelogs │ ├── 10.txt │ └── 20.txt │ ├── full_description.txt │ ├── images │ ├── icon.png │ └── phoneScreenshots │ │ ├── 01.jpg │ │ ├── 02.png │ │ ├── 03.png │ │ ├── 04.png │ │ ├── 05.png │ │ ├── 06.png │ │ ├── 07.png │ │ └── 08.png │ └── short_description.txt ├── ios ├── .gitignore ├── Flutter │ ├── AppFrameworkInfo.plist │ ├── Debug.xcconfig │ └── Release.xcconfig ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ └── WorkspaceSettings.xcsettings │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings ├── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ ├── AppIcon-20@2x.png │ │ │ ├── AppIcon-20@2x~ipad.png │ │ │ ├── AppIcon-20@3x.png │ │ │ ├── AppIcon-20~ipad.png │ │ │ ├── AppIcon-29.png │ │ │ ├── AppIcon-29@2x.png │ │ │ ├── AppIcon-29@2x~ipad.png │ │ │ ├── AppIcon-29@3x.png │ │ │ ├── AppIcon-29~ipad.png │ │ │ ├── AppIcon-40@2x.png │ │ │ ├── AppIcon-40@2x~ipad.png │ │ │ ├── AppIcon-40@3x.png │ │ │ ├── AppIcon-40~ipad.png │ │ │ ├── AppIcon-60@2x~car.png │ │ │ ├── AppIcon-60@3x~car.png │ │ │ ├── AppIcon-83.5@2x~ipad.png │ │ │ ├── AppIcon@2x.png │ │ │ ├── AppIcon@2x~ipad.png │ │ │ ├── AppIcon@3x.png │ │ │ ├── AppIcon~ios-marketing.png │ │ │ ├── AppIcon~ipad.png │ │ │ ├── Contents.json │ │ │ ├── Icon-App-1024x1024@1x.png │ │ │ ├── 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-83.5x83.5@2x.png │ │ └── LaunchImage.imageset │ │ │ ├── Contents.json │ │ │ ├── LaunchImage.png │ │ │ ├── LaunchImage@2x.png │ │ │ ├── LaunchImage@3x.png │ │ │ └── README.md │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ ├── Info.plist │ └── Runner-Bridging-Header.h └── RunnerTests │ └── RunnerTests.swift ├── learn.md ├── lib ├── cubit │ └── index_cubit.dart ├── favorite_page_provider.dart ├── landing_page.dart ├── main.dart ├── model │ └── module.dart ├── models │ ├── animal_model.dart │ ├── bird_model.dart │ ├── colours_model.dart │ ├── flower_model.dart │ ├── itemdata_model.dart │ ├── number_model.dart │ ├── occupation_model.dart │ ├── planet_model.dart │ └── season_model.dart ├── pages │ ├── about.dart │ ├── explore.dart │ ├── explore │ │ ├── drawingboard.dart │ │ ├── explore.dart │ │ └── quiz.dart │ ├── favorite.dart │ ├── fruits.dart │ ├── home.dart │ ├── main_home.dart │ └── modules │ │ ├── animals.dart │ │ ├── animals_test.dart │ │ ├── atoz.dart │ │ ├── birds.dart │ │ ├── birds_test.dart │ │ ├── colours.dart │ │ ├── flowers.dart │ │ ├── flowers_test.dart │ │ ├── numbers.dart │ │ ├── occupation.dart │ │ ├── occupations_test.dart │ │ ├── parts.dart │ │ ├── parts_test.dart │ │ ├── planets.dart │ │ ├── planets_test.dart │ │ ├── seasons.dart │ │ └── shapes.dart ├── theme_provider.dart ├── utils │ ├── assets_path.dart │ ├── const_dimensions.dart │ ├── constants.dart │ ├── functions.dart │ ├── responsive_screen_provider.dart │ └── route │ │ ├── page_transtion.dart │ │ ├── route_constant.dart │ │ └── routes.dart └── widgets │ ├── drawer.dart │ └── navbar │ └── navbar.dart ├── linux ├── .gitignore ├── CMakeLists.txt ├── flutter │ ├── CMakeLists.txt │ ├── generated_plugin_registrant.cc │ ├── generated_plugin_registrant.h │ └── generated_plugins.cmake ├── main.cc ├── my_application.cc └── my_application.h ├── macos ├── .gitignore ├── Flutter │ ├── Flutter-Debug.xcconfig │ ├── Flutter-Release.xcconfig │ └── GeneratedPluginRegistrant.swift ├── Runner.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── Runner.xcscheme ├── Runner.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── Runner │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── app_icon_1024.png │ │ │ ├── app_icon_128.png │ │ │ ├── app_icon_16.png │ │ │ ├── app_icon_256.png │ │ │ ├── app_icon_32.png │ │ │ ├── app_icon_512.png │ │ │ └── app_icon_64.png │ ├── Base.lproj │ │ └── MainMenu.xib │ ├── Configs │ │ ├── AppInfo.xcconfig │ │ ├── Debug.xcconfig │ │ ├── Release.xcconfig │ │ └── Warnings.xcconfig │ ├── DebugProfile.entitlements │ ├── Info.plist │ ├── MainFlutterWindow.swift │ └── Release.entitlements └── RunnerTests │ └── RunnerTests.swift ├── pubspec.yaml ├── readme ├── GitHub.png ├── Gssoc Label.png ├── IzzyOnDroid.png ├── five.png ├── four.png ├── one.png ├── six.png ├── three.png ├── two.png └── vsoc.png ├── test └── widget_test.dart ├── web ├── README.txt ├── apple-touch-icon.png ├── favicon.ico ├── favicon.png ├── icon-192-maskable.png ├── icon-192.png ├── icon-512-maskable.png ├── icon-512.png ├── icons │ ├── Icon-192.png │ ├── Icon-512.png │ ├── Icon-maskable-192.png │ ├── Icon-maskable-512.png │ ├── icon-192-maskable.png │ └── icon-512-maskable.png ├── index.html └── manifest.json └── windows ├── .gitignore ├── CMakeLists.txt ├── flutter ├── CMakeLists.txt ├── generated_plugin_registrant.cc ├── generated_plugin_registrant.h └── generated_plugins.cmake └── runner ├── CMakeLists.txt ├── Runner.rc ├── flutter_window.cpp ├── flutter_window.h ├── main.cpp ├── resource.h ├── resources └── app_icon.ico ├── runner.exe.manifest ├── utils.cpp ├── utils.h ├── win32_window.cpp └── win32_window.h /.github/ISSUE_TEMPLATE/bug_report.yml: -------------------------------------------------------------------------------- 1 | name: Bug report 🐞 2 | description: File a bug report 3 | title: "[Bug]: " 4 | body: 5 | - type: checkboxes 6 | id: existing-issue 7 | attributes: 8 | label: Is there an existing issue for this? 9 | description: Please search to see if an issue already exists for the bug you encountered. 10 | options: 11 | - label: I have searched the existing issues 12 | required: true 13 | - type: textarea 14 | id: what-happened 15 | attributes: 16 | label: Describe the bug 17 | description: A concise description of what you are experiencing. 18 | placeholder: Tell us what you see! 19 | validations: 20 | required: true 21 | - type: textarea 22 | id: expected-behaviour 23 | attributes: 24 | label: Expected behavior 25 | description: A clear and concise description of what you expected to happen. 26 | validations: 27 | required: true 28 | - type: textarea 29 | id: screenshots 30 | attributes: 31 | label: Add ScreenShots 32 | description: Add sufficient ScreenShots to explain your issue. 33 | - type: dropdown 34 | id: devices 35 | attributes: 36 | label: On which device are you experiencing this bug? 37 | multiple: true 38 | options: 39 | - Android 40 | - iPhone 41 | - Linux 42 | - Chrome 43 | - Windows 44 | - type: checkboxes 45 | id: terms 46 | attributes: 47 | label: Record 48 | options: 49 | - label: "I have read the Contributing Guidelines" 50 | required: true 51 | - label: "I'm a GSSOC'24 contributor" 52 | required: False 53 | - label: "I'm a VSoC'24 contributor" 54 | required: False 55 | - label: "I have starred the repository" 56 | required: true 57 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/documentation_update.yml: -------------------------------------------------------------------------------- 1 | name: 📝 Documentation Update 2 | description: Improve Documentation 3 | title: "[Documentation Update]: " 4 | body: 5 | - type: checkboxes 6 | id: existing-issue 7 | attributes: 8 | label: Is there an existing issue for this? 9 | description: Please search to see if an issue already exists for the updates you want to make. 10 | options: 11 | - label: I have searched the existing issues 12 | required: true 13 | - type: textarea 14 | id: issue-description 15 | attributes: 16 | label: Issue Description 17 | description: Please provide a clear description of the documentation update you are suggesting. 18 | placeholder: Describe the improvement or correction you'd like to see in the documentation. 19 | validations: 20 | required: true 21 | - type: textarea 22 | id: suggested-change 23 | attributes: 24 | label: Suggested Change 25 | description: Provide details of the proposed change to the documentation. 26 | placeholder: Explain how the documentation should be updated or corrected. 27 | validations: 28 | required: true 29 | - type: textarea 30 | id: rationale 31 | attributes: 32 | label: Rationale 33 | description: Why is this documentation update necessary or beneficial? 34 | placeholder: Explain the importance or reasoning behind the suggested change. 35 | validations: 36 | required: False 37 | - type: dropdown 38 | id: urgency 39 | attributes: 40 | label: Urgency 41 | description: How urgently do you believe this documentation update is needed? 42 | options: 43 | - High 44 | - Medium 45 | - Low 46 | default: 0 47 | validations: 48 | required: true 49 | - type: checkboxes 50 | id: terms 51 | attributes: 52 | label: Record 53 | options: 54 | - label: "I have read the Contributing Guidelines" 55 | required: true 56 | - label: "I'm a GSSOC'24 contributor" 57 | required: false 58 | - label: "I'm a VSoC'24 contributor" 59 | required: false 60 | - label: "I have starred the repository" 61 | required: true 62 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.yml: -------------------------------------------------------------------------------- 1 | name: ✨ Feature Request 2 | description: Suggest a feature 3 | title: "[Feature Request]: " 4 | body: 5 | - type: markdown 6 | attributes: 7 | value: "We are not going to add new modules!" 8 | - type: checkboxes 9 | id: existing-issue 10 | attributes: 11 | label: Is there an existing issue for this? 12 | description: Please search to see if an issue already exists for this feature. 13 | options: 14 | - label: I have searched the existing issues 15 | required: true 16 | - type: textarea 17 | id: feature-description 18 | attributes: 19 | label: Feature Description 20 | description: Please provide a detailed description of the feature you are requesting. 21 | placeholder: Describe the new feature or enhancement you'd like to see. 22 | validations: 23 | required: true 24 | - type: textarea 25 | id: use-case 26 | attributes: 27 | label: Use Case 28 | description: How would this feature enhance your use of the project? 29 | placeholder: Describe a specific use case or scenario where this feature would be beneficial. 30 | validations: 31 | required: true 32 | - type: textarea 33 | id: benefits 34 | attributes: 35 | label: Benefits 36 | description: What benefits would this feature bring to the project or community? 37 | placeholder: Explain the advantages of implementing this feature. 38 | - type: textarea 39 | id: screenShots 40 | attributes: 41 | label: Add ScreenShots 42 | description: If any... 43 | - type: dropdown 44 | id: priority 45 | attributes: 46 | label: Priority 47 | description: How important is this feature to you? 48 | options: 49 | - High 50 | - Medium 51 | - Low 52 | default: 0 53 | validations: 54 | required: true 55 | - type: checkboxes 56 | id: terms 57 | attributes: 58 | label: Record 59 | options: 60 | - label: "I have read the Contributing Guidelines" 61 | required: true 62 | - label: "I'm a GSSOC'24 contributor" 63 | required: false 64 | - label: "I'm a VSoC'24 contributor" 65 | required: false 66 | - label: "I have starred the repository" 67 | required: true 68 | -------------------------------------------------------------------------------- /.github/pull-request.md: -------------------------------------------------------------------------------- 1 | ### Description 2 | 3 | Please include a summary of the changes and the related issue. Please also include relevant motivation and context. List any dependencies that are required for this change. 4 | 5 | Fixes #(issue) 6 | 7 | ### Type of Change 8 | 9 | - [ ] Bug fix (non-breaking change which fixes an issue) 10 | - [ ] New feature (non-breaking change which adds functionality) 11 | - [ ] Breaking change (fix or feature that would cause existing functionality to not work as expected) 12 | - [ ] Documentation update 13 | 14 | ### How Has This Been Tested? 15 | 16 | Please describe the tests that you ran to verify your changes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration. 17 | 18 | - [ ] Test A 19 | - [ ] Test B 20 | 21 | **Test Configuration**: 22 | * Firmware version: 23 | * Hardware: 24 | * Toolchain: 25 | * SDK: 26 | 27 | ### Checklist: 28 | 29 | - [ ] My code follows the style guidelines of this project 30 | - [ ] I have performed a self-review of my own code 31 | - [ ] I have commented my code, particularly in hard-to-understand areas 32 | - [ ] I have made corresponding changes to the documentation 33 | - [ ] My changes generate no new warnings 34 | - [ ] I have added tests that prove my fix is effective or that my feature works 35 | - [ ] New and existing unit tests pass locally with my changes 36 | - [ ] Any dependent changes have been merged and published in downstream modules 37 | -------------------------------------------------------------------------------- /.github/workflows/auto-assign.yml: -------------------------------------------------------------------------------- 1 | name: Auto Assign 2 | on: 3 | issues: 4 | types: [opened] 5 | jobs: 6 | run: 7 | runs-on: ubuntu-latest 8 | permissions: 9 | issues: write 10 | pull-requests: write 11 | steps: 12 | - name: 'Auto-assign issue' 13 | uses: pozil/auto-assign-issue@v1 14 | with: 15 | repo-token: ${{ secrets.GITHUB_TOKEN }} 16 | assignees: ${{ github.event.issue.user.login }} 17 | numOfAssignee: 1 18 | -------------------------------------------------------------------------------- /.github/workflows/autocomment-pr-merge.yml: -------------------------------------------------------------------------------- 1 | name: Auto Comment on PR Merge 2 | 3 | on: 4 | pull_request: 5 | types: [closed] 6 | 7 | jobs: 8 | comment: 9 | runs-on: ubuntu-latest 10 | if: github.event.pull_request.merged == true 11 | 12 | steps: 13 | - name: Checkout Repository 14 | uses: actions/checkout@v2 15 | 16 | - name: Add Comment to Issue 17 | env: 18 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 19 | run: | 20 | COMMENT=$(cat <Our Contributors ❤️ 3 |
4 |

Thank you for contributing to our repository

5 | 6 | ![Contributors](https://contrib.rocks/image?repo=VaibhavCodeClub/learn) 7 | 8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 sapatevaibhav 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 without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to 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 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | **Privacy Policy** 2 | 3 | Our Learn App is designed to provide a simple learning experience for users. We are committed to protecting your privacy and ensuring the security of your personal information. This Privacy Policy outlines how we collect, use, and safeguard your data when you use our App. 4 | 5 | **Information Collection and Use:** 6 | 7 | We do not collect any personally identifiable information from users of our App. 8 | 9 | **Log Data:** 10 | 11 | We do not collect any log data or information when you use the App. 12 | 13 | **Cookies:** 14 | 15 | Our App does not use cookies. 16 | 17 | **Security:** 18 | 19 | We prioritize the security of your personal information and employ industry-standard security measures to prevent unauthorized access, disclosure, or alteration of your data. 20 | 21 | **Changes to This Privacy Policy:** 22 | 23 | We reserve the right to update our Privacy Policy from time to time. Any changes will be reflected on this page. 24 | 25 | **Contact Us:** 26 | 27 | If you have any questions or concerns about our Privacy Policy, please contact us at [sapatevaibhav@duck.com]. 28 | 29 | By using our App, you consent to the terms outlined in this Privacy Policy. 30 | 31 | This Privacy Policy was last updated on [24 feb 24]. 32 | -------------------------------------------------------------------------------- /analysis_options.yaml: -------------------------------------------------------------------------------- 1 | # This file configures the analyzer, which statically analyzes Dart code to 2 | # check for errors, warnings, and lints. 3 | # 4 | # The issues identified by the analyzer are surfaced in the UI of Dart-enabled 5 | # IDEs (https://dart.dev/tools#ides-and-editors). The analyzer can also be 6 | # invoked from the command line by running `flutter analyze`. 7 | 8 | # The following line activates a set of recommended lints for Flutter apps, 9 | # packages, and plugins designed to encourage good coding practices. 10 | analyzer: 11 | errors: 12 | library_prefixes: ignore 13 | include: package:flutter_lints/flutter.yaml 14 | 15 | linter: 16 | # The lint rules applied to this project can be customized in the 17 | # section below to disable rules from the `package:flutter_lints/flutter.yaml` 18 | # included above or to enable additional rules. A list of all available lints 19 | # and their documentation is published at https://dart.dev/lints. 20 | # 21 | # Instead of disabling a lint rule for the entire project in the 22 | # section below, it can also be suppressed for a single line of code 23 | # or a specific dart file by using the `// ignore: name_of_lint` and 24 | # `// ignore_for_file: name_of_lint` syntax on the line or in the file 25 | # producing the lint. 26 | rules: 27 | # avoid_print: false # Uncomment to disable the `avoid_print` rule 28 | # prefer_single_quotes: true # Uncomment to enable the `prefer_single_quotes` rule 29 | 30 | # Additional information about this file can be found at 31 | # https://dart.dev/guides/language/analysis-options 32 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | plugins { 2 | id "com.android.application" 3 | id "kotlin-android" 4 | id "dev.flutter.flutter-gradle-plugin" 5 | } 6 | 7 | def localProperties = new Properties() 8 | def localPropertiesFile = rootProject.file('local.properties') 9 | if (localPropertiesFile.exists()) { 10 | localPropertiesFile.withReader('UTF-8') { reader -> 11 | localProperties.load(reader) 12 | } 13 | } 14 | 15 | def flutterVersionCode = localProperties.getProperty('flutter.versionCode') 16 | if (flutterVersionCode == null) { 17 | flutterVersionCode = '1' 18 | } 19 | 20 | def flutterVersionName = localProperties.getProperty('flutter.versionName') 21 | if (flutterVersionName == null) { 22 | flutterVersionName = '1.0' 23 | } 24 | def keystoreProperties = new Properties() 25 | def keystorePropertiesFile = rootProject.file('key.properties') 26 | if (keystorePropertiesFile.exists()) { 27 | keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 28 | } 29 | 30 | android { 31 | namespace "vdrs.sappu.lafk.learn" 32 | compileSdkVersion 34 33 | ndkVersion flutter.ndkVersion 34 | 35 | compileOptions { 36 | sourceCompatibility JavaVersion.VERSION_1_8 37 | targetCompatibility JavaVersion.VERSION_1_8 38 | } 39 | dependenciesInfo { 40 | includeInApk = false 41 | includeInBundle = false 42 | } 43 | 44 | kotlinOptions { 45 | jvmTarget = '1.8' 46 | } 47 | 48 | sourceSets { 49 | main.java.srcDirs += 'src/main/kotlin' 50 | } 51 | 52 | defaultConfig { 53 | // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). 54 | applicationId "vdrs.sappu.lafk.learn" 55 | // You can update the following values to match your application needs. 56 | // For more information, see: https://docs.flutter.dev/deployment/android#reviewing-the-gradle-build-configuration. 57 | minSdkVersion 21 58 | targetSdkVersion flutter.targetSdkVersion 59 | versionCode flutterVersionCode.toInteger() 60 | versionName flutterVersionName 61 | multiDexEnabled true 62 | } 63 | 64 | signingConfigs { 65 | release { 66 | keyAlias keystoreProperties['keyAlias'] 67 | keyPassword keystoreProperties['keyPassword'] 68 | storeFile keystoreProperties['storeFile'] ? file(keystoreProperties['storeFile']) : null 69 | storePassword keystoreProperties['storePassword'] 70 | } 71 | } 72 | buildTypes { 73 | release { 74 | signingConfig signingConfigs.release 75 | } 76 | } 77 | 78 | } 79 | 80 | flutter { 81 | source '../..' 82 | } 83 | 84 | dependencies { 85 | implementation 'com.android.support:multidex:1.0.3' 86 | } 87 | -------------------------------------------------------------------------------- /android/app/src/debug/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 14 | 18 | 22 | 23 | 24 | 25 | 26 | 27 | 29 | 32 | 33 | 34 | -------------------------------------------------------------------------------- /android/app/src/main/java/io/flutter/app/FlutterMultiDexApplication.java: -------------------------------------------------------------------------------- 1 | // Generated file. 2 | // 3 | // If you wish to remove Flutter's multidex support, delete this entire file. 4 | // 5 | // Modifications to this file should be done in a copy under a different name 6 | // as this file may be regenerated. 7 | 8 | package io.flutter.app; 9 | 10 | import android.app.Application; 11 | import android.content.Context; 12 | import androidx.annotation.CallSuper; 13 | import androidx.multidex.MultiDex; 14 | 15 | /** 16 | * Extension of {@link android.app.Application}, adding multidex support. 17 | */ 18 | public class FlutterMultiDexApplication extends Application { 19 | @Override 20 | @CallSuper 21 | protected void attachBaseContext(Context base) { 22 | super.attachBaseContext(base); 23 | MultiDex.install(this); 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/example/learn/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.example.learn 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() 6 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/com/sappu/learn/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package com.sappu.learn 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/kotlin/vdrs/sappu/lafk/learn/MainActivity.kt: -------------------------------------------------------------------------------- 1 | package vdrs.sappu.lafk.learn 2 | 3 | import io.flutter.embedding.android.FlutterActivity 4 | 5 | class MainActivity: FlutterActivity() { 6 | } 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable-v21/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/drawable/launch_background.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 12 | 13 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-ldpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-ldpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.png -------------------------------------------------------------------------------- /android/app/src/main/res/values-night/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 9 | 15 | 18 | 19 | -------------------------------------------------------------------------------- /android/app/src/profile/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | buildscript { 2 | ext.kotlin_version = '1.9.0' 3 | repositories { 4 | google() 5 | mavenCentral() 6 | } 7 | 8 | dependencies { 9 | classpath 'com.android.tools.build:gradle:8.1.0' 10 | classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | mavenCentral() 18 | } 19 | } 20 | 21 | rootProject.buildDir = '../build' 22 | subprojects { 23 | project.buildDir = "${rootProject.buildDir}/${project.name}" 24 | } 25 | subprojects { 26 | project.evaluationDependsOn(':app') 27 | } 28 | 29 | tasks.register("clean", Delete) { 30 | delete rootProject.buildDir 31 | } 32 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | org.gradle.jvmargs=-Xmx4G 2 | android.useAndroidX=true 3 | android.enableJetifier=true 4 | -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionBase=GRADLE_USER_HOME 2 | distributionPath=wrapper/dists 3 | distributionUrl=https\://services.gradle.org/distributions/gradle-8.1.1-bin.zip 4 | networkTimeout=10000 5 | zipStoreBase=GRADLE_USER_HOME 6 | zipStorePath=wrapper/dists 7 | -------------------------------------------------------------------------------- /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 | settings.ext.flutterSdkPath = flutterSdkPath() 10 | 11 | includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle") 12 | 13 | repositories { 14 | google() 15 | mavenCentral() 16 | gradlePluginPortal() 17 | } 18 | 19 | plugins { 20 | id "dev.flutter.flutter-gradle-plugin" version "1.0.0" apply false 21 | } 22 | } 23 | 24 | plugins { 25 | id "dev.flutter.flutter-plugin-loader" version "1.0.0" 26 | id "com.android.application" version "7.3.0" apply false 27 | } 28 | 29 | include ":app" 30 | -------------------------------------------------------------------------------- /assets/colours/colours-cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/colours/colours-cover.jpg -------------------------------------------------------------------------------- /assets/colours/colours-cover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/colours/colours-cover.png -------------------------------------------------------------------------------- /assets/explore/dot.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 9 | -------------------------------------------------------------------------------- /assets/fonts/MaterialIcons-Regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/MaterialIcons-Regular.ttf -------------------------------------------------------------------------------- /assets/fonts/comic-sans-ms/COMIC.TTF: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/comic-sans-ms/COMIC.TTF -------------------------------------------------------------------------------- /assets/fonts/comic-sans-ms/ComicSansMS3.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/comic-sans-ms/ComicSansMS3.ttf -------------------------------------------------------------------------------- /assets/fonts/comic-sans-ms/comici.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/comic-sans-ms/comici.ttf -------------------------------------------------------------------------------- /assets/fonts/comic-sans-ms/comicz.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/comic-sans-ms/comicz.ttf -------------------------------------------------------------------------------- /assets/fonts/comic-sans-ms/design.graffiti.comicsansms.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/comic-sans-ms/design.graffiti.comicsansms.ttf -------------------------------------------------------------------------------- /assets/fonts/comic-sans-ms/design.graffiti.comicsansmsgras.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fonts/comic-sans-ms/design.graffiti.comicsansmsgras.ttf -------------------------------------------------------------------------------- /assets/fruitsVeges/cover.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fruitsVeges/cover.jpg -------------------------------------------------------------------------------- /assets/fruitsVeges/onion.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fruitsVeges/onion.png -------------------------------------------------------------------------------- /assets/fruitsVeges/orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/fruitsVeges/potato.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/fruitsVeges/strawberry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/fruitsVeges/strawberry.png -------------------------------------------------------------------------------- /assets/fruitsVeges/tomato.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/alphabet/alphabets.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/alphabet/alphabets.jpg -------------------------------------------------------------------------------- /assets/images/alphabet/ball.svg: -------------------------------------------------------------------------------- 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 | 39 | 40 | 41 | 42 | 43 | 44 | -------------------------------------------------------------------------------- /assets/images/alphabet/dog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/alphabet/orange.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/alphabet/table.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /assets/images/alphabet/umbrella.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 8 | 13 | 15 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /assets/images/alphabet/window.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 13 | 16 | -------------------------------------------------------------------------------- /assets/images/alphabet/xerox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 15 | -------------------------------------------------------------------------------- /assets/images/alphabet/yellow.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/alphabet/zero.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/animal/animals.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/animal/animals.jpg -------------------------------------------------------------------------------- /assets/images/animal/dog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/animal/fox.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/animal/goat.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/animal/monkey.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /assets/images/animal/snake.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/birds/birds.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/birds/birds.jpg -------------------------------------------------------------------------------- /assets/images/body/Ankle.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /assets/images/body/Hair.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/body/Hips.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /assets/images/body/Knee.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/body/Lips.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/images/body/Thigh.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /assets/images/body/body.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/body/body.jpg -------------------------------------------------------------------------------- /assets/images/dp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/dp.png -------------------------------------------------------------------------------- /assets/images/email.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/flowers/flower-icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 7 | 10 | 11 | 18 | 22 | 23 | -------------------------------------------------------------------------------- /assets/images/flowers/flower_banner.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/flowers/flower_banner.jpeg -------------------------------------------------------------------------------- /assets/images/flowers/sunflower.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/git.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /assets/images/github.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/images/gitlab.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /assets/images/icon_abc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/icon_abc.png -------------------------------------------------------------------------------- /assets/images/linkedin.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /assets/images/numbers/eight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/eight.png -------------------------------------------------------------------------------- /assets/images/numbers/five.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/five.png -------------------------------------------------------------------------------- /assets/images/numbers/four.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/four.png -------------------------------------------------------------------------------- /assets/images/numbers/nine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/nine.png -------------------------------------------------------------------------------- /assets/images/numbers/numbers.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/numbers.jpg -------------------------------------------------------------------------------- /assets/images/numbers/one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/one.png -------------------------------------------------------------------------------- /assets/images/numbers/seven.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/seven.png -------------------------------------------------------------------------------- /assets/images/numbers/six.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/six.png -------------------------------------------------------------------------------- /assets/images/numbers/three.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/three.png -------------------------------------------------------------------------------- /assets/images/numbers/two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/two.png -------------------------------------------------------------------------------- /assets/images/numbers/zero.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/numbers/zero.png -------------------------------------------------------------------------------- /assets/images/quiz.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/quiz.jpg -------------------------------------------------------------------------------- /assets/images/shape.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/shape.gif -------------------------------------------------------------------------------- /assets/images/solar/solar.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/solar/solar.gif -------------------------------------------------------------------------------- /assets/images/studying.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/images/studying.png -------------------------------------------------------------------------------- /assets/quiz/q1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q1.jpg -------------------------------------------------------------------------------- /assets/quiz/q10.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q10.jpg -------------------------------------------------------------------------------- /assets/quiz/q2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q2.jpg -------------------------------------------------------------------------------- /assets/quiz/q5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q5.jpg -------------------------------------------------------------------------------- /assets/quiz/q6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q6.jpg -------------------------------------------------------------------------------- /assets/quiz/q7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q7.jpg -------------------------------------------------------------------------------- /assets/quiz/q8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q8.jpg -------------------------------------------------------------------------------- /assets/quiz/q9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/quiz/q9.jpg -------------------------------------------------------------------------------- /assets/seasons/autumn.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 7 | 8 | 12 | 25 | -------------------------------------------------------------------------------- /assets/seasons/spring.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /assets/seasons/summer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/seasons/winter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /assets/sounds/animals/bear_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/bear_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/cat_sound.wav: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/cat_sound.wav -------------------------------------------------------------------------------- /assets/sounds/animals/cow_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/cow_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/deer_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/deer_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/dog_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/dog_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/elephant_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/elephant_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/fox_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/fox_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/giraffe_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/giraffe_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/goat_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/goat_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/horse_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/horse_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/kangaroo_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/kangaroo_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/lion_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/lion_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/monkey_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/monkey_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/pig_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/pig_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/rabbit_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/rabbit_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/sheep_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/sheep_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/snake_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/snake_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/squirrel_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/squirrel_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/tiger_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/tiger_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/animals/zebra_sound.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/animals/zebra_sound.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Bagula.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Bagula.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Baya.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Baya.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Bulbul.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Bulbul.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Crow.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Crow.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Duck.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Duck.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Eagle.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Eagle.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Goose.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Goose.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Hen.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Hen.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Hummingbird.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Hummingbird.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Kingfisher.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Kingfisher.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Koel.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Koel.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Maina.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Maina.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Ostrich.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Ostrich.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Owl.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Owl.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Parrot.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Parrot.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Pigeon.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Pigeon.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Robin.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Robin.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Seagull.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Seagull.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Sparrow.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Sparrow.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Swan.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Swan.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Vulture.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Vulture.mp3 -------------------------------------------------------------------------------- /assets/sounds/birds/Woodpecker.mp3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/assets/sounds/birds/Woodpecker.mp3 -------------------------------------------------------------------------------- /devtools_options.yaml: -------------------------------------------------------------------------------- 1 | description: This file stores settings for Dart & Flutter DevTools. 2 | documentation: https://docs.flutter.dev/tools/devtools/extensions#configure-extension-enablement-states 3 | extensions: 4 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/10.txt: -------------------------------------------------------------------------------- 1 | 1.0.10 2 | Change log: 3 | - Fixed animals popup behaviour. 4 | - Added body parts page. 5 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/changelogs/20.txt: -------------------------------------------------------------------------------- 1 | 1.1.0 2 | Change log: 3 | - Added Birds page 4 | - Added Dark theme -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/full_description.txt: -------------------------------------------------------------------------------- 1 |

This is an English Learning app for kids, with interactive images sounds and colorful design. It contains the basics which are essential for the kids, like

More activities are planned.

2 | -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/icon.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/01.jpg -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/02.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/03.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/04.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/05.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/06.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/07.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/images/phoneScreenshots/08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/fastlane/metadata/android/en-US/images/phoneScreenshots/08.png -------------------------------------------------------------------------------- /fastlane/metadata/android/en-US/short_description.txt: -------------------------------------------------------------------------------- 1 | English Learning app for kids -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | 11.0 25 | 26 | 27 | -------------------------------------------------------------------------------- /ios/Flutter/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Flutter/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcodeproj/project.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.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PreviewsEnabled 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /ios/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import UIKit 2 | import Flutter 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 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@2x~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-20~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@2x~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-29~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@2x~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-40~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@2x~car.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-60@3x~car.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon-83.5@2x~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@2x~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon@3x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ios-marketing.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/AppIcon~ipad.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/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/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png -------------------------------------------------------------------------------- /ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png -------------------------------------------------------------------------------- /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. -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | Learn 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | learn 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 | -------------------------------------------------------------------------------- /ios/Runner/Runner-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | #import "GeneratedPluginRegistrant.h" 2 | -------------------------------------------------------------------------------- /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/cubit/index_cubit.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter_bloc/flutter_bloc.dart'; 2 | 3 | class IndexCubit extends Cubit { 4 | IndexCubit() : super(0); 5 | 6 | void changeIndex(int newIndex) { 7 | emit(newIndex); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /lib/favorite_page_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:shared_preferences/shared_preferences.dart'; 3 | 4 | class FavouriteScreenProvider with ChangeNotifier { 5 | bool _drawingBoard = false; 6 | bool get drawingBoard => _drawingBoard; 7 | 8 | List _selectedItemList = []; 9 | 10 | List get selectedItemList => _selectedItemList; 11 | 12 | FavouriteScreenProvider() { 13 | loadFromPrefs(); 14 | } 15 | 16 | void setDrawingBoard() { 17 | _drawingBoard = !_drawingBoard; 18 | notifyListeners(); 19 | saveToPrefs(); 20 | } 21 | 22 | void setList(int item) { 23 | _selectedItemList.add(item); 24 | notifyListeners(); 25 | saveToPrefs(); 26 | } 27 | 28 | void removeList(int item) { 29 | _selectedItemList.remove(item); 30 | notifyListeners(); 31 | saveToPrefs(); 32 | } 33 | 34 | Future loadFromPrefs() async { 35 | final prefs = await SharedPreferences.getInstance(); 36 | _drawingBoard = prefs.getBool('drawingBoard') ?? false; 37 | _selectedItemList = prefs 38 | .getStringList('selectedItemList') 39 | ?.map((e) => int.parse(e)) 40 | .toList() ?? 41 | []; 42 | notifyListeners(); 43 | } 44 | 45 | Future saveToPrefs() async { 46 | final prefs = await SharedPreferences.getInstance(); 47 | await prefs.setBool('drawingBoard', _drawingBoard); 48 | await prefs.setStringList('selectedItemList', 49 | _selectedItemList.map((e) => e.toString()).toList()); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /lib/main.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:adaptive_theme/adaptive_theme.dart'; 3 | import 'package:learn/favorite_page_provider.dart'; 4 | import 'package:learn/landing_page.dart'; 5 | import 'package:learn/pages/main_home.dart'; 6 | import 'package:learn/utils/route/routes.dart'; 7 | import 'package:learn/theme_provider.dart'; 8 | // ignore: depend_on_referenced_packages 9 | import 'package:provider/provider.dart'; 10 | import 'package:shared_preferences/shared_preferences.dart'; 11 | 12 | DateTime? currentBackPressTime; 13 | bool visitedGettingStartedPageOnceBool = false; //to store the value of 14 | 15 | void main() async { 16 | WidgetsFlutterBinding.ensureInitialized(); 17 | final savedThemeMode = await AdaptiveTheme.getThemeMode(); 18 | final prefs = await SharedPreferences.getInstance(); 19 | visitedGettingStartedPageOnceBool = 20 | prefs.getBool('visitedGettingStartedPageOnce') ?? 21 | false; //if its is null i.e first time then set to false 22 | 23 | runApp(MultiProvider( 24 | providers: [ 25 | ChangeNotifierProvider( 26 | create: (context) => ThemeProvider(), 27 | ), 28 | ChangeNotifierProvider(create: (context) => FavouriteScreenProvider()), 29 | ], 30 | child: MyApp(savedThemeMode: savedThemeMode), 31 | )); 32 | } 33 | 34 | class MyApp extends StatelessWidget { 35 | final AdaptiveThemeMode? savedThemeMode; 36 | 37 | const MyApp({Key? key, this.savedThemeMode}) : super(key: key); 38 | 39 | @override 40 | Widget build(BuildContext context) { 41 | return Consumer( 42 | builder: (context, themeProvider, child) { 43 | return MaterialApp( 44 | debugShowCheckedModeBanner: false, 45 | title: 'Learn', 46 | theme: ThemeData.light(), 47 | darkTheme: ThemeData.dark(), 48 | themeMode: themeProvider.themeMode, 49 | home: visitedGettingStartedPageOnceBool 50 | ? const MainHome() 51 | : const LandingPage(), //if page opened for first time , show landing page (getting started page), else show home page 52 | onGenerateRoute: Routers.generateRoute, 53 | ); 54 | }, 55 | ); 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /lib/model/module.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Module { 4 | final String name; 5 | final String description; 6 | final String thumbnailPath; 7 | final MaterialPageRoute route; 8 | Color backgroundColor; 9 | 10 | Module({ 11 | required this.name, 12 | required this.description, 13 | required this.thumbnailPath, 14 | required this.route, 15 | required this.backgroundColor, 16 | }); 17 | } 18 | -------------------------------------------------------------------------------- /lib/models/animal_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Animal { 4 | final String name; 5 | final String svgAsset; 6 | final String soundAsset; 7 | final Color backgroundColor; 8 | 9 | Animal({ 10 | required this.name, 11 | required this.svgAsset, 12 | required this.soundAsset, 13 | required this.backgroundColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/bird_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Bird { 4 | final String name; 5 | final String svgAsset; 6 | final String soundAsset; 7 | final Color backgroundColor; 8 | 9 | Bird({ 10 | required this.name, 11 | required this.svgAsset, 12 | required this.soundAsset, 13 | required this.backgroundColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/colours_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Colours { 4 | final String name; 5 | final String jpgAsset; 6 | final Color bgColor; 7 | final Color fontColor; 8 | 9 | Colours({ 10 | required this.name, 11 | required this.jpgAsset, 12 | required this.bgColor, 13 | required this.fontColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/flower_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Flower { 4 | final String name; 5 | final String resource; 6 | final Color background; 7 | 8 | Flower({ 9 | required this.name, 10 | required this.resource, 11 | required this.background, 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /lib/models/itemdata_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ItemData { 4 | final String iconAsset; 5 | final String title; 6 | final String description; 7 | final Color backgroundColor; 8 | 9 | ItemData({ 10 | required this.iconAsset, 11 | required this.title, 12 | required this.description, 13 | required this.backgroundColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/number_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Number { 4 | final String name; 5 | final String resource; 6 | final Color background; 7 | 8 | Number({ 9 | required this.name, 10 | required this.resource, 11 | required this.background, 12 | }); 13 | } 14 | -------------------------------------------------------------------------------- /lib/models/occupation_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Occupation { 4 | final String name; 5 | final String description; 6 | final String svgAsset; 7 | final Color backgroundColor; 8 | 9 | Occupation({ 10 | required this.name, 11 | required this.description, 12 | required this.svgAsset, 13 | required this.backgroundColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/planet_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Planet { 4 | final String name; 5 | final String svgAsset; 6 | final String description; 7 | final Color backgroundColor; 8 | 9 | Planet({ 10 | required this.name, 11 | required this.svgAsset, 12 | required this.description, 13 | required this.backgroundColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/models/season_model.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class Season { 4 | final String name; 5 | final String description; 6 | final String imageAsset; 7 | final Color backgroundColor; 8 | 9 | Season({ 10 | required this.name, 11 | required this.description, 12 | required this.imageAsset, 13 | required this.backgroundColor, 14 | }); 15 | } 16 | -------------------------------------------------------------------------------- /lib/pages/modules/shapes.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:learn/utils/constants.dart'; 3 | import 'package:learn/widgets/drawer.dart'; 4 | 5 | import '../../utils/const_dimensions.dart'; 6 | 7 | class ShapesPage extends StatelessWidget { 8 | const ShapesPage({Key? key}) : super(key: key); 9 | 10 | @override 11 | Widget build(BuildContext context) { 12 | return Scaffold( 13 | appBar: AppBar( 14 | title: const Text( 15 | AppConstants.shape, 16 | style: TextStyle(fontWeight: FontWeight.bold), 17 | ), 18 | ), 19 | backgroundColor: const Color.fromARGB(255, 0, 187, 238), 20 | body: Center( 21 | child: Column( 22 | mainAxisAlignment: MainAxisAlignment.center, 23 | children: [ 24 | Image.asset( 25 | 'assets/images/shape.gif', 26 | ), 27 | const SizedBox(height: ConstantDimensions.heightMedium), 28 | const Text( 29 | AppConstants.underConstruction, 30 | style: TextStyle(fontSize: 20, fontWeight: FontWeight.bold), 31 | ), 32 | ], 33 | ), 34 | ), 35 | drawer: const MyDrawer(), 36 | ); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /lib/theme_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ThemeProvider with ChangeNotifier { 4 | ThemeMode _themeMode = ThemeMode.light; 5 | 6 | ThemeMode get themeMode => _themeMode; 7 | 8 | void toggleTheme() { 9 | _themeMode = _themeMode == ThemeMode.light ? ThemeMode.dark : ThemeMode.light; 10 | notifyListeners(); 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /lib/utils/const_dimensions.dart: -------------------------------------------------------------------------------- 1 | // ignore_for_file: constant_identifier_names 2 | 3 | class ConstantDimensions { 4 | static const double heightExtraSmall = 6; 5 | static const double heightSmall = 10; 6 | static const double heightSmall_Medium = 16; 7 | static const double heightMedium = 20; 8 | static const double heightMedium_Large = 28; 9 | static const double heightLarge = 30; 10 | static const double heightExtraLarge = 50; 11 | 12 | static const double widthExtraSmall = 6; 13 | static const double widthSmall = 10; 14 | static const double widthSmall_Medium = 16; 15 | static const double widthMedium = 20; 16 | static const double widthMedium_Large = 28; 17 | static const double widthLarge = 30; 18 | static const double widthExtraLarge = 50; 19 | 20 | static const double heightSmallImage = 325; 21 | static const double heightBigImage = 350; 22 | 23 | static const List exceptions = [135, 375, 5]; 24 | } 25 | -------------------------------------------------------------------------------- /lib/utils/responsive_screen_provider.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | class ResponsiveScreenProvider { 4 | static bool isMobileScreen(BuildContext context) { 5 | return MediaQuery.of(context).size.width < 480; 6 | } 7 | 8 | static bool isTabScreen(BuildContext context) { 9 | return MediaQuery.of(context).size.width > 480 && 10 | MediaQuery.of(context).size.width < 800; 11 | } 12 | 13 | static bool isDesktopScreen(BuildContext context) { 14 | return MediaQuery.of(context).size.width >= 800; 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /lib/utils/route/page_transtion.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | 3 | PageRouteBuilder slidePageRoute(Widget destinationScreen) { 4 | return PageRouteBuilder( 5 | pageBuilder: (context, animation, secondaryAnimation) { 6 | return destinationScreen; // Navigate to the provided destination screen 7 | }, 8 | transitionsBuilder: (context, animation, secondaryAnimation, child) { 9 | var curvedAnimation = CurvedAnimation( 10 | parent: animation, 11 | curve: Curves.easeOutQuad, 12 | ); 13 | 14 | return FadeTransition( 15 | opacity: curvedAnimation, 16 | child: child, 17 | ); 18 | }, 19 | ); 20 | } 21 | -------------------------------------------------------------------------------- /lib/utils/route/route_constant.dart: -------------------------------------------------------------------------------- 1 | class AllRoutesConstant { 2 | static const String loginRoute = "/login"; 3 | static const String homeRoute = "/home"; 4 | static const String exploreRoute = "/explore"; 5 | static const String favoriteRoute = "/favorite"; 6 | static const String animalRoute = "/animals"; 7 | static const String birdsRoute = "/birds"; 8 | static const String shapesRoute = "/shapes"; 9 | static const String partsRoute = "/parts"; 10 | static const String solarRoute = "/solar"; 11 | static const String atozRoute = "/atoz"; 12 | static const String numberRoute = "/number"; 13 | static const String aboutRoute = "/about"; 14 | static const String colourRoute = "/colours"; 15 | static const String flowerRoute = "/flowers"; 16 | static const String quizRoute = "/quiz"; 17 | static const String seasonRoute = "/seasons"; 18 | static const String occupationRoute = '/occupations'; 19 | static const String fruitRoute = "/fruit"; 20 | static const String drawingboardRoute = "/drawingboard"; 21 | static const String landingRoute = '/landing_page'; 22 | static const String mainhomeRoute = '/main_home'; 23 | } -------------------------------------------------------------------------------- /lib/widgets/navbar/navbar.dart: -------------------------------------------------------------------------------- 1 | import 'package:flutter/material.dart'; 2 | import 'package:flutter_bloc/flutter_bloc.dart'; 3 | import 'package:learn/cubit/index_cubit.dart'; 4 | 5 | class BottomNavBar extends StatefulWidget { 6 | final PageController pageController; 7 | 8 | const BottomNavBar({ 9 | super.key, 10 | required this.pageController, 11 | }); 12 | 13 | @override 14 | State createState() => _BottomNavBarState(); 15 | } 16 | 17 | class _BottomNavBarState extends State { 18 | @override 19 | Widget build(BuildContext context) { 20 | return BlocBuilder( 21 | builder: (context, index) { 22 | final currentPageIndex = index; 23 | return NavigationBar( 24 | selectedIndex: currentPageIndex, 25 | onDestinationSelected: (index) { 26 | // Animate to the selected page 27 | widget.pageController.animateToPage( 28 | index, 29 | duration: const Duration(milliseconds: 300), 30 | curve: Curves.easeInOut, 31 | ); 32 | context.read().changeIndex(index); 33 | }, 34 | destinations: const [ 35 | NavigationDestination( 36 | icon: Icon(Icons.home_rounded), 37 | label: "Home", 38 | ), 39 | NavigationDestination( 40 | icon: Icon(Icons.search_rounded), 41 | label: "Explore", 42 | ), 43 | NavigationDestination( 44 | icon: Icon(Icons.favorite_rounded), 45 | label: "Favorite", 46 | ), 47 | NavigationDestination( 48 | icon: Icon(Icons.person_rounded), 49 | label: "About", 50 | ), 51 | ], 52 | ); 53 | }, 54 | ); 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /linux/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral 2 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | #include 10 | 11 | void fl_register_plugins(FlPluginRegistry* registry) { 12 | g_autoptr(FlPluginRegistrar) url_launcher_linux_registrar = 13 | fl_plugin_registry_get_registrar_for_plugin(registry, "UrlLauncherPlugin"); 14 | url_launcher_plugin_register_with_registrar(url_launcher_linux_registrar); 15 | } 16 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void fl_register_plugins(FlPluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /linux/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | url_launcher_linux 7 | ) 8 | 9 | list(APPEND FLUTTER_FFI_PLUGIN_LIST 10 | ) 11 | 12 | set(PLUGIN_BUNDLED_LIBRARIES) 13 | 14 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 15 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/linux plugins/${plugin}) 16 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 17 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 19 | endforeach(plugin) 20 | 21 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) 22 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/linux plugins/${ffi_plugin}) 23 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) 24 | endforeach(ffi_plugin) 25 | -------------------------------------------------------------------------------- /linux/main.cc: -------------------------------------------------------------------------------- 1 | #include "my_application.h" 2 | 3 | int main(int argc, char** argv) { 4 | g_autoptr(MyApplication) app = my_application_new(); 5 | return g_application_run(G_APPLICATION(app), argc, argv); 6 | } 7 | -------------------------------------------------------------------------------- /linux/my_application.h: -------------------------------------------------------------------------------- 1 | #ifndef FLUTTER_MY_APPLICATION_H_ 2 | #define FLUTTER_MY_APPLICATION_H_ 3 | 4 | #include 5 | 6 | G_DECLARE_FINAL_TYPE(MyApplication, my_application, MY, APPLICATION, 7 | GtkApplication) 8 | 9 | /** 10 | * my_application_new: 11 | * 12 | * Creates a new Flutter-based application. 13 | * 14 | * Returns: a new #MyApplication. 15 | */ 16 | MyApplication* my_application_new(); 17 | 18 | #endif // FLUTTER_MY_APPLICATION_H_ 19 | -------------------------------------------------------------------------------- /macos/.gitignore: -------------------------------------------------------------------------------- 1 | # Flutter-related 2 | **/Flutter/ephemeral/ 3 | **/Pods/ 4 | 5 | # Xcode-related 6 | **/dgph 7 | **/xcuserdata/ 8 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ephemeral/Flutter-Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /macos/Flutter/Flutter-Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "ephemeral/Flutter-Generated.xcconfig" 2 | -------------------------------------------------------------------------------- /macos/Flutter/GeneratedPluginRegistrant.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | import FlutterMacOS 6 | import Foundation 7 | 8 | import audio_session 9 | import flutter_tts 10 | import just_audio 11 | import path_provider_foundation 12 | import shared_preferences_foundation 13 | import url_launcher_macos 14 | 15 | func RegisterGeneratedPlugins(registry: FlutterPluginRegistry) { 16 | AudioSessionPlugin.register(with: registry.registrar(forPlugin: "AudioSessionPlugin")) 17 | FlutterTtsPlugin.register(with: registry.registrar(forPlugin: "FlutterTtsPlugin")) 18 | JustAudioPlugin.register(with: registry.registrar(forPlugin: "JustAudioPlugin")) 19 | PathProviderPlugin.register(with: registry.registrar(forPlugin: "PathProviderPlugin")) 20 | SharedPreferencesPlugin.register(with: registry.registrar(forPlugin: "SharedPreferencesPlugin")) 21 | UrlLauncherPlugin.register(with: registry.registrar(forPlugin: "UrlLauncherPlugin")) 22 | } 23 | -------------------------------------------------------------------------------- /macos/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/Runner.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /macos/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/Runner/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | @NSApplicationMain 5 | class AppDelegate: FlutterAppDelegate { 6 | override func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { 7 | return true 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "16x16", 5 | "idiom" : "mac", 6 | "filename" : "app_icon_16.png", 7 | "scale" : "1x" 8 | }, 9 | { 10 | "size" : "16x16", 11 | "idiom" : "mac", 12 | "filename" : "app_icon_32.png", 13 | "scale" : "2x" 14 | }, 15 | { 16 | "size" : "32x32", 17 | "idiom" : "mac", 18 | "filename" : "app_icon_32.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "32x32", 23 | "idiom" : "mac", 24 | "filename" : "app_icon_64.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "128x128", 29 | "idiom" : "mac", 30 | "filename" : "app_icon_128.png", 31 | "scale" : "1x" 32 | }, 33 | { 34 | "size" : "128x128", 35 | "idiom" : "mac", 36 | "filename" : "app_icon_256.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "256x256", 41 | "idiom" : "mac", 42 | "filename" : "app_icon_256.png", 43 | "scale" : "1x" 44 | }, 45 | { 46 | "size" : "256x256", 47 | "idiom" : "mac", 48 | "filename" : "app_icon_512.png", 49 | "scale" : "2x" 50 | }, 51 | { 52 | "size" : "512x512", 53 | "idiom" : "mac", 54 | "filename" : "app_icon_512.png", 55 | "scale" : "1x" 56 | }, 57 | { 58 | "size" : "512x512", 59 | "idiom" : "mac", 60 | "filename" : "app_icon_1024.png", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_1024.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_128.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_16.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_256.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_32.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_512.png -------------------------------------------------------------------------------- /macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/macos/Runner/Assets.xcassets/AppIcon.appiconset/app_icon_64.png -------------------------------------------------------------------------------- /macos/Runner/Configs/AppInfo.xcconfig: -------------------------------------------------------------------------------- 1 | // Application-level settings for the Runner target. 2 | // 3 | // This may be replaced with something auto-generated from metadata (e.g., pubspec.yaml) in the 4 | // future. If not, the values below would default to using the project name when this becomes a 5 | // 'flutter create' template. 6 | 7 | // The application's name. By default this is also the title of the Flutter window. 8 | PRODUCT_NAME = learn 9 | 10 | // The application's bundle identifier 11 | PRODUCT_BUNDLE_IDENTIFIER = vdrs.sappu.lafk.learn 12 | 13 | // The copyright displayed in application information 14 | PRODUCT_COPYRIGHT = Copyright © 2024 vdrs.sappu.lafk. All rights reserved. 15 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Debug.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Debug.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Release.xcconfig: -------------------------------------------------------------------------------- 1 | #include "../../Flutter/Flutter-Release.xcconfig" 2 | #include "Warnings.xcconfig" 3 | -------------------------------------------------------------------------------- /macos/Runner/Configs/Warnings.xcconfig: -------------------------------------------------------------------------------- 1 | WARNING_CFLAGS = -Wall -Wconditional-uninitialized -Wnullable-to-nonnull-conversion -Wmissing-method-return-type -Woverlength-strings 2 | GCC_WARN_UNDECLARED_SELECTOR = YES 3 | CLANG_UNDEFINED_BEHAVIOR_SANITIZER_NULLABILITY = YES 4 | CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE 5 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES 6 | CLANG_WARN_PRAGMA_PACK = YES 7 | CLANG_WARN_STRICT_PROTOTYPES = YES 8 | CLANG_WARN_COMMA = YES 9 | GCC_WARN_STRICT_SELECTOR_MATCH = YES 10 | CLANG_WARN_OBJC_REPEATED_USE_OF_WEAK = YES 11 | CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES 12 | GCC_WARN_SHADOW = YES 13 | CLANG_WARN_UNREACHABLE_CODE = YES 14 | -------------------------------------------------------------------------------- /macos/Runner/DebugProfile.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | com.apple.security.cs.allow-jit 8 | 9 | com.apple.security.network.server 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /macos/Runner/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | $(FLUTTER_BUILD_NAME) 21 | CFBundleVersion 22 | $(FLUTTER_BUILD_NUMBER) 23 | LSMinimumSystemVersion 24 | $(MACOSX_DEPLOYMENT_TARGET) 25 | NSHumanReadableCopyright 26 | $(PRODUCT_COPYRIGHT) 27 | NSMainNibFile 28 | MainMenu 29 | NSPrincipalClass 30 | NSApplication 31 | 32 | 33 | -------------------------------------------------------------------------------- /macos/Runner/MainFlutterWindow.swift: -------------------------------------------------------------------------------- 1 | import Cocoa 2 | import FlutterMacOS 3 | 4 | class MainFlutterWindow: NSWindow { 5 | override func awakeFromNib() { 6 | let flutterViewController = FlutterViewController() 7 | let windowFrame = self.frame 8 | self.contentViewController = flutterViewController 9 | self.setFrame(windowFrame, display: true) 10 | 11 | RegisterGeneratedPlugins(registry: flutterViewController) 12 | 13 | super.awakeFromNib() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /macos/Runner/Release.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | com.apple.security.app-sandbox 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /macos/RunnerTests/RunnerTests.swift: -------------------------------------------------------------------------------- 1 | import FlutterMacOS 2 | import Cocoa 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 | -------------------------------------------------------------------------------- /readme/GitHub.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/GitHub.png -------------------------------------------------------------------------------- /readme/Gssoc Label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/Gssoc Label.png -------------------------------------------------------------------------------- /readme/IzzyOnDroid.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/IzzyOnDroid.png -------------------------------------------------------------------------------- /readme/five.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/five.png -------------------------------------------------------------------------------- /readme/four.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/four.png -------------------------------------------------------------------------------- /readme/one.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/one.png -------------------------------------------------------------------------------- /readme/six.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/six.png -------------------------------------------------------------------------------- /readme/three.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/three.png -------------------------------------------------------------------------------- /readme/two.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/two.png -------------------------------------------------------------------------------- /readme/vsoc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/readme/vsoc.png -------------------------------------------------------------------------------- /test/widget_test.dart: -------------------------------------------------------------------------------- 1 | // This is a basic Flutter widget test. 2 | // 3 | // To perform an interaction with a widget in your test, use the WidgetTester 4 | // utility in the flutter_test package. For example, you can send tap and scroll 5 | // gestures. You can also use WidgetTester to find child widgets in the widget 6 | // tree, read text, and verify that the values of widget properties are correct. 7 | 8 | import 'package:flutter/material.dart'; 9 | import 'package:flutter_test/flutter_test.dart'; 10 | 11 | import 'package:learn/main.dart'; 12 | 13 | void main() { 14 | testWidgets('Counter increments smoke test', (WidgetTester tester) async { 15 | // Build our app and trigger a frame. 16 | await tester.pumpWidget(const MyApp()); 17 | 18 | // Verify that our counter starts at 0. 19 | expect(find.text('0'), findsOneWidget); 20 | expect(find.text('1'), findsNothing); 21 | 22 | // Tap the '+' icon and trigger a frame. 23 | await tester.tap(find.byIcon(Icons.add)); 24 | await tester.pump(); 25 | 26 | // Verify that our counter has incremented. 27 | expect(find.text('0'), findsNothing); 28 | expect(find.text('1'), findsOneWidget); 29 | }); 30 | } 31 | -------------------------------------------------------------------------------- /web/README.txt: -------------------------------------------------------------------------------- 1 | Add this to your HTML : 2 | 3 | 4 | 5 | 6 | Add this to your app's manifest.json: 7 | 8 | ... 9 | { 10 | "icons": [ 11 | { "src": "/favicon.ico", "type": "image/x-icon", "sizes": "16x16 32x32" }, 12 | { "src": "/icon-192.png", "type": "image/png", "sizes": "192x192" }, 13 | { "src": "/icon-512.png", "type": "image/png", "sizes": "512x512" }, 14 | { "src": "/icon-192-maskable.png", "type": "image/png", "sizes": "192x192", "purpose": "maskable" }, 15 | { "src": "/icon-512-maskable.png", "type": "image/png", "sizes": "512x512", "purpose": "maskable" } 16 | ] 17 | } 18 | ... 19 | -------------------------------------------------------------------------------- /web/apple-touch-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/apple-touch-icon.png -------------------------------------------------------------------------------- /web/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/favicon.ico -------------------------------------------------------------------------------- /web/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/favicon.png -------------------------------------------------------------------------------- /web/icon-192-maskable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icon-192-maskable.png -------------------------------------------------------------------------------- /web/icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icon-192.png -------------------------------------------------------------------------------- /web/icon-512-maskable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icon-512-maskable.png -------------------------------------------------------------------------------- /web/icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icons/Icon-192.png -------------------------------------------------------------------------------- /web/icons/Icon-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icons/Icon-512.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icons/Icon-maskable-192.png -------------------------------------------------------------------------------- /web/icons/Icon-maskable-512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icons/Icon-maskable-512.png -------------------------------------------------------------------------------- /web/icons/icon-192-maskable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icons/icon-192-maskable.png -------------------------------------------------------------------------------- /web/icons/icon-512-maskable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/web/icons/icon-512-maskable.png -------------------------------------------------------------------------------- /web/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | learn 34 | 35 | 36 | 40 | 41 | 42 | 43 | 44 | 45 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /web/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "learn", 3 | "short_name": "learn", 4 | "start_url": ".", 5 | "display": "standalone", 6 | "background_color": "#0175C2", 7 | "theme_color": "#0175C2", 8 | "description": "A new Flutter project.", 9 | "orientation": "portrait-primary", 10 | "prefer_related_applications": false, 11 | "icons": [ 12 | { 13 | "src": "icons/Icon-192.png", 14 | "sizes": "192x192", 15 | "type": "image/png" 16 | }, 17 | { 18 | "src": "icons/Icon-512.png", 19 | "sizes": "512x512", 20 | "type": "image/png" 21 | }, 22 | { 23 | "src": "icons/Icon-maskable-192.png", 24 | "sizes": "192x192", 25 | "type": "image/png", 26 | "purpose": "maskable" 27 | }, 28 | { 29 | "src": "icons/Icon-maskable-512.png", 30 | "sizes": "512x512", 31 | "type": "image/png", 32 | "purpose": "maskable" 33 | } 34 | ] 35 | } 36 | -------------------------------------------------------------------------------- /windows/.gitignore: -------------------------------------------------------------------------------- 1 | flutter/ephemeral/ 2 | 3 | # Visual Studio user-specific files. 4 | *.suo 5 | *.user 6 | *.userosscache 7 | *.sln.docstates 8 | 9 | # Visual Studio build-related files. 10 | x64/ 11 | x86/ 12 | 13 | # Visual Studio cache files 14 | # files ending in .cache can be ignored 15 | *.[Cc]ache 16 | # but keep track of directories ending in .cache 17 | !*.[Cc]ache/ 18 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugin_registrant.cc: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #include "generated_plugin_registrant.h" 8 | 9 | #include 10 | #include 11 | 12 | void RegisterPlugins(flutter::PluginRegistry* registry) { 13 | FlutterTtsPluginRegisterWithRegistrar( 14 | registry->GetRegistrarForPlugin("FlutterTtsPlugin")); 15 | UrlLauncherWindowsRegisterWithRegistrar( 16 | registry->GetRegistrarForPlugin("UrlLauncherWindows")); 17 | } 18 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugin_registrant.h: -------------------------------------------------------------------------------- 1 | // 2 | // Generated file. Do not edit. 3 | // 4 | 5 | // clang-format off 6 | 7 | #ifndef GENERATED_PLUGIN_REGISTRANT_ 8 | #define GENERATED_PLUGIN_REGISTRANT_ 9 | 10 | #include 11 | 12 | // Registers Flutter plugins. 13 | void RegisterPlugins(flutter::PluginRegistry* registry); 14 | 15 | #endif // GENERATED_PLUGIN_REGISTRANT_ 16 | -------------------------------------------------------------------------------- /windows/flutter/generated_plugins.cmake: -------------------------------------------------------------------------------- 1 | # 2 | # Generated file, do not edit. 3 | # 4 | 5 | list(APPEND FLUTTER_PLUGIN_LIST 6 | flutter_tts 7 | url_launcher_windows 8 | ) 9 | 10 | list(APPEND FLUTTER_FFI_PLUGIN_LIST 11 | ) 12 | 13 | set(PLUGIN_BUNDLED_LIBRARIES) 14 | 15 | foreach(plugin ${FLUTTER_PLUGIN_LIST}) 16 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${plugin}/windows plugins/${plugin}) 17 | target_link_libraries(${BINARY_NAME} PRIVATE ${plugin}_plugin) 18 | list(APPEND PLUGIN_BUNDLED_LIBRARIES $) 19 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${plugin}_bundled_libraries}) 20 | endforeach(plugin) 21 | 22 | foreach(ffi_plugin ${FLUTTER_FFI_PLUGIN_LIST}) 23 | add_subdirectory(flutter/ephemeral/.plugin_symlinks/${ffi_plugin}/windows plugins/${ffi_plugin}) 24 | list(APPEND PLUGIN_BUNDLED_LIBRARIES ${${ffi_plugin}_bundled_libraries}) 25 | endforeach(ffi_plugin) 26 | -------------------------------------------------------------------------------- /windows/runner/CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required(VERSION 3.14) 2 | project(runner LANGUAGES CXX) 3 | 4 | # Define the application target. To change its name, change BINARY_NAME in the 5 | # top-level CMakeLists.txt, not the value here, or `flutter run` will no longer 6 | # work. 7 | # 8 | # Any new source files that you add to the application should be added here. 9 | add_executable(${BINARY_NAME} WIN32 10 | "flutter_window.cpp" 11 | "main.cpp" 12 | "utils.cpp" 13 | "win32_window.cpp" 14 | "${FLUTTER_MANAGED_DIR}/generated_plugin_registrant.cc" 15 | "Runner.rc" 16 | "runner.exe.manifest" 17 | ) 18 | 19 | # Apply the standard set of build settings. This can be removed for applications 20 | # that need different build settings. 21 | apply_standard_settings(${BINARY_NAME}) 22 | 23 | # Add preprocessor definitions for the build version. 24 | target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION=\"${FLUTTER_VERSION}\"") 25 | target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MAJOR=${FLUTTER_VERSION_MAJOR}") 26 | target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_MINOR=${FLUTTER_VERSION_MINOR}") 27 | target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_PATCH=${FLUTTER_VERSION_PATCH}") 28 | target_compile_definitions(${BINARY_NAME} PRIVATE "FLUTTER_VERSION_BUILD=${FLUTTER_VERSION_BUILD}") 29 | 30 | # Disable Windows macros that collide with C++ standard library functions. 31 | target_compile_definitions(${BINARY_NAME} PRIVATE "NOMINMAX") 32 | 33 | # Add dependency libraries and include directories. Add any application-specific 34 | # dependencies here. 35 | target_link_libraries(${BINARY_NAME} PRIVATE flutter flutter_wrapper_app) 36 | target_link_libraries(${BINARY_NAME} PRIVATE "dwmapi.lib") 37 | target_include_directories(${BINARY_NAME} PRIVATE "${CMAKE_SOURCE_DIR}") 38 | 39 | # Run the Flutter tool portions of the build. This must not be removed. 40 | add_dependencies(${BINARY_NAME} flutter_assemble) 41 | -------------------------------------------------------------------------------- /windows/runner/flutter_window.cpp: -------------------------------------------------------------------------------- 1 | #include "flutter_window.h" 2 | 3 | #include 4 | 5 | #include "flutter/generated_plugin_registrant.h" 6 | 7 | FlutterWindow::FlutterWindow(const flutter::DartProject& project) 8 | : project_(project) {} 9 | 10 | FlutterWindow::~FlutterWindow() {} 11 | 12 | bool FlutterWindow::OnCreate() { 13 | if (!Win32Window::OnCreate()) { 14 | return false; 15 | } 16 | 17 | RECT frame = GetClientArea(); 18 | 19 | // The size here must match the window dimensions to avoid unnecessary surface 20 | // creation / destruction in the startup path. 21 | flutter_controller_ = std::make_unique( 22 | frame.right - frame.left, frame.bottom - frame.top, project_); 23 | // Ensure that basic setup of the controller was successful. 24 | if (!flutter_controller_->engine() || !flutter_controller_->view()) { 25 | return false; 26 | } 27 | RegisterPlugins(flutter_controller_->engine()); 28 | SetChildContent(flutter_controller_->view()->GetNativeWindow()); 29 | 30 | flutter_controller_->engine()->SetNextFrameCallback([&]() { 31 | this->Show(); 32 | }); 33 | 34 | // Flutter can complete the first frame before the "show window" callback is 35 | // registered. The following call ensures a frame is pending to ensure the 36 | // window is shown. It is a no-op if the first frame hasn't completed yet. 37 | flutter_controller_->ForceRedraw(); 38 | 39 | return true; 40 | } 41 | 42 | void FlutterWindow::OnDestroy() { 43 | if (flutter_controller_) { 44 | flutter_controller_ = nullptr; 45 | } 46 | 47 | Win32Window::OnDestroy(); 48 | } 49 | 50 | LRESULT 51 | FlutterWindow::MessageHandler(HWND hwnd, UINT const message, 52 | WPARAM const wparam, 53 | LPARAM const lparam) noexcept { 54 | // Give Flutter, including plugins, an opportunity to handle window messages. 55 | if (flutter_controller_) { 56 | std::optional result = 57 | flutter_controller_->HandleTopLevelWindowProc(hwnd, message, wparam, 58 | lparam); 59 | if (result) { 60 | return *result; 61 | } 62 | } 63 | 64 | switch (message) { 65 | case WM_FONTCHANGE: 66 | flutter_controller_->engine()->ReloadSystemFonts(); 67 | break; 68 | } 69 | 70 | return Win32Window::MessageHandler(hwnd, message, wparam, lparam); 71 | } 72 | -------------------------------------------------------------------------------- /windows/runner/flutter_window.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_FLUTTER_WINDOW_H_ 2 | #define RUNNER_FLUTTER_WINDOW_H_ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #include "win32_window.h" 10 | 11 | // A window that does nothing but host a Flutter view. 12 | class FlutterWindow : public Win32Window { 13 | public: 14 | // Creates a new FlutterWindow hosting a Flutter view running |project|. 15 | explicit FlutterWindow(const flutter::DartProject& project); 16 | virtual ~FlutterWindow(); 17 | 18 | protected: 19 | // Win32Window: 20 | bool OnCreate() override; 21 | void OnDestroy() override; 22 | LRESULT MessageHandler(HWND window, UINT const message, WPARAM const wparam, 23 | LPARAM const lparam) noexcept override; 24 | 25 | private: 26 | // The project to run. 27 | flutter::DartProject project_; 28 | 29 | // The Flutter instance hosted by this window. 30 | std::unique_ptr flutter_controller_; 31 | }; 32 | 33 | #endif // RUNNER_FLUTTER_WINDOW_H_ 34 | -------------------------------------------------------------------------------- /windows/runner/main.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | #include "flutter_window.h" 6 | #include "utils.h" 7 | 8 | int APIENTRY wWinMain(_In_ HINSTANCE instance, _In_opt_ HINSTANCE prev, 9 | _In_ wchar_t *command_line, _In_ int show_command) { 10 | // Attach to console when present (e.g., 'flutter run') or create a 11 | // new console when running with a debugger. 12 | if (!::AttachConsole(ATTACH_PARENT_PROCESS) && ::IsDebuggerPresent()) { 13 | CreateAndAttachConsole(); 14 | } 15 | 16 | // Initialize COM, so that it is available for use in the library and/or 17 | // plugins. 18 | ::CoInitializeEx(nullptr, COINIT_APARTMENTTHREADED); 19 | 20 | flutter::DartProject project(L"data"); 21 | 22 | std::vector command_line_arguments = 23 | GetCommandLineArguments(); 24 | 25 | project.set_dart_entrypoint_arguments(std::move(command_line_arguments)); 26 | 27 | FlutterWindow window(project); 28 | Win32Window::Point origin(10, 10); 29 | Win32Window::Size size(1280, 720); 30 | if (!window.Create(L"learn", origin, size)) { 31 | return EXIT_FAILURE; 32 | } 33 | window.SetQuitOnClose(true); 34 | 35 | ::MSG msg; 36 | while (::GetMessage(&msg, nullptr, 0, 0)) { 37 | ::TranslateMessage(&msg); 38 | ::DispatchMessage(&msg); 39 | } 40 | 41 | ::CoUninitialize(); 42 | return EXIT_SUCCESS; 43 | } 44 | -------------------------------------------------------------------------------- /windows/runner/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by Runner.rc 4 | // 5 | #define IDI_APP_ICON 101 6 | 7 | // Next default values for new objects 8 | // 9 | #ifdef APSTUDIO_INVOKED 10 | #ifndef APSTUDIO_READONLY_SYMBOLS 11 | #define _APS_NEXT_RESOURCE_VALUE 102 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1001 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /windows/runner/resources/app_icon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/VaibhavCodeClub/learn/1fb298537b4b132cbbabc3d91d40ed3fa7c716a8/windows/runner/resources/app_icon.ico -------------------------------------------------------------------------------- /windows/runner/runner.exe.manifest: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | PerMonitorV2 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /windows/runner/utils.cpp: -------------------------------------------------------------------------------- 1 | #include "utils.h" 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | #include 9 | 10 | void CreateAndAttachConsole() { 11 | if (::AllocConsole()) { 12 | FILE *unused; 13 | if (freopen_s(&unused, "CONOUT$", "w", stdout)) { 14 | _dup2(_fileno(stdout), 1); 15 | } 16 | if (freopen_s(&unused, "CONOUT$", "w", stderr)) { 17 | _dup2(_fileno(stdout), 2); 18 | } 19 | std::ios::sync_with_stdio(); 20 | FlutterDesktopResyncOutputStreams(); 21 | } 22 | } 23 | 24 | std::vector GetCommandLineArguments() { 25 | // Convert the UTF-16 command line arguments to UTF-8 for the Engine to use. 26 | int argc; 27 | wchar_t** argv = ::CommandLineToArgvW(::GetCommandLineW(), &argc); 28 | if (argv == nullptr) { 29 | return std::vector(); 30 | } 31 | 32 | std::vector command_line_arguments; 33 | 34 | // Skip the first argument as it's the binary name. 35 | for (int i = 1; i < argc; i++) { 36 | command_line_arguments.push_back(Utf8FromUtf16(argv[i])); 37 | } 38 | 39 | ::LocalFree(argv); 40 | 41 | return command_line_arguments; 42 | } 43 | 44 | std::string Utf8FromUtf16(const wchar_t* utf16_string) { 45 | if (utf16_string == nullptr) { 46 | return std::string(); 47 | } 48 | int target_length = ::WideCharToMultiByte( 49 | CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, 50 | -1, nullptr, 0, nullptr, nullptr) 51 | -1; // remove the trailing null character 52 | int input_length = (int)wcslen(utf16_string); 53 | std::string utf8_string; 54 | if (target_length <= 0 || target_length > utf8_string.max_size()) { 55 | return utf8_string; 56 | } 57 | utf8_string.resize(target_length); 58 | int converted_length = ::WideCharToMultiByte( 59 | CP_UTF8, WC_ERR_INVALID_CHARS, utf16_string, 60 | input_length, utf8_string.data(), target_length, nullptr, nullptr); 61 | if (converted_length == 0) { 62 | return std::string(); 63 | } 64 | return utf8_string; 65 | } 66 | -------------------------------------------------------------------------------- /windows/runner/utils.h: -------------------------------------------------------------------------------- 1 | #ifndef RUNNER_UTILS_H_ 2 | #define RUNNER_UTILS_H_ 3 | 4 | #include 5 | #include 6 | 7 | // Creates a console for the process, and redirects stdout and stderr to 8 | // it for both the runner and the Flutter library. 9 | void CreateAndAttachConsole(); 10 | 11 | // Takes a null-terminated wchar_t* encoded in UTF-16 and returns a std::string 12 | // encoded in UTF-8. Returns an empty std::string on failure. 13 | std::string Utf8FromUtf16(const wchar_t* utf16_string); 14 | 15 | // Gets the command line arguments passed in as a std::vector, 16 | // encoded in UTF-8. Returns an empty std::vector on failure. 17 | std::vector GetCommandLineArguments(); 18 | 19 | #endif // RUNNER_UTILS_H_ 20 | --------------------------------------------------------------------------------