Challenge Overview
Project Overview
This is a simple web application we’re building to help customers convert a spreadsheet file with payroll data into a required .csv file format. The tool will accept an uploaded spreadsheet / text / csv file, match the data to an approved structure, allow the user to confirm the mapping, and provide messages/warnings about errors or inconsistencies.
Competition Task Overview
In a previous challenge we have built the file upload and validation API. In this challenge we are going to extend this API to handle mapping and reformatting of data as well:
- You may need to update the previous upload & validate api so it returns the data that can be consumed by this new API assuming the uploaded file is valid. Then this API will parse the data, do the mapping and reformatting of data. You may come up with other ways to do it but you need to avoid duplicating the logic to handle file upload / data validation in the new API.
- Please make sure requirements 2.2 Reformatting and 2.3 Reformatted File Produced are properly covered by this challenge. Make sure you also carefully try the prototype to see how the app is supposed to work, which may affect how you design the code to work (for example: input / output of this new API).
- The new API should not crash in case data is not valid, it should return a graceful message to let the app know what's wrong.
- Provide detailed deployment and verification guides.
- Provide unit tests for the API, you need to thoroughly test the code with invalid input and valid input. Make sure you include all the input used by your code (including testing code) in your submission.
- You should just add the new API implementation to the same Visual Studio Solution instead of creating a new one
- The code must be deployable as Azure Web Services
Please register to download the other detailed documents from the challenge forum.
Technology Overview
C# / .NET 4.5 (Required Version)
ASP.NET Web API
Azure
SQL Server / Azure SQL Database
REST
Swagger
Final Submission Guidelines
Submission Deliverables
- Full API code that covers all requirements, including unit tests
- Deployment guide for the API
- Swagger documentation that matches final API
- Verification guide for the API
- Test files to test different cases of the API