Goal Tracker – A Django App for Creative Habit Building

Project Details

Goal Tracker – A Django App for Creative Habit Building

Completed August 2025. A reusable Django app that lets users create, edit, and track personal goals over time.

Overview

Key takeaways
  • A reusable Django app that lets users create, edit and track personal goals over time.
  • Goals can be set by time, words or sessions, and tracked daily, weekly or monthly.
  • Users log sessions and see progress as percentages and on a colour-coded calendar.
  • It is available to registered users only, with each goal linked to their own account.
  • The same base app runs on Pen & I Publishing and Inspirational Guidance.

The Goal Tracker was built to help users turn inspiration into momentum and consistent action. It started as part of the Journal Writing Tracker on Pen & I Publishing, where users recorded writing sessions and tracked word count or time spent. On Inspirational Guidance, it evolved into a broader goal-setting system that supports different habits like journaling, mindfulness, and personal development goals. The Goal Tracker integrates directly with Django’s authentication system and is available after registration.

Each user can define specific, measurable goals such as:

Examples

Goals users can set

  • “Write for 15 minutes a day.”
  • “Complete 4 journaling sessions per week.”
  • “Reflect three times a week on gratitude.”

Once a goal is created, users can log sessions, view progress in real time, and visualise their consistency on a calendar. The system automatically calculates percentages, averages, and progress toward weekly or monthly targets, turning self-improvement into a simple, visual routine.

Technical Details

The Goal Tracker app is structured as a self-contained Django module models_tracker.py and views_tracker.py, with reusable templates that can be integrated into any authenticated Django project.

Core features
FeatureWhat it does
Custom Goal CreationUsers can set goals by type (time, words, or sessions), choose frequency (daily, weekly, or monthly), and optionally add start and end dates or notes.
Progress TrackingLogged sessions are linked to specific goals, enabling dynamic progress calculation with automatic percentage-based feedback.
Calendar ViewA colour-coded monthly calendar (progress_calendar.html) visualises daily engagement levels by minutes or sessions.
Statistics DashboardThe summary page (monthly_stats.html) displays total sessions, average minutes per session, and word count with support for future trend analytics.
Goal ManagementUsers can view, filter, edit, or deactivate goals via goal_list.html and edit_goal.html.
Recent Activity SummaryA quick overview section (recent_goals.html) highlights the latest goals and achievements.

WritingGoal

Stores user-defined goals with type, frequency, and optional labels. Includes fields for goal_type, target_value, frequency, start_date, end_date, and notes. Key methods:

  • progress_percentage() – Calculates real-time progress toward targets.
  • days_remaining() – Displays countdown to goal end date.
  • is_current() – Checks if the goal is still active.

WritingSession

Tracks sessions linked to each goal and stores minutes_spent, word_count, mood, and notes. Progress is aggregated automatically per goal.

Integration & Architecture

  • Fully integrated with Django’s authentication system.
  • Reusable across multiple sites — Pen & I Publishing and Inspirational Guidance both use the same base app with unique branding.
  • Templates styled using Tailwind CSS for responsive layouts and consistent design.
  • Progress data visualised using Chart.js and lightweight JavaScript functions.
  • Compatible with SQLite and PostgreSQL.
  • Future-ready with optional Django REST Framework API endpoints.
Registered users only

The Goal Tracker is available to registered users only. It integrates directly with Django’s authentication system, ensuring that each goal is securely linked to an individual user profile. Logged-in users can create, edit, or delete their personal goals, with all progress data saved privately within their account dashboard.

Results

The Goal Tracker transformed the journaling experience from something passive into an active, measurable habit. It expands that focus toward helping users track consistency in reflective or self-care routines.

What it showed

For me, this project demonstrated how Django’s modular design allows a single codebase to serve multiple brands with distinct tones and audiences. It’s also a foundation for future behavioural insights  including streak tracking, visual analytics, and AI-assisted habit suggestions.

Reflect

Shape a goal of your own

  1. What do you want to do regularly?Make it specific and measurable.
  2. How often, and for how long?Daily, weekly or monthly.
  3. How will you know it is working?
Built with

This page was made using Interactive Content Blocks

The key takeaways, the goals checklist and the planning questions on this page come from Interactive Content Blocks: seven ready-made blocks that let readers tick, write, score themselves and keep their progress. One purchase covers every site you own, and your AI assistant writes the blocks from the included skill file.

See Interactive Content Blocks →