Anjali Agarwal'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: Create/Edit/Delete TagTypes
- What it does?
- CLInkedIn provides the user with 3 basic tag types: Skills, Degree, and Job Type. But if a user wish to add tags of other types they can create their own custom tag types.
- So using this feature a user can:
- Create a new tag type and provide a custom prefix for it. Example:
createTagType Grade gpa
, where gpa is the prefix for the Grade tag type. - Edit an existing tag type. Example:
editTagType Grade-Marks gpa-m
, this edits the existing Grade tag type to Marks and its prefix from gpa to m. - Delete an existing tag type. Example:
deleteTagType Skills
, now Skills tag type will no longer be available for use.
- Create a new tag type and provide a custom prefix for it. Example:
- Implementation specifications:
- In order to keep track of the tag types available to the user and their respective prefix a static field
prefixMap
ofMap
reference data type is created in theUniqueTagTypeMap
class. TheprefixMap
maps eachPrefix
for a tag type to its respectiveTagType
. Moreover, to initially provide the user with 3 basic tag types another static fieldinitialTagTypeMap
ofMap
reference data type was created. So when a user runs the application for the first time theprefixMap
is initialised with thisinitialTagTypeMap
. Furthermore, to store and retrieve the available tag types from the storage a static variableprefixMap
is added to the address book that shares its reference with theprefixMap
in theUniqueTagTypeMap
and theJsonSerializableAddressBook
is also updated for the same.
- In order to keep track of the tag types available to the user and their respective prefix a static field
- What it does?
- New Feature: Add/Delete Links
- What it does?
- A user can now also add/edit/delete links to various social media profiles/other websites to a candidate and can view the webpage by clicking on the icon of the relevant link for a candidate.
- So using this feature a user can:
- Add 1 or more links to a candidate. Example:
addLink 1 l/https://instagram.com/username l/https://github.com/username
adds the links to person at index 1. - Edit existing links by replacing all existing links with new links. Example:
edit 2 l/https://telegram.com
. - Delete all links of a candidate. Example:
deleteLink 2
deletes all links of person at index 2.
- Add 1 or more links to a candidate. Example:
- Implementation specifications:
- The
Person
class has a field that stores aSet
of links for the candidate. - The parser converts the input for links from String to a valid URL using java library for URL and creates a new instance of
Link
class for each URL. Then theLink
class generates the name of the platform if it is recognised by CLInkedIn, or else as general so that it can display the platform specific icon for the link in the GUI. - Furthermore, to store and retrieve the links from the storage, a
JsonAdaptedLink
class is created that stores the links in String format and while reloading the application converts the String to the required URL type.
- The
- What it does?
- Enhancements to existing features:
- Extended the
add
andedit
command to support the newly addedLink
feature.
- Extended the
-
Code contributed: RepoSense link
- Project management:
- Contributions beyond the project team:
- Documentation:
- User Guide:
- Added documentation for the different kinds of
tag type
andlink
commands. - Updated documentation for
note
andrate
commands, GUI snippets, and command summary.
- Added documentation for the different kinds of
- Developer Guide:
- Added details for the Target User Profile, Value Proposition, User Stories, and Use Cases.
- Added implementation details for the
Tag Type
&Link
feature. - Added
CreateTagTypeSequenceDiagram
&AddLinkSequenceDiagram
UML diagrams. - Updated
StorageClassDiagram
&ModelClassDiagram
UML Diagrams.
- User Guide: