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 the Company 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 a Company field for all roles. Hence, it would be easier to refactor Address to represent Company instead.
    • Highlights: Refactored AB3 code and tests. Updated sample data to reflect examples of companies.
  • 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 the view {index} command, which replaces the ResultDisplay of the UI with a RoleDisplay.
    • Justification: Displaying all 10 fields of a Role in each Role Card would not look aesthetically pleasing, especially with longer fields like JobDescription. 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 for String, another for Role. The type of display can be easily made extendable in the future, if needed.
  • 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 in TechTrack.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
  • 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
  • Contribution to team-based tasks:
    • Sourcing of images
      • Sourced for application icon from PNGEgg
      • Sourced for contact icon for view command from icons8
      • Sourced for more details icon for view command from icons8
    • 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

RepoSense link | Commit History | Pull Requests | Issues