Task Manager is a web application built with Django that allows users to register, log in, and manage tasks with statuses and labels. It’s a simple but fully functional project management tool created as the final project of the Hexlet Python Developer course.
- User registration and authentication
- CRUD operations for:
- Tasks (title, description, status, author, executor)
- Statuses (e.g. "New", "In progress", "Done")
- Labels for flexible task categorization
- Access control: users can edit or delete only their own tasks
- Flash messages for user feedback (success/error notifications)
- Deployed with PostgreSQL and environment variables on Render
- Backend: Django 5.x
- Database: PostgreSQL
- Frontend: Django Templates, Bootstrap
- Testing: pytest
- Code quality: SonarCloud
Clone the repository and install dependencies with uv:
- git clone https://github.com/Olyapka84/task-manager-trainee-django-project.git
- cd task-manager-trainee-django-project
- uv sync
Create a .env file in the project root:
- DEBUG=True
- SECRET_KEY=your_secret_key
- DATABASE_URL=postgresql://USER:PASSWORD@localhost:5432/task_manager
Run database migrations:
- make migrate
Start the development server:
- make start
or directly:
- uv run python manage.py runserver 0.0.0.0:8000
Then open the app at:
http://localhost:8000/
Run the full test suite:
- make test
The project demonstrates key Django concepts such as models, views, forms, authentication, and template inheritance.
- Author: Olga Akukina (https://github.com/olyapka84)
- Hexlet: https://hexlet.io