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/Bachelors
adds a Skill TagType tagjava
and Degree TagType tagBachelors
to 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
UniqueTagTypeMap
class was created and a fieldtagTypeMap
of reference typeUniqueTagTypeMap
was added toPerson
. Moreover, theUniqueTagList
class was created in order to keep track of all the tags of a particularTagType
of a candidate. TheUniqueTagTypeMap
internally uses anObservableMap
, backed by aHashMap
, that maps eachTagType
of the candidate to aUniqueTagList
of 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.csv
exports the displayed list of candidates todata.csv
in thesample
directory of theDesktop
andimport path//Desktop/sample/data.csv
imports the list of candidates fromdata.csv
in thesample
directory of theDesktop
to 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
ExportWindow
andImportWindow
were created in order to make the Export and Import process more convenient for the user.
- What it does:
- Enhancements to existing features:
- Extended the
add
command to support the addition of different kinds of tags while adding a candidate. - Extended the
edit
command 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
tag
commands. - Added documentation for the
export
andimport
commands.
- 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: