Study & MHT-CET Preparation Tracker
An offline-friendly study tracker for organizing subjects and chapters, monitoring preparation progress, and managing MHT-CET study data.
Try PrepFlow directly in your browser:
No installation required.
- Overall chapter progress overview with Total, Completed, In Progress, and Not Started counts.
- Subject cards showing chapter counts, completion counts, and overall subject progress.
- Active Chapters Focus section for quickly returning to chapters currently in progress.
- Subject-level filtering for All, In Progress, and Not Started chapters.
- Track individual chapter completion based on multiple study activities.
- Record lectures completed / total lectures.
- Record tests completed / total tests.
- Mark Textbook, Practice, Formula Sheet, and CET MCQ work as completed.
- Set chapter priority levels: High, Medium, or Low.
- Set chapter study mode: Lectures, One shot, or Both
- Track revision count and the date of the latest revision.
- Add chapter-specific notes.
- Automatically record the last studied date.
- View calculated chapter progress and completion status.
- Manage chapters for each subject from a dedicated management screen.
- Add, remove, and reorder chapters.
- Import or replace chapter lists using a simple text-based chapter editor.
- Store study data locally on the device for offline use.
- Export PrepFlow data to a backup file.
- Import a previously saved backup to restore study data.
- Clear all app data with a confirmation step.
- Dedicated Settings page for app and data management.
- Android back-button navigation between dashboard, subjects, chapters, settings, and dialogs.
- Lightweight single-page architecture designed for use as an Android app.
- No account or online service is required for normal study tracking.
- UI dependencies are loaded from CDN services, so internet access may be required when the app first loads or when those resources are not cached.
1.17.3
- HTML, CSS and JavaScript
- Apache Cordova for Android packaging
- Custom Cordova backup/restore plugin
- GitHub Actions for release APK builds
The main application is intentionally kept in a single index.html file to keep the project straightforward and easy to maintain.
PrepFlow/
βββ .github/
β βββ workflows/
β βββ build-apk.yml
βββ cordova-plugin-prepflow-backup/
β βββ src/
β β βββ android/
β β βββ PrepFlowBackup.java
β βββ www/
β β βββ prepflow-backup.js
β βββ package.json
β βββ plugin.xml
βββ index.html
βββ logo.png
βββ README.md
The repository includes cordova-plugin-prepflow-backup, a custom Cordova plugin that provides native Android backup and restore functionality through the Android Storage Access Framework (SAF).
The plugin connects the web application to two native Android actions:
- Export backup β receives the backup JSON from PrepFlow and opens the Android document picker so the user can choose where to save the backup file.
- Import backup β opens the Android document picker so the user can select an existing JSON backup file, then returns its contents to PrepFlow.
The plugin does not use a fixed app-specific storage path. Android's document picker handles the user's selected file location.
PrepFlow (JavaScript)
β
βββ exportBackup()
β β
β Cordova bridge
β β
β ACTION_CREATE_DOCUMENT
β β
β Android file picker
β β
β Selected JSON file
β
βββ importBackup()
β
Cordova bridge
β
ACTION_OPEN_DOCUMENT
β
Android file picker
β
JSON contents
β
PrepFlow
The plugin exposes PrepFlowBackup with two methods:
PrepFlowBackup.exportBackup(backupJson, filename, success, error);
PrepFlowBackup.importBackup(success, error);Export parameters
backupJsonβ backup data as a JSON string.filenameβ suggested filename shown by the Android save dialog.successβ called after the file is successfully written.errorβ called if the operation fails or is cancelled.
Import callbacks
successβ receives the selected file contents as a UTF-8 string.errorβ called if the operation fails or is cancelled.
The native implementation is in:
cordova-plugin-prepflow-backup/src/android/PrepFlowBackup.java
It uses Android's ACTION_CREATE_DOCUMENT and ACTION_OPEN_DOCUMENT intents with application/json MIME type. Files are read and written through Android's ContentResolver.
The plugin is intentionally kept inside this repository because it is part of PrepFlow's Android build rather than a separately fetched application dependency.
PrepFlow's Android release APK is built automatically with GitHub Actions using .github/workflows/build-apk.yml.
The workflow runs on pushes to the main branch and:
- Checks out the repository.
- Sets up Java 17 and Node.js 20.
- Installs Cordova locally.
- Creates a temporary Cordova project with the PrepFlow package ID.
- Copies
index.htmlandlogo.pnginto the Cordova web assets. - Generates the Cordova
config.xmlwith the app name, version, author, icon, and Android settings. - Installs the local
cordova-plugin-prepflow-backupplugin. - Adds the Android platform.
- Verifies that the backup plugin and its Android registration were installed correctly.
- Decodes the signing keystore from a GitHub Actions secret.
- Generates the temporary Cordova signing configuration.
- Builds the signed Android release APK.
- Verifies that the APK was produced.
- Removes the temporary signing files.
- Uploads the APK as the
PrepFlow-Release-APKGitHub Actions artifact.
The workflow expects these repository secrets:
KEYSTORE_BASE64KEYSTORE_PASSWORDKEY_ALIASKEY_PASSWORD
The signing keystore and passwords are never stored in the repository. Temporary signing files are removed after the APK build.
The generated APK can be downloaded from the workflow's Artifacts section after a successful build.
See .github/workflows/build-apk.yml for the exact implementation.
Because PrepFlow is a single-page application, most application changes can be made directly in:
index.html
The custom Android backup functionality is located in:
cordova-plugin-prepflow-backup/
This project is licensed under the MIT License. See LICENSE for the full license text.