At the core of the platform is a messaging system that allows users to quickly save and retreive data in the form of messages.
Data are stored as messages called dispatches. These can be simple formatted text or can contain rich data and file attachments.
Trackers define the shape of the data through a data schema defintion. A dispatch can be associated with a tracker and this will enable form features for entry and can change how it displays when retrieved.
Query languages provide a way to access the messages. They can be as simple as
all users, more targed for a specific tracker such as
given tracker [journal] or search by any number of criteria and dates.
Client applications have views that accept queries and render data in a variety of ways.
updatedAt datetime attributes that are stored UTC and displayed using the local timezone. They additionally have a
when date attribute that is set to the local date of the user storing it and always displayed with that local date.
Users are grouped into units called
orgs, short for organization. Orgs can have child orgs and permission is inherited such that users with administrative rights in a parent org are able to add themselves as administrators to child orgs - however they are not added automatically.
Orgs define the user experience and different orgs can have completely different user experiences. All user experience configuration takes place at the org level.
- Users and groups
- Navigation and layout definitions
- Trackers to define how data is entered and accessed
- Scripts that can be run during lifecycle events, when called or on a schedule
- Chat channels
- Programs and program content
Trackers are used to define how data is entered and accessed. It defines the attributes for data being added to the system and along with the query languages drives how data is accessed by users.