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)