Skip to content

Architecture

jacquesd edited this page Dec 6, 2012 · 18 revisions

Architecture of the ASQ app

The ASQ app utilizes websockets to transfer events between connected clients and the server. The basic entitities of the app are:

In the following sections we present the architecture of the basic entities of ASQ

Database Schema

Entities

User

Slideshow

Question

Session

Stats

Implementation Details

WebSockets

Websockets connect immediately once the page is loaded. Admin sockets should be authenticated.

Events

  • viewer : Emitted by a follower when he first joins the presentation.
  • admin : Emitted by an admin when he first joins his presentation.
  • goto : Emitted by an admin when he moves to a slide. Sent to everyone (Everyone should move to the slide.)
  • impress:start : Emitted by an admin when he hides the welcome popup and starts the presentation. Sent to everyone.

Routes

  • /live/:user : Verb: GET Follow a live presentation from user :user.
  • /admin : Verb: GET Control your live presentation.
  • /upload : Verb: POST Upload a presentation archive. (The archive must be located at req.files.upload)

Use absolute path to serve files from the public folder. For example to serve the file style.css in the css folder in public,
the path should be /css/style.css and not css/style.css.

Clone this wiki locally