Taskr is a light collaborative task managment web application built with django.
- Users
- Projects
- States (customizable columns)
- Tasks (create, edit, move, delete)
- Collaboration (add/remove members, assign tasks)
- Navigation (sidebar with projects)
git clone https://github.com/Di0go/Taskr
cd taskr
python -m venv venv
source venv/bin/activate # macOS/Linux
venv\Scripts\activate # Windows
pip install -r requirements.txt
Copy the example environment file and edit it:
cp .env.example .env
Generate a django secret key
python3 -c 'from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())'
Then open .env and set the DJANGO_SECRET_KEY to the one you generated:
DJANGO_SECRET_KEY=YOUR-SECRET-KEY
After setting up your environment:
python manage.py migrate
After applying the migration files:
python manage.py createsuperuser
python manage.py runserver
💡 Remember to run this command every time migrations have been added!
If you modify models, create new migrations with:
python manage.py makemigrations
Commit migration files so others can apply them.
- Never commit
.envordb.sqlite3 - Always commit migration files (
migrations/*.py) - Run
python manage.py migrateafter every pull (just to be safe) - Each developer should have their own
.envfile and local database - Never leak the secret key
taskr/ # Main project directory
│
├── taskr/ # Global configs, main urls
├── users/ # User management
├── projects/ # Projects creation & management
├── states/ # Customizable project columns
├── tasks/ # Task creation & management
└── collaboration/ # Project members & assignments
Users
└── CustomUser (Extended from the Django built-in)
└── avatar
Projects
└── Project
├── name
├── owner (FK → User)
└── members (ManyToMany → User)
States
└── State
├── name
├── order
└── project (FK → Project)
Tasks
└── Task
├── name
├── description
├── state (FK → State)
└── assigned_to (FK → User, optional)
This project was developed as part of a university course on Agile Software Development Methodologies.
The goal is to apply eXtreme Programming (XP) principles in practice, from planning to implementation, using an agile approach.
Taskr serves as a practical example of developing a collaborative web application, allowing students to experience iterative development, test-driven development, modular architecture, and user-focused features.