The Solemne application is a Django web application. Django is a high-level framework built on the Python programming language. The web application consists of the following parts:
The front-end is the user's browser. This is the system that the user interacts with first of all. The user sees HTML pages on the browser, and interacts with these pages via calls to 'Javascript' code. Whenever the user loads a HTML page, Javascript code is loaded too. Pressing buttons often results in the execution of a piece of Javascript code--something that takes place entirely on the user's browser. Some pieces of Javascript send POST or GET requests to the back-end server, resulting in dynamically updated web pages.
Data visualization on the site has been implemented using d3js, which provides svg pictures.
As for requirements - any up-to-date web browser should be able to handle this web application. The application has not been tested on all browsers, but it should at least work on Firefox and on Chrome.
The back-end application is the one that makes use of the Django-Python framework. The back-end is a program running on the 'Ponyland' server park of the Radboud University. It is served through uwsgi. The framework uses a 'model-view-controller' system: the model reflects the structure of the database, the controller determines what is shown to the user when, and the view consists of the HTML files that are served.
The back-end is the place where most of the work takes place for the Solemne application. While users are served HTML files, the buttons they press trigger requests to be sent to the server. The Python functions that run there handle the requests and, if needed prepare other HTML pages that are then sent to the user's browser.
The preparation of HTML pages in the Django framework makes use of a template system. The templates contain the rough sketch of the HTML pages, and the data-dependant context provide the information to fill in the details.
The Solemne application uses an SQLite database. This kind of database is contained in one file. This file resides somewhere on the server. Regular back-ups of this file assure little loss of data, should a calamity occur. (Note: the database is a relational one, but it is not a MySQL one.)
The structure of the database can best be seen by glancing through the
models.py file of the Github place where the code is kept.
Each class based on models.Model
represents one table in the database.
The Solemne web application allows downloading data in a number of different ways.
Visualizations can also be downloaded, but note that the current visualizations are all quite experimental right now, and not each download function is guaranteed to work as one might want to. We are gradually working on that.
Accessing data by a different program will be made possible in the near future.