Documentation Index
Fetch the complete documentation index at: https://mintlify.com/danielpose1996-stack/ruedadeproyectos/llms.txt
Use this file to discover all available pages before exploring further.
Overview
View functions generate HTML strings for different pages and dashboards in RuedaPro UNIPAZ. Each function returns a complete HTML structure that gets injected into the#app-content container.
Public View Functions
renderHomeView()
Renders the home page with hero section, news cards, and results preview. Signature:HTML string containing the home page structure
- Hero Section: Main heading, description, and CTA buttons
- View Results button
- Docente Login button
- Estudiante Login button
- News Section: Three news cards showing event updates
- Results Preview: Link to historical rankings
- Responsive grid layout for news cards
- FontAwesome icons for visual enhancement
- Navigation buttons using
onclick="navigateTo()"
renderGaleriaView()
Renders the project gallery page showing photos from past editions. Signature:HTML string containing the gallery page structure
- Page header with title and description
- Sections grouped by academic period:
- Year 2026 / Semester 1
- Year 2025 / Semester 2
- Year 2025 / Semester 1
- Gallery grid with icon placeholders and captions
.gallery-grid- Grid container for images.gallery-item- Individual image container with caption overlay
renderResultsView()
Renders the historical results page with filtering and ranking display. Signature:HTML string containing the results page structure
loadHistoricalRankings() after a 100ms timeout to populate data.
Features:
- Filter Bar: Dropdowns for year, semester, and category
- Filter Button: Triggers
loadHistoricalRankings() - Results Container:
#results-data-containerfor dynamic content - Initial State: Loading spinner
- Year: 2026, 2025, 2024, 2023
- Semester: 1 (First), 2 (Second)
- Category: Desarrollo, Propuesta, Aplicación
loadHistoricalRankings()- Fetches and displays ranking data
renderLoginView(role)
Renders a role-specific login form. Signature:User role for this login portal: ‘docente’, ‘estudiante’, or ‘admin’
HTML string containing the login form
'docente'→ “Ingreso Docente Evaluador”'estudiante'→ “Ingreso Portal Estudiantes”'admin'→ “Ingreso de Administrador”
- Email input:
#login-email - Password input:
#login-password - Error display:
#login-error - Submit button calls
handleLogin(event, role)
- handleLogin() - Processes login
Dashboard View Functions
renderDocenteDashboard()
Renders the docente (professor/evaluator) dashboard with project assignments. Signature:HTML string containing the docente dashboard
loadDocenteProjects() and docenteShowTab('pendientes') after 100ms.
Layout Components:
-
Sidebar Navigation:
- Asignados / Pendientes tab
- Evaluaciones enviadas tab
- Mi perfil tab
- Cerrar sesión button
-
Header Section:
- Personalized greeting with docente name
- Subtitle
-
Statistics Cards:
- Total Asignados:
#doc-stat-asignados - Pendientes:
#doc-stat-pendientes - Enviados:
#doc-stat-enviados
- Total Asignados:
-
Content Tabs:
- Pendientes Tab (
#doc-tab-pendientes):- Table of projects awaiting evaluation
- “Calificar” button to start evaluation
- Table body:
#docente-pendientes-tbody
- Enviadas Tab (
#doc-tab-enviadas):- Table of completed evaluations
- Shows final scores
- Table body:
#docente-enviadas-tbody
- Perfil Tab (
#doc-tab-perfil):- Avatar display
- Full name
- Role display
- Pendientes Tab (
loadDocenteProjects()- Fetches project assignments from databasedocenteShowTab(tabName)- Switches between tabs
renderEstudianteDashboard()
Renders the student dashboard showing their project evaluations. Signature:HTML string containing the student dashboard
loadEstudianteDashboard() after 100ms.
Features:
- Logout Link: Top-right corner
- Page Title: “Mis Proyectos Asignados”
- Data Container:
#estudiante-data-container - Initial State: Loading spinner
- Loading: Spinner with “Buscando tus datos…”
- No Projects: Empty state message
- Pending Projects: Shows project info with “not yet evaluated” message
- Evaluated Projects: Displays:
- Project name and category
- Period (semester/year)
- Average score (calculated from all evaluators)
- Feedback from each evaluator
loadEstudianteDashboard()- Fetches student’s projects and evaluations
renderAdminDashboard()
Renders the administrator dashboard for managing users and projects. Signature:HTML string containing the admin dashboard
-
Sidebar:
- Session info display
- Gestión de Usuarios tab
- Gestión de Proyectos tab
- Logout button
-
Users Tab (
#admin-tab-users):- Search by name:
#admin-search-users - Filter by role:
#admin-filter-role - “Nuevo Usuario” button
- Users table:
#admin-users-tbody - Edit/Delete buttons per user
- Search by name:
-
Projects Tab (
#admin-tab-projects):- Search by name:
#admin-search-projects - Filter by category:
#admin-filter-cat - “Nuevo Proyecto” button
- Projects table:
#admin-projects-tbody - Delete button per project
- Search by name:
-
Create User Modal (
#create-user-modal):- Name, email, password, role inputs
- Form:
#create-user-form - Submit handler:
handleCreateUser(event)
-
Edit User Modal (
#edit-user-modal):- Update name, email, password, role
- Form:
#edit-user-form - Submit handler:
handleEditUser(event)
-
Delete User Confirm Modal (
#delete-user-confirm-modal):- Confirmation dialog
- Confirm button:
confirmDeleteUser()
-
Create Project Modal (
#create-project-modal):- Project details form
- Assign up to 3 evaluators
- Assign 1 student (optional)
- Submit handler:
handleCreateProject(event)
loadAdminUsers()- Fetches all usersloadAdminProjects()- Fetches all projectsadminShowTab(tab)- Switches between Users/Projects tabsfilterAdminUsers()- Client-side user filteringfilterAdminProjects()- Client-side project filteringshowCreateUserModal()- Opens user creation modalshowCreateProjectModal()- Opens project creation modal
renderEvaluacionView()
Renders the project evaluation form with rubric and timer. Signature:HTML string containing the evaluation interface
- Back Button: Returns to docente dashboard
-
Evaluation Header (
.eval-header):- Project name and details
- Category badge
- Student names
- Evaluator name
- Academic period
- Timer Box:
#eval-timer(15:00 countdown)
-
Rubric Table (
.rubric-table):- 9 evaluation criteria rows
- 4 performance level columns (1.0-2.9, 3.0-3.9, 4.0-4.4, 4.5-5.0)
- Score input column (1-5 range, 0.1 step)
- Each input has class
.rubric-input
- Planteamiento del problema
- Justificación
- Objetivo general
- Objetivos específicos
- Estado del arte / Antecedentes
- Metodología de desarrollo propuesta
- Metodología de investigación propuesta
- Viabilidad del proyecto
- Claridad de la presentación
-
Evaluation Footer (
.eval-footer):- Observations: Textarea for feedback
- Final Score Box:
- Auto-calculated average:
#final-score - “Enviar calificación” button →
showConfirmModal()
- Auto-calculated average:
initEvaluacionLogic(projectId)- Initializes timer and score calculationupdateFinalScore()- Recalculates average on input changeshowConfirmModal()- Shows confirmation before submissionsubmitEvaluation()- Saves evaluation to database
Key Dashboard Functions
loadAdminUsers()
Fetches and displays all users in the admin users table. Signature:- Queries
perfilestable ordered bycreated_atdescending - Caches results in
adminUsersCache - Calls
renderAdminUsersTable(data)to display - Shows error message on failure
#admin-users-tbody
loadDocenteProjects()
Fetches projects assigned to the current docente. Signature:- Queries
proyecto_evaluadorestable with project details - Filters by
evaluador_idmatchingcurrentProfile.id - Separates into pending and submitted evaluations
- Updates statistics counters
- Populates both tables:
#docente-pendientes-tbody#docente-enviadas-tbody
- Pending: No evaluation record exists for current docente
- Submitted: Evaluation record found with final score
loadEstudianteDashboard()
Fetches projects and evaluations for the current student. Signature:- Queries
proyecto_estudianteswith project and evaluation details - Filters by
estudiante_idmatchingcurrentProfile.id - For each project:
- If not evaluated: Shows “pending evaluation” message
- If evaluated: Displays average score and all evaluator feedback
- Calculates average from multiple evaluators
- Shows detailed observations from each evaluator
#estudiante-data-container
HTML Structure Patterns
All view functions return template literal strings:Common Patterns
Cards:CSS Variable Usage
All views use CSS custom properties for theming:--primary-color- Brand primary color--text-primary- Main text color--text-secondary- Secondary text color--bg-base- Page background--bg-surface- Card/panel background--border-color- Border color--status-danger- Error/delete color--status-success- Success color
Security Note
All user-generated content should be escaped using theescapeHTML() utility: