British Numismatic Society

Promoting the study of coins, medals, tokens and banknotes




Data for MCHBI is collected and edited in a master offline Microsoft Access database application written and maintained by the Project Coordinator, and is easily uploaded via export of Excel spreadsheets which are then uploaded to the MCHBI mapping module CMS. This in turn feeds it into a PostgreSQL database that the mapping module uses. The MCHBI mapping module, which consists of a web application and a database, are accessed through the regular BNS website, but reside on a separate server for architectural reasons. In constructing the online tool the following should be noted:

  • Use of freely available open source software.
  • PHP as the server-side language, using PHP version 8.1.
  • Dompdf PHP package for PDF generation.
  • Phpspreadsheet PHP package for parsing and generation of excel spreadsheets.
  • PostgreSQL – Database, and use of PostGIS  spatial database extension which provides GIS functionality.
  • Docker and Docker Compose are utilized to facilitate easy setup and deployment, both in development and production.
  • Meilisearch for an intelligent “simple search” mechanism. This handles typos etc.
  • The use of Git and GitLab in conjunction with Docker to facilitate rapid development, issue tracking, and deployment of changes with little to no effort through continuous-deployment pipelines.
  • jQUery QueryBuilder - allows the user to easily build complex filters against the attributes they specify in the advanced search.
  • Occasional use of Bootstrap 5 - front-end open-source toolkit such as for the error pages.
  • Operating System - Linux - specifically Ubuntu 20.04 for the Docker application container image, and Ubuntu 22.04 11 for the host virtual machine. In due course the container will be upgraded to ubuntu 22.04, but this is not required at this time.
  • Map technology using Leaflet, and some plugins, such as for the clustering, and the polygon drawing tools.
  • Openstreetmap is one of the many tile choices.


The Way Ahead?

In the future, if it is decided to share MCHBI data with other systems, then we may develop a RESTful API (as per to allow the sharing of the systems information with other systems, for which, we will publish the interface through the use of the OpenAPI Specification & Swagger UI. This will allow other developers to know how to integrate with the API, in an easily human-digestable manner.  A REST API (also known as RESTful API) is an application programming interface (API or web API) that conforms to the constraints of REST architectural style and allows for interaction with RESTful web services. REST stands for representational state transfer).

Documentation of the API would be through the creation and publishing of a document adhering to the OpenAPI specification.  This document will also then be used with Swagger UI to present the documentation through a web interface. Other developers can download this document to use with other tools like Redoc and Swagger Codegen in order to view the information in a different manner and programmatically generate stub code, respectively. This would allows BNS data to be shared with other systems such as NOMISMA.