Overview
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:
“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
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
- Custom Goal Creation – Users 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 Tracking – Logged sessions are linked to specific goals, enabling dynamic progress calculation with automatic percentage-based feedback.
- Calendar View – A colour-coded monthly calendar (progress_calendar.html) visualises daily engagement levels by minutes or sessions.
- Statistics Dashboard – The summary page (monthly_stats.html) displays total sessions, average minutes per session, and word count with support for future trend analytics.
- Goal Management – Users can view, filter, edit, or deactivate goals via goal_list.html and edit_goal.html.
- Recent Activity Summary – A quick overview section (recent_goals.html) highlights the latest goals and achievements.
Core Models
- 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.
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.
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.