The purpose of this assessment is to gauge development experience. The ideal candidate will use their experience to demonstrate well structured and efficient code with best practices considered.
- ALL CODE MUST BE WRITTEN INDEPENDENTLY BY YOU. Any applicant that copies code directly will disqualify his/her candidacy.
- You can leverage online resources to help, but must write original code.
- You can add any necessary PUBLIC MAVEN dependencies by adding them into the pom.xml file
- Start in the
Main.java
file and add code to theutil
anddomain
classes - Parse the CSV and TSV files into Product objects
- Store all UNIQUE products in memory (with the most accurate information)
- Transform these products into two different data formats, JSON and XML
- Output these transformations to products.json and products.xml files
- You are given two input files :
- products.csv
- products.tsv
- These files contain a list of products
- The CSV and TSV are both valid formats
- A product's uniqueness is determined by it's SKU (if two products have the same SKU, then they are the same product)
- products.csv contains more accurate information than products.tsv
- The provided project is a Maven project and should remain in this structure
- PUBLIC MAVEN third party libraries are allowed for parsing & transforming data
- An example dependency has been added to demonstrate this (
com.opencsv
). Using this dependency is NOT required, but is allowed.
mvn package
This will create a .jar file named dev-assessment-1.0.jar in the /target
directory
java -jar target/dev-assessment-1.0.jar
We will run the above commands to build/run your assessment. Please ensure running these commands works before submitting your project.
On a Linux/UNIX system - this can also be done by running the run.sh
file
sh run.sh
- Provide your entire project (including source code) in a .zip file
- Provide the number of hours it took for you to complete the assessment
- A CSV record may contain a comma in it that's not a delimiter
- XML files always require a root node
If you are unsure about anything - please make your best assumption and document that assumption in assumptions.txt
file provided