Eric Lee's Project Portfolio Page
Project: Contactmation
Contactmation is a powerful desktop based project and task management solution that helps you efficiently and effectively manage many projects at once through the Command Line Interface (CLI).
Contactmation will be able to help you save all your project member details, keep track of each project, and delegate tasks to each project.
My contributions to the projects are listed below.
Features implemented
Storage component
Extension of all Storage classes to support the Model component of the project.
Due to the complexity of having nested Groups and the fact that Person and Task may
also be nested, there is a need for conversion between a flat json file structure and
the tree-like structure in the AddressBook.
Additionally, the Storage component must also
support the saving of states of Alias, Macros / Custom commands, Abstracted attributes,
Task time completion date and times. The save state of unique ids are also needed
that help identify each Person, Group and Task in their JsonAdapted status. This will
be needed to correctly reproduce the tree-like structure of the AddressBook.
Error checking for each component and attribute is also put in place to check for corrupted data.
Code contribution
Code contribution for this project is listed in RepoSense.
Main Enhancements implemented
- Extension of all 
Storageclasses to support theModelcomponent of the project. #62- Add 
JsonAdaptedAbstractDisplayItemto abstract components forJsonAdaptedPerson,JsonAdaptedGroupandJsonAdaptedTask. #62 - Add 
JsonAdaptedAbstractAttributeto convert allAbstractAttributeto Json format and correctly parse them back into their respective classes. - Add 
JsonAdaptedCustomCommandBuilderto save alias and macros. 
 - Add 
 - Updated the testing for the storage components that increased code coverage by 
5.58%. #168 - Made builder classes for easier testing of model classes. #155
    
- Add 
GroupBuilder,PersonBuilderandTaskBuilderfor easy building ofGroup,PersonandTaskduring testing. #155 - Add 
TypicalGroups,TypicalPersonsandTypicalTasksfor standardised test cases of validGroup,PersonandTask. #166 - Add 
invalidGroupAddressBook,invalidTaskAddressBookto existinginvalidPersonAddressBookfor checking of Json file data retrieval. #166 - Add 
invalidAndValidGroupAddressBook,invalidAndValidTaskAddressBookto existinginvalidAndValidPersonAddressBookfor checking of errors in Json file data retrieval. #166 - Add typical, duplicate and invalid Json files in 
JsonAddressBookStorageTestfor testing of save and load functions inJsonSerializableAddressBookTest. #166 - Add additional test data in 
SampleDataUtilthat is a duplicate of the test data Json files. #157 
 - Add 
 
Contributions to the user guide
I structured the user guide and rewrote the following sections #172:
- Introduction
 - About
    
- Purpose
 - User guide navigation
 - Contactmation Window Guide
 - Prerequisites
 
 - Quick start
 - Before you begin
    
- Standardised Format Style
        
- Combining the format styles
 
 - Constraints on placeholder words
 - Making groups within groups
 
 - Standardised Format Style
        
 - Overview of feature, basic feature and advanced features.
    
- Add field command
 - Advanced
 
 - FAQ section
 - Glossary
 - Advanced commands in the Commands summary section
 
Contributions to the developer guide
- Wrote the storage component section. #47
 - Added the 
PlantUMLdiagrams relating to the storage components in the storage section. #47 
Pull Requests reviewed
Here are some of the pull requests that I have reviewed with non-trivial comments in the code review.