Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

1 Commit
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Moodi - Personal Wellness & Habit Tracking App

A comprehensive Android application built with Kotlin that helps users manage their personal wellness and daily health routines.

🌟 Features

βœ… Core Features

Daily Habit Tracker

  • Add, edit, and delete personal habits (e.g., drink water, meditate, steps)
  • Daily progress tracking with visual progress indicators
  • Checkbox-based habit completion system
  • Real-time progress percentage calculation

Mood Journal with Emoji Selector

  • Log mood entries with emoji selection (😊, πŸ˜„, 😌, 😐, πŸ˜”, 😒, 😑, 😴, πŸ€”, 😍)
  • Add optional notes to mood entries
  • View past mood entries in chronological order
  • Detailed mood entry viewer with timestamps

Hydration Reminder System

  • Customizable reminder intervals (15 minutes to 5 hours)
  • Background notification system using WorkManager
  • Enable/disable reminders with simple toggle
  • Persistent notification scheduling

⭐ Advanced Features

Weekly Mood Chart

  • Interactive line chart using MPAndroidChart
  • Visual representation of mood trends over the past week
  • Touch-enabled chart with zoom and pan capabilities
  • Automatic data visualization from mood entries

Data Sharing

  • Share weekly mood summaries with other apps
  • Implicit intent integration for social sharing
  • Formatted mood reports with timestamps and notes

πŸ—οΈ Technical Architecture

Language & Framework

  • Language: Kotlin
  • Architecture: Activities + Fragments
  • UI Framework: Material Design 3

Project Structure

app/src/main/java/com/example/moodi/
β”œβ”€β”€ MainActivity.kt              # Hosts navigation and fragment management
β”œβ”€β”€ HabitFragment.kt            # Habit tracking functionality
β”œβ”€β”€ MoodFragment.kt             # Mood journal and chart visualization
β”œβ”€β”€ SettingsFragment.kt         # App settings and hydration reminders
β”œβ”€β”€ SharedPrefManager.kt       # Data persistence utility
└── NotificationHelper.kt       # Hydration reminder notifications

Data Persistence

  • Storage: SharedPreferences with Gson serialization
  • Data Models: Habit, MoodEntry data classes
  • State Management: Retain user preferences and app state

Navigation

  • Main Navigation: BottomNavigationView with 3 tabs
  • Fragment Management: Fragment transactions for screen switching
  • Intent Handling: Explicit intents for navigation, implicit for sharing

πŸ“± User Interface

Material Design Components

  • BottomNavigationView: Primary navigation between sections
  • FloatingActionButton: Quick access to add habits/moods
  • CardView: Content containers with elevation and rounded corners
  • RecyclerView: Efficient list display for habits and moods
  • SeekBar: Interval selection for hydration reminders
  • SwitchMaterial: Toggle controls for settings

Responsive Design

  • Phone Support: Optimized for portrait and landscape orientations
  • Tablet Support: Responsive layouts that work on larger screens
  • Material Design 3: Modern UI components with custom color scheme

πŸ”§ Dependencies

Core Android Libraries

  • androidx.core:core-ktx - Kotlin extensions
  • androidx.appcompat:appcompat - Backward compatibility
  • com.google.android.material:material - Material Design components
  • androidx.fragment:fragment-ktx - Fragment support
  • androidx.navigation:navigation-fragment-ktx - Navigation framework
  • androidx.work:work-runtime-ktx - Background task management

Third-Party Libraries

  • com.github.PhilJay:MPAndroidChart - Chart visualization
  • com.google.code.gson:gson - JSON serialization

πŸš€ Getting Started

Prerequisites

  • Android Studio Arctic Fox or later
  • Android SDK 24+ (Android 7.0)
  • Kotlin 2.0.21+

Installation

  1. Clone the repository
  2. Open the project in Android Studio
  3. Sync Gradle files
  4. Build and run the application

Permissions

The app requires the following permissions:

  • POST_NOTIFICATIONS - For hydration reminder notifications
  • WAKE_LOCK - For background task execution
  • RECEIVE_BOOT_COMPLETED - For notification persistence after device restart

πŸ“Š Data Models

Habit

data class Habit(
    val id: String,
    val name: String,
    val description: String,
    val isActive: Boolean,
    val createdAt: Long
)

MoodEntry

data class MoodEntry(
    val id: String,
    val emoji: String,
    val note: String,
    val timestamp: Long
)

🎨 Customization

Color Scheme

  • Primary: #FF6B73 (Coral)
  • Secondary: #4ECDC4 (Teal)
  • Accent: #FFE66D (Yellow)
  • Background: #F8F9FA (Light Gray)
  • Surface: #FFFFFF (White)

Themes

  • Light theme with Material Design 3 components
  • Custom color palette for brand consistency
  • Responsive typography and spacing

πŸ”„ State Management

SharedPreferences Integration

  • Habits: Persistent storage of user habits
  • Moods: Mood entry history with timestamps
  • Settings: User preferences and notification settings
  • Daily Progress: Habit completion tracking

Data Flow

  1. User interactions trigger data updates
  2. SharedPrefManager handles serialization
  3. UI components reflect data changes
  4. Background tasks maintain notification state

πŸ“ˆ Features in Detail

Habit Tracking

  • Create custom habits with names and descriptions
  • Mark habits as complete with visual feedback
  • Track daily progress with percentage calculations
  • Edit or delete existing habits
  • Persistent storage across app sessions

Mood Journaling

  • Emoji-based mood selection (10 different emotions)
  • Optional text notes for context
  • Chronological mood history
  • Weekly trend visualization
  • Social sharing capabilities

Hydration Reminders

  • Configurable reminder intervals
  • Background notification system
  • Persistent scheduling across app restarts
  • User-controlled enable/disable functionality

Data Visualization

  • Interactive line charts for mood trends
  • Weekly mood pattern analysis
  • Touch-enabled chart interactions
  • Automatic data scaling and formatting

πŸ› οΈ Development Notes

Code Organization

  • Fragment-based architecture for modular UI components
  • RecyclerView adapters for efficient list management
  • Material Design components for consistent UI
  • WorkManager integration for reliable background tasks

Best Practices

  • Kotlin coroutines for asynchronous operations
  • Material Design 3 for modern UI components
  • Responsive layouts for multiple screen sizes
  • Accessibility support with proper content descriptions

πŸ“ License

This project is developed as a demonstration of Android development best practices using Kotlin, Material Design, and modern Android architecture patterns.

🀝 Contributing

This is a demonstration project showcasing Android development skills. Feel free to use it as a reference for your own projects or as a learning resource.


Moodi - Track your habits, log your moods, and stay hydrated! πŸ’™

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages