Ahead of next year's expo, I would like to modify the existing code to provide a more general purpose library allowing others to create virtual exhibition spaces, and to allow multiple versions of our own expos to co-exist using the same core codebase.
First thoughts involve making everything more data driven, using the JSON files to describe each of the rooms. The structure would also be more general and allow for some flexibility besides the room name and the types of exhibits to be shown within.
It is currently only possible to show vertical and horizontal posters with a title, name of student, name of supervisor, and a link to the online poster page. Here's what the new configurations could look like:
[
{
"room": {
"name": "Room Name",
"logo": "path/to/room/logo/shown/on/back/wall",
...
},
"exhibits": [
{
"type": "poster",
"url": "/path/to/exhibit/file",
"externalLinkURL": "https://example.com/path/to/external/webpage",
"title": "Exhibit Title",
"description": "Exhibit description\nsupporting new lines",
...
},
...
]
},
...
]
The current rooms are generated from a list of all exhibits and are filtered by supervisor. For this system to become more general purpose, the rooms should be defined in the JSON passed to the renderer.