Skip to content

mkshaonexe/AuraWake

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

127 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌙 Alarm App - Advanced Wake-Up Challenge System

A feature-rich Android alarm application built with Jetpack Compose that ensures you wake up through interactive challenges and provides detailed wake-up analytics.

📱 Features

🔔 Core Alarm Functionality

  • Multiple Alarms: Create and manage unlimited alarms
  • Recurring Alarms: Set alarms for specific days of the week (Mon-Sun)
  • Smart Scheduling: Alarms persist across device reboots
  • Snooze Function: Quick snooze option when alarms ring
  • Duplicate Alarms: Easily duplicate existing alarm configurations
  • Preview Mode: Test alarm ringing screen before actual alarm time

🎯 Wake-Up Challenges

Force yourself to wake up by completing one of four interactive challenges:

1. Math Challenge 🧮

  • Solve mathematical equations to dismiss the alarm
  • Difficulty levels ensure you're mentally alert
  • Random equation generation

2. Typing Challenge ⌨️

  • Type a displayed sentence correctly
  • Tests accuracy and focus
  • Multiple sentence variations

3. Shake Challenge 📱

  • Shake your device a specific number of times
  • Uses accelerometer sensor
  • Visual progress indicator with real-time shake count

4. QR Code Challenge 📷

  • Scan a pre-registered QR code to dismiss alarm
  • Forces you to physically move to a specific location
  • Camera-based verification

📊 Activity Tracking & Analytics

Wake-Up Heatmap

  • Visual representation of your wake-up patterns
  • 9-row hourly grid (4 AM - 12 PM)
  • Monthly timeline with automatic month updates (Dec, Jan, Feb, Mar, Apr)
  • Color-coded activity dots:
    • Teal/Cyan: Successfully completed alarm challenge
    • Dark Grey: No activity/missed alarm
  • Tracks consistency across days and months

👤 Profile Dashboard

A comprehensive gamified stats screen featuring:

Avatar Section

  • Custom profile display with decorative rings
  • Level indicator (e.g., "Level 42")
  • User identification

Stats Radar Chart

  • Hexagonal visualization of multiple metrics
  • Tracks skills like Writing, Financial, Learning, Value Earning
  • Interactive Canvas-drawn chart

Skill Points Progress

  • Individual skill tracking with progress bars
  • Visual representation of skill development
  • Color-coded progress indicators

Activity Bar Chart

  • Vertical bar chart showing daily activity levels
  • Gradient purple theme
  • Quick visual overview of engagement

XP/Goal Tracker

  • Progress towards level goals (e.g., "695/2000")
  • Percentage completion display (40% XP Goal)
  • Segmented progress visualization

Contribution Graph

  • GitHub-style activity heatmap
  • Shows consistency over time
  • Purple theme matching app aesthetic

🎨 UI/UX Features

Dark Theme Design

  • Pure black background (#000000)
  • Dark grey cards (#1C1C1E)
  • Teal/Cyan accents (#26C6DA)
  • Purple theme for profile section (#BB86FC, #6200EE)

Modern Material Design

  • Material 3 components
  • Smooth animations and transitions
  • Rounded corners and soft shadows
  • Responsive layouts

Navigation

  • Bottom navigation bar with 5 tabs:
    • 🔔 Alarm (Main screen)
    • 🌙 Sleep
    • ☀️ Morning
    • 📊 Report
    • ⚙️ Setting
  • Profile access via top app bar icon
  • Intuitive back navigation

🔐 Permissions & System Integration

Overlay Permission

  • Full-screen alarm display over lock screen
  • Ensures alarms can't be easily dismissed
  • Dedicated permission request screen

Boot Receiver

  • Automatically reschedules alarms after device restart
  • Ensures no alarms are missed due to reboots

Notification System

  • High-priority alarm notifications
  • Quick actions (Snooze/Dismiss)
  • Persistent notifications during alarm ring

💾 Data Persistence

  • Room Database for local alarm storage
  • Type Converters for complex data types (Lists, Enums)
  • Repository Pattern for clean architecture
  • Automatic data synchronization

🏗️ Technical Architecture

Technology Stack

  • Language: Kotlin
  • UI Framework: Jetpack Compose
  • Architecture: MVVM (Model-View-ViewModel)
  • Database: Room
  • Dependency Injection: Manual Factory Pattern
  • Navigation: Compose Navigation
  • Async: Kotlin Coroutines & Flow

Key Components

Data Layer

  • AlarmDao: Database access object
  • AlarmDatabase: Room database configuration
  • AlarmRepository: Data repository
  • Alarm: Data model with challenge types

Domain Layer

  • AlarmScheduler: Interface for alarm scheduling
  • AndroidAlarmScheduler: Android AlarmManager implementation
  • AlarmService: Foreground service for alarm ringing

Presentation Layer

  • HomeScreen: Main alarm list and tracker
  • AlarmScreen: Create/Edit alarm interface
  • AlarmRingingScreen: Full-screen alarm with challenges
  • ProfileScreen: User stats and analytics dashboard
  • TrackerSection: Wake-up heatmap visualization

System Integration

  • AlarmReceiver: BroadcastReceiver for alarm triggers
  • BootReceiver: Handles device boot events
  • SnoozeReceiver: Manages snooze functionality

📋 Alarm Data Model

data class Alarm(
    val id: Int,
    val hour: Int,
    val minute: Int,
    val isEnabled: Boolean,
    val daysOfWeek: List<Int>,
    val challengeType: ChallengeType,
    val label: String
)

enum class ChallengeType {
    MATH,
    TYPING,
    SHAKE,
    QR_CODE
}

🎯 User Flow

  1. Create Alarm: Set time, days, and challenge type
  2. Alarm Triggers: Full-screen overlay appears with moon theme
  3. Complete Challenge: Solve math/type/shake/scan QR
  4. Track Progress: View wake-up patterns in heatmap
  5. Review Stats: Check profile dashboard for insights

🚀 Getting Started

Prerequisites

  • Android Studio Hedgehog or later
  • Android SDK 24+ (Android 7.0)
  • Kotlin 1.9+

Installation

  1. Clone the repository
  2. Open in Android Studio
  3. Sync Gradle dependencies
  4. Run on emulator or physical device

Required Permissions

  • SCHEDULE_EXACT_ALARM: For precise alarm timing
  • SYSTEM_ALERT_WINDOW: For overlay display
  • VIBRATE: For alarm vibration
  • WAKE_LOCK: To wake device from sleep
  • RECEIVE_BOOT_COMPLETED: For boot persistence
  • CAMERA: For QR code challenge (optional)

🎨 Design Philosophy

The app follows a dark-first design approach with:

  • High contrast for visibility
  • Teal accents for active states
  • Purple gradients for gamification
  • Minimalist card-based layouts
  • Smooth transitions and micro-interactions

📈 Future Enhancements

  • Sleep tracking integration
  • Morning routine suggestions
  • Detailed analytics reports
  • Custom challenge creation
  • Social features (compete with friends)
  • Smart alarm (wake during light sleep)
  • Weather-based alarm adjustments
  • Spotify/Music integration

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

📄 License

This project is open source and available under the MIT License.

👨‍💻 Developer

Built with ❤️ using Jetpack Compose and modern Android development practices.


Note: This app is designed to help you build better wake-up habits through engaging challenges and visual progress tracking. Wake up, complete challenges, track your consistency! 🌅

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors