Vuong Hoang Long - Project Portfolio

PROJECT: TrackIt@NUS

This portfolio aims to document the contributions that I have made to the TrackIt@NUS project. The Github Link to TrackIt@NUS can be found here.

Overview

TrackIt@NUS is a desktop application to provide a simple an easy way for students to manage their academic and social life. The user interacts with it using a CLI, and it has a GUI created with JavaFX. It is written in Java.

General contributions

  • Author of the original idea of the project. Defended the idea before teammates so that it became the final project direction.

Code contributions

The code I contributed can be found here

AB3’s leftover clean up

Relevant PRs includes: #31, #37, #42

Implemented base classes & refactor the AB3’s codebase to suit the new project

I contributed the implementation of most of the base classes (Module/Task/Lesson and its subclasses + methods) as well as refactor the entire AB3’s codebase. Relevant PRs includes: #29, #30, #59, #80, #88, #297

Implemented the base for Module Manager, Lesson Manager & Task Manager

Relevant PRs includes: #32, #35, #36

Implemented the complete Module Manager & testcases

Relevant PRs includes: #61, #107, #142, #181

Implemented the test skeleton for the project

Relevant PRs includes: #111, #112, #123, #144, #233, #250

Refactored the codebase to have a better logic flow

Relevant PRs includes: #140, #233, #249

Improved the code quality of the codebase:

IntelliJ’s code inspection, SpotBugs and PMD have been adapted to the project. Relevant PRs includes: #146, #154, #181, #237, #245, #289, #296

The code design decision I made can be found here

Feature, UI/UX contributions

  • Designed most of the business logic of the app, including:
    • What fields a Module / Contact/ Lesson / Task have, and their restrictions
    • How the 4 classes link together
    • The tab structure of the app (how each module has its own tab + Upcoming tab + Contacts Tab)
    • The syntax & business logic of all commands
    • An index system to edit/delete Contact, Lesson and Task
    • No index for Module, instead Editing/Deleting is done by its code
  • Designed the layout of the Upcoming tab and each Module tab. A great amount of effort (including extensively study from 5 different todo apps: macOS’s reminders, Microsoft To Do, Todoist, OmniFocus) has been put into each layout to make sure it’s intuitive & convenient for users
  • Contributed the idea of having color codes for each module
  • Gathered comments of peers to guarantee that the UI/UX suits a wide-range of users
  • More about the rationale behind my design consideration can be read here

Teamwork contributions

Led the team for the entire project. Contributions to team includes:

  • Divided tasks between members and covered up for a member if they are busy
  • Made sure the project progress followed the timeline
  • Facilitated weekly meetings between team members
  • Consolidated members’ opinions in debate to make final decision about features / UI&UX design
  • Connected the front-end team and the back-end team by listening to the front-end team’s back-end request and adapt the back-end accordingly.
  • Oversee the integration process of the front-end into the back-end
  • Oversee the entire back-end development (the entire back-end structure was designed by myself & Simon)

Testing contributions

Led both the writing of automated testing and the effort of manual testing. Personally I have spent 5-6 hours to test the app manually.

User Guide contributions

My write up in the UG can be found here:

Bugs fixer

Doing the development process, when a bug is located, most of the time I’m the one who quickly located the bug and fixed it.

Developer Guide contributions

My write up in the DG can be found here: