assets | ||
pages | ||
scripts | ||
.gitignore | ||
CONTRIBUTING.md | ||
LICENSE | ||
nodemon.json | ||
package-lock.json | ||
package.json | ||
README.md |
EventMapper
EventMapper, a lightweight (hopefully), easily-deployable, nearly-static digital mapping application made for mobile in JavaScript.
Specifications
Data Folder Structure
/events
[FLOOR].json
/rooms
[FLOOR].json
floors.json
tags.json
Floor
Used to represent a floor in a building. It is a parent to both its Rooms and Events. This object gets represented in the app as a map poly, and in a set of buttons among other floors.
{
"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, and a parent to Events. This object gets represented in the app as a map poly.
{
"id": "[FLOOR]_[ROOM ID]",
"poly": [
[x, y], // An array of vertex positions.
...
],
"tags": ["[ARRAY", "OF", "TAG", "IDS]"],
"lang": {
"[IETF LANGUAGE TAG]": {
"name": "[SINGLE-LINE STRING]",
"shortName": "[INITIALS OF NAME]",
"description": "[SINGLE-LINE STRING]"
}
}
}
This will be stored in an array in rooms/[FLOOR].json
to be accessed by clients.
Event
Used to represent a point in time when an activity happens. It is a child to both a Floor and a Room, reflected in its ID.
{
"id": "[FLOOR]_[ROOM]_[EVENT ID]",
"when": {
"start": "[ISO 8601 DATE]",
"end": "[ISO 8601 DATE]"
},
"tags": ["[ARRAY", "OF", "TAG", "IDS]"],
"lang": {
"[IETF LANGUAGE TAG]": {
"name": "[SINGLE-LINE STRING]",
"description": "[MULTI-LINE STRING]",
"host": "[HOST NAME (OPTIONAL)]"
}
}
}
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.
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.
{
"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.