Skip to content

michaelaltao/signalr-react

Repository files navigation

Coding Assessment

In this round, we will be asking you to re-architect a project.

This project contains a simulator creating bids and offers for various items and a basic website with a grid displaying the current best bid/offer for items. Currently, this website is implemented using server-side Blazor; the assignment is for you to switch it to a client-side implementation. Choose the most suitable client framework for this task (e.g., React, Angular, Vue) while keeping the server-side code in C#.

There is no need to change how the simulator generates data (MarketSimulator.cs), but you are welcome to change how you read data from the simulator (MarketCache.cs). You'd need to create APIs to communicate this data and its changes to your front end. You should choose the most suitable technology for this task (e.g., REST, GRPC, WebSockets, SignalR). The transport mechanism should be designed only to transfer data that has changed to the client side and perform incremental, row-level updates rather than a full table update ( for example, do not refresh/reload the grid every x milliseconds).

The front end should have the following features: - A grid displaying the latest bids/offers for a given update. This should be real-time/near real-time. - The ability to filter and sort the grid by item type.

You do not need to implement authentication/authorization for this project. You can use any commercial grid that you are comfortable with (a trial version is fine). Bonus points for making the grid handle a large number of updates (you can change MarketSimulator.RefreshRateMilliseconds to a lower number and see how low the grid can handle).

Instructions for Building and Running the WebAssessment Prototype:

The WebAssessment prototype is currently built using server-side Blazor. It uses a third-party Telerik control that is not available on NuGet. The top-level of the solution folder contains a "nuget" folder with the Telerik control and a "nuget.config" file that allows the build process to locate the Telerik control packages.

The Telerik controls are necessary for the WebAssessment prototype. They only work for .NET Blazor solutions. They are not needed for your solution, which can run on any platform of your choice (e.g., JavaScript).

Building the WebAssessment project, rebuilding (non-incremental clean build) it, or performing a package restore should load the controls into the project. Right-clicking on the solution icon in the solution explorer exposes a "Restore NuGet Packages" on the context menu.

If, for some reason, Visual Studio reports that Telerik.UI.for.Blazor can't be found, add the "nuget" directory from the top-level solution directory as a new package source in the "NuGet Package Manager" Settings in Visual Studio. This dialog can be reached by selecting the "Options..." at the bottom of the Tools menu or "Package Manager Settings" from the "NuGet Package Manager" submenu also contained in the Tools menu. The Settings dialog is shown below:

image-20240216165141733

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages