Your AI-Powered Study Companion β Built with Jetpack Compose & Material 3
StudyMate is a beautifully crafted, feature-rich Android study companion app designed to help students organize, focus, and excel. With a stunning dark glassmorphic UI, AI-powered chat assistant, Pomodoro focus timer, and comprehensive progress analytics β StudyMate turns your phone into the ultimate study partner.
|
|
|
|
|
|
StudyMate features a premium dark glassmorphic design that's easy on the eyes during long study sessions:
| Element | Color | Preview |
|---|---|---|
| Background | #0A0E21 β #1E1240 |
π Deep Navy to Purple gradient |
| Primary Accent | #13ECEC |
π’ Vibrant Teal glow |
| Secondary Accent | #7C4DFF |
π£ Electric Purple |
| Success | #69F0AE |
π© Mint Green |
| Warning | #FFAB40 |
π Warm Amber |
| Cards | Semi-transparent | πͺ Glassmorphic overlays |
π‘ Why Dark Theme? Studies show dark themes reduce eye strain during extended reading sessions and conserve battery on OLED displays β perfect for students pulling late-night study sessions.
StudyMate follows Clean Architecture principles with MVVM pattern:
π¦ com.example.myandroidapp
βββ π data
β βββ π local # Room Database & DAOs
β β βββ AppDatabase.kt
β β βββ StudyFileDao.kt
β β βββ StudySessionDao.kt
β β βββ StudyTaskDao.kt
β β βββ SubjectDao.kt
β βββ π model # Data entities
β β βββ ChatMessage.kt
β β βββ StudyFile.kt
β β βββ StudySession.kt
β β βββ StudyTask.kt
β β βββ Subject.kt
β βββ π repository # Single source of truth
β βββ StudyRepository.kt
βββ π ui
β βββ π navigation # Compose Navigation
β β βββ AppNavGraph.kt
β β βββ Screen.kt
β βββ π screens
β β βββ π aichat # AI Chat feature
β β βββ π dashboard # Home dashboard
β β βββ π focus # Focus timer
β β βββ π library # File library
β β βββ π progress # Analytics
β βββ π theme # Material 3 theming
β βββ Color.kt
β βββ Theme.kt
βββ MainActivity.kt
βββ StudentCompanionApp.kt # Application class
| Category | Technology |
|---|---|
| Language | Kotlin 2.0 |
| UI Framework | Jetpack Compose + Material 3 |
| Architecture | MVVM + Repository Pattern |
| Database | Room (Offline-first) |
| Navigation | Compose Navigation |
| Async | Kotlin Coroutines + Flow |
| State Management | StateFlow + collectAsStateWithLifecycle |
| Preferences | DataStore Preferences |
| DI | Manual (Application-level singletons) |
| Animations | Compose Animation APIs |
| Build System | Gradle (KTS) + Version Catalogs |
| Compile SDK | 36 (Android 16) |
| Min SDK | 24 (Android 7.0) |
- Android Studio Ladybug (2024.2.1) or newer
- JDK 11 or higher
- Android SDK 36
- Kotlin 2.0+
git clone https://github.com/ashgorhythm/StudyMate.git
cd StudyMateOpen the project in Android Studio and let Gradle sync complete.
Select a device/emulator and click Run
./gradlew installDebug| Screen | Description | Key Components |
|---|---|---|
| π Dashboard | Home screen with stats & tasks | GreetingSection, QuickStatsRow, ProgressRingSection, UrgentTasksSection |
| π― Focus | Pomodoro timer with ambiance | TimerRing, TimerControls, DurationSelector, AmbientSoundSelector |
| π€ AI Chat | Study assistant chatbot | ChatBubble, TypingIndicator, Quick action chips |
| π Library | File management system | FileCard, Category filters, Search bar |
| π Progress | Analytics & tracking | OverallProgressBar, SubjectProgressCard, WeeklyHeatmap |
// π Study Task β Track assignments & to-dos
StudyTask(title, subject, description, isCompleted, dueDate, priority)
// π Subject β Organize by course
Subject(name, icon, colorHex, totalTopics, completedTopics, totalStudyMinutes)
// β± Study Session β Track focus time
StudySession(subjectId, durationMinutes, date)
// π Study File β Manage study materials
StudyFile(fileName, fileType, fileSize, isFavorite)
// π¬ Chat Message β AI conversation history
ChatMessage(content, isFromUser, timestamp)Contributions are welcome! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit your changes:
git commit -m 'Add amazing feature' - Push to the branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Kotlin coding conventions
- Use Compose best practices (stateless composables, state hoisting)
- Write meaningful commit messages
- Add KDoc comments for public APIs
- Jetpack Compose β Modern Android UI toolkit
- Material Design 3 β Design system by Google
- Room Database β Robust local persistence
- Kotlin Coroutines β Asynchronous programming
Made with β€οΈ by ashgorhythm
β If you find StudyMate helpful, give it a star! β

