Skip to content

A Django web app for tracking study habits and daily learning goals. Users can log study sessions, monitor consistency, and visualize progress — deployed on Render with PostgreSQL.

Notifications You must be signed in to change notification settings

IvanOgnyanovGoranov/DjangoStudyTracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

106 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

STUDY TRACKER

Live Demo: https://studytracker-1vth.onrender.com

Study Tracker is a Django web application that helps users manage their study subjects and track daily progress. Each user can add subjects, set a daily study goal, and record their study sessions to monitor consistency and improvement over time.

FEATURES

  • User authentication (only logged-in users can manage their subjects and study time)
  • Add, edit, and delete study subjects with daily goals
  • Log study sessions in minutes
  • Automatic calculation of total study time
  • Form and model validation for clean data
  • Class-based and function-based views
  • Comprehensive unit tests for models, forms, and views
  • Deployed on Render using PostgreSQL and Gunicorn

TECH STACK

  • Backend: Django 5.x (Python 3.12)
  • Frontend: Django templates (HTML, CSS)
  • Database: PostgreSQL
  • Authentication: Django’s built-in user system
  • Testing: Django TestCase and unittest
  • Deployment: Render (Gunicorn + Whitenoise)

INSTALLATION (Local Development)

  • Clone the repository: git clone https://github.com/yourusername/study-tracker.git cd study-tracker
  • Create and activate a virtual environment: python -m venv venv source venv/bin/activate # macOS/Linux venv\Scripts\activate # Windows
  • Install dependencies: pip install -r requirements.txt
  • Apply migrations: python manage.py migrate
  • Run the development server: python manage.py runserver
  • Open the app in your browser: http://127.0.0.1:8000/

USAGE

  • Register or log in to your account.
  • Add subjects and set daily goals (e.g., 60 minutes for “Math”).
  • Log study sessions as you complete them.
  • View total study time and update your goals when needed.

RUNNING TESTS

To run all tests: python manage.py test

The test suite covers:

  • Model validation (subjects, edited goals, study progress)
  • Form validation (add/edit subject forms)
  • View logic (adding, deleting, and updating subjects)

KEY LEARNINGS

This Project demonstrates how to:

  • Build and structure a Django web application from scratch
  • Using class-based views effectively
  • Writing form and model validation
  • Building a test-driven Django project
  • Implementing authentication and user-specific data handling

FUTURE IMPROVEMENTS

  • Add study statistics and charts (e.g., with Chart.js or Plotly)
  • Add streak tracking and motivation messages
  • User profile customization
  • Email reminders or notifications

Author

Ivan Goranov

About

A Django web app for tracking study habits and daily learning goals. Users can log study sessions, monitor consistency, and visualize progress — deployed on Render with PostgreSQL.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published