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
Currently a complete compilation including a production optimized ClojureScript
lein with-profile production compile :all
lein cljsbuild test
Run Lens App with Docker
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 Service
WORKBOOK_HOST- the hostname of the Lens Workbook Service
WAREHOUSE_HOST- the hostname of the Lens Warehouse Service
REPORT_URI- the URI were reports can be found
ACRF_URI- the URI were aCRFs can be found
Start 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
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
various backend services through AJAX.
Authentication and Authorization
Frontend State Management and DOM Update
TODO: React, Om
Copyright © 2015 Alexander Kiel
Distributed under the Eclipse Public License, the same as Clojure.