Skip to content

Mood Tracker

The mood tracker feature allows users to record their daily moods and track various wellness metrics over time, helping users identify patterns and correlations in their wellbeing.

Models

  • MoodEntry: Primary model for daily mood records with emotional and health metrics.
  • MoodRating: Enumeration of mood levels (great, good, okay, meh, bad) with display names, emojis, and descriptions.
  • Emotion: Various emotional states that can be selected (excited, relaxed, happy, etc.) with display names and emojis.
  • Health Categories: Multiple enums tracking various wellness metrics: SleepQuality, EnergyLevel, LibidoLevel, AppetiteLevel, FocusLevel, DysphoriaLevel, ExerciseLevel

Providers

  • moodStateProvider: Manages mood entry CRUD operations
  • moodEntryForDateProvider: Retrieves mood entries for specific dates
  • moodColorsProvider: Defines the color scheme for different mood ratings
  • moodEntriesProvider: Provides access to the full list of mood entries
  • moodEntriesLoadingProvider: Indicates when mood entries are loading
  • moodEntriesErrorProvider: Provides access to any error messages

Screens

  • MoodTrackerScreen: Form for recording detailed mood and wellness data
  • MoodQuickSelector: Compact widget for quickly selecting mood from the daily tracker.

Widgets

  • MoodFieldChips: Displays mood and wellness data as visual indicator chips.

Utilities

  • MoodUtils: Helper functions for mood-related UI elements:
  • Color mapping for all mood ratings and health categories
  • Emoji and display name access
  • Collections of enum values for UI rendering

Interactions

  • Uses DatabaseService for persistent storage of mood data
  • Uses NavigationService for screen transitions
  • Interacts with Scheduler to display mood indicators on calendar
  • Provides data to Stats module for analytics and visualizations