Yongliang's Project Portfolio Page

Project: imPoster

imPoster is a desktop application for beginners of API development to easily grasp the basics. The application is optimised for fast typists and can be fully operated through a Command Line Interface. My contributions to the project are as listed below:

Code contributed: RepoSense link

New Features & Enhancements

  • New Feature: Added the ability to send a request without saving the endpoint.

    • What it does: allows the user to run API requests without saving.
    • Justification: This feature improves the product significantly because a user can quickly type in an API URL with the required details, and the app will conveniently trigger a request for the user to view the response.
    • Highlights: This feature involves two variations of command format that can be accepted. It required an in-depth analysis of command parsing order ensuring user inputs are treated correctly. The implementation too was challenging as it required changes to how we verify the validity of URLs.
  • New Feature: Added a keyboard shortcut that allows the user to retrieve the previous valid command using ctrl + up-arrow (Windows) / cmd + up-arrow (macOS).

  • New Feature: Added a help command that allows the user to open a pop up window displaying relevant links such as the product’s user guide and also a table of command summary for quick reference.

  • New Feature: Added a show command that allows the user to view the details of a saved endpoint.

  • Enhancements:

    • Refactored code in the request calling logic, and the handling of command result to reduce duplication and improve code quality.
    • Fixed issues related to user input (such as the integer index) involved in various commands to ensure bugs are caught and relevant error messages are provided.

Project management

  • Contributed to gathering of discussion topics and updating of meeting minutes in weekly team meetings.
  • Managed the v1.3.1 product release on GitHub.

Documentation

  • User Guide:
    • Added the documentation for the features send, run and help.
    • Added the miscellaneous section to include relevant notes on features such as retrieval of last valid command.
    • Added various sample APIs in command examples and the appendix.
  • Developer Guide:
    • Added the high level overview of product design (Architecture, UI component and Logic component).
    • Added implementation details of the send & run feature.

Community

  • PRs reviewed (with non-trivial review comments): (#79, #146, #189, #345).
  • Contributed to forum discussions: (1, 2, 3, 4).
  • Provided helpful tips and suggestions for other teams in the class: (1, 2, 3, 4).
  • Raised pertinent issues on the topic of design principles and code refactoring: (1, 2).
  • Followed up on bug reports to other teams to provide detailed information and observation: (1, 2).