Implementation of a (Kotlin) CLI application to search ticketing data and return results in a human readable format.
In order to standardise feature development and ensure separation of concerns, this search tool has been developed as a Model-View-Controller application.
- git on bash
- JDK ==> 8
- Gradle ==> 6+
- Kotlin ==> 1.3+
# Clone the repo
$ git clone [email protected]:abbasdgr8/ticketing-search-app.git
# Change into the directory
$ cd ticketing-search-app
# Initiate the gradle build
$ ./gradlew clean build
# Runs all Unit Tests in the project
$ ./gradlew clean test
# Runs all Unit Tests in a specific test class
$ ./gradlew clean test --tests fully.qualified.ClassName
If you'd like to run and modify tests independently in IntelliJ, you need to install the Spek Framework Plugin
# Runs the main class (App.kt)
$ java -jar build/libs/ticketing-search-app-1.0-SNAPSHOT-all.jar
- Current functionality only has search without indexing. Explore other indexing options for future enhancements.
- Add search support for other datatypes like date, and array
- It is acceptable to use given input data for arriving at the basic search functionality.
- It is possible that some of the given input data could be invalid and so there need to be cases to handle that scenario
- All input data would be of size that could be easily loaded into the JVM memory; thereby eliminating the need of data persistence.
- It is acceptable to assume that this app is expected to satisfy search functionality only for the English language