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 and Person (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 for Task and Person (Pull requests #197, #79).
    • Wrote target user profile, value proposition and basic user stories. (Pull requests #17, #19).