Design
Task Management System
Design a task management system (like Trello or JIRA) where users create projects, add tasks with priorities and due dates, assign them to team members, track status, and receive notifications on updates.
This is a Low-Level Design (LLD) problem. New to LLD vs HLD? Start here.
01 - Why interviewers ask this
Task Management tests breadth of OOP: you must model a domain with multiple interacting entities, enforce business rules like valid status transitions, handle many-to-many relationships (tasks ↔ assignees), and apply patterns like Observer for real-time updates — all in a system interviewers can relate to.
02 - Where this system exists in the real world
You interact with this design every day.
Powers project management tools like Jira, Trello, Asana, and Linear
Underlies agile sprint boards and kanban workflow systems
Foundation for issue trackers in open-source projects (GitHub Issues)
Core of enterprise work management platforms used by millions of teams
03 - What you'll master
Solve this once. Know it forever.
Model status as an enum and enforce valid transitions
Apply the Observer pattern to decouple notification logic from business logic
Design composable, chainable filter predicates for query flexibility
Handle role-based access control within a collaborative domain model
04 - What you'll design
8 functional · 3 non-functional requirements.
Create and manage projects with members and roles
7 more requirements inside
Sign in to unlock the full brief and start designing
05 - Companies that ask this
You may face this exact question in your next interview.
Ready?
Open the canvas.
Design it yourself.
See all requirements, use staged hints, run your code, and compare with community discussions - all on the same canvas.