Zhaoqi'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 CLI.
Summary of Contributions
Enhancements Implemented
- Design of Model
    
- Designed how the 3 items task, person, and group are functioned together as well as each of the individual abstractions and implementations (#33)
 - Made all items (person, task, group) extends AbstractDisplayItem which uses DisplayItem Inteface. (#33)
 - Designed how nested groups functions (This is implemented by mohamedsaf1)
 - Added an ability to force model to refresh the UI view of all elements
 - Designed and implemented how attributes are being displayed as cards to the UI. (#57)
 - Designed and added bit flags to denote attribute styles and properties as well as displayitem styles and properties (#57)
 - Proposed the use of the above to create custom, detailed view page of each elements (not implemented in time)
 
 - 
    
Design of UI
 - 
    
Design of Logic
- Designed and implemented macros, command compilation, logical command, aliases in logic
 - Revamped command logic to allow logic to parse data between each other (#72)
 - Designed the use of PIPING to allow command to transfer information to one another (#72)
 - Implemented foreach commands to batch apply commands to all list views
 - Updated addressbook parser to use a Singleton design (#72)
 - Swapped addressbook parser to use a HashMap to map commands to actual commands instead of switch case (#72)
 - Implemented Seq commands (#72)
 - Implemented commands to create new terms (int, float, str) (#72)
 - Implemented if else commands (#72)
 - Enabled user to chain and save complex commands (#72)
 - Enabled user to use alias to change the default command text (#72)
 - Implemented the renaming of DisplayItem (#72)
 
 - Bug fixes and refactorings
    
- Improved on robustness of validation of phone number to handle unexpected user phone numbers in response to Issue #105 (#170)
 - Fixed field add ignoring duplicate types (#170)
 - Fixed uncaught exceptions in field edit (#170)
 - Fixed aliasing not working for custom command
 - Fixed Phone attribute being read as Address after reopening Contactmation (#161)
 - Refactored commands with similar codes (delete, select, into singular commands) (#153)
 - Fixed incorrect regex when creating new groups Issue #99 and related duplicates
 - Fixes bug where unmark and mark commands resets custom fields (from internal testing) (#147)
 - Fixed missing find command (due to not added to the parser) Issue #77 and related duplicates (#143)
 - Fixed task foreach commands (due to not added to the parser) issue #103 and related duplicates (#143)
 - Updated exception handling to allow users to know when the save file is write protected based on issue #75 and related duplicates (#170)
 
 
Contributions to the UG
- Wrote section in advanced user guide section
 - Partially updated the command summary table (#148)
 - Fixed the formatting and screenshots (#177)
 - Created the default dummy save data to be used as basis for other screenshots. (#145)
 
Contributions to the DG
Added the following:
- Updated model UML (#48)
 - Updated ui UML (#48)
 - Added sequence diagrams for how DisplayItems are being generated as visible UI (#48)
 - Updated logic UML
 - Added explanation to how the model and logic system works. (#181)
 - Added Detailed View to future implementations. (#181)
 
Contributions to team-based tasks
- Created the team repository
 - Actively participated in weekly group discussions.
 - Created v1.2 Features Demo
 - Created v1.3 Features Demo
 - Created PED temporary report
 - Created 
documentation bugandformatting bugtags to differentiate between the different bugs reported by others 
Review/mentoring contributions
- Reviewed numerous PRs (list of reviewed PRs)
 - Reviewed the major user guide changes. (#172)
 - Assisted team in suggesting ideas and fixes
 
Contributions beyond the project team
- Reported bugs for other teams during the PE-D (list of reports).