csWeb, or the Common Sense Web application, is an intuitive open source web-based GIS application, providing casual users as well as business analysists and information manageners with a powerful tool to perform spatial analysis. It has a strong focus on usability and connectivity, be it connecting and sharing information with other users or connecting to services or calculation simulations and models. LIVE DEMO
- Basic map interactions (zooming, geo-locating, selecting different base layers)
- Displaying geojson files
- Specifying how properties must be displayed (formatting, title, tooltips, etc.)
- Filtering on one or more properties
- Coloring icons and regions based on one or more properties
- Displaying data in a table, and allowing the users to download it
- Searching for a feature
Technically, we use the following frameworks:
- Typescript for coding the application
- Angularjs as the MVC framework
- Bootstrap 3 (and fontawesome) for the CSS design style
- Leaflet for the 2D map layer, and Cesium for the 3D maps
- d3, dc, crossfilter for filtering and styling
The application is written in Typescript, which compiles to regular JavaScript, and further uses Angularjs as the framework, Leaflet and Cesium for rendering maps, d3 and others. A detailed guide is provided here, a concise installation checklist here.
This repository consists of several project folders. The most important ones are csComp, a library containing client side functionality, and csServerComp, for server side components. Both libraries generate a JavaScript file that can be used by the actual map application which you can find in the example
folder.
Just copy the example folder to a public folder and open the public\index.html file in that folder.
There are two types of docker containers built for CommonSense:
This container runs whole csWeb application. To run it and access csWeb in the web browser at <port>
run:
# replace <port> with the port number you want to access csWeb at
docker run -d -p 3002:<port> tnocs/csWeb-demo
If your're using docker running in your system (Linux), application should be avaiilable at localhost
,
otherwise when using docker-machine
, you can ask about ip address with docker-machine ip default
(in case your vm with docker is named default).
This container is meant to run csWeb build in the docker container istread of local machine. csWeb local repository will be mounted inside the container and the build process will happen inside the container. This is usefull in at least two cases.
- to check if you understand all dependencies of your build process since only dependencies specified in the Dockerfile will be installed
- to avoid installing dependencies on local machin
Run container from within csWeb directory:
docker run -it --rm -p 3002:<port> -v $PWD:/app/ tno/csWeb-dev /bin/bash
- Writing tests
- Code review
- Other guidelines
karma start test/karma.conf.js
- Repo owner or admin