InternHub is a desktop address book application used for teaching Software Engineering principles. 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.
Given below are my contributions to the project.
New Feature: Allow users to add new contacts to InternHub
Code contributed: RepoSense link
Project management:
v1.3
(1 releases) on GitHubEnhancements to existing features:
Documentation:
User Guide:
Developer Guide:
Community:
Challenges and Problem Solving:
I was tasked with adding new fields to the person model, which required extensive changes throughout the project. This involved creating classes for the additional fields and test cases for each one. Additionally, I had to modify all existing test cases to accommodate the new fields. Initially, I underestimated the complexity of this task, and upon running the code, I encountered many errors, with over 20% of all test cases failing. Instead of attempting to edit everything at once, I broke down the errors into smaller, manageable chunks. This approach allowed me to test each change as I progressed, identifying errors early and minimizing debugging efforts. After two days of diligent work, I successfully updated the code, passed all test cases, and improved the code coverage from 75.26% to 78.571%.
During a pull request (PR) submission, I created a PR at the same time as one teammate. I merged my teammate's PR first and as I tried to merge my PR, there was merge conflict. I was panicking as I was accustomed to resolving conflicts on the GitHub website and this conflict was too complex and required resolution on my local machine. Maintaining composure, I communicated the issue with my team members. Thankfully, one of my team members was able to resolve the merge conflict by pulling the latest changes from the main branch to her local repository, manually resolving the conflict using a code editor, before successfully merging the PR without further issues.
Tools: