Skip to content

DUNE/dunedb

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The DUNE APA Construction Database

This repository contains all of the code required for the DUNE APA Construction Database (referred to as the 'APA DB' for short). This database is designed to store all records relating to the manufacture, testing, quality assurance and transport of the DUNE APA frames and their constituent components.

Please note that this README is intended for database developers - for user documentation, please consult the Github Wiki.

Getting Started

The DB code is designed to run on a docker system, so you will need to have a (relatively) recent version of Docker installed on the computer or server on which you intend to run the DB. Once this is done, and you have performed a git clone of this (dunedb) repository, executing the following command when in the app directory will set up and start a new DB instance:

docker compose up -d

Note that the -d flag above indicates that the DB will run in 'detached' mode, i.e. the live logs will not be shown. To access the logs once the DB is running, please run the following command in the app directory:

docker compose logs -f app

To stop the DB instance at any point, simply run the following command in the app directory:

docker compose down

Code Organisation

The code in this respository is organised as follows (for simplicity, normally hidden directories and files are not listed here):

  • /app : contains all of the code required for the APA DB app
    • /lib : server-side JavaScript functions that operate directly on and with the MongoDB database
    • /pug : Pug templates for the client-side web interface pages
    • /routes : JavaScript functions that connect the client-side web interface with the server-side functions
    • /scss : static CSS styling, compiled at DB startup
    • /static : various functions that operate within the client-side web interface
      • /css : additional CSS style guides for specific web interface pages
      • /formio : JavaScript code that governs the behaviour and appearance of the various Formio form components used by the web interface
      • /images : images that are used by the web interface
      • /js : non-specific client-side JavaScript functions, as well as external third-party libraries
      • /pages : JavaScript code that governs the behaviour of specific web interface pages (with each file in this subdirectory corresponding to the same-named file in the /pug subdirectory)
    • app.js : the main APA DB app
    • index.js : the 'launch point' for starting, connecting to and stopping the APA DB app
  • /m2m : contains standalone Python code for the machine-to-machine ('M2M') scripts ... please see the dedicated README for full details
  • /okd : files required for deployment of the APA DB on the OKD system at Fermilab

Authors