European Digital Reading Lab · Apr 12th 2018
EDRLab has developed an open-source server in Go, with a REST interface and DB access. You'll find the code at https://github.com/readium/readium-lcp-server.
It is production ready, but needs some short term evolutions, then medium term refactoring.
Short term: it's using database/sql directly. Works well with SQLite but we have issues with MySQL and SQLServer. We need to support multiple databases on multiple platforms (Linux and Windows, plus OSX for tests).
Medium term: it's not using a Web framework nor a high level DB access framework. We think that the code would be much simpler if we were to adopt it.
Also, the web backend is built on Angular2 + a REST API. In practice this is complex to maintain, we'd prefer a classical templated Web interface.
This open-source server solution (made of 4 processes which interactions btw processes) is meant to constitute a License Server for the new Readium LCP DRM. Those would hate DRMs should therefore step out.
We need a developer who will first solve our short term problem, then apply agreed solutions to the REST, DB and Web issues. We want a testable solution, with proper documentation and in-code comments. The result of the major evolution must be 100% compatible, functionally, with the current version.
A remote position is ok for us; the developer must speak English or French really fluently. A bi-weekly call will be required with the EDRLab CTO.
The proposal must include the time and amount (in €) requested for each of the 3 phases (multiple DB support, port of the LCP and LSD server processes to the suggested REST+DB frameworks, port of the Frontend server to a standard Web framework). This means that the candidates must first look at the existing codebase (Github URL above) before submitting a proposal. The short term evolution will be used as a test assignment by EDRLab. The second phase will start only if the result of the first phase is good.