diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..99f3a19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +#ignore the runtime storage files +.vscode/ +tasks.json \ No newline at end of file diff --git a/tasks.json b/tasks.json new file mode 100644 index 0000000..4488a8c --- /dev/null +++ b/tasks.json @@ -0,0 +1,7 @@ +[ + { + "task": "Building web app", + "completed": false, + "priority": "high" + } +] \ No newline at end of file diff --git a/todo.py b/todo.py index a72fa61..1d9c442 100644 --- a/todo.py +++ b/todo.py @@ -1,10 +1,16 @@ +import json +import os + class TodoApp: - def __init__(self): + def __init__(self, filename="tasks.json"): + self.filename = filename self.tasks = [] + self.load_tasks() # Load tasks on start - def add_task(self, task): - self.tasks.append({"task": task, "completed": False}) - print(f"Task '{task}' added!") + # Setting priority when adding a task + def add_task(self, task, priority="Medium"): + self.tasks.append({"task": task, "completed": False, "priority": priority}) + print(f"Task '{task}' with priority '{priority}' added!") def remove_task(self, task_index): try: @@ -26,8 +32,19 @@ def view_tasks(self): else: for idx, task in enumerate(self.tasks): status = "Completed" if task["completed"] else "Not Completed" - print(f"{idx}. {task['task']} - {status}") + print(f"{idx}. {task['task']} - {status} - Priority: {task['priority']}") + + # Save tasks to a JSON file + def save_tasks(self): + with open(self.filename, "w") as f: + json.dump(self.tasks, f, indent=4) + print("Tasks saved!") + def load_tasks(self): + if os.path.exists(self.filename): + with open(self.filename, "r") as f: + self.tasks = json.load(f) + print(f"Loaded {len(self.tasks)} task(s) from {self.filename}") def main(): todo_app = TodoApp() @@ -43,7 +60,8 @@ def main(): if choice == '1': task = input("Enter task: ") - todo_app.add_task(task) + priority = input("Enter priority (High/Medium/Low): ") # New priority input + todo_app.add_task(task, priority) elif choice == '2': todo_app.view_tasks() try: @@ -61,6 +79,9 @@ def main(): elif choice == '4': todo_app.view_tasks() elif choice == '5': + todo_app.save_tasks() # Save on exit + # Save on exit + todo_app.save_tasks() print("Goodbye!") break else: