2024-05-29 03:05:18 +00:00
|
|
|
# EventMapper
|
|
|
|
|
2024-06-10 18:23:50 +00:00
|
|
|
EventMapper, a lightweight (hopefully), easily-deployable, nearly-static digital mapping application made for mobile in JavaScript.
|
2024-06-08 08:57:38 +00:00
|
|
|
|
|
|
|
## Specifications
|
|
|
|
|
|
|
|
### Data Folder Structure
|
|
|
|
```
|
|
|
|
/events
|
|
|
|
[FLOOR].json
|
|
|
|
/rooms
|
|
|
|
[FLOOR].json
|
|
|
|
floors.json
|
2024-06-10 18:23:50 +00:00
|
|
|
tags.json
|
2024-06-08 08:57:38 +00:00
|
|
|
```
|
|
|
|
|
|
|
|
### Floor
|
|
|
|
Used to represent a floor in a building. It is a parent to both its [Rooms](#room) and [Events](#events).
|
|
|
|
This object gets represented in the app as a map poly, and in a set of buttons among other floors.
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"id": "[FLOOR ID]",
|
|
|
|
"poly": [
|
|
|
|
[x, y], // An array of vertex positions.
|
|
|
|
...
|
|
|
|
],
|
|
|
|
"lang": {
|
|
|
|
"[IETF LANGUAGE TAG]": {
|
|
|
|
"name": "[SHORT SINGLE-LINE STRING]",
|
|
|
|
"description": "[SINGLE-LINE STRING]"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
This will be stored in an array in `floors.json` to be accessed by clients.
|
|
|
|
|
|
|
|
### Room
|
|
|
|
Used to represent a space in which events can happen. It is a child to a [Floor](#floor), and a parent to [Events](#event).
|
|
|
|
This object gets represented in the app as a map poly.
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"id": "[FLOOR]_[ROOM ID]",
|
|
|
|
"poly": [
|
|
|
|
[x, y], // An array of vertex positions.
|
|
|
|
...
|
|
|
|
],
|
2024-06-10 18:23:50 +00:00
|
|
|
"tags": ["[ARRAY", "OF", "TAG", "IDS]"],
|
2024-06-08 08:57:38 +00:00
|
|
|
"lang": {
|
|
|
|
"[IETF LANGUAGE TAG]": {
|
|
|
|
"name": "[SINGLE-LINE STRING]",
|
2024-06-08 16:36:42 +00:00
|
|
|
"shortName": "[INITIALS OF NAME]",
|
2024-06-08 08:57:38 +00:00
|
|
|
"description": "[SINGLE-LINE STRING]"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
This will be stored in an array in `rooms/[FLOOR].json` to be accessed by clients.
|
|
|
|
|
|
|
|
### Event
|
2024-06-10 18:23:50 +00:00
|
|
|
Used to represent a point in time when an activity happens. It is a child to both a [Floor](#floor) and a [Room](#room), reflected in its ID.
|
2024-06-08 08:57:38 +00:00
|
|
|
```json
|
|
|
|
{
|
|
|
|
"id": "[FLOOR]_[ROOM]_[EVENT ID]",
|
|
|
|
"when": {
|
|
|
|
"start": "[ISO 8601 DATE]",
|
|
|
|
"end": "[ISO 8601 DATE]"
|
|
|
|
},
|
2024-06-10 18:23:50 +00:00
|
|
|
"tags": ["[ARRAY", "OF", "TAG", "IDS]"],
|
2024-06-08 08:57:38 +00:00
|
|
|
"lang": {
|
|
|
|
"[IETF LANGUAGE TAG]": {
|
|
|
|
"name": "[SINGLE-LINE STRING]",
|
|
|
|
"description": "[MULTI-LINE STRING]",
|
2024-06-10 18:23:50 +00:00
|
|
|
"host": "[HOST NAME (OPTIONAL)]"
|
2024-06-08 08:57:38 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
2024-06-10 18:23:50 +00:00
|
|
|
This will be stored in an array in `events/[FLOOR].json` to be accessed by clients.
|
|
|
|
|
|
|
|
### Tag
|
|
|
|
Used to represent a tag that can be applied by ID to a Room or Event.
|
|
|
|
This object gets represented in the app as a searchable tag chip.
|
2024-06-10 18:24:29 +00:00
|
|
|
|
2024-06-10 18:23:50 +00:00
|
|
|
`radiogroup` can be used to un-toggle other tags when this one is selected.
|
|
|
|
`show` can be used to hide the tag from search completely.
|
|
|
|
```json
|
|
|
|
{
|
|
|
|
"id": "[FLOOR ID]",
|
|
|
|
"radiogroup": "[GROUP ID]",
|
|
|
|
"show": <boolean>,
|
|
|
|
"lang": {
|
|
|
|
"[IETF LANGUAGE TAG]": {
|
|
|
|
"name": "[SHORT SINGLE-LINE STRING]",
|
|
|
|
"shortName": "[INITIALS OF NAME]",
|
|
|
|
"description": "[SINGLE-LINE STRING]"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
```
|
|
|
|
This will be stored in an array in `tags.json` to be accessed by clients.
|