A Django web application for tracking learning progress across multiple languages and topics.
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.
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
- Python 3.12
- Django 5.0+
- Bootstrap 5.3
- Chart.js
- PostgreSQL (production) / SQLite (development)
- WhiteNoise for static files
Clone and navigate to the project:
git clone https://github.com/koki-star/studytracker.git
cd studytrackerCreate virtual environment and install dependencies:
python3 -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txtCreate .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:8000Generate 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 runserverVisit http://127.0.0.1:8000
Development:
SECRET_KEY- Django secret keyDEBUG- Set to True for developmentALLOWED_HOSTS- Comma-separated hostnamesCSRF_TRUSTED_ORIGINS- Comma-separated origins
Production (additional):
DATABASE_URL- PostgreSQL connection stringEMAIL_HOST- SMTP server for password resetEMAIL_PORT- SMTP port (default: 587)EMAIL_HOST_USER- Email usernameEMAIL_HOST_PASSWORD- Email password
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.
- 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
Configured for Render, Railway, Heroku, or similar platforms.
Production checklist:
- Set
DEBUG=False - Generate new
SECRET_KEY - Set
ALLOWED_HOSTSandCSRF_TRUSTED_ORIGINSto your domain - Configure
DATABASE_URLfor PostgreSQL - Configure email settings for password reset
- Run
python manage.py migrate - Run
python manage.py collectstatic - Create admin:
python manage.py createsuperuser
MIT License
Kokob Haile