Pratham Jain's Project Portfolio Page
Project: CLInkedIn
CLInkedIn is a desktop address book application made for Recruiting and Hiring Managers. The user interacts with it using a CLI, and it has a GUI created with JavaFX.
Given below are my contributions to the project.
- New Feature: Add/Delete different kinds of Tags
    
- What it does:
        
- Allows the user to add and delete different kinds of tags (e.g. Skills TagType tag, Job Type TagType tag, Degree TagType tag, etc.) to a candidate.
 - For example, 
addTag 2 st/java dt/Bachelorsadds a Skill TagType tagjavaand Degree TagType tagBachelorsto the second candidate in the displayed list of candidates. 
 - Justification:
        
- This feature improves the product significantly as it allows the user to categorise the information of the candidates as relevant tags and view them in a visually pleasing way.
 
 - Implementation specifications:
        
- In order to keep a track of the different kinds of tags for each candidate, the 
UniqueTagTypeMapclass was created and a fieldtagTypeMapof reference typeUniqueTagTypeMapwas added toPerson. Moreover, theUniqueTagListclass was created in order to keep track of all the tags of a particularTagTypeof a candidate. TheUniqueTagTypeMapinternally uses anObservableMap, backed by aHashMap, that maps eachTagTypeof the candidate to aUniqueTagListof tags. 
 - In order to keep a track of the different kinds of tags for each candidate, the 
 
 - What it does:
        
 - New Feature: Export/Import
    
- What it does:
        
- Allows the user to export the displayed list of candidates to the specified location as a JSON/CSV file and import the data of candidates from the specified JSON/CSV file.
 - For example, 
export path//Desktop/sample/data.csvexports the displayed list of candidates todata.csvin thesampledirectory of theDesktopandimport path//Desktop/sample/data.csvimports the list of candidates fromdata.csvin thesampledirectory of theDesktopto the addressbook. 
 - Justification:
        
- This feature improves the product significantly as it allows the user to easily transfer the data of the candidates to another device and import it back in the application in the other device.
 
 - Implementation specifications:
        
- In order to read and write to CSV files, the OpenCSV parser library was used.
 - UI components 
ExportWindowandImportWindowwere created in order to make the Export and Import process more convenient for the user. 
 
 - What it does:
        
 - Enhancements to existing features:
    
- Extended the 
addcommand to support the addition of different kinds of tags while adding a candidate. - Extended the 
editcommand to support the modification of the existing tags belonging to a candidate. 
 - Extended the 
 - 
    
Code contributed: RepoSense link
 - Project management:
 - Contributions beyond the project team:
 - Documentation:
    
- User Guide:
        
- Added documentation for the different kinds of 
tagcommands. - Added documentation for the 
exportandimportcommands. 
 - Added documentation for the different kinds of 
 - Developer Guide:
        
- Added details for the Use Cases.
 - Added details for the Target User Profile, Value Proposition, and User Stories.
 - Added implementation details and UML diagrams for the Add/Edit/Delete Tags feature.
 - Added implementation details and UML diagrams for the Import/Export feature.
 
 
 - User Guide: