Skip to content

ashanokoji/StudyMate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

13 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

StudyMate Banner

πŸ“š StudyBuddy

Your AI-Powered Study Companion β€” Built with Jetpack Compose & Material 3

Android Kotlin Compose Min SDK License

MVVM Room Offline


✨ Overview

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


πŸš€ Features

🏠 Smart Dashboard

  • Personalized greeting with real-time stats
  • Quick access to tasks, sessions, and files
  • Animated progress ring showing daily goals
  • Urgent tasks panel with priority indicators
  • Beautiful glassmorphic stat cards

🎯 Focus Timer

  • Pomodoro-style countdown with animated ring
  • Configurable session durations (15/25/45/60 min)
  • 🎡 Ambient sound selector (Rain, Ocean, Forest, CafΓ©, Lo-fi)
  • Focus mode banner with session tracking
  • Today's focus stats at a glance

πŸ€– AI Study Chat

  • Smart AI assistant for study help
  • Quick action chips: Summarize Notes, Quiz Me, Study Plan, Explain Concept
  • Real-time typing indicators
  • Beautiful chat bubbles with glassmorphic design
  • Context-aware responses

πŸ“‚ Study Library

  • Organize PDFs, Notes, Images & Videos
  • Grid-based file browser with type icons
  • Search & filter by category
  • Favorite files for quick access
  • Upload and manage study materials

πŸ“Š Progress & Analytics

  • Overall completion progress bar with animated fill
  • Per-subject progress tracking with color-coded cards
  • Weekly activity heatmap (GitHub-style)
  • Study time tracking per subject
  • Beautiful gradient charts and visualizations

🎨 Design Philosophy

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.


πŸ— Architecture

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

πŸ›  Tech Stack

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)

πŸ“‹ Prerequisites

  • Android Studio Ladybug (2024.2.1) or newer
  • JDK 11 or higher
  • Android SDK 36
  • Kotlin 2.0+

⚑ Quick Start

1. Clone the repository

git clone https://github.com/ashgorhythm/StudyMate.git
cd StudyMate

2. Open in Android Studio

Open the project in Android Studio and let Gradle sync complete.

3. Run the app

Select a device/emulator and click Run ▢️ or use:

./gradlew installDebug

πŸ“± Screens at a Glance

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

πŸ—„ Data Models

// πŸ“ 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)

🀝 Contributing

Contributions are welcome! Here's how to get started:

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/amazing-feature
  3. Commit your changes: git commit -m 'Add amazing feature'
  4. Push to the branch: git push origin feature/amazing-feature
  5. Open a Pull Request

Development Guidelines

  • Follow Kotlin coding conventions
  • Use Compose best practices (stateless composables, state hoisting)
  • Write meaningful commit messages
  • Add KDoc comments for public APIs

πŸ“„ License


πŸ™ Acknowledgments


Made with ❀️ by ashgorhythm

⭐ If you find StudyMate helpful, give it a star! ⭐

About

a companion for student

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages