Core components¶
Main¶
The main application is the django framework which loads the three django applications which make up standards lab.
ui
api
processor
The django framework is configured using:
settings/<settings file>urls.pywsgi.pymanage.py
UI¶
The UI application is further separated into two applications depending on responsibility.
The Django UI application is responsible for:
URL routing
Http Requests
Templates
Views
Common data templates’ context
The VueJS application is responsible for:
Interactivity within the web page
Rendering and two way bindings of in-page VueJS templates with data from the API
Sending and receiving data from the API
API¶
The API provides endpoints primarily for the VueJS application. All responses are JSON format.
/api/
project/<project-name>GET: returns project configuration
POST: (
JSON) updates or creates the project configuration (edit mode only)
project/<project-name>/uploadPOST: Upload data to the project. (
FormData)FILErequired propertiesuploadTypevalues"schema"or"data"for the different upload types.
project/<project-name>/download/<file-name>GET: Returns project file. Optional property
attach=truedetermines if the file should be sent to the browser as an attachment or as data. Default not present.
project/<project-name>/processGET: Returns the status(es) and results of any Processor running for specified project
POST: (
JSON) required propertiesactionvalue"start",processNamevalue"<name-of-processor>"
Processor¶
The processor is responsible for starting, defining and communicating with processing jobs. Each processor implements a start function and a monitor function.
When you run Standards Lab using docker-compose, the redis queue data is persisted in the _build/redis-data/ directory.
Utils¶
Utility functions that are common to all of the django applications.