Skip to content

koki-star/studytracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StudyTracker

A Django web application for tracking learning progress across multiple languages and topics.

Live Demo

The frontend is live and accessible. User registration and login are currently unavailable due to a backend configuration issue being actively worked on. Core authenticated features including the dashboard, progress tracking, goals, and milestones will be accessible once the fix is deployed.

Features

Note - the following features are built and accessible once authentication is restored. The frontend and navigation are fully functional.

  • Daily progress logging with time tracking and confidence levels
  • Goal setting with target dates
  • Milestone tracking
  • Resource management for learning materials
  • Topic organization by language
  • Dashboard with time visualization charts
  • Dark mode support
  • User authentication with password reset

Tech Stack

  • Python 3.12
  • Django 5.0+
  • Bootstrap 5.3
  • Chart.js
  • PostgreSQL (production) / SQLite (development)
  • WhiteNoise for static files

Setup

Clone and navigate to the project:

git clone https://github.com/koki-star/studytracker.git
cd studytracker

Create virtual environment and install dependencies:

python3 -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt

Create .env file:

SECRET_KEY=your-secret-key-here
DEBUG=True
ALLOWED_HOSTS=localhost,127.0.0.1
CSRF_TRUSTED_ORIGINS=http://localhost:8000,http://127.0.0.1:8000

Generate SECRET_KEY:

python3 -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())"

Run migrations and start server:

python3 manage.py migrate
python3 manage.py runserver

Visit http://127.0.0.1:8000

Environment Variables

Development:

  • SECRET_KEY - Django secret key
  • DEBUG - Set to True for development
  • ALLOWED_HOSTS - Comma-separated hostnames
  • CSRF_TRUSTED_ORIGINS - Comma-separated origins

Production (additional):

  • DATABASE_URL - PostgreSQL connection string
  • EMAIL_HOST - SMTP server for password reset
  • EMAIL_PORT - SMTP port (default: 587)
  • EMAIL_HOST_USER - Email username
  • EMAIL_HOST_PASSWORD - Email password

Authentication

Authentication is implemented and protected routes are in place. Registration and login forms are built but currently experiencing a server-side configuration issue on the live deployment. The fix is in progress.

Password reset emails print to console in development. Configure SMTP for production.

Database Models

  • Language - Languages/skills with difficulty levels
  • Topic - Concepts within a language
  • DailyProgress - Study sessions with time and confidence tracking
  • Goal - Objectives with target dates
  • Milestone - Achievement markers
  • Resource - Learning material links

Deployment

Configured for Render, Railway, Heroku, or similar platforms.

Production checklist:

  1. Set DEBUG=False
  2. Generate new SECRET_KEY
  3. Set ALLOWED_HOSTS and CSRF_TRUSTED_ORIGINS to your domain
  4. Configure DATABASE_URL for PostgreSQL
  5. Configure email settings for password reset
  6. Run python manage.py migrate
  7. Run python manage.py collectstatic
  8. Create admin: python manage.py createsuperuser

License

MIT License

Author

Kokob Haile

About

A simple study tracker for organizing learning progress and time spent.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors