parKING is a desktop app that helps drivers choose the best place to park via the Command Line Interface (CLI). parKING allows users to search, save and look at car park availability information at a glance, while interfacing with LTA’s real-time API.
A summary of my contributions below:
CarparkList
and Carpark
classes: Implemented the classes that are central to the program: The CarparkList
class contains all the Carpark
objects and represents the data repository of the program while it is running. Most of the commands interact and modify the CarparkList
class in some way - apart from designing the structure of these classes, I wrote all the internal methods to make this possible, including methods for find
and filter
. (#12)FileReader
class: Implemented the class to read and parse .json format files into a usable format (the Carpark
class). The jackson
API was used and took much time to implement and work with. Extensive error handling was done such that .json files formatted improperly would be ignored and, in the worst case, regenerated from an internal .jar. Crucial fields are checked closely to make sure they adhere to the right format (using Regular Expressions). Additionally, methods to read and write to a carpark.txt
file to save Carpark information that can be updated through files fetched from the API were written by me. (#12, #88)filter
function: The filter
function is one of the core functionalities of the program, allowing users to filter carparks, searching for keywords. Making it flexible (matching multiple keywords), and including features like colourful highlighting of matched words, took creating whole new classes (Sentence
and Word
) to implement properly. The methods for both matching Carpark ID and searching based on an address were written (and extensively tested) by me. (#75)filter
User GuideModel
component and associated documentationCommon
component and associated documentationArgument
class to keep track of dashed arguments for the Parser
class)