CSharp Coding Exercise For Full Stack Devs
CSharp Coding Exercise For Full Stack Devs
OVERVIEW
Your task is to create a simple client-server application. The client should be able to upload a file with initial sample
data which the server processes. If any error occurs while parsing the data, the server must return an error. The data
file will contain information about bars in the format described below. The processed data is returned to the client
which displays the resulting parsed data in text, as a bar chart (bonus).
As a bonus task, the data displayed by the client should be updated every minute. The data returned by the server
for this updates should be randomized to make it different from the initial data. When user uploads a new file, the
previous results will be discarded and the processes stated again from the beginning.
TASKS
Upload data file to the server.
Parse the uploaded file and send back results to the client as list of JSON objects.
Present the data from the server in the client.
BONUS TASK
Visualize the data as a bar chart. You can create your own implementation drawing the results directly on
HTML5 Canvas or use any existing library.
Every minute update the client with new data requested from the server and randomized (to have it change
for each request).
IMPLEMENTATION
Frontend part can be implemented as a single page application using any frontend JS-framework/library
(Angular, Aurelia, React, or even HTML + AJAX) that candidate the most familiar with.
The server part must be implemented as a simple ASP.NET WebAPI application.
SAMPLE DATA
The data file is a simple text file that contains information about one bar per line. Every bar should have a name
(only letters and numbers are accepted) followed by “#” and should contain information about color and the size,
divided by “:”. For instance, example below defines two bars with values 5 and 10, with the colors red and blue:
#A:RED:5
#B:BLUE:10
EXPECTATIONS
We expect to see your code; coding by example is not accepted.
We would love to see some simple form of documentation on the decisions you’ve made. If you considered
different solutions, please write why you decided to use the current one.
We expect the server application to be written in C# / .Net Framework 4.5. The client part should work in
any modern browser.
HINTS
Code quality matters.
Testing is extremely important to us.
There are no absolute right and wrong answers to this exercise.
This is not about creating a complete and polished application, but about showing us that you can design an
application from the ground up. We have intentionally left the specification open to interpretation to give
you room to be creative but also to determine some suitable limits of the application.
We’ve tried to provide a clear definition as much as possible but if you are not sure what is expected to be
done, do not hesitate to contact us with your questions.