Skip to the content.

Richard Willie - Project Portfolio Page

Table of Contents

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:

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

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.

Logic Component Diagram

Contributions to Team-based Tasks

Review/Mentoring

Almost all PRs were reviewed, with notable ones listed below:

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:

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: