Nicholas Loo's Project Portfolio Page
Project: PlaceBook
PlaceBook (PB) is a desktop app for managing contacts and appointments, optimized for use via a Command Line Interface (CLI) while still having the benefits of a Graphical User Interface (GUI).** If you can type fast, PB can get your contact management tasks done faster than traditional GUI apps.
Given below are my contributions to the project.
Summary of Contributions
- New Feature: Implemented the 
Appointmentclass so that PlaceBook can keep track of appointments for the user.- What it does: Each 
Appointmentobject represents an appointment that the user has made with people in theirContacts. AnAppointmentobject contains aUniquePersonListto represent clients, anAddressto represent location of the appointment, aTimePeriodto represent the planned appointment timing and duration, and aStringto represent the description of the appointment. - Justification: This feature is important as it has a key role to play in allowing the user to keep track of and plan their appointments.
 - Highlights: This enhancement is important as it allows for all appointment related functionality.
 
 - What it does: Each 
 - New Feature: Added the 
addAppcommand.- What it does: Allows the user to create 
Appointmentobjects to represent their upcoming appointments. - Justification: This feature is a key function in allowing the user to keep track of their upcoming appointments.
 - Credits: The implementation is largely similar to the AB-3 add feature.
 
 - What it does: Allows the user to create 
 - New Feature: Implemented the Storage component for 
Schedule,AppointmentandTimePeriod- What it does: Allows the user to have the ability to save their current 
Scheduleafter every command. - Justification: This feature is crucial as the user would not need to re-enter their data during each separate use of PlaceBook.
 - Highlights: The enhancement is implemented by creating 
JsonAdaptedAppointmentandJsonAdaptedTimePeriodwhich helps to represent theAppointmentand itsTimePeriodin a JSON file format for storage. - Credits: The implementation for these Storage features are largely similar to AB-3’s Storage features.
 
 - What it does: Allows the user to have the ability to save their current 
 - New Feature: Ensure no conflicts, and consistency between contacts and schedule when reading from JSON file
    
- What it does: Checks through the saved data and ensures correctness of the data.
 - Justification: This feature is crucial as the user might make duplicates, or clashing appointments by accident in the JSON files.
 - Highlights: This enhancement is implemented by checking the validity of the JSON file format, and replacing the data with sample data if there are errors. Once JSON files has been correctly read, the persons in each appointment is checked to see if they exist in the contacts.
 
 - Other significant contribution: Created some test JSON files such as 
invalidAndValidAppointmentSchedule.jsonto be used for Storage testing.- What I did: Modified valid JSON files to create different errors in their formatting.
 - Justification: Users have the ability to modify their own JSON files and might cause errors in the file formatting, which may affect PlaceBook’s ability to read the data.
 
 - 
    
Code contributed: RepoSense link
 - Project management:
    
- Created Issues to represent user stories and individual tasks.
 - Active contribution during weekly meeting.
 
 - Enhancements to existing features:
    
- Updated the clear feature to clear both 
Persondata andAppointmentdata. - Wrote additional tests for existing Storage components.
 
 - Updated the clear feature to clear both 
 - Documentation:
    
- User Guide:
 - Developer Guide:
 
 - Community: