A daily kindness companion app that inspires users to perform acts of kindness and track their positive impact on the world.
KindSpark is an Android application built with Jetpack Compose that encourages users to practice daily acts of kindness. The app provides daily kindness prompts, tracks completion streaks, and helps users build a habit of spreading positivity in their communities.
- Personalized Daily Challenges: Get a unique kindness prompt every day
- Smart Selection: Prompts adapt based on previously skipped activities
- Diverse Categories: Activities spanning social, family, community, workplace, environmental, and digital kindness
- Streak Counter: Track consecutive days of completed kindness acts
- Achievement System: Celebrate milestones (3, 7, 14, 21, 30, 50, 100 day streaks)
- Activity History: View past completed kindness activities
- Favorites: Mark and revisit your favorite kindness experiences
- Daily Reminders: Customizable notification scheduling
- Motivation Messages: Encouraging prompts to maintain your kindness streak
- Background Scheduling: WorkManager ensures reliable notification delivery
- Multiple Themes: Light, Dark, and custom color schemes
- Calming Backgrounds: Optional serene visual experiences
- Customizable Settings: Tailor the app to your preferences
- Personal Notes: Add reflections to completed kindness activities
- Emotional Tracking: Record how acts of kindness made you feel
- Memory Preservation: Build a personal archive of positive moments
- Kotlin: Modern, expressive programming language
- Jetpack Compose: Declarative UI toolkit for native Android
- Material Design 3: Google's latest design system
- MVVM Architecture: Clean separation of concerns
- Room Database: Local data persistence with SQLite
- Navigation Compose: Type-safe navigation between screens
- DataStore Preferences: Modern preference storage
- WorkManager: Reliable background task scheduling
- Lottie: Smooth animations and micro-interactions
- KindnessPrompt: Core kindness activity templates
- KindnessCompletion: User completion records with notes
- UserProgress: Streak tracking and achievement data
- DailyPromptSelection: Daily prompt selection history
- SkippedPrompt: Tracking of skipped activities for smart suggestions
- Android Version: API 24+ (Android 7.0)
- Target SDK: Android 14 (API 35)
- Storage: ~50MB for app and user data
- Permissions:
POST_NOTIFICATIONS- Daily reminder notificationsWAKE_LOCK- Reliable notification deliveryRECEIVE_BOOT_COMPLETED- Notification persistence after device restart
- Android Studio: Arctic Fox or newer
- Kotlin: 1.9.0+
- Java: JDK 11
- Gradle: 8.0+
- Download the APK from the Releases page
- Enable "Install from Unknown Sources" in Android settings
- Install the APK file
- Launch KindSpark and start your kindness journey!
# Clone the repository
git clone https://github.com/yourusername/kindspark.git
# Open in Android Studio
cd kindspark
# Build and run
./gradlew assembleDebug- First Launch: The app initializes with 1000 diverse kindness prompts
- Daily Prompt: Each day, receive a new kindness challenge
- Complete Activities: Mark prompts as completed and add personal notes
- Build Streaks: Maintain consecutive days of kindness for achievements
- Explore History: Review past activities and revisit favorites
- π Home: View today's kindness prompt and current streak
- π History: Browse completed activities and favorites
- βοΈ Settings: Customize notifications, themes, and preferences
- Skip Wisely: Skipped prompts won't appear again the same day
- Add Notes: Personal reflections enhance the experience
- Set Reminders: Daily notifications help maintain consistency
- Explore Themes: Customize the visual experience to your preference
app/src/main/java/com/example/kindspark/
βββ data/ # Data layer
β βββ KindnessDatabase.kt # Room database configuration
β βββ KindnessRepository.kt # Data repository pattern
β βββ KindnessPromptDao.kt # Database access objects
β βββ preferences/ # DataStore preferences
βββ ui/ # Presentation layer
β βββ home/ # Home screen & ViewModel
β βββ history/ # History screen & ViewModel
β βββ settings/ # Settings screen & ViewModel
β βββ theme/ # App theming & design system
β βββ icons/ # Custom icon definitions
βββ notifications/ # Background notification system
βββ MainActivity.kt # Main application entry point
βββ SplashActivity.kt # App launch screen
- Gentle Encouragement: No guilt or pressure, only positive motivation
- Accessibility: Simple, intuitive design for all users
- Mindful Interactions: Every UI element promotes positive feelings
- Calming Colors: Soft, warm color palettes that inspire tranquility
- Clean Typography: Easy-to-read fonts with proper contrast
- Smooth Animations: Subtle transitions that feel natural and responsive
- Frequency: Daily reminders at your preferred time
- Custom Messages: Personalized motivation text
- Quiet Hours: Automatic silence during specified periods
- Light/Dark Mode: System-based or manual selection
- Color Schemes: Multiple pre-defined palettes
- Background Options: Minimalist or calming nature themes
We welcome contributions! Please see our Contributing Guidelines for details.
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature - Commit changes:
git commit -m 'Add amazing feature' - Push to branch:
git push origin feature/amazing-feature - Open a Pull Request
- Follow Kotlin Coding Conventions
- Use meaningful variable and function names
- Add comments for complex business logic
- Write unit tests for new features
- Daily active users and retention rates
- Completion rates by kindness category
- Streak length distributions
- Most popular kindness activities
- App launch time optimization
- Database query performance
- Notification delivery reliability
- Crash reporting and resolution
- Local Storage Only: All user data remains on device
- No Analytics Tracking: No personal information sent to servers
- Transparent Permissions: Clear explanation of required permissions
- Encrypted Storage: User notes and progress securely stored
- No Cloud Sync: Complete privacy with local-only data
- User Control: Easy data export and deletion options
- Share Prompt: Share daily kindness prompts directly to social media with a tap
- Kindness Feed (Optional): An anonymized feed showing "Others completed X today!"
- User-Submitted Prompts: Allow users to contribute their own kindness prompt ideas
- In-App Donations: Option to support the appβs mission via small tips
- Unlockable Prompt Packs: e.g. βWorkplace Kindness Pack,β βKids Kindness Packβ
- Cloud Backup: Sync streaks and history with Google account
This project is licensed under the MIT License - see the LICENSE file for details.
- Community Contributors: Thank you to all
developersAI Agents who've contributed - Inspiration: Built to promote mental health and community connection
- Open Source Libraries: Grateful for the amazing Android development ecosystem
- Issues: Report bugs via GitHub Issues
- Discussions: Join community conversations in Discussions
- Email: Contact us at support@kindspark.app
Q: How are daily prompts selected? A: The app uses a smart algorithm that considers your completion history and ensures variety across different kindness categories.
Q: What happens to my data if I uninstall the app? A: All data is stored locally and will be permanently deleted when the app is uninstalled. Consider exporting your history first.
Q: Can I suggest new kindness activities? A: Yes! Please open an issue with the "enhancement" label to suggest new prompts.
Made with β€οΈ to spread kindness in the world
Version: 1.0.0
Last Updated: August 2025
Minimum Android Version: 7.0 (API 24)
Package: com.example.kindspark