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
Appointment
class so that PlaceBook can keep track of appointments for the user.- What it does: Each
Appointment
object represents an appointment that the user has made with people in theirContacts
. AnAppointment
object contains aUniquePersonList
to represent clients, anAddress
to represent location of the appointment, aTimePeriod
to represent the planned appointment timing and duration, and aString
to 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
addApp
command.- What it does: Allows the user to create
Appointment
objects 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
,Appointment
andTimePeriod
- What it does: Allows the user to have the ability to save their current
Schedule
after 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
JsonAdaptedAppointment
andJsonAdaptedTimePeriod
which helps to represent theAppointment
and itsTimePeriod
in 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.json
to 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
Person
data andAppointment
data. - Wrote additional tests for existing Storage components.
- Updated the clear feature to clear both
- Documentation:
- User Guide:
- Developer Guide:
- Community: