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 an Item.
        • Created generic JsonItemListStorage and JsonSerializableItemList classes that work for all classes extending JsonAdaptedItem.
        • Updated the JsonUtil#readJsonFile() method to allow Jackson deserializing to a generic class.
        • Lets InternHunter reads and saves ApplicationItemList, CompanyItemList, and ProfileItemList.
        • Ensures the consistency between internships in application and company lists.
    • Created generic FilterableItemList and ItemListManager classes. (Pull request #108)
      • What it does: Lets future addition of Item subtypes to the model easy and reduce current code duplication.
      • Highlights: FilterableItemList and ItemListManager work for all classes extending the Item class. A list of Item objects have many common methods that can lead to much code duplication. Using generic classes ensures InternHunter adheres to the DRY principle.
    • 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.
  • 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)
  • Team-based tasks:
    • Maintaining the issue tracker
    • Created the team organization and repository on GitHub.
    • Created labels for issues.
  • Community: