Skip to content

Latest commit

 

History

History
149 lines (98 loc) · 6.5 KB

thaddeuslzy.adoc

File metadata and controls

149 lines (98 loc) · 6.5 KB

Thaddeus - Project Portfolio

PROJECT: Student Schedule Planner


Overview

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.

Summary of contributions

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:

Major enhancements:

  1. 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

  2. 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

  3. 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

Minor enhancements:

  • Code contributed: RepoSense

  • Other contributions:

    • Project management:

      • Managed releases v1.3.1 (1 release) on GitHub:
        1.3.1

      • Morphed large sections of code in Address Book (Level 4) into current product Student Schedule Planner : #41

      • Added preloaded test cases for jar file, so that users may test commands: #140

    • 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:

      • PRs reviewed (with non-trivial review comments): #76

      • Reported bugs and suggestions for other teams in the class: Examples: 1 , 2

Contributions to the User Guide

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

Contributions to the Developer Guide

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.