Jawad Afthab

InternHub Project Portfolio

Project Overview

  • InternHub is a comprehensive project designed to assist Undergraduate students in managing their internship applications.
  • The user interacts with it using a CLI, and it has a GUI created with JavaFX.
  • It is written in Java, and has about 10 kLoC.

Technical Skills Utilized in this Project

In this project, I leveraged a variety of technical skills to develop and maintain the application.

  • Java
    • Utilized Java as the primary programming language for developing the logic and functionalities of the application.
  • JavaFX
    • Employed JavaFX framework for building the graphical user interface (GUI) of the application, providing an intuitive and user-friendly experience.
  • Version Control with GitHub & Git
    • Utilized GitHub as a version control platform along with Git for managing the project's source code, enabling collaborative development, tracking changes, and ensuring code integrity.

Feature Enhancements

Note Feature

Issue : User unable to modify or update existing note content of a contact without overwriting the data

Proposed Solution : Based on the index, user can retrieve & make updates to the note content of a contact in the command box

Implementation : Integrate NoteCommand with Model layer & UI component to fetch & update note content

Challenges

  • Implementing a command that communicates with the UI was intricate
  • Parsing the CommandResult to uniquely identify that it is that of a NoteCommand

Benefits

  • Allows users to efficiently manage and update note content for contacts
  • Enhance user experience by providing a convenient method to interact with the notes field through the command line

Base UI of Company Card

Issue : Default UI of a company card does not allow for various fields of a contact to be displayed in a user-friendly manner

Proposed Solution : Redesign the layout of the UI for company card to visually organize the data of the contact

Implementation : JavaFX file implemented to update the UI independently of other components

Challenges

  • Getting accustomed to the JavaFX methods to replicate the desired model design
  • Integrating a neat design while still maintaining integration of dynamic data
  • Analysing for which fields would Label or TextArea be more appropriate

Benefits

  • Allows users to have a centralised overview of all the data pertaining to a contact
  • Visually striking elements like interview date emphasises key details of that contact

Documentation

User Guide
  • Added documentation for features filter & view #72
  • Quick start additions for new users #90
  • Included additions to glossary to allow for users to understand technical terms #188
  • Cosmetic tweaks on overall layout of documentation & inclusion of boxes for tips, info and warning #105

Developer Guide
  • Added class, sequence & activity diagrams for NoteCommand #85, #Need to link pr
  • Implemented Use Case scenarios #30

Project Management

  • Code contributed: RepoSense link
  • Managed releases v1. (trial), v1.3 (final) (2 releases) on GitHub
  • Creation of Milestones v1.3b and v1.4 coupled with related general issues for respective milestones

Community

  • PRs reviewed (with non-trivial review comments): #12, #32, #19, #42,
  • Contributed to forum discussions (examples: 1)