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 thesend
andrun
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
andrun
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 aboverequest
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 toendpoint
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
anddark theme
for the UI. - Added
GIFs
to represent ongoing API call and error message.
- Added
Project management
- Added the team self-initiated main project website.
- Managed releases
v1.1
,v1.2
,v1.2b
,1.2.1
,v1.3
(5 releases) on GitHub. - Maintained gantt chart and project development board.
- Setup the GitHub team organisation/repository and added favicon to project page.
- Setup tools and workflow guide to ease project workflow (#66).
Community
- PRs reviewed (with non-trivial review comments): #122, #378.
- Helped and provided tips through forum discussions (examples: Checkstyle Guide, Fat JAR guide, Peer Help).
Tools
- Integrated the third party library Apache HttpComponents to the project (#125).
- Added a pre-commit githook to the repository to improve CI (#98).
- Added a script to easily sync local, remote individual and team repositories (#45).
Documentation
- User Guide:
- Developer Guide: