Richard Willie - Project Portfolio Page
Table of Contents
- Overview
- Summary of Contributions
Overview
The design philosophy of NUSBuddy mostly follows KISS,
in other words, we want the app to be fast and unobtrusive, so that users spend as little time as possible using it and actually focus on doing their actual work.
In addition, our user commands are friendly (i.e., make sense grammatically). For instance, add task
is better than task add
.
My responsibilities:
- Team Lead: Responsible for project workflow and coordination.
- Quality Assurance: Responsible for overall quality of program design and implementation.
Summary of Contributions
Code Contributed
My overall code contributions can be found here.
Enhancements Implemented
Code & Packages Setup
Set up code skeleton for the program.
Unit Testing & Assertions
Added JUnit testing and assertions to make code more defensive and more effective for regression testing.
Logging
- PR: #60.
Added logging to record the states of the program, and is useful for troubleshooting when needed.
Code Refactoring
Refactored classes and packages to improve overall code quality (e.g., better OOP, SLAP, etc.). Most notable refactoring is #28, as major changes to the code architecture were implemented for improved scalability and better separation of concerns with respect to OOP.
Features Improvement
Most notable enhancement is the launch lesson feature.
The motivation for developing this comes from the frustration that some terminals do not support URL highlighting,
which prevent users from conveniently clicking and launching the URL stored in Lesson
.
PED Bugs
Squashed bugs found in PE Dry Run.
Contributions to the User Guide
Refactored most sections of UG to improve its layout. Updated User Guide sequentially as the program output changes.
Extract: Command Summary
Command summary was provided for users’ convenience. Partial example:
Command | Purpose |
---|---|
add task [TITLE] -d [DAY_OF_THE_WEEK] -p {PRIORITY} -i {INFORMATION} |
To add a task |
add lesson [TITLE] -d [DAY_OF] -s [START_TIME] -e [END_TIME] -l {MEETING_URL} |
To add a lesson |
add module [MODULE_CODE] |
To add a module |
Contributions to the Developer Guide
Set up the structure of DG, starting with Architecture
and Logic
sections.
Incorporated UML Diagrams with the help of PlantUML, including class and sequence diagrams.
Standardized UML Diagrams color scheme with Style.puml
.
Extract: Logic Component Diagram
To better illustrate the relationships between the various classes used in the project, UML diagrams were utilized to explains the overall architecture of the program. The following example is from the Logic Component Diagram.
Contributions to Team-based Tasks
- Set up GitHub team organization and repository.
- Managed JAR releases.
- Maintained issue tracker.
- Maintained overall code quality and implementation designs.
- Maintained collaborative document (Notion) for project management.
Review/Mentoring
Almost all PRs were reviewed, with notable ones listed below:
- Gave suggestions accepted by teammates: #24, #26, #30, #31, #32, #70, #80, 110, #159, #161.
- Spotted minor fixes: #27, #57, #62, #73, #104.
All PED bugs were reviewed and assigned with labels. Notable ones are listed below:
Contributions Beyond The Project Team
Forum Contributions
I am one of the most active students throughout the module, with a total of 64 posts on the forum as of November 4th 2021.
Notable forum posts:
- Rule of thumb on exceptions handling
- Using Markdown when inserting code in forum posts
- Helping a peer to check an exercise output
- Removing wildcard imports in IntelliJ
- Disabling automatic line wrap in IntelliJ
- Hacktoberfest 2021
Module Contibutions
I reported website bugs to help improve the module:
Other Contributions
I reported a total of 14 program bugs for other teams during PE Dry Run.
Notable reports: