Abstract
Django Todo is an open-source Full Stack Web Development project. A multi-user, multi-group todo/ticketing system for Django projects. Includes CSV import and integrated mail tracking. File attachments of a few types are allowed on tasks by default. See settings to disable or to limit filetypes. It is built using Python, Django. Key capabilities include: Drag and drop task prioritization; Email task notification; Comments on tasks. The complete source code is publicly available on GitHub under the BSD 3-Clause "New" or "Revised" License, making it a useful reference for students building a Full Stack Web Development mini project or final-year project.
1. Introduction
File attachments of a few types are allowed on tasks by default. See settings to disable or to limit filetypes. If you are concerned about file sizes, limit them in your web server configuration (not currently handled separately by django-todo).
django-todo is auth-only. You must set up a login system and at least one group before deploying.
django-todo v2 makes use of features only available in Django 2.0. It will not work in previous versions. v2 is only tested against Python 3.x -- no guarantees if running it against older versions.
2. Objective
A multi-user, multi-group todo/ticketing system for Django projects. Includes CSV import and integrated mail tracking.
This project demonstrates how Python, Django can be applied to a real-world Full Stack Web Development problem.
3. Key Features / Modules
- Drag and drop task prioritization
- Email task notification
- Comments on tasks
- Public-facing submission form for tickets
- Mobile-friendly (work in progress)
- Separate view for My Tasks (across lists)
- Batch-import tasks via CSV
- Batch-export tasks in CSV Format
- Multiple file attachments per task (see settings)
- Integrated mail tracking (unify a task list with an email box)
4. Technology Stack
5. System Requirements
General requirements for this technology stack — check the README for exact versions.
- Python 3.8 or later
- pip / virtualenv for dependencies
- VS Code, PyCharm or Jupyter Notebook
- Git (to clone the repository)
6. Installation & Setup
git clone https://github.com/shacker/django-todo.git
cd django-todo{% block extrahead %}{% endblock extrahead %}
{% block extra_js %}{% endblock extra_js %}INSTALLED_APPS = (
...
'todo',
)<a href="{% url 'todo:lists' %}">Todo Lists</a>
<a href="{% url 'todo:mine' %}">My Tasks</a>Full setup instructions are in the project README.
7. Future Enhancements
Suggested extensions you can add to make this your own project.
- Add role-based access control
- Deploy on a VPS or cPanel hosting with a custom domain
- Add automated tests and a CI pipeline
8. Viva / Review Questions
Common questions examiners ask for projects in this domain.
- Explain the frontend, backend and database layers of this application.
- How is user authentication and authorisation implemented?
- Describe the main database tables / collections and their relationships.
- Which REST APIs or routes are exposed and what do they return?
- How would you deploy this application to production?
9. Source Code & License
This project is developed by shacker and published on GitHub under the BSD 3-Clause "New" or "Revised" License. Please follow the license terms and credit the original author when you use or modify this code.
Want to build this as your internship project?
Work on a Full Stack Web Development project like this with mentor guidance, weekly reviews and an internship certificate from Training Trains, Erode — online or offline.
Apply for Full Stack Web Development Internship