Jeremy Yong's Project Portfolio Page
Project: JobFindr
This portfolio provides an overview of my contributions to JobFindr.
Overview
JobFindr is a desktop-based job application management application.
The inspiration for JobFindr came from the shared challenge faced by all members of our team - the daunting task of organising and keeping track of the numerous job applications we submit. Recognising that this is a common experience among NUS students, we felt a strong urge to develop a software solution that would make this process more manageable for students like us.
JobFindr was born out of this necessity, offering a one-stop solution for recording and managing your job applications effortlessly.
Summary of Contributions
Enhancements
- Repurposed AB3 to fit the context of JobFindr
- What it does: Instead of an address book containing a list of
Person
objects with fields such asName
,Phone
andEmail
, the application was changed to contain a list ofJob
objects with the basic fields ofCompany
andRole
. - Justification: Since we intended to repurpose the application to cater to NUS fresh graduates who are searching for jobs, the current fields were irrelevant.
- Highlights: This was a tedious process as it required many adjustments throughout the whole code. The field,
command and parser classes had to be changed to interact differently. Sample data and test cases had to be changed
as well.
- What it does: Instead of an address book containing a list of
- Improved the
find
command- What it does: The
find
command now allows for searching by specific fields. Users can also choose to search in all fields. Multiple keywords and/or prefixes can be searched at the same time. - Justification: Users might want to search in fields other than company name. By providing flexibility in the search process, users can find their job applications more efficiently.
- Highlights: Implementing this functionality required changing the
NameContainsKeywordsPredicate
class to a more generalFieldContainsKeywordsPredicate
. The challenging aspect was combining multiple conditions together, especially in the case when no prefix is provided as it would mean that the keywords could appear in any field.
- What it does: The
- Added the
sort
command- What it does: The
sort
command takes in a prefix and sorts the application list by the field specified by the prefix. - Justification: This allows our users to organise their application list by their preferred field, improving organisation.
- Highlights: This was a rather simple feature to implement, but the use of a
FieldComparator
class made this function extendable should more fields be added later on.
- What it does: The
Other Contributions
- Code contributed:
- My code contributions can be found here: Reposense Report
- Project management:
- Actively assisted peers by providing technical advice and reviewing and approving PRs.
- Conducted multiple checks on code quality and refactored messy code.
- Documentation:
- User Guide (UG): Added sections for
find
andsort
commands. - Developer Guide (DG): Added sections for
find
andsort
commands, andLogic
component.
- User Guide (UG): Added sections for
- Bug Fixes:
- Fixed bugs reported during PE dry run. (PR #171)
- Community:
- PRs reviewed (with non-trivial review comments): PR #180