A student's access to tutoring should not depend on owning a smartphone or buying mobile data.
What SyncOne Learn does
SyncOne Learn turns one educator Android phone into an offline learning gateway for an entire community. A student uses the phone they already have—even a basic feature phone—to text a question. Android receives the SMS, retrieves relevant evidence only from signed Learning Packs installed on the educator device, runs Gemma locally, and sends the answer back by SMS.
The student installs nothing, creates no account, and needs no internet connection.
The system has three working surfaces:
- A native Kotlin and Jetpack Compose Android app on the educator phone. It receives student SMS questions, runs the offline tutor, and sends SMS replies.
- A React Learning Studio where educators author, review, approve, and publish trusted curriculum.
- An ASP.NET Core and PostgreSQL backend for organizations, signed pack publication, synchronization, and oversight.
Grounded and safe by design
Safety is an architecture rule rather than a prompt-only promise:
- Curriculum is versioned and human reviewed before publication.
- Every published Learning Pack is hashed and signed with SHA-256 and RSA-PSS.
- Android verifies a pack before atomic activation.
- BGE retrieval searches only active, verified Learning Packs.
- SMS requests never fall back to a cloud model or a generic response cache.
- Unsupported questions receive an honest SMS abstention instead of a fabricated answer.
- Low-confidence attempted answers and safeguarding messages are held for educator review.
The React portal is the provisioning and oversight surface, not the student product. The native Kotlin app is the field gateway. Ordinary SMS is the learner interface.
How Codex and GPT-5.6 were used
The project began from a hardened generic SyncOne Platform baseline. Codex with GPT-5.6 audited that baseline, identified reusable security, offline, and SMS seams, and helped turn the education brief into a PRD, architecture boundaries, and recorded decisions.
Codex helped implement the vertical slice across C#, TypeScript, and Kotlin; keep contracts aligned; add focused tests; diagnose failures from actual compiler and test output; and repeatedly reconcile the submission narrative with the running code.
Key decisions made with Codex include:
- Stay native Kotlin instead of rewriting the Android client in Flutter.
- Make ordinary SMS the primary student experience and the educator Android phone the gateway.
- Require human review before AI-assisted curriculum can publish.
- Sign immutable pack content and fail closed on invalid signatures or unavailable real model assets.
- Keep every student SMS answer local and Learning-Pack-scoped.
Why it matters
One educator phone can serve learners who have only basic SMS phones. SyncOne Learn brings reviewed, source-grounded local AI tutoring to low-connectivity communities without making the student cross the smartphone or mobile-data divide.
The repository includes a one-command judge portal, Android emulator instructions, an SMS injection walkthrough, architecture decisions, honest known gaps, and cross-stack CI.
Built With
- asp.net-core
- codex
- docker
- gpt-5.6
- jetpack-compose
- kotlin
- litert-lm
- onnx-runtime
- openai-responses-api
- pgvector
- postgresql
- react

Log in or sign up for Devpost to join the conversation.