Skip to content
This repository has been archived by the owner on Mar 15, 2020. It is now read-only.

Latest commit

 

History

History
84 lines (66 loc) · 5.4 KB

shuiyao-sg.adoc

File metadata and controls

84 lines (66 loc) · 5.4 KB

Shui Yao (shuiyao-sg) - Project Portfolio for NUStudy

Introduction

This portfolio is to document my contributions to project NUStudy, which is a software engineering project under Module CS2103T at National University of Singapore. Our team consists of five students majoring in Computer Science. We decided to morph an existing Java application Address Book 3 into NUStudy, which is a desktop application with command line for user input and a JavaFX GUI for display. NUStudy supports notes management, quiz practice, revision task records, and usage statistics to help with revision.

Note
You may take note of the following symbols and formatting used in this portfolio unless otherwise specified:
overdue - The monospaced text indicates that it is a user input.
Task - An italicised word indicates that it is a class name.
#11 - A number with # sign indicates the Pull Request or Issue number.
PR - Abbreviation for "Pull Request".
monospaced text in Developer Guide has different meanings. If the first letter of each word is capitalized, then the monospaced text refers to a class or interface name. If the text comes with a bracket () at the end, then the text refers to a method name. Otherwise, the text refers to user command.

Summary of Contributions

This section summarises my contributions to the project, including feature enhancements, documentation and project management.

Enhancement added: I implemented revision task management features (starting from PR #37).

  • What it does: These features support tasks for revising a note or a question at a particular point of time. Users can perform operations with revision tasks such as addition, deletion, searching, editing, marking done, listing finished/unfinished/overdue tasks etc.

  • Justification: This feature allows users to set their revision plans and goals. It makes the revision more structured and organised. The task is designed in a way that each task only supports revision of one note or question. Having this "one tiny easy revision task at a time" approach, users would find it easier to start the revision. This helps to stop procrastination to some extent.

  • Highlights: This enhancement is dependent on Note and Question classes implemented by my teammates. There might be regressions of my task features if my teammates decide to change their implementations. Therefore, I did a thorough analysis of the design pattern and the project architecture to use as least information as possible from their classes in order to reduce coupling. The task management features require a decent amount of effort because they need to support a wide range of operations.

Code contributed: You may feel free to check my code here.

Other contributions:

  • Project management:

    • I was the project leader for NUStudy.

    • I was in charge of overall team coordination, scheduling, facilitating discussion during weekly team meetings and communicating with the tutor.

    • I issued the first version of project plan (#26).

    • I did the pre-release of mid-v1.3 on GitHub (mid-v1.3).

  • Documentation:

    • Redesigned class diagrams for UI and Model components in Developer Guide (#75).

    • Added command summary to User Guide (171).

  • Team work and community contribution:

    • Reported bugs of teammate’s feature (#165, 166).

    • Reviewed other teams' PRs (#14, #97).

Contributions to the User Guide

This section summarises my contributions to the User Guide.

Apart from the documentation of my individual feature, I also helped the team by adding a command summary of everyone’s feature. You may refer to the Command Summary section in the User Guide.

Contributions to the Developer Guide

This section summarises my contributions to the Developer Guide. For a full list of all task commands, please refer to the beginning of section "Revision task management - Implementation" in the Developer Guide.

Apart from addition to my individual features, I also modified the diagrams of the UI and Model components. You may refer to Figure 4. Class diagram of the UI component, Figure 5. Detailed class diagram for Panels package and Figure 8. Class diagram of the Model component in the Developer Guide.