Android Study Companion · Apache Cordova
A hybrid study companion forged for competitive examination preparation — chemistry, physics, and performance analytics in one application.
Platform: Android SDK 29–34 · Package: com.asphalts001.legacy
Explore the ApplicationGet the App
The latest build is always available directly from GitHub Releases. No account required.
Google Play Protect may flag this file during installation as the app is not yet listed on the Play Store. This is expected behaviour for sideloaded APKs. Tap "Install anyway" on the warning prompt to proceed safely.
01 · Overview
Legacy is a hybrid Android application built with Apache Cordova, designed as a comprehensive study companion for students preparing for competitive examinations including NEET.
The application delivers a richly styled WebView interface combining static reference material, two independent quiz engines, real-time performance tracking, and optional cloud synchronisation — all within a single, self-contained APK.
Study sessions are logged, scored, and persisted locally. Progress is surfaced through a live dashboard with accuracy metrics, recent activity feeds, and exportable JSON logs. For multi-device continuity, a manual Supabase cloud sync transfers session data on demand.
02 · Capabilities
A searchable, tabbed reference covering Inorganic, Physical, and Organic chemistry with inline search filtering and named-reaction highlights.
Configurable MCQ runner loading from 24 external JSON question sets. Full NEET scoring, 60-minute sessions, and per-set attempt history.
45 hard-coded trap questions across seven difficulty categories, with a live timer and type-wise performance breakdown after each session.
Real-time accuracy metrics, session tracking, recent activity feed, and one-tap JSON export of your complete study log.
Manual push/pull synchronisation of activity logs via a Supabase edge function. Keep your progress consistent across devices.
Persistent music playback using the Cordova Media plugin. Per-session preference storage keeps your study atmosphere consistent.
03 · Technical
tracker.js
Middleware layer. Receives raw quiz totals, applies strict NEET (+4 / −1) scoring, and fires a tracker:update DOM event so the dashboard re-renders without a page reload.
StateManager.js
Synchronous wrapper around localStorage. Enforces a versioned JSON schema (version · sessions · stats) and persists the full state under a single app_state key.
sync.js
Runs asynchronously. Serialises state and pushes to a Supabase Edge Function via PUT. An hourly background loop keeps the cloud copy current while a user session is active. Also intercepts the legacy://login deep-link on OAuth return to establish the Supabase session.
CI / CD
GitHub Actions on Ubuntu. Node 18 · JDK 17 · Gradle 8.7 · Android SDK 34. Cordova platform and plugins installed at build time. APK signed via apksigner using a base64 keystore from Secrets, then attached to a tagged GitHub Release automatically.
Auth & Deep Linking
Google OAuth via Supabase, opened through InAppBrowser to bypass WebView restrictions. On success, Google redirects to legacy://login — declared in config.xml — where sync.js extracts tokens and opens the session.
Roadmap
This WebView layer is the foundation. The migration path to native Kotlin / Jetpack Compose is direct — StateManager.js → Room Database, DOM events → ViewModels + StateFlows.
Auth & Cloud Sync — Full Data Path
This diagram traces the complete auth and sync lifecycle. Login triggers Google OAuth through InAppBrowser, which hands a JWT back to sync.js. Study data accumulates in localStorage (studyapp_log) and is pushed to a Supabase Edge Function either manually or on an hourly background timer. The edge function writes to the user_sync_data PostgreSQL table using the service role, while Row-Level Security (auth.uid() = user_id) ensures no cross-user data leakage.
04 · Updates
A brand-new immersive reference module inspired by ancient Egyptian manuscripts has been added to Legacy. Styled as a royal parchment scroll with ornamental borders, hieroglyphic motifs, and gold-leaf typography, the Egyptian module presents physics commandments — Newton's laws, electromagnetism, optics, thermodynamics, and wave mechanics — in a richly designed, filterable interface. Each law is laid out as a royal decree with clearly separated name, formula, and plain-language explanation. The module is fully searchable by keyword across title, formula, and description fields, and adapts gracefully to mobile viewports.
Introduced manual Supabase cloud sync for session logs across devices. Dashboard accuracy metrics now update in real time, and the activity feed surfaces your five most recent sessions with per-set attempt history. JSON export of the complete study log added to settings.
Added 45 hard-coded adversarial physics trap questions across seven difficulty categories with a live countdown timer and type-wise performance breakdown. Persistent background audio via the Cordova Media plugin introduced, with per-session preference storage.
05 · Privacy Policy
Last updated: April 21, 2026
Legacy is a hybrid Android study application built with Apache Cordova. This policy explains what data we collect, how we use it, and your rights regarding that data. We are committed to handling your information with full transparency.
When you sign in with Google, we receive the following from your Google account:
We do not collect passwords, payment information, location data, or any other personal data beyond what is listed above.
The information received from Google is used solely to:
We do not sell, rent, trade, or share your personal information with any third parties for marketing or any other purpose.
Study session data — including quiz scores, accuracy percentages, and timestamps — is stored locally on your device using browser localStorage. This data never leaves your device unless you explicitly choose to use the Cloud Sync feature.
If you use Cloud Sync, your session log is sent to a private Supabase endpoint accessible only via your unique user ID. No personally identifiable information is included in this sync.
We do not permanently store your Google account information on our servers. Session authentication data is temporary and is cleared when you log out. Local study data persists on your device until you reset or uninstall the application.
Legacy uses the following third-party services:
Legacy is intended for students preparing for competitive examinations. We do not knowingly collect personal information from children under the age of 13. If you believe a child has provided us with personal information, please contact us so we can delete it.
You can revoke this app's access to your Google account at any time by visiting Google Account Permissions. You may also clear all local study data from within the application settings.
We may update this privacy policy from time to time. Any changes will be reflected on this page with an updated date at the top. Continued use of the application after changes constitutes acceptance of the revised policy.
If you have any questions or concerns about this privacy policy, please open an issue on the project's GitHub repository at github.com/asphalts001.