An AI‑powered study assistant that automates your exam prep: scan notes, summarize, generate questions, and build study plans — all stored locally for offline access.
- Vibrant, modern UI with gradient backgrounds and iconography (Material Icons)
- Sticky bottom action bars keep primary actions visible while scrolling
- Grid layouts for notes and plans with detail pages and full back stack support
- Gemini (Firebase AI) integration for OCR, summarization, question generation, and planning
- Local storage via Room (Notes, Questions, Study Plans)
- MVVM + Coroutines + Jetpack Compose Navigation
-
Scan Notes (Image → Study Notes)
- Pick an image (Photo Picker) and convert to structured study notes using Gemini
- Preview image, generate notes, save locally, and generate questions
-
Notes Summarization (Text → Exam Notes)
- Paste long notes, get exam‑focused bullet summaries
-
Question Generator (Notes → MCQs + Short Answers)
- MCQs with options A–D, correct answer, and explanation
- Short answers with concise ideal answers
- Notes-first browsing in Question Bank → then per-note question lists → question detail with Next/Previous
-
Syllabus → Study Plan
- Paste syllabus; optionally set an exam date
- Generates topic-wise plan with weekly breakdown and revision days
-
Weekly Revision Planner
- Generates week-wise revision checklist from topics/plans
-
Local Data Storage (Room)
- Entities:
NoteEntity,QuestionEntity,StudyPlanEntity - CRUD operations via repositories
- Entities:
- Kotlin, Jetpack Compose (Material 3)
- Architecture: MVVM
- Navigation: Compose Navigation
- Database: Room + KSP
- Async: Coroutines/Flow
- AI: Firebase AI (Google Gemini)
- HomeScreen: motivational gradient and large CTA buttons
- ScanNotesScreen: bold gradient, preview card, sticky actions (Save, Generate Questions)
- MyNotesScreen: 2‑column grid cards with created date (calendar icon) and delete icon; tap to open NoteDetail
- NoteDetailScreen: full notes with sticky actions (Back, Generate Questions, Delete)
- QuestionBankScreen: grid of notes → tap to see questions
- QuestionsByNoteScreen: sections (MCQs / Short Answers), empty‑state with Generate button
- QuestionDetailScreen: vibrant MCQ layout with highlighted answer, Next/Previous navigation
- StudyPlanScreen: creation‑focused screen with gradient background, icon action to view past plans, sticky actions to Generate Plan/Weekly Revision
- PastPlansScreen: 2‑column grid; tap to open PlanDetail
- PlanDetailScreen: full plan with sticky actions (Back, Delete)
- Android Studio Jellyfish+ recommended
- Kotlin 2.0.21, AGP 8.13.2
- Firebase AI setup
- Enable Firebase AI in your Firebase project
- Place
app/google-services.json(already present in project structure)
- Gradle sync
- Compose BOM, Material3, Foundation
- Navigation-Compose, ViewModel-Compose
- Room (runtime/ktx + KSP)
- Coroutines (core/android)
- Firebase AI:
com.google.firebase:firebase-ai:17.7.0 - Material Icons Extended:
androidx.compose.material:material-icons-extended
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
.generativeModel("gemini-2.5-flash")
val text = model.generateContent("Write a story about a magic backpack.").text
val prompt = content {
image(bitmap)
text("OCR and summarize to study notes")
}
val imageResult = model.generateContent(prompt).text- ai/GeminiService.kt – wraps Gemini calls and prompt builders
- data/* – Room entities, DAOs, database
- repo/* – repositories for Notes, Questions, Plans
- ui/AppNav.kt – navigation graph
- ui/components/ScaffoldKit.kt – Top bar + sticky bottom bar scaffold
- ui/screens/* – all screens
- ui/theme/* – theming
home,scan,my_notes,note_detail/{noteId}question_bank,questions_by_note/{noteId},question_detail/{noteId}/{index}study_plan,past_plans,plan_detail/{planId}
- Redesigned StudyPlanScreen to match the vibrant visual style; added history icon action and sticky actions
- MyNotesScreen uses a delete icon and calendar icon; improved grids and spacing
- Back button in top bar now uses an icon (Material ArrowBack)
- Ensured long content scrolls without hiding primary actions
- AI responses are often formatted in Markdown. The app now renders Markdown on key screens:
- ScanNotesScreen: the generated notes preview uses Markdown
- NoteDetailScreen: full note content uses Markdown
- PlanDetailScreen: full study plan content uses Markdown
- QuestionDetailScreen: question text and explanation support Markdown (MCQ options keep chip styling)
- Supported subset: headings (#, ##, ###), bullet/numbered lists, bold (text), italic (text), inline code (
code), fenced code blocks (```), and horizontal rules (---). - Implemented via a lightweight in-app renderer (
ui/components/MarkdownText.kt) optimized for performance and readability over gradient backgrounds.
- Custom vector app icon:
@drawable/ic_studygenie_logowith adaptive icons@mipmap/ic_studygenieand@mipmap/ic_studygenie_round - Android 12+ system splash configured in
res/values-v31/themes.xmlusing the adaptive icon - Compose SplashScreen with animated logo and title (
ui/screens/SplashScreen.kt) shown before the main app
- Connect a device/emulator (minSdk 24)
- Build and run from Android Studio
- For live camera capture, integrate CameraX (currently using system Photo Picker)
- If Gemini output format varies, adjust parsing in
QuestionsRepository