Register
Submit a solution
The challenge is finished.

Challenge Overview

Welcome to the XML to JSON converter contest. As part of this contest, you will have to create an application that converts XML to JSON and provides an API to access the converted JSON data.

 

Contest Background

Our client is responsible for managing a real-time analytics platform for an upcoming sports event, where between 4-6 matches will occur every day over a period of a few weeks. The platform accepts a series of XML files and converts it. The conversion time takes upwards of 10 seconds. As part of this project, we need to decrease that time, and make the converted content available via an API.

 

Contest Details

Create an application that accepts XML as input, converts it to JSON and makes it available via a RESTful API.

 

The expectations from your application are as follows:

  1. It should accept new XML every 3 to 4 seconds. Basically, the application will be called with new XML data for conversion every 3 to 4 seconds.

  2. The conversion of the XML to JSON must occur in under 10 seconds.

  3. The converted data should be accessible through a RESTful API. This API must return the data in JSON format itself.

  4. The XML data submitted is essentially a Game / Match data. It contains information about the current progress / status of the game. This data is generated periodically - as mentioned, the application can expect new XML data submitted every 3 to 4 seconds. Thus, as each match in the sports event is completed and the corresponding XML data is converted, the application must update the corresponding “match” with the latest results. So, in essence, you will group all the XML data based on the match they belong to and then when the user queries for the converted data, the API should return for any given game / match all the events associated with it. Something like GET /api/match/match_id should be supported. (Note that the API endpoint mentioned here is an example. You can use a different endpoint of your liking which you think is suitable)

  5. So, in total, you will provide two endpoints - one to allow the user to submit the XML file containing the data which you convert to JSON and store in the database and another to get the match details.

 

We will share sample XML documents with you that will be submitted / used with your application. You need to provide an API to accept these documents and provide another API to access the converted JSON data. The implementation logic is left to you. What our client proposed is that you could create the API over a single table in SQL Server Database. We are also sharing the Table Structure with you as shared by our client. You can check it out to get an idea of how to model the data. However, this is purely a suggestion. You are free to use a tech stack of your choice that meets the criteria mentioned below.

 

Preferred Tech Stack

  • Open Source is preferred.

  • You should not make use of any libraries or frameworks or tools or anything related to your submission that requires a Paid License.


Final Submission Guidelines

  • Tests in the form of POSTMAN imports are acceptable.

  • Kindly provide a private video of your application in action. If the video is hosted on Youtube, kindly ensure that the video is unlisted. Best to also show how to deploy your application in the video too.

  • Make sure that you specify clearly how to deploy your application and how to call your APIs.

  • Upload your solution through the Submit and Review tool for this contest.

ELIGIBLE EVENTS:

2016 TopCoder(R) Open

Review style

Final Review

Community Review Board

Approval

User Sign-Off

ID: 30052650