Binder has been created by leveraging existing functionality from AtoM, and adding new functionality on top of it.
AtoM is comprised of:
- HTML pages served to a web browser from a web server (Nginx)
- A database on a database server (MySQL 5.1+)
- PHP (5.3.10+) and several PHP extensions, and the Symfony (1.4) framework
- Elasticsearch, a distributed search server based on Apache Lucene, which AtoM interacts with via a RESTful API
For more information, see the AtoM documentation.
Additional modules specific to Binder have been added via AngularJS (1.2) front-end pages, which Binder communicates with via an HTTP API.
Binder-specific UI components, written in AngularJS, have been abstracted from AtoM, which is currently used as a back-end dependency. This abstraction will allow AtoM to be replaced in the future if desired, as Binder grows and the need for a customized environment (e.g. a database, web server, and search index specific to Binder) becomes more relevant.
Since Binder’s front-end consumes data via a RESTful API, it can be integrated with other applications in the future with minimal structural changes. See the API documentation for more details.