dsja612's Project Portfolio Page
Project: TechTrack
TechTrack is a powerful internship/job tracking application that combines the flexibility of a Command Line Interface (CLI) with the benefits of a Graphical User Interface (GUI). Designed for computing students and professionals, TechTrack helps you manage your internship/job search project by tracking deadlines and information regarding various roles. Its CLI interface is optimized for speed, efficiency, and ease of use, making it a valuable tool for students who are already familiar with CLI environments.
I worked on the entire stack, both frontend and backend. I was mainly in charge of refactoring and working on the new UI.
Contributions
- New Feature: Added the ability to store a
JobDescription
field.- What it does: TechTrack users can now store job descriptions for each role.
- Justification: The addition of the JobDescription field provides TechTrack users with an essential field for managing and tracking jobs. A job description is essential as it explains the tasks, duties, function and responsibilities of a role.
- Highlights: TechTrack users can now add their own job descriptions. As job descriptions have many forms, we decided not to place restrictions on this field, other than it being non-empty. Also added more tests for this field.
- Refactoring: Refactored the
Address
field to theCompany
field.- What it does: TechTrack users can now store the
company
for each role. - Justification: After discussion, we felt that the
Address
field would not be useful for TechTrack’s use case. We also plan to include aCompany
field for all roles. Hence, it would be easier to refactorAddress
to representCompany
instead. - Highlights: Refactored AB3 code and tests. Updated sample data to reflect examples of companies.
- What it does: TechTrack users can now store the
- New Feature & Refactoring: Add a new
View
command to display more details of a role in a better format.- What it does: Edited the
Role Card
to only display important details. The user can view more lengthy/less significant details using theview {index}
command, which replaces theResultDisplay
of the UI with aRoleDisplay
. - Justification: Displaying all 10 fields of a
Role
in eachRole Card
would not look aesthetically pleasing, especially with longer fields likeJobDescription
. We decided to refactor the UI to support multiple displays. As of now, we only need 2 types of displays from output of commands: one forString
, another forRole
. The type of display can be easily made extendable in the future, if needed.
- What it does: Edited the
- Testing: Refactored old variables in test classes to reflect the changes in TechTrack.
- Enhancements
- Enhanced help window to show list of commands for all messages
- Add message on startup to let the user know if TechTrack fails to load a file
- Improved support of unnecessarily long fields for the UI
- Change legacy logging details
- Bug Fixes
- Fixed a bug where TechTrack crashes if a
Deadline
field inTechTrack.json
is past the current date - Fixed a bug where loading sample data on a fresh installation of TechTrack would cause the program to crash
- Fixed a bug where TechTrack crashes if a
- Documentation:
- User Guide:
- Constructed outline of UG for team members to edit easily, and fixed bugs
- Proofread and checked for grammatical errors
- Developer Guide:
- Proofread and checked for grammatical errors
- Added the
view command
,UI Enhancement
section, which are features that I implemented - Updated manual tests for
tag
,name
,clear
,help
,list
,exit
command. - Checked for bugs in UML diagrams.
- Wrote the
Planned enhancements for Feature Flaws
section - Wrote the
Effort
section
- User Guide:
- Contribution to team-based tasks:
- Sourcing of images
- Created tags for PE-D issue triaging
- Ensure DG and UG are properly formatted and split into coherent sections
- Removed all remnants of AB3 from JavaDocs of test code.
- Added summary text to
/docs/data/techtrack.yml
to ensure summary of TechTrack is consistent among documents
- Review/mentoring contributions
- Reviewed PRs from other members
- Commented on PRs from other members