No description
Find a file
2024-06-10 23:48:31 -05:00
assets shhhh, Damn Vercel 2024-06-10 23:16:13 -05:00
pages shhhh, Damn Vercel 2024-06-10 23:16:13 -05:00
scripts Stop trying to Vercel 2024-06-10 23:48:31 -05:00
.gitignore shhhh, Damn Vercel 2024-06-10 23:16:13 -05:00
CONTRIBUTING.md Allcapses 2024-05-28 22:05:18 -05:00
LICENSE Allcapses 2024-05-28 22:05:18 -05:00
nodemon.json I forgot to do rolling commits 2024-06-02 00:39:23 -05:00
package-lock.json do things like "enhance commercial compatibility" 2024-06-10 13:11:54 -05:00
package.json Stop trying to Vercel 2024-06-10 23:48:31 -05:00
README.md weegwwwgee 2024-06-10 13:24:29 -05:00

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.