This Personal Project Portfolio details the contributions which I have made to the Student Schedule Planner(SSP) project. It also outlines skills which I have picked up.
Student Schedule Planner (SSP) is a desktop application, created by Team T12-3. It is a planner customised for university students, and it aims to help university students manage their time effectively.
SSP incorporates various features that streamline the creation, organisation, and finding of tasks. In addition, it allows the user to keep track of the current academic week, and has a progress tracking feature, which displays user progress.
Instead of utilising a conventional Graphical User Interface(GUI). SSP is optimised for users who prefer typing out their commands. This application has the potential to be much faster than regular planner applications, especially for users who are proficient in typing.
In total, I contributed approximately 1500+ lines of code, in both features and documentation. The features I
implemented were listmonth
, filter
, and filterstrict
.
I also aided in refactoring major parts of the codebase, morphing the original "Address Book (Level 4)" code to suit our new SSP application. This included changing "addressbook" and "person" references in the code to "scheduleplanner" and "task" references respectively.
The features I implemented are as follows:
-
Ability to list remaining number of tasks in the current month
-
What it does: This feature allows the user to list all remaining tasks in the current month, in chronological order. This feature takes into account leap years.
-
Justification: The user can narrow the scope of the list to the current month, making it easier to manage tasks within this period. This provides a convenient way to list tasks that occur in commonly used time frames(day, week, month).
-
Highlights: It required an in-depth analysis of design alternatives. The implementation was challenging as it had to factor in the variations of days between months, and in February during leap years.
-
Credits: Code from ListWeekCommand was referenced in the implementation of ListMonthCommand
-
-
Ability to filter tasks inclusively according to tags
-
What it does: This feature allows the user to filter tasks inclusively by their tags. This means that given 2 or more tags as user-input, tasks with ANY of the specified tags will be listed. This includes any number of tags.
-
Justification: The user can filter out tasks with certain tags, expediting the search process, and reducing the time needed to find a specific task, or tasks belonging to the same category.
-
Highlights: The implementation was challenging, as it required the filter feature to be able to search for more multiple tags. This was made complicated by the fact that each task may contain multiple tags
-
Credits: Code from FindCommand was referenced in the implementation of FilterCommand
-
-
Ability to filter tasks exclusively according to tags
-
What it does: This feature allows the user to filter tasks exclusively by their tags. This means that given 2 or more tags to filter, only tasks with ALL of the specified tags will be listed.
-
Justification: The user can now narrow the scope of the filter function, further expediting the search process. This feature caters to users who prefer a more strict filter mechanic.
-
Highlights: The implementation made small tweaks to the filter predicate such that, only tasks containing tags that match all user-input tags will be displayed.
-
Credits: Code from FilterCommand was referenced in the implementation of FilterCommand
-
-
Code contributed: RepoSense
-
Other contributions:
-
Project management:
-
Documentation:
-
Enhanced Introduction for DevGuide: #77
-
Added Use Cases for DevGuide: #115
-
Added Instructions for Manual Testing in Developer Guide: #251
-
Improvements to flow of existing contents of the User Guide: #64 , #140, #245 ,
-
Improvements to flow of existing contents of the Developer Guide: #64 , #87 , #221 , #224 , #245
-
-
Community:
-
Provided below are the sections I have contributed to the User Guide. They showcase my ability to write concise, and coherent documentation targeting end-users who are seeing the SSP application for the first time |
Provided below are sections I contributed to the Developer Guide. They showcase my ability to write intelligible technical documentation to aid developers who are looking at the SSP for the first time. It also showcases the technical depth of my contributions to the project, and the value of improvements made to the SSP application. |