======================================= Technology used - software components ======================================= .. warning:: 🚧 Work in progress This section is partly outdated and currently under active development and may change without notice. Content, examples, and screenshots may be incomplete or updated soon. Backend +++++++ The following is the list of the most important software components that have been used to design and implement Trapper: * `Ubuntu `_ A base operating system under which Trapper was developed and tested. * `PostgreSQL `_ The open source and industry standard relational database management system (RDBMS) with `PostGIS `_ as its spatial extension. * `nginx `_ nginx [engine x] is an HTTP and reverse proxy server, a mail proxy server, and a generic TCP proxy server. * `Gunicorn `_ This pure-python application is used to serve Trapper project. * `Celery `_ This python application is used to run various tasks in asnynchronous mode allowing Trapper to work faster and more efficient. The celery is used to generate thumbnails from large files or videos, or to process uploaded collections by users. * `Django `_ The core component of Trapper, a high-level Python web framework maintained by the Django Software Foundation. Django framework simplifies and significantly speeds up the creation of complex, database-driven websites and emphasizes reusability and pluggability of their components. Additionally, a variety of 3rd party, open source django applications have been used to develop Trapper. For a complete list of these applications see `this file <>`_ * `uMAP `_ uMap lets you create maps with OpenStreetMap layers in a minute and embed them in your site. It uses django-leaflet-storage and Leaflet.Storage, built on top of Django and Leaflet. Frontend ++++++++ Trapper's front-end is developed based on three independent solutions: 1) HTML (version 5) templates and their CSS styles (powered by `SASS `_) 2) set of scripts written in pure JavaScript (ECMAscript 5). 3) all the external libraries and frameworks included in the project: * Twitter Bootstrap `Bootstrap Sass Official `_ which is official SASS version of `Twitter Bootstrap `_. This library provides a set of HTML components and CSS styles used for Trapper scaffold creation. * Font Awesome `Font Awesome `_ - webfont of vector icons used in the project. * Angular JS `Angular JS `_ all the grids/tables including their filters has been build on top of this Google's framework * Angular Cookies Official `angular module `_ for cookies management. * Angular Sanitize Official `angular module `_ which improves angular templates data binding. * Moment Extremaly powerful `library `_ for date parsing & manipulation. * Select2 Complete `solution `_ that extends default HTML select controls. * Select2 Bootstrap CSS `CSS styles `_ for Select2 so it fits Twitter Bootstrap feel & look. * Bootstrap WYSIHTML5 `Javascript Plugin `_ which brings WYSIWYG text editor to the table. * Bootstrap Datepicker http://eternicode.github.io/bootstrap-datepicker/ `Javascript Widget `_ - simple datepicker. * Jquery Timepicker `Jquery Widget `_ which is just a timepicker. * Bootstrap Datetimepicker `Javascript Widget `_ that combines both time and date picker. * Video JS This `library `_ extends standard HTML5 video players. * Video JS Rangeslider Video JS `plugin `_ that allows to set and get video sequences.