refactor an existing monolithic API to a client / server architecture

This project received 6 bids from talented freelancers with an average bid price of $694 USD.

Get free quotes for a project like this
Project Budget
$250 - $750 USD
Total Bids
Project Description

We have a C++ API with 3 classes, which only use POD types and std::strings to pass arguments: when complex objects have to be passed, we serialize them with JSON (each JSON message has an associated JSON schema).

Most of the methods are synchronous, with 3 exceptions (for these three, there is a facility to define callbacks). Additionally, two synchronous methods take as parameter a file name and output some data (the first one a binary file, and the second one a text file).

The API is configured to be statically linked with a C++ driver to obtain a local, monolithic application.

Now we need to refactor the API and the driver into a client-server application, using JSON over WebSockets as the RPC mechanism (to get a background, read this [url removed, login to view]). All calls will then be asynchronous by default over the communication channel, but the client-side API only the three that already are asynchronous will need to be exposed as such; for all the others, hide the callback in the client-side stub implementation.

Both the server and the client should be console applications written with Qt 5.2 + QJsonRpc & QWebSockets.

Our preferred development environment is 32-bit Debian 8 (Jessie); you can use other platforms if you wish.

Attached you will find the header files, the C++ test driver and the JSON schemas. On project award, we will supply the implementation in source code form so that you can throughly test.

Let me know if there are questions (I **do** expect questions).

Skills Required

Looking to make some money?

  • Set your budget and the timeframe
  • Outline your proposal
  • Get paid for your work

Hire Freelancers who also bid on this project

    • Forbes
    • The New York Times
    • Time
    • Wall Street Journal
    • Times Online