Skip to content

Latest commit

 

History

History
67 lines (46 loc) · 3.68 KB

seris370.adoc

File metadata and controls

67 lines (46 loc) · 3.68 KB

Yu Chenghui - Project Portfolio

PROJECT: AlgoBase

Overview

AlgoBase is primarily a problem management application, where users can add different algorithm problems from all kinds of sources. Within the application, users can create training plans consisting of tasks, where each task is a problem that the user has to complete. Upon completing a task, users can mark it as done, which contributes to the progress of their plan. Users interact with AlgoBase using a CLI, and it has a GUI created with JavaFX. It is written in Java, and has about 20 kLoC.

The figure below illustrates the layout of the AlgoBase application:

AlgoBaseLayout
Figure 1. Layout of AlgoBase

My role was to design and write the codes for the training plan feature. The following sections illustrate these enhancements in more detail, as well as the relevant documentation I have added to the user guide and developer guide.

Summary of contributions

  • Major enhancement: added the training plan feature

    • What it does: Allows users to create customized training plans with specific starting date and end date and that consist of selected problems in AlgoBase. Each problem is wrapped up as a task in the plan. Users can record their progress by marking problems in plans as done or undone, and they can edit, delete or search for plans.

    • Justification: This feature improves the product significantly because it would be inconvenient for a hard-working user to manage a large number of problems without a higher-level component that categorize selected problems.

    • Highlights: This feature enables users to set specific duration for a training plan, which provides the possibility of various potential enhancements in the future, such as alarming for deadlines, and thus will make AlgoBase more attractive to users.

  • Minor enhancement to existing project: refactored part of command and parsers

  • Code contributed: Code contributed

  • Other contributions:

    • Project management:

      • Managed release v1.3 on GitHub

    • Enhancements to project prototype:

      • Design plan logic (Pull requests #65, #117, #148)

      • Build Ui prototype for plans (Pull requests #72)

      • Write tests for plans (Pull requests #212)

    • Community:

Contributions to the User Guide

Given below are sections I contributed to the User Guide. They showcase my ability to write documentation targeting end-users.

Contributions to the Developer Guide

Given below are sections I contributed to the Developer Guide. They showcase my ability to write technical documentation and the technical depth of my contributions to the project.