Initial commit

This commit is contained in:
github-classroom[bot]
2024-03-13 20:48:34 +00:00
committed by GitHub
commit b5349e341f
12 changed files with 874 additions and 0 deletions
View File
+37
View File
@@ -0,0 +1,37 @@
# import json
# from .taskManager import TaskManager
# def main():
# manager = TaskManager()
# while True:
# print("\nCommand Menu:")
# print("1. Add Task")
# print("2. Remove Task")
# print("3. Mark Task as Completed")
# print("4. List Tasks")
# print("5. Exit")
# choice = input("Enter your choice (1/2/3/4/5): ")
# if choice == "1":
# task_text = input("Enter task description: ")
# priority = input("Enter priority (high/medium/low): ")
# due_date = input("Enter due date (YYYY-MM-DD): ")
# manager.add_task(task_text, priority, due_date)
# elif choice == "2":
# task_index = int(input("Enter the task number to remove: ")) - 1
# manager.remove_task(task_index)
# elif choice == "3":
# task_index = int(input("Enter the task number to mark as completed: ")) - 1
# manager.complete_task(task_index)
# elif choice == "4":
# manager.list_tasks()
# elif choice == "5":
# manager.save_tasks()
# print("Goodbye!")
# break
# else:
# print("Invalid choice. Please choose 1, 2, 3, 4, or 5.")
# if __name__ == "__main__":
# main()
+28
View File
@@ -0,0 +1,28 @@
import json
class Task:
def __init__(self, task_text, priority, due_date, completed=False):
self.task_text = task_text
self.priority = priority
self.due_date = due_date
self.completed = completed
def mark_completed(self):
self.completed = True
def to_dict(self):
return {
"task_text": self.task_text,
"priority": self.priority,
"due_date": self.due_date,
"completed": self.completed
}
@staticmethod
def from_dict(task_data):
return Task(
task_data['task_text'],
task_data['priority'],
task_data['due_date'],
task_data['completed']
)
+48
View File
@@ -0,0 +1,48 @@
import json
from .task import Task
class TaskManager:
def __init__(self):
self.tasks = []
self.load_tasks()
def add_task(self, task_text, priority, due_date):
task = Task(task_text, priority, due_date)
self.tasks.append(task)
print("Task added successfully!")
def remove_task(self, task_index):
if 0 <= task_index < len(self.tasks):
removed_task = self.tasks.pop(task_index)
print(f"Removed task: {removed_task.task_text}")
else:
print("Invalid task number!")
def complete_task(self, task_index):
if 0 <= task_index < len(self.tasks):
self.tasks[task_index].mark_completed()
print("Task marked as completed!")
else:
print("Invalid task number!")
def list_tasks(self):
if not self.tasks:
print("No tasks found.")
else:
print("\nTask List:")
for i, task in enumerate(self.tasks, start=1):
status = "Completed" if task.completed else "Not Completed"
print(f"{i}. Task: {task.task_text}")
print(f" Priority: {task.priority}")
print(f" Due Date: {task.due_date}")
print(f" Status: {status}\n")
def save_tasks(self):
with open("tasks.json", "w") as file:
json.dump([task.to_dict() for task in self.tasks], file)
def load_tasks(self):
try:
with open("tasks.json", "r") as file:
self.tasks = [Task.from_dict(task_data) for task_data in json.load(file)]
except (FileNotFoundError, json.JSONDecodeError):
self.tasks = []