A Django web application for managing projects, tasks, teams, workers, positions, and task types. The project uses
class-based views, reusable list/detail mixins, Bootstrap-based templates, Select2 widgets, and a custom Worker user
model.
https://task-manager-9cw3.onrender.com
- Login:
admin - Password:
dcgBm7gA
⚠️ If the page does not loadPlease wait ~50 seconds — the server may be waking up. On free Render.com plans, the service sleeps after 5 minutes of inactivity and needs time to restart.
- Authentication-protected dashboard with project, team, worker, and task counters.
- CRUD pages for:
- projects
- tasks
- teams
- workers
- positions
- task types
- Project and task completion toggles.
- Deadline validation that prevents new past deadlines.
- Overdue status detection for project and task detail pages.
- Search, filtering, sorting, and pagination on list views.
- Paginated project task lists on project detail pages.
- Django admin configuration for core models.
- Fixture data for local development and testing.
- Python 3.12+
- Django 6.0
- SQLite
- django-environ
- django-crispy-forms with crispy-bootstrap5
- django-select2
- django-debug-toolbar
- Bootstrap / Pixel UI static assets
- flake8
task_manager/
├── fixtures/ # Sample fixture data
├── static/ # Project CSS and vendored frontend assets
├── task_manager/ # Django project settings and root URLs
├── tasks/ # Main app: models, forms, views, tests
├── templates/ # Shared and app templates
├── manage.py
├── requirements.txt
└── README.md
Position: worker job position.Worker: custom user model extendingAbstractUser, linked to a position.Team: group of workers.Project: project with description, deadline, completion state, and assigned teams.TaskType: task category.Task: task with type, priority, deadline, completion state, assignees, and optional project.
- Clone the repository and enter the project directory.
git clone <repository-url>
cd task_manager- Create and activate a virtual environment.
Windows:
python -m venv .venv
.\.venv\Scripts\ActivatemacOS/Linux:
python -m venv .venv
source .venv/bin/activate- Install dependencies.
pip install -r requirements.txt- Create a
.envfile from the template.
Windows:
cp .env.template .envmacOS/Linux:
cp .env.template .envThen update .env:
DATABASE_URL=your-db-url
SECRET_KEY=your-secret-key
DJANGO_SETTINGS_MODULE=settings-module
RENDER_EXTERNAL_HOSTNAME=host-name- Apply migrations.
python manage.py migrate- Optional: load sample data.
python manage.py loaddata fixtures/task_manager_test_db_data.json- Optional: create an admin user.
python manage.py createsuperuser- Run the development server.
python manage.py runserverOpen http://127.0.0.1:8000/.
Run tests:
python manage.py testRun linting:
flake8Open the Django admin:
http://127.0.0.1:8000/admin/
| Route | Description |
|---|---|
/ |
Dashboard |
/projects/ |
Project list |
/tasks/ |
Task list |
/teams/ |
Team list |
/workers/ |
Worker list |
/positions/ |
Position list |
/task-types/ |
Task type list |
/accounts/login/ |
Login |
/accounts/logout/ |
Logout |
/admin/ |
Django admin |
- The app uses
tasks.WorkerasAUTH_USER_MODEL. - The default database is SQLite at
db.sqlite3. - Static frontend assets are committed under
static/assets. - Debug Toolbar is enabled for local development and
127.0.0.1.