Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions python/task_management_system/README.md
Original file line number Diff line number Diff line change
@@ -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.
38 changes: 38 additions & 0 deletions python/task_management_system/task_manager.py
Original file line number Diff line number Diff line change
@@ -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
27 changes: 27 additions & 0 deletions python/task_management_system/test_task_manager.py
Original file line number Diff line number Diff line change
@@ -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()