Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/rtajio/ESEN/llms.txt

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

ESEN stores all data in three in-memory JavaScript arrays: actividades, estudiantes, and USUARIOS. Because the app runs entirely in the browser with no persistence layer, these arrays are re-initialized to their demo values every time the page loads. The following sections document every field of each object, including the types enforced by the application logic and real examples taken directly from the demo data.
Each element of the actividades array represents a single extracurricular activity. New activities are appended by saveActividad() using fields collected from the activity modal form.
body.id
number
required
Auto-incremented integer identifier. The demo dataset occupies IDs 1–6; nextId starts at 7 so that the first user-created activity receives ID 7.
body.nombre
string
required
Human-readable name of the activity, e.g. "Taller de Emprendimiento".
body.cat
string
required
Category. Must be one of the five values recognized by CAT_COLORS:
ValueBadge classDisplay color
Académicobadge-blueBlue
Deportivobadge-tealTeal
Culturalbadge-coralCoral
Voluntariadobadge-greenGreen
Liderazgobadge-amberAmber
body.res
string
required
Resolution number that formally authorizes the activity. Convention: RES-YYYY-NNN (e.g. "RES-2024-001").
body.fecha
string
required
ISO 8601 date string in YYYY-MM-DD format (e.g. "2024-03-15"). Displayed to users as DD/MM/YYYY via formatDate().
body.horas
number
required
Integer number of hours the activity is worth. Used to compute cumulative hours in the dashboard, reports, and student history.
body.desc
string
Optional free-text description. The activities table truncates this to 55 characters for display.
body.participantes
string[]
Array of participant full names (strings). Names must match the nombre field of a estudiantes entry for the student history view to link them correctly. Example: ["Carlos Mamani", "Lucía Torres"].
body.activo
boolean
required
Whether the activity is currently enabled. New activities default to true. Toggle with toggleActivo(id). Only active activities appear in the student-facing public view (renderPub()).
Example — demo activity (id: 1)
{
  "id": 1,
  "nombre": "Taller de Emprendimiento",
  "cat": "Académico",
  "res": "RES-2024-001",
  "fecha": "2024-03-15",
  "horas": 8,
  "desc": "Taller de emprendimiento para estudiantes de ingeniería y administración.",
  "participantes": ["Carlos Mamani", "Lucía Torres", "Pedro Quispe"],
  "activo": true
}
Each element of the estudiantes array represents an enrolled student. The array is read-only in the current UI — there is no form for adding or editing students.
body.nombre
string
required
Full name of the student, e.g. "Carlos Mamani". This value is matched against activity.participantes to compute the student’s activity count and total hours.
body.codigo
string
required
Student code in YYYY-NNNN format (e.g. "2021-0452"). The year component typically reflects the enrollment year.
body.dni
string
required
National identity document number (DNI), stored as a string to preserve leading zeros if present. Example: "72345678".
body.escuela
string
required
Name of the faculty or school the student belongs to, e.g. "Ingeniería de Sistemas".
Example — demo student
{
  "nombre": "Carlos Mamani",
  "codigo": "2021-0452",
  "dni": "72345678",
  "escuela": "Ingeniería de Sistemas"
}
The USUARIOS array holds credentials and role assignments for every account that can log in. It is a constant — no UI exists to add or modify users at runtime.
body.user
string
required
Username used on the login form (e.g. "admin01").
body.pass
string
required
Plain-text password (e.g. "admin123"). ESEN is a demo app with no backend, so no hashing is applied.
body.rol
string
required
Role that controls which navigation and views are shown after login. Must be "admin" or "estudiante".
body.nombre
string
required
Display name shown in the sidebar and used to match the student’s participation history. For student accounts this must match the corresponding estudiantes[].nombre exactly.
Example — both demo users
[
  {
    "user": "admin01",
    "pass": "admin123",
    "rol": "admin",
    "nombre": "Administrador ESEN"
  },
  {
    "user": "est2021",
    "pass": "est123",
    "rol": "estudiante",
    "nombre": "Lucía Torres"
  }
]
All three arrays live in memory only. Refreshing the page restores the original demo data. To add persistence, replace the array literals with localStorage.getItem / localStorage.setItem calls, or wire them to a backend API.

Build docs developers (and LLMs) love