JournivJourniv
User Guide

Mood, Activity & Goal Tracking

Understand how Journiv connects moods, activities, moments, entries, and automatic goal progress.

Journiv uses a moment-first tracking model:

  • Moments hold context (mood, activities, tags, location, weather, media, prompt)
  • Entries are optional narrative text attached to a moment
  • Goals can update automatically from activities logged in moments

This guide explains what is currently supported and how these pieces work together.

Core Tracking Model

Each moment can include:

  • A primary mood
  • A set of mood/activity links (mood only, activity only, or mood + activity pairs)
  • Optional note, media, tags, weather, and location data
  • Optional attached entry

An entry does not own tracking metadata. It extends a moment with writing content.

What’s Supported

Journiv currently supports:

  • Mood tracking with scoring, categories, analytics, and grouping
  • Activity logging with grouping, ordering, and usage tracking
  • Goal tracking (achieve / avoid) across daily, weekly, and monthly periods
  • Goal categories for organization and manual overrides when needed
  • Starter packs for moods, activities, groups, and a starter goal on new accounts

Automatic Goal Tracking From Activity Logging

When activities are logged on a moment, Journiv recalculates relevant active goals for that period.

  • Auto-tracking is based on the goal’s linked activity
  • Progress is computed from distinct local days in the period
  • Matching goals update their period log count/status
  • Successful auto logs can keep a reference to the triggering moment

Important behavior:

  • New achieve goals linked to an activity are backfilled from existing history
  • Avoid goals generally log failure when activity is detected; success for zero-count periods is finalized on period-close logic
  • Manual toggles/overrides adjust period results without losing the auto model

How Moments and Entries Connect

Journiv supports quick logging and full journaling in the same model:

  • A moment can exist without an entry (quick log)
  • An entry must be tied to exactly one moment
  • Mood/activity tracking is anchored to the moment timeline

Current association behavior:

  • You can set primary_mood while creating an entry
  • Full mood/activity sets are managed at the moment layer
  • Timeline/search/date/mood filtering are powered by moments

Why This Model Matters

This design gives Journiv three useful properties:

  • Flexible capture: quick logs and long-form entries coexist
  • Consistent analytics: mood/activity/goal progress all derive from one timeline model
  • Portable history: export/import keeps moods, activities, groups, goals, and associations aligned