# Mood Tracker - Nokken Documentation
Documentation for the Nokken medical tracking application
Author: Charlotte Croce

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