Camera capture
Snap whiteboards, notebooks, slides, and handwritten notes straight from the app.
NodeStudy is an AI study companion that scans notes, imports images or PDFs, records lectures, and converts it all into editable notes, flashcards, and quizzes — so you spend less time rewriting and more time learning.
Overview
NodeStudy reduces the time students spend rewriting notes and building revision material by hand. It generates a study set from raw classroom content, lets you refine it, and keeps the result available for later review, sync, or sharing.
From whiteboard photos to lecture audio and PDF handouts, the app routes your source through a Gemini-backed generation pipeline and returns structured, editable learning assets — with confidence signals that point out where a manual pass is worth it.
Core Features
Snap whiteboards, notebooks, slides, and handwritten notes straight from the app.
Pull images from the gallery or file picker to feed the generation pipeline.
Record lectures in-app or import audio files for transcription and study sets.
Bring in handouts, chapters, and study guides as source material.
Paste text or import generic text-based files from supported sources.
Produce study notes, summaries, key points, flashcards, and quiz questions.
See which outputs are solid and which need a quick manual review pass.
In-app editing, flashcard review, and a session chat to refine each set.
Translate study sets on-device with ML Kit — no round-trip to a server.
Firebase auth, Firestore sync, and storage-backed persistence keep sets safe.
Share study sets, manage themes, and check for in-app updates.
Local notifications nudge you toward regular, consistent study sessions.
Product Flow
Collect study material from camera, gallery, audio, PDF, or pasted text.
Send the source through the Gemini-backed generation pipeline.
Inspect the generated notes, flashcards, and quiz items with confidence cues.
Edit or translate the study set until it fits how you learn best.
Store locally, sync to Firebase, or share via Study Circle.
Runtime Behavior
Gemini keys load from the hosted api_keys.json, cache locally in
SharedPreferences, and refresh on a 12-hour interval.
The app tries GEMINI_API_KEY, then _2, _3,
and _4 in order until one works.
If the remote fetch fails, NodeStudy can still fall back to a local .env
file when present.
Without a production key, the app falls back to local demo services so the UI stays fully usable during setup.
The Settings feedback form uses hardcoded EmailJS values — no .env
needed for support mail.
Initialized from committed Android assets: google-services.json and
firebase_options.dart.
Technology Stack
Repository Layout
README.md — project overview and setup guideREADME_API_KEYS.md — remote Gemini key feed notesDESIGN.md — product and UI directionpubspec.yaml / pubspec.lock — Flutter config & deps.github/workflows/ — release & key publishing automationandroid/ — host project, Gradle, Firebase, launcher assetsfirebase/ — rules and backend configurationlib/main.dart — bootstrap & prod/demo selectionlib/app.dart — app shell and routeslib/{config,models,screens,services,state,theme}test/ — widget and service testsSetup
Install Flutter and confirm it is on your path.
Run flutter pub get to install dependencies.
Ensure api_keys.json holds at least one Gemini key.
Run the app — production keys enable Firebase & Gemini.
Feedback mail works out of the box via EmailJS.
NodeStudy is open for setup on Android. Capture once, study anywhere.
Read the setup guide