Project Portfolio Page (@albertarielw)
Project: HackAssist
HackAssist is a desktop application which aims to help manage tasks in software development hackathons. In hackathon projects, task management is often hectic because we are required to complete a large number of tasks in a short amount of time. However, with HackAssist, we aim to make your task management workflow easier, so you can focus on building your hackathon project :)
Given below are my contributions to the project.
Features:
- Add Task: Created a command to allow user to add a task to task list (Pull requests #52).
- What it does: Based on parsed input, this command will add a task which will then be displayed to the task list.
- Justification: This command is essential for basic usage of the application so user can add task they need to do.
- Delete Task: Created a command to allow user to delete a task from the task list (Pull requests #52).
- What it does: Based on parsed input, this command will delete a task from the displayed to the task list.
- Justification: This command is essential for basic usage of the application so user can delete a task from the task list (in case they wrongly added a task or remove tasks which are no longer relevant.)
- Edit Task: Created a command to allow user to edit task in the task list (Pull requests #52).
- What it does: Based on parsed input, this command will edit a task in the displayed to the task list.
- Justification: This command is essential so that user can change a task details directly (instead of having to delete the task and add a new one with updated details).
- Storage: Allows storage capability for task list by facilitating conversions from and to JsonAdaptedTask (Pull requests #70).
- What it does: Read saved task data and save task data automatically upon execution of each command.
- Justification: This feature is essential to allow for persistent storage for task (over different sessions of HackAssist).
- Highlights: Wrote exceptions for storage functionality for task to account for invalid saved data which may occur when user edits saved data directly.
Feature Enhancements:
- UI:
- Added GUI Space Grey Color Scheme (Pull requests #116)
Tests:
- Storage Test: Writes test for task list storage (Pull requests #151)
- What it does: Performs automated testing to check for any error in the code.
- Justification: This helps to eliminate bugs for task storage.
- Highlights: Increased Codecov by ~7%.
Bug Fixes:
- Person Email Address as Foreign Key in Task: Modifies task to have a person email address as foreign key rather than a person object (Pull requests #69).
- Justification: By using foreign key rather than keeping a copy of person object in task, changes in a person object will be reflected on the associated task.
- Wrong Feedback Message for Invalid Task Index: Modifies parser to throw an exception with invalid index as feedback message instead of invalid command (Pull requests #160).
- Justification: To allow user to know what is wrong with their command.
- Throw Exception when Edit Task has no field: Modifies EditTask parser to throw an exception when it is not followed by any field (Pull requests #160).
- Justification: To make EditTask and Edit (person) behaviour the same for standardization.
- Adds Sample Data for Task: Adds sample data for task to HackAssist (Pull requests #183).
- Justification: To allow user to experiment with sample task data.
Project Management:
- Managed Releases:
v1.2
v1.3
(Pull requests #80).
Code Contribution:
Documentation:
- Main Page:
- Wrote product main page (Pull requests #80).
- User Guide:
- Wrote introduction, quickstart and app layout (Pull requests #174).
- Improved existing documentation of features
addTask
,editTask
,deleteTask
to make it clearer and more organised (Pull requests #103, #166, #167, #168). - Fix confusion of the terms
Member
andPerson
(Pull requests #203). - Fix the following bugs: (Pull requests #164).
- Issue 117: edit should be editTask
- Issue 148: standardized spacing
- Issue 149: unclear instruction on how to mark task as done/ not done.
- Developer Guide:
- Wrote design overview of
Model
based on AddressBook Level-3 (Pull requests #215). - Wrote design overview of
Storage
based on AddressBook Level-3. - Updated
Storage
diagram (Pull requests #191). - Wrote implementation details of persistent
Storage
forTask
andPerson
(Pull requests #197, #79). - Wrote target user profile, value proposition and basic user stories. (Pull requests #17, #19).
- Wrote design overview of