A full-featured task management web application built with Django, featuring user authentication, task organization, and a clean, responsive interface.
-
User Management
- User registration and authentication
- Profile management
- Password reset functionality (email displayed in console for development)
-
Task Management
- Create, edit, and delete tasks
- Task priorities (low, medium, high)
- Due dates and reminders
- Task status tracking (active/completed)
-
Organization
- Categories and tags (private per user)
- Advanced filtering (active, completed, today, this week, overdue)
- Search functionality
-
API
- RESTful API endpoints (JSON)
- Backend: Django 4.2+
- Frontend: HTML5, CSS3, JavaScript
- Database: SQLite (development) / PostgreSQL (production ready)
- Authentication: Django built-in auth system
- Python 3.8 or higher
- pip (Python package manager)
-
Clone the repository
git clone https://github.com/BrandyBrandt/django-todo-app.git cd django-todo-app -
Create and activate virtual environment
# Windows python -m venv venv venv\Scripts\activate # Linux/Mac python3 -m venv venv source venv/bin/activate
-
Install dependencies
pip install -r requirements.txt
-
Set up the database
python manage.py migrate
-
Create a superuser account (REQUIRED)
python manage.py createsuperuser
Follow the prompts to create your admin account. This account will be used to access the admin panel and manage the application.
-
Run the development server
python manage.py runserver
-
Access the application
- Application: http://127.0.0.1:8000/
- Admin panel: http://127.0.0.1:8000/admin/
django-todo-app/
├── manage.py # Django management script
├── requirements.txt # Project dependencies
├── README.md # Project documentation
│
├── WebBlogProject/ # Main project configuration
│ ├── settings.py # Django settings
│ ├── urls.py # URL routing
│ └── wsgi.py # WSGI configuration
│
├── accounts/ # User authentication app
│ ├── views.py # Authentication views
│ ├── forms.py # User forms
│ └── urls.py # Auth URL patterns
│
├── blog/ # Main tasks/blog app
│ ├── models.py # Task, Category, Tag models
│ ├── views.py # Task management views
│ ├── forms.py # Task forms
│ └── urls.py # App URL patterns
│
├── templates/ # HTML templates
│ ├── base.html # Base template
│ ├── accounts/ # Auth templates
│ └── tasks/ # Task templates
│
└── static/ # Static files
├── style.css # Main stylesheet
└── js/ # JavaScript files
- Active Tasks: View all incomplete tasks
- Completed: Archive of finished tasks
- Today: Tasks due today
- This Week: Tasks due within 7 days
- Overdue: Past due tasks requiring attention
Each user has private categories and tags for personal organization. Create custom categories for different areas of life (Work, Personal, Study, etc.) and use tags for additional context.
Three priority levels help you focus on what matters:
- 🔴 High - Urgent and important
- 🟡 Medium - Important but not urgent
- 🟢 Low - Nice to have
SECRET_KEYshould be set via environment variable in productionDEBUGmust beFalsein production- Add allowed hosts in
ALLOWED_HOSTSsetting - Use environment variables for sensitive data
For production deployment:
- Set environment variables (
SECRET_KEY,DEBUG=False) - Configure
ALLOWED_HOSTS - Use a production database (PostgreSQL recommended)
- Set up static files serving
- Use a production WSGI server (gunicorn, uwsgi)
This project is licensed under the MIT License.
Aleksander Brandt
- Email: [email protected]
- GitHub: @BrandyBrandt
Contributions, issues, and feature requests are welcome!
Give a ⭐️ if this project helped you!