Application structure

The website software is written in Python and uses the Flask framework.
  • install - contains e.g. SQL files for installation
    • crm - for importing the CIDOC CRM, not needed for application to run
    • upgrade - SQL upgrade files and information how to upgrade
  • instance - configuration files
  • openatlas
    • api
    • database - the SQL code lives here
    • export - files generated from SQL and CSV export
    • forms - a collection of form related files
    • models - classes used in the application
    • processed images - smaller generated files which are more suitable for web browsers
    • static - the "web root" containing CSS, JavaScript, layout images, ...
    • templates - HTML template files
    • translations - source and compiled files for translations
    • uploads - files uploaded by users
    • util - small functions used through out the system, e.g in are filters which can be called from templates
    • views - files concerning routing, redirects, ...
  • sphinx - source files for the user manual, used with Sphinx
  • tests
To retrace e.g. a call that was made from a web browser e.g. /entity/15883
  • openatlas/ is processed and before_request() is executed
  • The URL is resolved and a function in views is called, in this case view() from openatlas/views/
  • Most often some model information is needed, in this case get_by_id() in openatlas/models/
  • All SQL is located in database, so in this case get_by_id() in openatlas/database/ is called
  • A template is called from the view, in this case openatlas/templates/entity/view.html
  • The template may use filters defined in openatlas/util/ like: some_data|some_filter

Database structure

Following schemas are used:
  • gis -for geometry data
  • import - to track entities imported using the backend
  • model - CIDOC CRM specification (classes, properties)and OpenAtlas classed base on them, also the instances of entities and links
  • public - general PostgreSQL functionality, e.g. PostGIS functions
  • web - non model data related to the website like e.g. users with their preferences and permissions

Updated by Alexander Watzinger 8 months ago · 4 revisions

Also available in: PDF HTML TXT