This is a Java/Spring Boot web application to find duplicates in a CSV contact list made as part of Validity Inc's Co-op Take Home Exercise. This application was developed using JetBrains IntelliJ Idea Ultimate.
The application is only optimized and confirmed to run on IntelliJ Idea software. In order to run the application, clone this repository into a folder on your computer using Git and open the project folder on IntelliJ. On the solution explorer, right click on the project folder (named validity-test by default) and select Add Framework Support. Enable Maven support. Once Maven is enabled, right click on the project folder once again, select Maven, and click Reimport. This will download all other dependencies from the pom.xml file.
- DuplicatesApplication.java: contains the MAIN function to run the Spring Boot application.
- DuplicatesApplicationController.java: controller to fetch data from the CSV files and return to the view.
- Utils.java: Helpers to read and analyze CSV files and find duplicates based on Levenshtein distance and Double Metaphone.
- DuplicatesApplicationTest.java: contains tests for Levenshtein and Metaphone implementations.
- pom.xml: Maven project to import dependencies.
- Spring Boot + Spring MVC
- JUnit 5.5.2
- Apache Commons Codec (Double Metaphone)
- Apache Commons Text (Levenshtein)
- Apache Commons CSV