A Django-based web application for tracking learning topics and entries. Users can create topics, add detailed learning entries, and track their progress.
- User Authentication: Register, login, logout with Django's built-in auth system
- Topic Management: Create and view learning topics
- Entry Tracking: Add detailed entries to topics to document learning
- Responsive Design: Bootstrap-based UI for mobile and desktop
- Admin Panel: Django admin interface for data management
- Backend: Django 5.2.8
- Frontend: Bootstrap 4, HTML/CSS
- Database: SQLite (development), PostgreSQL (production)
- Server: Gunicorn + WhiteNoise for static files
- Deployment: Render (free tier)
- Python 3.12+
- pip or uv (package manager)
- Git
git clone https://github.com/int-arsh/learning_log.git
cd learning_logpython -m venv .venv
source .venv/bin/activate # On Windows: .venv\Scripts\activatepip install -r requirements.txtpython manage.py migratepython manage.py createsuperuserpython manage.py runserverVisit http://localhost:8000 in your browser.
learning_log/
├── learning_log/ # Main project settings
│ ├── settings.py # Django configuration
│ ├── urls.py # Root URL routing
│ ├── wsgi.py # WSGI application
│ └── asgi.py # ASGI application
├── learning_logs/ # Learning log app
│ ├── models.py # Topic & Entry models
│ ├── views.py # App views
│ ├── urls.py # App URL routing
│ ├── forms.py # Django forms
│ └── templates/ # App templates
├── users/ # User authentication app
│ ├── views.py # Registration & auth views
│ ├── urls.py # Auth URL routing
│ └── templates/ # Auth templates
├── manage.py # Django CLI
├── requirements.txt # Python dependencies
├── Procfile # Deployment configuration
└── README.md # This file
- GitHub account with repo pushed
- Render.com free account
# Ensure all changes are committed
git add .
git commit -m "Prepare for Render deployment"
git push origin main- Go to render.com/dashboard
- Click "New +" → "Web Service"
- Select your GitHub repo
- Choose runtime: Python 3.12
Build Command:
pip install -r requirements.txt && python manage.py collectstatic --noinput && python manage.py migrate
Start Command:
gunicorn learning_log.wsgi --log-file -
Add these in Render's Environment tab:
| Key | Value |
|---|---|
DEBUG |
false |
SECRET_KEY |
Generate strong key |
ALLOWED_HOSTS |
.onrender.com |
Click "Deploy". Render will:
- Install dependencies
- Collect static files
- Run migrations
- Start the app
Your app will be live at https://<your-service-name>.onrender.com
SQLite on Render's free tier is ephemeral (data lost on redeploy). For production:
- Add a Render PostgreSQL database
- Copy its
DATABASE_URLto environment variables - Render auto-configures the connection
- Visit
/users/register/ - Create account with username & password
- Login
- Click "New Topic"
- Enter topic name and save
- Click a topic
- Click "New Entry"
- Write your learning notes and save
- Visit
/admin/ - Login with superuser credentials
- Manage users, topics, and entries
python manage.py showmigrations
python manage.py migrate learning_logspython manage.py collectstatic --clear --noinput- Check build logs in Render dashboard
- Verify
SECRET_KEYis set in environment - Ensure
gunicornis inrequirements.txt
MIT License - feel free to use and modify.
Contributions welcome! Fork, create a feature branch, and submit a pull request.
int-arsh | GitHub