diff options
| author | Kamal Wickramanayake <kamal@inbox.lk> | 2026-03-22 15:33:43 +0530 |
|---|---|---|
| committer | Kamal Wickramanayake <kamal@inbox.lk> | 2026-03-22 15:33:43 +0530 |
| commit | 8f875db252cfead19b029ff443f81d087c3cf097 (patch) | |
| tree | e1474def31b18a48868417b5445ce1676d7298ec /oop/10-task-tracker/src/main/java/lk/ac/pdn | |
| parent | 938427dace1a9622a55e3f81845fb82af697d001 (diff) | |
Added 10-task-tracker
Diffstat (limited to 'oop/10-task-tracker/src/main/java/lk/ac/pdn')
5 files changed, 209 insertions, 0 deletions
diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java new file mode 100644 index 0000000..bb0ab24 --- /dev/null +++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/App.java @@ -0,0 +1,15 @@ +package lk.ac.pdn.ceit.tasks; + +import lk.ac.pdn.ceit.tasks.ui.TextUI; + +/** + * Hello world! + */ +public class App { + public static void main(String[] args) { + TextUI ui = new TextUI(); + // ui.setTaskManager(); + + ui.start(); + } +} diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/TaskManager.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/TaskManager.java new file mode 100644 index 0000000..8e22b30 --- /dev/null +++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/TaskManager.java @@ -0,0 +1,9 @@ +package lk.ac.pdn.ceit.tasks; + +import lk.ac.pdn.ceit.tasks.entities.Task; + +public interface TaskManager { + public Task createNewTask(String title, String description); + public Task findById(int id); + public void updateTask(Task task); +} diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/entities/Task.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/entities/Task.java new file mode 100644 index 0000000..26dfc4a --- /dev/null +++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/entities/Task.java @@ -0,0 +1,84 @@ +package lk.ac.pdn.ceit.tasks.entities; + +import java.time.Duration; + +public class Task { + private User createdBy; + private User assignedTo; + + private int id; + private String title; + private String description; + private Duration estimatedTime; + private Duration actualTime; + private boolean completed; + + public Task() { + } + + public Task(int id, String title, String description) { + this.id = id; + this.title = title; + this.description = description; + } + + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + public String getTitle() { + return title; + } + public void setTitle(String title) { + this.title = title; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public Duration getEstimatedTime() { + return estimatedTime; + } + public void setEstimatedTime(Duration estimatedTime) { + this.estimatedTime = estimatedTime; + } + public Duration getActualTime() { + return actualTime; + } + public void setActualTime(Duration actualTime) { + this.actualTime = actualTime; + } + public boolean isCompleted() { + return completed; + } + public void setCompleted(boolean completed) { + this.completed = completed; + } + + public User getCreatedBy() { + return createdBy; + } + + public void setCreatedBy(User createdBy) { + this.createdBy = createdBy; + } + + public User getAssignedTo() { + return assignedTo; + } + + public void setAssignedTo(User assignedTo) { + this.assignedTo = assignedTo; + } + + @Override + public String toString() { + return "Task [id=" + id + ", title=" + title + ", description=" + description + ", estimatedTime=" + + estimatedTime + ", actualTime=" + actualTime + ", completed=" + completed + "]"; + } + +} diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/entities/User.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/entities/User.java new file mode 100644 index 0000000..2c45fc2 --- /dev/null +++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/entities/User.java @@ -0,0 +1,32 @@ +package lk.ac.pdn.ceit.tasks.entities; + +public class User { + private int id; + private String username; + + public User() { + } + + public User(int id, String username) { + this.id = id; + this.username = username; + } + + public int getId() { + return id; + } + public void setId(int id) { + this.id = id; + } + public String getUsername() { + return username; + } + public void setUsername(String username) { + this.username = username; + } + + @Override + public String toString() { + return "User [id=" + id + ", username=" + username + "]"; + } +} diff --git a/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java new file mode 100644 index 0000000..6bce661 --- /dev/null +++ b/oop/10-task-tracker/src/main/java/lk/ac/pdn/ceit/tasks/ui/TextUI.java @@ -0,0 +1,69 @@ +package lk.ac.pdn.ceit.tasks.ui; + +import lk.ac.pdn.ceit.tasks.TaskManager; +import lk.ac.pdn.ceit.tasks.entities.Task; + +public class TextUI { + private TaskManager taskManager; + + public void setTaskManager(TaskManager taskManager) { + this.taskManager = taskManager; + } + + public void start() { + while(true) { + String command = IO.readln("Command> "); + + switch (command.trim().toLowerCase()) { + case "q": + case "quit": + IO.println("Thank you for using Task Tracker."); + System.exit(0); + + case "createtask": + createNewTask(); + break; + + case "updatetask": + updateTask(); + break; + + default: + IO.println("Command not found."); + break; + } + } + } + + private void createNewTask() { + String title = IO.readln("Enter task title: "); + String description = IO.readln("Enter task description: "); + + Task newTask = taskManager.createNewTask(title, description); + + IO.print("New task created: " + newTask); + } + + private void updateTask() { + // Ask the user to enter task id + String taskId = IO.readln("Enter task ID: "); + + // Get the Task from TaskManager + Task task = taskManager.findById(Integer.parseInt(taskId)); + + // Show the Task details to user + IO.print(task); + + // Prompt the user to update Task properties + String title = IO.readln("New title: "); + if (! title.equals("")) { + task.setTitle(title); + } + // ... + + // Use the TaskManager and update the task + taskManager.updateTask(task); + IO.println("Task updated."); + } + +} |
