From 4fa493bf2edee757866b6b36770819c0e4424c7d Mon Sep 17 00:00:00 2001 From: StrongXscripts Date: Fri, 24 Oct 2025 00:26:14 +0500 Subject: [PATCH 1/2] Update README.md From 54391dca0e05d97a973467d7d774fb36150cc37f Mon Sep 17 00:00:00 2001 From: Prithviraj_1657 Date: Fri, 24 Oct 2025 01:00:48 +0530 Subject: [PATCH 2/2] Add Task Management System project - Added task_manager.py with Task and TaskManager classes - Included unit tests in test_task_manager.py - Added comprehensive README.md with usage instructions - All tests passing --- python/task_management_system/README.md | 52 +++++++++++++++++++ python/task_management_system/task_manager.py | 38 ++++++++++++++ .../test_task_manager.py | 27 ++++++++++ 3 files changed, 117 insertions(+) create mode 100644 python/task_management_system/README.md create mode 100644 python/task_management_system/task_manager.py create mode 100644 python/task_management_system/test_task_manager.py diff --git a/python/task_management_system/README.md b/python/task_management_system/README.md new file mode 100644 index 0000000..5862ac7 --- /dev/null +++ b/python/task_management_system/README.md @@ -0,0 +1,52 @@ +# Task Management System + +A simple task management system implementation in Python that allows users to create, update, and manage tasks efficiently. + +## Features + +- Create tasks with title, description, due date, priority, and status +- Update task status +- Remove tasks +- List all tasks +- Get specific task details + +## Usage + +```python +from task_manager import Task, TaskManager + +# Create a task manager +manager = TaskManager() + +# Create a task +task = Task("Complete Project", "Finish the Python project", "2025-10-30", "high") + +# Add task to manager +task_id = manager.add_task(task) + +# Update task status +manager.update_task_status(task_id, "completed") + +# List all tasks +tasks = manager.list_tasks() +``` + +## Running Tests + +To run the unit tests: + +```bash +python -m unittest test_task_manager.py +``` + +## Contributing + +Feel free to contribute to this project by: +1. Forking the repository +2. Creating a new branch +3. Making your changes +4. Submitting a pull request + +## License + +This project is licensed under the MIT License. diff --git a/python/task_management_system/task_manager.py b/python/task_management_system/task_manager.py new file mode 100644 index 0000000..9aad557 --- /dev/null +++ b/python/task_management_system/task_manager.py @@ -0,0 +1,38 @@ +class Task: + def __init__(self, title, description, due_date=None, priority="medium", status="pending"): + self.title = title + self.description = description + self.due_date = due_date + self.priority = priority + self.status = status + + def __str__(self): + return f"Task: {self.title} (Status: {self.status}, Priority: {self.priority})" + +class TaskManager: + def __init__(self): + self.tasks = [] + + def add_task(self, task): + self.tasks.append(task) + return len(self.tasks) - 1 # Return task ID + + def remove_task(self, task_id): + if 0 <= task_id < len(self.tasks): + del self.tasks[task_id] + return True + return False + + def update_task_status(self, task_id, new_status): + if 0 <= task_id < len(self.tasks): + self.tasks[task_id].status = new_status + return True + return False + + def list_tasks(self): + return [(i, task) for i, task in enumerate(self.tasks)] + + def get_task(self, task_id): + if 0 <= task_id < len(self.tasks): + return self.tasks[task_id] + return None diff --git a/python/task_management_system/test_task_manager.py b/python/task_management_system/test_task_manager.py new file mode 100644 index 0000000..35ef571 --- /dev/null +++ b/python/task_management_system/test_task_manager.py @@ -0,0 +1,27 @@ +import unittest +from task_manager import Task, TaskManager + +class TestTaskManager(unittest.TestCase): + def setUp(self): + self.manager = TaskManager() + + def test_add_task(self): + task = Task("Test Task", "Test Description") + task_id = self.manager.add_task(task) + self.assertEqual(task_id, 0) + self.assertEqual(len(self.manager.tasks), 1) + + def test_remove_task(self): + task = Task("Test Task", "Test Description") + task_id = self.manager.add_task(task) + self.assertTrue(self.manager.remove_task(task_id)) + self.assertEqual(len(self.manager.tasks), 0) + + def test_update_task_status(self): + task = Task("Test Task", "Test Description") + task_id = self.manager.add_task(task) + self.assertTrue(self.manager.update_task_status(task_id, "completed")) + self.assertEqual(self.manager.get_task(task_id).status, "completed") + +if __name__ == '__main__': + unittest.main()