Software information
ZoaTrack is freely available, open-source software. See the ZoaTrack project on GitHub.
The diagram below gives an overview of the software architecture for ZoaTrack:
Server components
ZoaTrack uses the following server components:
- Java: general-purpose, object-oriented language
- Tomcat or Jetty: HTTP server and Java Servlet container
- Apache HTTP Server: open-source HTTP server
- Shibboleth Service Provider: integrates with Apache HTTP Server to provide single-sign-on
- PostgreSQL: object-relational database management system
- PostGIS: adds support for geographic objects to the PostgreSQL
- R: language and environment for statistical computing and graphics
- Rserve (Server, REngine Java client): TCP/IP server allowing other programs (e.g. Java) to use facilities of R
Java technologies
The ZoaTrack web application uses these Java technologies:
- Java Servlets, JSP, JSTL: Java technologies for building Web-based applications
- Spring Framework (Context, Web MVC), Spring Security: application development framework for Java
- Hibernate: Java persistence framework
- Hibernate Spatial: extension to Hibernate for handling geographic data
- GeoTools (Main, XML, EPSG-HSQL, XSD-KML, Swing): Java library providing tools for geospatial data
- Quartz: Java job scheduling service
- Apache HttpComponents HttpClient: Java implementation of client side of HTTP protocol
- Apache Commons (Lang, IO, Pool, Email, FileUpload): reusable Java components
- Apache POI: Java API for Microsoft Documents
- opencsv: CSV (Comma-Separated Values) parser library for Java
- FreeMarker: Java template engine
- JSON in Java: Java implementaiton of the JSON data interchange format
- reCAPCHA: prevents website abuse from bots
- Flyway: database migration framework for Java
R packages
The ZoaTrack analysis tools use these R packages:
- adehabitatHR: Home range Estimation
- adehabitatMA: Tools to Deal with Raster Maps
- alphahull: Generalization of the convex hull of a sample of points in the plane
- kftrack: Estimate movement parameters and predict "most probable track" from positions
- ukfsst: Estimate movement parameters and predict "most probable track" from raw light-based geolocations and sea surface temperatures (SST)
- rgdal: Bindings for the Geospatial Data Abstraction Library
- maptools: Classes and methods for spatial data
- shapefiles: Read and Write ESRI Shapefiles
- sp: Classes and methods for spatial data
- raster: Geographic data analysis and modeling
- spatstat: Spatial Point Pattern analysis, model-fitting, simulation, tests
- Grid2Polygons: Convert Spatial Grids to Polygons
- RColorBrewer: ColorBrewer palettes
- googleVis: Interface between R and the Google Chart Tools
- plotKML: Visualization of spatial and spatio-temporal objects in Google Earth
- spacetime: Classes and methods for spatio-temporal data
- plyr: Tools for splitting, applying and combining data
Web client technologies
- jQuery: JavaScript Library for rapid web development
- CKEditor: HTML text editor for web content creation
- Farbtastic: JavaScript colour picker
- OpenLayers: JavaScript library for displaying map data in the Web browser
- Proj4js: JavaScript library to transform point coordinates from one coordinate system to another
- Moment.js: JavaScript library for parsing, validating, manipulating, and formatting dates.
- Bootstrap: front-end framework for web development
- X-editable: in-place editing with Twitter Bootstrap
- LESS: extends CSS with dynamic behavior such as variables, mixins, operations, and functions