Lens is a tool for online analytical data processing in medical studies.
1.3K
Please start at the Top-Level Lens Repo.
The Lens App is a static ClojureScript frontend single page app using various backend services. Please see section Architecture for more information.
Currently a complete compilation including a production optimized ClojureScript to JavaScript compilation works using:
lein with-profile production compile :all
lein cljsbuild test
There is an automated build of Lens App on Docker Hub which builds a container running a Nginx web server which delivers the static files of the Lens App web application and proxies the backend services.
The container exposes port 80 and needs three environment variables
AUTH_HOST - the hostname of the Lens Auth ServiceWORKBOOK_HOST - the hostname of the Lens Workbook ServiceWAREHOUSE_HOST - the hostname of the Lens Warehouse ServiceREPORT_URI - the URI were reports can be foundACRF_URI - the URI were aCRFs can be foundStart the container with the following command
docker run -p 80:80 -e AUTH_HOST=<...> -e WORKBOOK_HOST=<...> -e WAREHOUSE_HOST=<...> akiel/lens-app
Lens App uses figwheel
rlwrap lein figwheel
Currently I get many warnings if I start figwheel without doing a lein clean
first.
You need to have the five backend services of Lens running under the URIs
specified in the resources/public/index-dev.html. Currently this is
var lensAuth = "http://localhost:5001/auth";
var lensWorkbook = "http://localhost:5002/wb";
var lensWarehouse = "http://localhost:5003/wh";
var lensReport = "http://192.168.99.100:3001/report";
var lensAcrf = "http://192.168.99.100:3000/acrf";
Lens as a system consists of one frontend web application and various backend services and so follows the style of a microservice architecture.
The frontend application Lens App is build after the principles described in Static Apps. Lens App is written in ClojureScript which is compiled to JavaScript at build time. After loading Lens App in the browser, it talks to various backend services through AJAX.
Lens backend services use token-based authentication. Bearer tokens are used. The tokens are issued by the Lens Auth service.
http://www.staticapps.org/articles/authentication-and-authorization
TODO: React, Om
Copyright © 2015 Alexander Kiel
Distributed under the Eclipse Public License, the same as Clojure.
Content type
Image
Digest
sha256:da44b178d…
Size
53.1 MB
Last updated
over 10 years ago
docker pull akiel/lens-app