Vu Nhat Nguyen Thu’s Project Portfolio Page
Project: MediTask
MediTask is a desktop application designed to help nurses efficiently manage and track their daily tasks via a Command Line Interface (CLI). This CLI tool streamlines task management, allowing nurses to quickly organize, monitor, and complete tasks, ensuring no important steps are missed.
Given below are my contributions to the project.
- New Feature:
task
packagae, includingDeadline
,Repeat
,Task
,TaskList
,Todo
.- Description: This package forms the core of the hospital task management system, providing data models and functionality for managing tasks. Key classes such as
Task
,Deadline
,Repeat
, andTodo
allow for creating, organizing, and updating patient-related tasks. TheTaskList
class serves as a central hub to store and manage multiple tasks for each patient efficiently, including add, delete, marking, find, calculate completion rate of tasks. - Scalability: The class was designed with inheritance-based structure, new task types can easily extend the base
Task
class, allowing future additions without major rewrites. This extensible architecture supports new attributes and behaviors while ensuring maintainability. - Highlights: Implemented methods for adding, retrieving, deleting, marking and finding a task. Robust error handling for multiple problems i.e missing task description, duplicate task, invalid command. The addition of new task types like
Todo
,Deadline
,Repeat
required extra attention, as it revised the entire parsing and task manipulation aspect of the program.
- Description: This package forms the core of the hospital task management system, providing data models and functionality for managing tasks. Key classes such as
- New Feature:
Command
class:- Description: Acts as a base class for all command-related actions. Each command is derived from this base class, allowing flexibility and consistency in handling various commands within the system.
- New Feature:
CommandResult
class:- Description: Represents the outcome of a command’s execution. It provides feedback or results based on the action taken, whether it was successful, encountered an error, or needs to convey information back to the user. Acts as a standardized response mechanism for all command classes, ensuring consistent feedback across different commands.
- New Feature: Task Management Commands (
AddTaskCommand
,DeleteTaskCommand
,ListTaskCommand
,FindTaskCommand
,MarkTaskCommand
,UnmarkTaskCommand
)- Description: Provides user commands to interact with the task system with task management functions like adding, deleting, finding, and updating tasks. Each command is encapsulated within a dedicated command class that handles specific interactions, with
CommandResult
providing feedback on each action, confirming successful results or detailing errors. - Scalability: Implemented using the
Command
pattern, each command inherits from a base class, enabling new commands to be added independently. The structure also supports flexible responses viaCommandResult
, making future expansion easier. - Highlights: Robust error handling in each command class ensures a seamless user experience, even in cases of input errors. Commands gracefully handle invalid task IDs, prevent duplicate tasks, and notify users about issues such as empty task descriptions, missing arguments, or repeated task marking attempts.
- Description: Provides user commands to interact with the task system with task management functions like adding, deleting, finding, and updating tasks. Each command is encapsulated within a dedicated command class that handles specific interactions, with
- Code contributed: Code Dashboard
- Project management:
- Participated in design discussions, contributing to project structure and feature planning.
- Documentation:
- Developer Guide:
- User Guide:
- Documented additional examples for commands
todo
,deadline
,repeat
; added guideline for commandsdelete
,find
,mark
,unmark
for user’s task management. (PR #116).
- Documented additional examples for commands