A minimalist Flutter application with a GitHub-style contribution chart to build lasting habits ๐
Features โข Screenshots โข Installation โข Usage โข Download
- โ Create & Edit Hobbies - Add custom hobbies with names, notes, colors, and priorities
- ๐จ Custom Colors - Choose from a vibrant color palette to personalize each hobby
- โญ Priority Levels - Mark hobbies as Low, Medium, or High priority
- ๐ Flexible Repeat Modes - Daily, specific weekdays, or custom schedules
- ๐๏ธ Easy Management - Edit or delete hobbies anytime with intuitive UI
- โ One-Tap Completion - Mark hobbies complete with satisfying animations
- ๐ GitHub-Style Contribution Chart - Beautiful heatmap showing 12 weeks of activity
- ๐ฅ Streak Tracking - Monitor current and longest streaks for each hobby
- ๐ Analytics Dashboard - Comprehensive statistics and insights
- ๐ Historical Data - View completion patterns over time
- โฐ Daily Notifications - Never miss a hobby with customizable reminder times
- ๐ Timezone Support - Notifications adjust to your local timezone
- ๐ Granular Control - Enable/disable reminders per hobby
- ๐๏ธ Local-First Architecture - All data stored securely in SQLite
- ๐ Privacy-First - No hobby data sent to servers
- ๐ด Offline Support - Works perfectly without internet
- โ๏ธ Optional Cloud Sync - Google Sign-In for identity (no data sync yet)
- ๐ฌ Motivational Quotes - Random inspirational messages on every visit
- ๐ Completion Sounds - Satisfying audio feedback on task completion
- ๐ญ Smooth Animations - Delightful UI transitions and celebrations
- ๐ Beautiful Dark Theme - Easy on the eyes with purple accents
- ๐ Fast & Responsive - Optimized performance on all devices
- ๐ Analytics - Track app usage patterns (no personal data)
- ๐ฅ Crashlytics - Automatic crash reporting for better stability
- โก Performance Monitoring - Optimize app speed and responsiveness
- ๐๏ธ Remote Config - Feature flags and A/B testing
- ๐ Authentication - Google Sign-In (optional)
- Flutter SDK
>=3.0.0(Install Flutter) - Dart SDK
>=3.0.0(included with Flutter) - Android Studio or Xcode (for mobile development)
- Git for cloning the repository
-
Clone the repository
git clone https://github.com/yourusername/hobbyist.git cd hobbyist -
Install dependencies
flutter pub get
-
Configure Firebase (Optional)
- For Google Sign-In and Firebase features, add:
android/app/google-services.json(Android)ios/Runner/GoogleService-Info.plist(iOS)
- See QUICKSTART.md for detailed Firebase setup
- For Google Sign-In and Firebase features, add:
-
Run the app
flutter run
-
Build for release
# Android APK flutter build apk --release # iOS flutter build ios --release # Or use the build script ./build-apk.sh
-
๐ First Launch - Enter your name to personalize the experience
-
โ Add Your First Hobby - Tap the + button and fill in:
- Hobby name (e.g., "Reading", "Exercise")
- Optional notes
- Choose a color
- Set priority
- Select repeat mode
- Configure reminder time
-
โ Track Daily - Tap any hobby card to mark it complete for today
-
๐ Monitor Progress - View the contribution chart and analytics
-
โ๏ธ Customize - Adjust settings, notifications, and preferences
- ๐ Edit Completions - Long-press on chart to modify past entries
- ๐ Smart Reminders - Set different reminder times for each hobby
- โญ Prioritize - Sort hobbies by priority in settings
- ๐ Analytics Deep Dive - Explore detailed statistics per hobby
- โ๏ธ Google Sign-In - Optional authentication for future cloud features
- Min SDK: Android 6.0 (API 23)
- Target SDK: Latest
- Download APK: Check
builds/directory or Releases
- Min iOS: 11.0
- TestFlight: Coming soon
# All tests
flutter test
# Unit tests only
flutter test test/unit/
# Widget tests only
flutter test test/widget/
# With coverage
flutter test --coverage- โ Unit Tests: Services, models, and business logic
- โ Widget Tests: UI components and screens
- ๐ Coverage Report: Available in
coverage/lcov.info
- Flutter - UI framework
- Dart - Programming language
- SQLite (via
sqflite) - Local database - Provider Pattern - State management
- ๐จ
flutter_colorpicker- Color selection - ๐
intl- Date formatting - ๐
flutter_local_notifications- Reminder system - ๐
timezone- Timezone support - ๐
audioplayers- Sound effects - ๐ฆ
shared_preferences- Settings storage - ๐ฅ
firebase_core,firebase_auth,firebase_analytics- Firebase services - ๐
google_sign_in- Google authentication
hobbyist/
โโโ lib/
โ โโโ main.dart # App entry point
โ โโโ models/
โ โ โโโ hobby.dart # Hobby model with computed properties
โ โโโ services/ # Business logic (singleton pattern)
โ โ โโโ hobby_service.dart # CRUD operations
โ โ โโโ auth_service.dart # Google Sign-In
โ โ โโโ notification_service.dart # Local notifications
โ โ โโโ quote_service.dart # Motivational quotes
โ โ โโโ sound_service.dart # Audio feedback
โ โ โโโ analytics_service.dart # Firebase Analytics
โ โ โโโ crashlytics_service.dart # Crash reporting
โ โ โโโ remote_config_service.dart # Feature flags
โ โโโ database/
โ โ โโโ database_helper.dart # SQLite schema & migrations
โ โโโ screens/ # Full-page views
โ โ โโโ splash_screen.dart
โ โ โโโ landing_screen.dart
โ โ โโโ name_input_screen.dart
โ โ โโโ daily_tasks_screen.dart # Main dashboard
โ โ โโโ add_hobby_screen.dart
โ โ โโโ analytics_screen.dart
โ โ โโโ settings_screen.dart
โ โโโ widgets/ # Reusable components
โ โโโ contribution_chart.dart # GitHub-style heatmap
โ โโโ animated_checkbox.dart
โ โโโ tada_animation.dart
โโโ test/ # Test suites
โ โโโ unit/ # Service & model tests
โ โโโ widget/ # UI component tests
โโโ assets/
โ โโโ sounds/ # Audio files
โ โโโ images/ # Icons & logos
โโโ design/
โ โโโ app_screenshots/ # App screenshots
โโโ docs/ # Documentation
โ โโโ DATABASE_SCHEMA.md
โ โโโ FIREBASE_FEATURES_STATUS.md
โโโ pubspec.yaml # Dependencies
- ๐ Quickstart Guide - Google Sign-In setup
- ๐ Google Sign-In Setup - OAuth configuration
- ๐๏ธ Database Schema - SQLite structure
- ๐ฅ Firebase Features - Integration status
- ๐ Privacy Policy - Data handling
- ๐ Release Notes - Version history
This is a personal learning project, but suggestions and feedback are welcome! Feel free to:
- ๐ Report bugs via issues
- ๐ก Suggest new features
- ๐ Improve documentation
- โญ Star the repo if you find it useful
This project is created for personal use and learning purposes. Not licensed for commercial use.
- Inspired by GitHub's contribution graph
- Built with โค๏ธ using Flutter
- Icons and design inspired by Material Design