A beginner-friendly task manager web app built with Django. Create, complete, and delete tasks — all persisted in a SQLite database with a clean admin panel included.
- Add tasks with a title
- Mark tasks as complete / undo completion
- Delete tasks
- Django admin panel for full CRUD management
- SQLite database — zero configuration required
- Python 3
- Django 5.x
- SQLite (built-in)
taskmanager/
├── manage.py
├── db.sqlite3
├── taskmanager/
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
└── tasks/
├── models.py
├── views.py
├── urls.py
├── admin.py
├── forms.py
├── migrations/
└── templates/
└── tasks/
├── base.html
└── task_list.html
git clone <your-repo-url>
cd taskmanagerpython3 -m venv venv
source venv/bin/activateOn Windows:
venv\Scripts\activate
pip install djangopython manage.py migratepython manage.py createsuperuserpython manage.py runserverVisit http://127.0.0.1:8000/ to use the app.
Visit http://127.0.0.1:8000/admin/ to access the admin panel.
| URL | View | Description |
|---|---|---|
/tasks/ |
task_list |
List all tasks |
/tasks/create/ |
task_create |
Handle new task form submission |
/tasks/complete/<pk>/ |
task_complete |
Toggle task completion |
/tasks/delete/<pk>/ |
task_delete |
Delete a task |
/admin/ |
Django admin | Full admin panel |
- Django ORM and model definition
- URL routing (project-level and app-level)
- Function-based views
- Django Template Language (DTL)
- Template inheritance with
base.html - CSRF protection in forms
- Django admin customization
- Virtual environments and project structure
- Add due dates (
DateFieldon the Task model) - Filter tasks by status (pending / complete)
- User authentication so each user sees only their own tasks
- Replace manual form handling with Django
ModelForm - Deploy to Railway or Render