Design a system like Jira. It should have the following functionalities :
MediumLet's dive into designing a simplified issue tracking system, similar to Jira. Our focus will be on the core domain model and how to structure the classes effectively. We're not building a production-ready Jira, but rather a robust and extensible foundation that demonstrates solid object-oriented principles. Think of this as the heart of Jira, focusing on issues, workflows, and users without the complexities of distributed systems, scaling, or UI concerns.
At the core, we need to manage "Issues" – bug reports, feature requests, tasks, etc. Each issue progresses through a "Workflow", which defines the states an issue can be in and the transitions between those states (e.g., "Open" -> "In Progress" -> "Resolved" -> "Closed"). Users interact with these issues, creating them, assigning them, and transitioning them through the workflow.
We also need to support different types of issues (e.g., Bug, Task, Story), each potentially requiring custom fields or behavior. A key requirement is the ability to define custom workflows and associate them with different project types or issue types.
Imagine a scenario where a new team joins the organization and their project requires a different workflow than existing teams. The system should easily adapt to this change without requiring significant code modifications. Similarly, consider an organization-wide policy change that requires the addition of a new "Compliance Review" step in existing workflows. The system should allow for the workflow to be updated without breaking existing projects.
Requirements
Interview Simulation
Experience a realistic interview conversation. The interviewer will ask clarifying questions,and you'll reveal your understanding of the requirements.
Let's start by understanding the scope. What are the core functionalities this system needs to provide?
💡 Interview Tip
Identify the Actors (Who uses the system?) and their Use Cases (What are they trying to achieve?). Start with the 'Happy Path' scenarios.