• Nexus – Keeps track of Services and their Resources. Proxies requests between Services.
  • Core – Manages People, Events and Involvement between them.
  • Involvement Services
    • Programme – Manages scheduled event programme via Schedules, Schedule Views, Schedule View Blocks, Venues, Rooms and Programmes
    • LabourManages event volunteers via Job Categories, Signups etc.
    • Signup – The simplest possible type of involvement, a free-of-cost sign up with some extra information. Manages Signups.
    • Commerce – Manages paid-for tickets via OrdersProducts etc.
  • Support Services
    • Badges – Manages Badges and admittance lists
    • External Auth – Synchronizes users and groups to an external service, namely IPA, for consumption by legacy applications
    • Mailings – Used to send mass e-mail Messages on grounds of an Involvement

 

Anatomy of a Service

Resources

A Service declares Resources which are persisted into a database.

Basic REST methods are provided for all Resources:

  • GET /resource (list, search)
  • GET /resource/:id (retrieve)
  • POST /resource (create)
  • PUT /resource/:id (update)
  • DELETE /resource/:id (remove)

Resources are versioned. An attempt to PUT a stale Resource will fail.

Local and remote Resources offer an identical API to the programmer. Under the hood local Resources are persisted directly and remote Resources are käpisteld via REST. (warning) Should all Resources be treated as Remote, and should we delegate talking to the database to the Nexus?

Core

Involvement – Connects a Person to an Entity. Further information about the nature of the Involvement is managed by an Involvement Service.

Involvement Service – Manages the lifespan of an Involvement and provides more information about it.

Entity – An Event or an Organization. Pending better word. Core characteristic is that it may enlist People through Involvements.

Event – An Event takes place in time and possibly place. An Event may enlist People through Involvements.

External Service – A Service that is outside the scope of the System but uses some functionality or information provided by it through the API.

Organization – In old Kompassi terms, think of it as an Event without start or end dates. Can enlist People through Involvements as if it was an Event. Eg. Tracon ry might manage their membership roster as an Organization, with each member being a Person with an Involvement to the Organization.

Person (pl. People) – A natural person, a human being. May or may not be a User.

User – A Person who holds an user account to the System. External Services are not Users even though they may by some tools be modelled as such.

Example

Gary Gopher is working as a security guard in Exemplacon and is a member of the Exemplacon Association. He also gives two lectures in the event: one about GNS and the other about immersion.

  • There is an Event called Exemplacon.
  • There is an Organization called Exemplacon Association.
  • Gary is a Person.
  • Due to his work as a security guard, Gary has an Involvement to the Exemplacon Event. For more information, ask the Labour Involvement Service.
  • Due to his GNS lecture, Gary has another Involvement to the Exemplacon Event. For more information, ask the Programme Involvement Service.
  • Due to his immersion lecture, Gary one more Involvement to the Exemplacon Event. For more information, ask the Programme Involvement Service.
  • Due to his membership, Gary has an Involvement to the Exemplacon Association Organization. For more information, ask the Membership Involvement Service.

 

 

  • No labels