Tan Jin'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 request feature which is heavily used by the send and run command.

    • What it does: Supports the making of API calls to an endpoint.
    • Justification: The core functionality of our product is heavily dependent on this feature. Without this, the product is unable to send requests and receive responses.
    • Highlights: This new feature is used by the send and run commands to perform API calls. The implementation was challenging as it required the use of threading to ensure that the UI does not freeze up when API calls take longer than expected.
    • Credits: The request feature is built on top of Apache HttpComponents.
  • New Feature: Added the ability to make an API call through the send command.

    • What it does: Allows the user to make an API call to a saved endpoint.
    • Justification: This command is needed for a user to make an API call to an endpoint.
    • Highlights: The send command complements and is supported by the above request feature which allows the user to specify an endpoint to make an API call for.
  • New Feature: Added the ability to cancel an API call through ctrl + d.

    • What it does: Allows the user to cancel an ongoing API call.
    • Justification: Certain endpoints may take a long time to respond. Without this feature, users may be held hostage by the wait time without an option to abort the API call.
    • Highlights: This keyboard command complements the above request feature by providing users with an option to terminate an ongoing API call. The implementation was challenging as the API call was made in a thread and terminating it required the closing of the HTTP connection with careful handling of exceptions.
  • New Feature: Added switching of application theme through the toggle command.

    • What it does: Allows users to switch the application theme easily.
    • Justfication: This improves the visual comfort for the user as they are able to work under visuals they are more accustomed to (e.g. light/dark theme).
    • Highlights: This feature was implemented such that new themes can be added easily by modifying only a single line of code and adding a new css file.
  • Enhancements:

    • Added response attribute to endpoint to store API call responses.
    • Added project icon to dock/taskbar when the application is launched.
    • Added an outline on the focused component of the UI for clarity to users.
    • Added the general template, light theme and dark theme for the UI.
    • Added GIFs to represent ongoing API call and error message.

Project management




  • User Guide:
    • Added documentation for send command (#52).
    • Added cover page, heavy styling and formatting (#296, #314, #382, #463).
    • Added the entire appendix section with additional information for users (#353, #446).
  • Developer Guide:
    • Added implementation details of the request feature (#351).
    • Added cover page and minor styling (#355).
    • Added effort, some use cases, test cases and glossary terms (#71, #102, #616, #631).