Specify 7 Documentation

Brief Technical Description of Specify 7


To implement Specify as a web application, we designed a clean separation of front-end (FE) and the back-end (BE) layers and functions. That separation provides the most flexibility for technology evolution and code collaboration because it enables the FE or the BE to be replaced independently for different technology or for a better implementation. The FE is developed in JavaScript utilizing jQuery for the user interface, Backbone.js for the application architecture framework, and RequireJS for module management. These are open source, large community-supported libraries for Javascript web application development. The FE works in any modern browser. The BE serves data and enforces business rules for data integrity through a RESTful API Service for reading, writing, and deleting data. Data are described in JSON (JavaScript Object Notation) for the exchange between the JavaScript FE and the RESTful service.

The diagram shows the Specify 7 web architecture using a custom RESTful API on top of the Django web framework for Python on the server BE, hosted behind an Apache web server. For data queries beyond the capabilities of the built-in Django ORM, we use the open source SQLAlchemy library. The BE file system and MySQL database engine are supported for Linux servers but in principle could be hosted on Windows, MacOS or other operating system supported by MySQL and Python. Cluster and cloud platforms are immediately available for this standard Linux environment, including Amazon’s EC2 as pre-made machine images (AMIs) as well as hosted images from a number of other vendors. We use Amazon and Digital Ocean for cloud hosting.

With its modular web architecture for evolving front-end and back-end technologies and for cloud hosting, extensible data model, open-source licensing, web services integrations, remarkably configurable user interfaces, exquisitely customizable labels and reports, and last but not least, the Specify Project’s world class support, Specify is the future of biological collections computation and specimen data curation.

Instructions for installing Specify 7 can be found at: https://github.com/specify.

If you would like to know more about Specify 7, e-mail us at: support@specifysoftware.org, or call the Specify Project at +1 785 864-4400.

The Specify Software Project is funded by U.S. National Science Foundation grants: BIO/DBI #0960913, #0968352, and #0851278.
Specify Software Project, Biodiversity Institute, University of Kansas, 1345 Jayhawk Boulevard, Lawrence, KS USA 66045
Phone: +1 (785) 864-4400, Email: specify@ku.edu, Website: www.specifysoftware.org