ZH Liu — Project Portfolio Page
Overview
Patient Manager is a Command Line Interface (CLI) application for general practitioners (GP) who work in polyclinics to manage their patient list.
I, together with my teammates, developed this application as a team project for the CS2113T module in NUS. This project aimed to develop a program targeting a current problem using Java with Object-oriented programming as the model.
The entire development cycle, excluding the planning stage which consists of a few weeks before actual development, includes three iterations. Iteration v1.0 is the minimum viable product, and v2.0 is the one with most of the features in. For v2.1, the last iteration, we focused on bug fixing and improvements in product documentation.
Summary of Contributions
Code Contributed
This is a link to the RepoSense dashboard, which has a detailed analysis of the lines of code contributed by me:
https://nus-cs2113-ay2021s2.github.io/tp-dashboard/?breakdown=true&search=fsgmhoward
Enhancement Implemented
- Drafted overall structure of the program. This includes the organization and placeholders of command classes, Parser, models, UI class, etc.
command.Commandclass — This is the parent class for all commands that enforce some common constraints.Parserclass — This class handles the parsing and initializing of command classes.Dataclass, and model classes likePatientandRecordclasses — These classes are in charge of the data storage and manipulation of the application.- Migration of exception handling from using the generic
Exceptionto the custom classes, such asInvalidInputException. This includes the drafting ofBaseExceptionclass. - Restructured the main class
PatientManagerto be more OOP. - Added
currentcommand for printing out the current patient being loaded. - Integrated
Storageinto various command classes. - Other generic bug fixes for the entire project. This includes bug reported by peer teams during PE-D.
Contribution to User Guide
- Limitations of the application
- General formatting, rearrangement of sections, and bug fixing
Contribution to Developer Guide
- Explanation of design decision for Parser, as well as a detailed implementation steps
- Explanation of design decision for all exception class and how they are used
- Explanation for common classes
- Appendix F: Command Summary
- General formatting and fixing
Contribution to Team-Based Tasks
- Necessary general code enhancements
- Tagging a number of issues raised in PE-D for fixing
- Release management
Review/Mentoring Contributions
Along the way of development, I have reviewed a number of pull requests opened by other team members. This is a non-exhaustive list:
- https://github.com/AY2021S2-CS2113T-W09-4/tp/pull/54
- https://github.com/AY2021S2-CS2113T-W09-4/tp/pull/58
- https://github.com/AY2021S2-CS2113T-W09-4/tp/pull/66
- https://github.com/AY2021S2-CS2113T-W09-4/tp/pull/70
- https://github.com/AY2021S2-CS2113T-W09-4/tp/pull/125
- … and more
For a full list of PRs reviewed by me, you may refer to this link:
https://github.com/AY2021S2-CS2113T-W09-4/tp/pulls?q=is%3Apr+reviewed-by%3Afsgmhoward+
Other than PR reviews, I have also provided general help given to teammates encountering technical difficulties along the way of development.
Contribution Beyond Project Team
I have reviewed other peer teams’ product and documentation during tutorials and PE-D. The list of bugs reported in PE-D can be accessed by clicking the following link: