0% found this document useful (0 votes)
9 views3 pages

Project Management Tool

Uploaded by

Wishaq Akbar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
9 views3 pages

Project Management Tool

Uploaded by

Wishaq Akbar
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Project Management Tool

Description:
Create a tool to manage tasks and projects, assign priorities, track progress, and
allow for task history, undo actions, and collaboration.

Features and Corresponding Data Structures:


1. Task Storage and Assignment:
o Array:

 Store the list of all tasks with attributes like title, description,
priority, and status (e.g., pending, in progress, completed).
 Example: tasks[] = [{id: 1, title: "Design UI", priority: "High"},
...]
2. Task Prioritization:
o Queue:

 Use a priority queue to manage tasks based on their


urgency.
 Tasks with higher priority are processed first.
3. Task History and Undo Actions:
o Stack:

 Implement undo functionality for task actions (e.g., marking


as completed or deleting a task).
 Push every action onto the stack; pop to undo.
4. Collaboration (Task Assignment):
o Linked List:

 Use a linked list to represent dynamically assigned tasks to


team members.
 Each node represents a user and links to their assigned tasks.
5. Task Scheduling:
o Queue:

 Manage task scheduling using a queue (FIFO).


 Tasks are processed in the order they are scheduled, ensuring
fairness and sequential task execution.
6. Project Progress Tracking:
o Array:

 Track the overall status of the project by storing task statuses


in an array and calculating progress percentages dynamically.
 Example: progress[] = ["Completed", "In Progress",
"Pending"].
7. Subtasks and Dependencies:
o Linked List:

 Represent dependencies between tasks using a linked list


where each node connects to its dependent subtasks.
 Example: A task like "Launch Campaign" could be linked to
subtasks like "Prepare Assets" → "Set Up Ads" → "Review".
8. Notification System:
o Queue:

 Use a queue to manage notifications for task updates (e.g.,


"Task Assigned", "Task Due").
 Notifications are delivered in the order they are generated.
9. Archived Tasks:
o Stack:

 Maintain a stack of archived tasks for quick retrieval of


recently archived items.
 Allows users to restore tasks if needed.
10.Search and Filter Functionality:
o Array:

 Use arrays to implement search and filter operations, such as


finding tasks assigned to a specific user or filtering by priority.

Implementation Flow:
1. Task Creation:
o Add tasks to an array with details like priority and due dates.

2. Task Assignment:
o Assign tasks to team members using a linked list, allowing
dynamic addition and deletion.
3. Task Execution:
o Process tasks based on priority using a priority queue.

o Completed tasks are pushed onto a stack for history tracking.

4. Undo/Redo Actions:
o Maintain a stack of actions for undo/redo functionality, enabling
users to revert changes easily.
5. Task Dependencies:
o Represent dependent tasks using a linked list or graph structure.

Advanced Add-ons:
 Gantt Chart:
o Use an array of linked lists to represent task timelines, where
each project is an array and each node in the list represents a task's
time slot.
 Collaboration Queue:
o Allow a queue for comments or feedback on tasks, ensuring
messages are addressed in order.

You might also like