This project originated as an academic assignment for the course
“Web Serveur – L2” (ISIMA).
The assignment required implementing a collaborative task management system using Django.
The core requirements included:
- Multi-user authentication (registration and login)
- Task creation, modification, deletion
- Public and private task visibility
- Team creation and membership
- Task assignment to users and teams
- Subtask relationships
- Profile visualization
The emphasis of the assignment was functional correctness.
From the official specification:
- Tasks with title, status, description
- Subtasks
- Assignment to users and teams
- Public vs private visibility
- Team join/leave functionality
- Basic routing and views
- Django-based MVC structure
The evaluation criteria focused on:
- Functionality
- User interface
- Code quality
- Documentation
- Respect of requirements
This repository goes beyond the minimum academic requirements by:
- Explicitly separating authentication and business domains
- Formalizing object-level authorization rules
- Modeling directed subtask relationships
- Implementing lifecycle cleanup using Django signals
While the assignment required a working application, this version treats the project as a backend architecture exercise:
- Focus on permission logic correctness
- Clear separation of concerns
- Explicit trade-offs (no service layer, no DRF)
- Transparent authorization flow
- Awareness of scalability and security limitations
This project remains:
- Server-rendered (not API-first)
- Not production-hardened
- Not performance-optimized
- Without full automated test coverage
These limitations are acknowledged and documented in the respective sections.
This project demonstrates:
- Understanding of relational modeling
- Multi-actor permission systems
- Architectural constraint reasoning
- System evolution awareness
It reflects an academic exercise intentionally extended toward backend engineering practice.