A role-based Project Management Application built with Django REST Framework as the backend and Next.js as the frontend. The system manages projects, tasks, bugs, and QA workflows using JWT-based authentication and strict role-based permissions.
This project was implemented within a limited timeframe with a strong focus on architecture, correctness, and scalability. The current implementation is intentionally minimal but production-ready, with a clear path for future enhancements.
- Django
- Django REST Framework (DRF)
- JWT Authentication (SimpleJWT)
- SQLite / PostgreSQL (configurable)
- Role-based permissions
- Next.js (App Router)
- TypeScript
- Fetch API
- Modular component-based UI
- User Sign Up / Login
- JWT-based authentication
- Token verification for protected routes
- Role-based access using Django permissions and groups
- Create and manage projects
- Assign Developers and QA to projects
- Create tasks and assign them to Developers
- View project-level task and bug data
- View assigned projects
- View tasks assigned to them
- Track task status and progress
- Isolated access (cannot see unrelated projects or tasks)
- View projects where QA is assigned
- Report bugs for assigned projects
- View bugs requiring verification
- View test runs (basic implementation)
- Created and owned by Project Managers
- Developer and QA assignment per project
- Strict permission enforcement
- Created by PMs
- Assigned to Developers
- Developer-only task visibility
- Status and priority tracking
-
QA can report bugs only for assigned projects
-
Bug fields include:
- Title
- Description
- Severity
- Status
- Project
-
Clear lifecycle separation (reporting vs verification)
- QA-focused test run listing
- Designed for future test case management
- Role-based API endpoints (PM / Dev / QA)
- Serializer-driven responses
- Domain separation (
projects,tasks,bugs,auth) - Frontend types aligned with backend serializers
- Designed for extension, not over-engineering
/api/auth/
βββ login/
βββ register/
/api/projects/
βββ pm/
βββ qa/
/api/tasks/
βββ dev/
/api/bugs/
βββ create/
βββ qa/
βββ pm/
βββ dev/
git clone https://github.com/your-username/project-management-app.git
cd project-management-app/backendpython3 -m venv venv
source venv/bin/activate(Windows)
venv\Scripts\activatepip install -r requirements.txtpython manage.py makemigrations
python manage.py migratepython manage.py createsuperuserpython manage.py runserverBackend will be available at:
http://localhost:8000/
cd frontend
npm install
npm run devFrontend will be available at:
http://localhost:3000/
- APIs tested using Postman
- JWT and permission checks validated
- Error handling for unauthorized access
- Defensive serializer validation
This project was built under time constraints with focus on clean backend design and correctness rather than feature volume.
Planned enhancements include:
- Task comments and activity logs
- Bug lifecycle actions (assign, verify, close)
- Test case management
- File attachments (screenshots, PR links)
- Pagination and advanced filtering
- Audit trails and notifications
This repository demonstrates:
- Practical Django REST Framework expertise
- Secure JWT-based authentication
- Clean role-based backend architecture
- Strong API contract discipline
- Ability to deliver production-quality systems under time constraints



