Skip to main content

High Level Overview

DECSYS is a straight foward client/server web application.

Running a Survey makes sense in a client/server model:

  • The Server is the source of the Survey material, and records the results.
    • The app that is connected to to take a Survey
    • In the real world, the person handing out the Survey papers, and collecting them at the end of the session
  • The clients are each participant
    • They fill out the Survey from their own computer
    • Or from their own seat with their own pen.

DECSYS is a web app for two main reasons:

  • It's desirable to be able to run Surveys online.
  • The Web, and its use of HTTP, is probably the single best understood application of a client/server model in the world.

General Architecture

High Level Overview

DESCSYS consists architecturally of 2 main elements:

  1. The Web Server
  2. Data Storage

Each of these breaks down a little further, and the implementation may differ in different environments, such as between Workshop and Hosted modes. But at its heart, there is always a web accessible service, and a means of data storage.

While the diagram shows these elements as separate, that's really a logical separation for categorisation; they may or may not be physically separated, and their contained areas may or may not also be physically separated (e.g. different data storage locations).

The Web Server

The Web is really DECSYS itself.

It consists technically of 2 applications:

  • A Backend API
  • A Frontend Interface

Data Storage

There are three main types of data that DECSYS stores currently:

  • Surveys
    • Survey configuration data
    • Instances of Surveys
  • Images
    • Image uploads used in Surveys.
      • As binary data rather than text these are likely to want to be stored differently in practice
      • (i.e. not in a database)
  • Participant Event Logs
    • Every event recorded by each participant of a Survey Instance.