Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/Pewiz/ulagos360/llms.txt

Use this file to discover all available pages before exploring further.

All spaces displayed in the ULagos 360° panel — their names, capacities, supervisors, physical locations, and category assignments — are defined statically in src/constants/spaces.js. Editing this single file is all that is needed to add, remove, or reconfigure any space; the Zustand store picks up the changes automatically on next initialization.

Space Type Constants

Each top-level key in SPACES_DATA corresponds to one of the values in SPACE_TYPES. Use these constants whenever you need to reference a category in code to avoid raw string typos.
src/constants/spaces.js
export const SPACE_TYPES = {
  BIENVENIDA: "bienvenida",
  COFFEE: "coffee",
  CAMPUS_TOUR: "campus_tour",
  TALLERES: "talleres",
  TOURS_EN_CURSO: "tours_en_curso",
};

Space Status Constants

SPACE_STATUS lists every lifecycle value a space can hold at runtime. These values are written by the Zustand store and broadcast over WebSocket — they are not set in SPACES_DATA unless you want to override the default initial state.
src/constants/spaces.js
export const SPACE_STATUS = {
  DISPONIBLE: "disponible",
  OCUPADO: "ocupado",
  RESERVADO: "reservado",
  EN_CAMINO: "en_camino",
  MANTENIMIENTO: "mantenimiento",
  EN_CURSO: "en_curso",
  TERMINADO: "terminado",
};

Space Object Fields

Each entry in a SPACES_DATA array accepts the following fields. Only id and name are required for every category; the remaining fields are category-specific.
id
string
required
Unique identifier for the space. Used as the key in the Zustand spaces map and in all WebSocket spaceId payloads. Must be unique across all categories, not just within one.
name
string
required
Human-readable display name shown on the space card in the panel.
capacity
number
Maximum occupant count. Displayed on the card for informational purposes only — it does not enforce any limit in the app logic.
supervisor
string
Talleres only. Name of the tutor responsible for the workshop. Shown on the space card next to the room badge.
location
string
Talleres only. Room or building where the taller takes place. Rendered as a blue badge on the space card.
establishment
string
Tours en Curso only. Name of the school or institution the tour group originates from. Shown on the tour card as contextual metadata.

Adding a Space

1

Open the constants file

Open src/constants/spaces.js in your editor.
2

Find the target category array

Locate the array for the category you want to extend inside SPACES_DATA. For example, to add a taller, find the [SPACE_TYPES.TALLERES] array.
3

Append a new object

Add a new entry with at least id and name. Include any category-specific fields that apply.
4

Example — adding a new taller

{ id: "nuevo-taller", name: "Nuevo Taller", location: "Sala 108", supervisor: "Nombre Tutor" }
5

Restart or reinitialize the app

On next app startup, initializeSpaces() in src/stores/spacesStore.js will detect that no persisted state exists for this new id and add it to the store with status: "disponible" automatically.

Removing a Space

Delete the entry object from its array in SPACES_DATA. The space will no longer appear after the store is re-initialized.
If a browser already has a spaces-storage key in localStorage from a previous session that included the removed space, the app will keep serving the cached version until storage is cleared. After removing a space, clear localStorage (or ask tutors to do so) to force a fresh initialization from the updated SPACES_DATA.

Changing a Space’s Initial Status

By default, initializeSpaces() assigns status: "disponible" to every new space. To override this, add an explicit status field to the entry in SPACES_DATA. This is useful for marking spaces that are out of service before the event begins.
{ id: "sala-cerrada", name: "Sala Cerrada", status: "mantenimiento" }
The status override only takes effect during the very first initialization (i.e., when there is no existing spaces-storage in localStorage). After initialization, all status changes are managed at runtime through the UI and WebSocket events.

Complete Talleres Entry Example

The following is a real entry from SPACES_DATA showing all fields available for the Talleres category:
{ id: "ing-civil-informatica", name: "Ing Civil informática", location: "Tic 2", supervisor: "Triana - David" }
  • id — stable key used in WebSocket payloads and the Zustand store
  • name — displayed as the card title in the Talleres grid
  • location — rendered as a blue room badge on the card
  • supervisor — tutor name shown below the room badge

Complete Tours en Curso Entry Example

The following is a real entry from SPACES_DATA showing all fields available for the Tours en Curso category:
{ id: "tour-tutor-1", name: "Campus Tour - Scarleth", establishment: "Liceo Industrial" }
  • id — stable key used in WebSocket payloads and the Zustand store
  • name — displayed as the card title in the Tours en Curso grid
  • establishment — school or institution the tour group originates from, shown as contextual metadata on the card

Build docs developers (and LLMs) love