Fidella Widjojo's Project Portfolio
Project: InternHunter
InternHunter is a CLI-centric desktop application which aids university students in applying for tech internships. It lets users manage their own customisable collection of companies, internships, internship applications and their own user profile, so that they can keep track of internships that they are interested in.
It has a GUI created with JavaFX. It is written in Java, and has about 35k LoC.
Summary of Contributions
-
Code contributed: RepoSense link
- Features added:
- Added storage to InternHunter (Pull request #141, #158)
- What it does: Allows InternHunter to read and save its data to JSON files.
- Highlights:
- Created the
JsonAdaptedItem
abstract class which represent the Jackson-friendly version of anItem
. - Created generic
JsonItemListStorage
andJsonSerializableItemList
classes that work for all classes extendingJsonAdaptedItem
. - Updated the
JsonUtil#readJsonFile()
method to allow Jackson deserializing to a generic class. - Lets InternHunter reads and saves
ApplicationItemList
,CompanyItemList
, andProfileItemList
. - Ensures the consistency between internships in application and company lists.
- Created the
- Created generic
FilterableItemList
andItemListManager
classes. (Pull request #108)- What it does: Lets future addition of
Item
subtypes to the model easy and reduce current code duplication. - Highlights:
FilterableItemList
andItemListManager
work for all classes extending theItem
class. A list ofItem
objects have many common methods that can lead to much code duplication. Using generic classes ensures InternHunter adheres to the DRY principle.
- What it does: Lets future addition of
- Added exit dialog (Pull request #96, #101)
- What it does: Prevents users from accidentally quitting InternHunter.
- Highlights: A confirmation dialog pops up when users click on the “x” button or enter the
exit
command.
- Added clear command (Pull request #221)
- What it does: Lets users reset InternHunter data.
- Highlights: Users can enter
clear
command to delete all of their entries from InternHunter.
- Added sample data (Pull request #96, #101)
- What it does: Provides users with sample data to try InternHunter.
- Highlights: When users launch InternHunter for the first time, sample data fill the app, so users can immediately see how InternHunter works.
- Added storage to InternHunter (Pull request #141, #158)
- Documentation:
- User Guide:
- Added command summary. (Pull requests #80, #122, #258)
- Added clear command documentation. (Pull requests #258, #346)
- Added switch, help, and exit command documentation. (Pull requests #80)
- Added questions about sample data to the FAQ. (Pull requests #365)
- Updated the internship commands documentation. (Pull requests #258, #346)
- Developer Guide:
- Added storage architecture diagram. (Pull requests #258)
- Added implementation details and UML diagrams for the
Storage
component. (Pull requests #218, #258) - Added implementation details and UML diagrams for the ‘clear’ feature. (Pull requests #258)
- Added company use cases (Pull requests #91)
- Added
clear
user story and use case (Pull requests #258)
- User Guide:
- Team-based tasks:
- Maintaining the issue tracker
- Created the team organization and repository on GitHub.
- Created labels for issues.
- Community:
- PRs reviewed (with non-trivial review comments): #217, #92, #97, #140, #214, #132, #285, #288, #156, #78, #276, #125
-
All other PRs reviewed: #62, #367, #366, #364, #351, #269, #126, #206, #347, #207, #152, #201, #220, #82,
- Reported bugs and suggestions for other teams in the class. Bug reports: 1, 2, 3, 4, 5, 6,