{"id":50384797,"url":"https://github.com/frdteknikelektro/quex-flutter","last_synced_at":"2026-05-30T14:30:19.344Z","repository":{"id":358657404,"uuid":"1242203814","full_name":"frdteknikelektro/quex-flutter","owner":"frdteknikelektro","description":"Local-first AI study companion for kids that turns worksheet photos into quizzes and explanations with on-device Gemma 4.","archived":false,"fork":false,"pushed_at":"2026-05-18T13:15:26.000Z","size":6175,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-18T13:31:23.290Z","etag":null,"topics":["ai","dart","education","flutter","gemma","kids","multimodal","offline-first","riverpod","sqlite"],"latest_commit_sha":null,"homepage":null,"language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/frdteknikelektro.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-18T08:05:39.000Z","updated_at":"2026-05-18T13:16:05.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/frdteknikelektro/quex-flutter","commit_stats":null,"previous_names":["frdteknikelektro/quex-flutter"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/frdteknikelektro/quex-flutter","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frdteknikelektro%2Fquex-flutter","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frdteknikelektro%2Fquex-flutter/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frdteknikelektro%2Fquex-flutter/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frdteknikelektro%2Fquex-flutter/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/frdteknikelektro","download_url":"https://codeload.github.com/frdteknikelektro/quex-flutter/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/frdteknikelektro%2Fquex-flutter/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33696681,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-30T02:00:06.278Z","response_time":92,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","dart","education","flutter","gemma","kids","multimodal","offline-first","riverpod","sqlite"],"created_at":"2026-05-30T14:30:15.158Z","updated_at":"2026-05-30T14:30:19.338Z","avatar_url":"https://github.com/frdteknikelektro.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🦆 Quex\n\n![Quex preview collage](docs/screenshot/group-01.jpeg)\n\n**Quex is a local-first AI study companion for kids.** It turns worksheet photos, textbook pages, or notes into quizzes, then explains mistakes in plain language with on-device Gemma 4.\n\n**Links:** [Demo video](https://www.youtube.com/watch?v=XkzYFKY4NgM) · [APK](https://drive.google.com/file/d/1FwWAoeTvO0FAUn7hI_Ax-rMta77uOAi0/view?usp=drive_link) · [Technical notes](TECHNICAL.md) · [Writeup](WRITEUP.md) · [Source](https://github.com/frdteknikelektro/quex-flutter)\n\nBuilt for [The Gemma 4 Good Hackathon](https://www.kaggle.com/competitions/gemma-4-good-hackathon/overview), targeting **Main Track + Future of Education + LiteRT / AI Edge**.\n\n## 🎬 Demo Video\n\n[![Quex - AI Study companions for kids](https://i.ytimg.com/vi/XkzYFKY4NgM/hqdefault.jpg)](https://www.youtube.com/watch?v=XkzYFKY4NgM)\n\nWatch: [Quex - AI Study companions for kids](https://www.youtube.com/watch?v=XkzYFKY4NgM)  \nDuration: **2:50**\n\nThe video opens with the Indonesian home-study gap, then shows Quex running on a tablet with Gemma 4 E2B/E4B, child profiles, quiz practice, wrong/correct feedback, and parent-child study context.\n\n## 📱 APK Demo\n\nDownload the Android prototype APK:\n\n[Quex APK on Google Drive](https://drive.google.com/file/d/1FwWAoeTvO0FAUn7hI_Ax-rMta77uOAi0/view?usp=drive_link)\n\nNotes:\n\n- First launch downloads a Gemma 4 LiteRT-LM model.\n- Gemma 4 E2B is about **2.58 GB**.\n- Gemma 4 E4B is about **3.65 GB**.\n- After the model is downloaded, the core quiz and tutoring flow runs locally on device.\n\n## 🖼️ Screenshots\n\nScreenshots live in `docs/screenshot/`.\n\n| | | |\n|---|---|---|\n| ![Quex screenshot 1](docs/screenshot/screenshot-01.jpeg) | ![Quex screenshot 2](docs/screenshot/screenshot-02.jpeg) | ![Quex screenshot 3](docs/screenshot/screenshot-03.jpeg) |\n| ![Quex screenshot 4](docs/screenshot/screenshot-04.jpeg) | ![Quex screenshot 5](docs/screenshot/screenshot-05.jpeg) | ![Quex screenshot 6](docs/screenshot/screenshot-06.jpeg) |\n| ![Quex screenshot 7](docs/screenshot/screenshot-07.jpeg) | ![Quex screenshot 8](docs/screenshot/screenshot-08.jpeg) | ![Quex screenshot 9](docs/screenshot/screenshot-09.jpeg) |\n\n## 🌍 Problem\n\nIn many homes, the hardest part of studying is not the lesson itself. It is getting timely help when a child gets stuck.\n\nTwo numbers define the gap:\n\n- **28%** of Indonesian students had problems at least once a week finding someone who could help them with schoolwork during remote learning. Source: [OECD PISA 2022 Indonesia country note](https://www.oecd.org/en/publications/pisa-2022-results-volume-i-and-ii-country-notes_ed6fbcc5-en/indonesia_c2e1ae0e-en.html).\n- **53.8%** of surveyed Indonesian parents cited work demands as the main reason they could not accompany children studying at home. Source: [Konde / The Conversation Indonesia survey coverage](https://www.konde.co/2020/09/survey-beban-pendampingan-belajar-anak/).\n\nQuex is built for that ordinary moment: the child already has the worksheet, but the parent is busy and the internet may not be reliable.\n\n## 👨‍👩‍👧 Who It Helps\n\nQuex is designed for Indonesian elementary families:\n\n- Children studying from printed worksheets, textbook pages, or notes.\n- Parents who want to help but cannot always sit beside the child.\n- Homes where connectivity, privacy, or device sharing makes cloud tutoring fragile.\n\nThis is not a broad \"AI tutor for everyone.\" It is offline worksheet-to-practice help for kids at home.\n\n## ✨ What Quex Does\n\n- Create a child profile.\n- Create a study session for a subject, chapter, or worksheet.\n- Add material as text, photos, or files.\n- Generate a multiple-choice quiz from that exact material.\n- Let the child answer, see feedback, and retry.\n- Open a tutor chat for short, kid-friendly explanations.\n- Keep study history locally.\n\n## 🧠 Why Gemma 4\n\nQuex maps directly to Gemma 4 edge capabilities:\n\n- **Multimodal input:** children can photograph real pages instead of typing everything out.\n- **On-device inference:** quiz generation and explanations run without a cloud API after model setup.\n- **Edge variants:** the app selects Gemma 4 E2B or E4B based on device memory.\n- **Persistent sessions:** tutoring uses ongoing context rather than isolated one-shot prompts.\n- **Structured behavior:** the quiz pipeline validates model output before storing questions.\n\n## 🔒 Offline \u0026 Privacy\n\nQuex is local-first:\n\n- Study sessions, materials, quizzes, questions, and chat history are stored in SQLite.\n- Lightweight app state is stored in SharedPreferences.\n- Core tutoring does not require sending a child’s worksheet to a hosted LLM API.\n- The model download requires connectivity once; the study loop is designed to work offline afterward.\n\n## 🏗️ Architecture\n\n```\nlib/\n├── app/                    # Theme, router, responsive shell\n├── core/\n│   ├── ai/                 # ModelManager, chat services, prompts, download state\n│   ├── db/                 # SQLite schema and DAOs\n│   └── state/              # Riverpod providers\n├── features/\n│   ├── chat/               # Study coach chat\n│   ├── home/               # Study sessions list\n│   ├── material/           # Upload and view materials\n│   ├── profile/            # Active profile management\n│   ├── profile_selection/  # Kid profile picker\n│   ├── quiz/               # Quiz generation and quiz flow\n│   ├── session_detail/     # Session view with materials and quizzes\n│   └── splash/             # Model download flow\n└── widgets/                # Shared UI components\n```\n\nCore technology:\n\n- Flutter 3.41.6 via FVM\n- Riverpod\n- go_router\n- sqflite\n- flutter_gemma\n- Gemma 4 E2B/E4B LiteRT-LM\n\n## 📊 Proof Points\n\n- Public demo video: [YouTube](https://www.youtube.com/watch?v=XkzYFKY4NgM)\n- Testable APK: [Google Drive](https://drive.google.com/file/d/1FwWAoeTvO0FAUn7hI_Ax-rMta77uOAi0/view?usp=drive_link)\n- Public source repository: [GitHub](https://github.com/frdteknikelektro/quex-flutter)\n- On-device Gemma 4 E2B/E4B model selection\n- Local SQLite persistence\n- Persistent tutoring sessions\n- Multimodal material path for photos and text\n\n## 🚀 Quick Start\n\n```bash\ncd quex-flutter\nfvm flutter pub get\nfvm flutter run\n```\n\nOptional Hugging Face token setup:\n\n```bash\ncp config.json.example config.json\n# Add your token to config.json\nfvm flutter run --dart-define-from-file=config.json\n```\n\n## 🧪 Tests\n\n```bash\nfvm flutter analyze\nfvm flutter test\n```\n\n## ⚠️ Limitations\n\n- First-run setup requires a multi-GB Gemma 4 model download.\n- Dense worksheet photos can still be challenging because LiteRT-LM does not expose a visual token budget setting.\n- Multi-image workflows depend on the current `flutter_gemma` upload path.\n- Thinking mode and long-context tool calling are still rough edges for this tutoring workflow.\n\n## 📚 More Detail\n\n- [WRITEUP.md](WRITEUP.md) is the Kaggle writeup draft.\n- [TECHNICAL.md](TECHNICAL.md) is the implementation appendix.\n\n## 📄 License\n\nApache 2.0. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrdteknikelektro%2Fquex-flutter","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrdteknikelektro%2Fquex-flutter","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrdteknikelektro%2Fquex-flutter/lists"}