MoodDoodle

🎨

Flutter-based Mood Tracking & Journaling App

A comprehensive mood tracking application with drawing capabilities and multi-language support

MoodDoodle is a Flutter-based mood tracking and journaling app that combines traditional journaling with creative expression through drawings. Track your emotions, record your thoughts, and express yourself through art, all in one beautiful, multilingual application.

πŸš€ Core Features

πŸ“ Journal Entries

Create detailed journal entries with mood tracking, text content, and optional drawings. Each entry supports both written thoughts and artistic expression.

🎨 Drawing Canvas

Interactive drawing widget with color palette, adjustable stroke width, undo/redo functionality, and support for freehand drawing with multiple colors and tools.

πŸ“Š Statistics & Analytics

Visual mood trends, calendar integration, and comprehensive mood tracking over time to help you understand your emotional patterns.

πŸ’¬ Daily Motivations

Daily motivational content with quotes, images, and inspiring messages to keep you motivated on your wellness journey.

πŸ”’ Security

Biometric authentication support for secure access to your personal journal entries and drawings.

πŸ’Ύ Backup & Restore

Complete data export/import functionality including drawing images for data portability and backup.

🌍 Internationalization (i18n)

Full multi-language support with Flutter internationalization:

πŸ‡ΊπŸ‡Έ

English

Default language

πŸ‡ͺπŸ‡Έ

Spanish

Full translation

πŸ‡§πŸ‡·

Portuguese

Full translation

Implementation: Uses ARB (Application Resource Bundle) files, automatic code generation via flutter gen-l10n, persistent language selection via SharedPreferences, and real-time language switching throughout the app.

πŸ—οΈ Technical Architecture

State Management

Uses Provider pattern for reactive state management throughout the application.

Database

SQLite via sqflite package for local data persistence with indexed queries on created_at and date fields.

Data Models

  • JournalEntry: Stores journal entries with mood, content, and optional drawing paths
  • DailyMotivation: Stores motivational quotes with author and images

Services Layer

  • DatabaseService: Singleton pattern for database operations
  • MotivationService: Handles fetching and caching daily motivational content
  • BackupService: Manages complete data export/import functionality
  • LanguageService: Manages app locale with Provider pattern

πŸ“± Screen Organization

🏠 HomeScreen

Main entry point with calendar view and recent entries display

πŸ“ JournalEntryScreen

Create and edit journal entries with mood selection and drawing canvas

πŸ“š HistoryScreen

Browse and search through past journal entries

πŸ“Š StatisticsScreen

Mood trends visualization and analytics dashboard

πŸ’¬ MotivationScreen

Daily motivational content and inspiring quotes

βš™οΈ SettingsScreen

App configuration including backup/restore and language settings

🎨 UI Components

GlassmorphicCard

Custom glassmorphism effect cards for elegant UI presentation

MoodIndicator

Visual mood representation widget with animated feedback

DrawingCanvas

Interactive drawing widget with full creative controls

LanguageDropdown

Language selector with flag emojis in app bar (top-left position)

🎯 Project Highlights

πŸ“±

Cross-Platform

Built with Flutter for iOS and Android with native performance

🎨

Creative Expression

Unique combination of journaling and artistic drawing capabilities

🌍

Multi-Language

Full internationalization support for global accessibility

πŸ“Š

Data-Driven

Comprehensive analytics and mood tracking with visual insights