Skip to content

thamaraiselvam/hobbyist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

155 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐ŸŽฏ Hobbyist

Track your hobbies with discipline and motivation

Flutter Dart Firebase

A minimalist Flutter application with a GitHub-style contribution chart to build lasting habits ๐Ÿš€

Features โ€ข Screenshots โ€ข Installation โ€ข Usage โ€ข Download

Landing Page Splash Screen Daily Tasks Add Hobby

โœจ Features

๐ŸŽจ Hobby Management

  • โž• 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

๐Ÿ“Š Tracking & Visualization

  • โœ… 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

๐Ÿ”” Smart Reminders

  • โฐ 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

๐Ÿ’พ Data & Privacy

  • ๐Ÿ—„๏ธ 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)

๐ŸŽ‰ User Experience

  • ๐Ÿ’ฌ 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

๐Ÿ”ฅ Firebase Integration

  • ๐Ÿ“Š 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)

๐Ÿš€ Installation

Prerequisites

  • 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

๐Ÿ“ฆ Setup Instructions

  1. Clone the repository

    git clone https://github.com/yourusername/hobbyist.git
    cd hobbyist
  2. Install dependencies

    flutter pub get
  3. 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
  4. Run the app

    flutter run
  5. Build for release

    # Android APK
    flutter build apk --release
    
    # iOS
    flutter build ios --release
    
    # Or use the build script
    ./build-apk.sh

๐Ÿ“– Usage

Getting Started

  1. ๐Ÿ First Launch - Enter your name to personalize the experience

  2. โž• 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
  3. โœ… Track Daily - Tap any hobby card to mark it complete for today

  4. ๐Ÿ“Š Monitor Progress - View the contribution chart and analytics

  5. โš™๏ธ Customize - Adjust settings, notifications, and preferences

Advanced Features

  • ๐Ÿ“… 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

๐Ÿ“ฅ Download

Android

  • Min SDK: Android 6.0 (API 23)
  • Target SDK: Latest
  • Download APK: Check builds/ directory or Releases

iOS

  • Min iOS: 11.0
  • TestFlight: Coming soon

๐Ÿงช Testing & Coverage

Run Tests

# All tests
flutter test

# Unit tests only
flutter test test/unit/

# Widget tests only
flutter test test/widget/

# With coverage
flutter test --coverage

Coverage Report

  • โœ… Unit Tests: Services, models, and business logic
  • โœ… Widget Tests: UI components and screens
  • ๐Ÿ“Š Coverage Report: Available in coverage/lcov.info

๐Ÿ› ๏ธ Tech Stack

Core

  • Flutter - UI framework
  • Dart - Programming language
  • SQLite (via sqflite) - Local database
  • Provider Pattern - State management

Key Dependencies

  • ๐ŸŽจ 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

๐Ÿ“‚ Project Structure

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

๐Ÿ“š Documentation


๐Ÿค Contributing

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

๐Ÿ“„ License

This project is created for personal use and learning purposes. Not licensed for commercial use.


๐Ÿ™ Acknowledgments

  • Inspired by GitHub's contribution graph
  • Built with โค๏ธ using Flutter
  • Icons and design inspired by Material Design

Made with ๐Ÿ’œ by a hobbyist, for hobbyists

Start building better habits today! ๐ŸŽฏ

About

A minimalist Flutter application with a GitHub-style contribution chart to build lasting habits ๐Ÿš€

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors