Vuong Hoang Long - Project Portfolio
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:
- All section of Design except UI component
- Module Manager
- Functional requirements
- Effort