Every subject (materia) in NuestraVoz includes a built-in discussion forum. Forums encourage async communication between students and teachers around specific course content. Threads can be tagged to organise topics, replies can be nested, and any user can like a thread with a single tap. The five most-used tags per subject are automatically surfaced as trending topics in the sidebar.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Renzo717/Aula-Virtual-Universidad-Radiolocucion/llms.txt
Use this file to discover all available pages before exploring further.
Forum Structure
Forums follow a two-level hierarchy: hilos (threads) at the top level and respuestas (replies) underneath each thread. Replies support aparent_id field for nested, threaded discussions.
Hilos (Threads)
Top-level discussion posts. Each hilo belongs to one materia and can carry an array of free-form text tags.
Respuestas (Replies)
Responses to a thread. Set
parent_id to another reply’s UUID to create a nested sub-thread.Threads (Hilos)
Listing Threads
autor profile (nombre, apellido, avatar_url, rol) plus two computed counters:
UUID of the subject whose forum you want to browse.
created_at descending — newest first.
Creating a Thread
Any authenticated user (student, teacher, admin, preceptor) can open a new thread.Thread headline. Minimum 2 characters.
Body of the thread. Minimum 2 characters.
Optional array of free-form tag strings. Used to calculate trending topics.
Editing and Deleting Threads
Only the original author can edit or delete their own thread. The server verifiesautor_id === req.user.id before allowing the operation. No role override exists — admins and teachers cannot edit or delete another user’s thread.
Replies (Respuestas)
Listing Replies
created_at ascending (oldest first), so the conversation reads chronologically. Each reply includes the author’s full profile and a parent_id for threading:
Posting a Reply
Text of the reply. Minimum 1 character.
UUID of another reply to nest this response beneath. Omit for a direct reply to the thread.
Editing and Deleting Replies
Like threads, only the original author can edit or delete their own replies. The server checksautor_id === req.user.id and returns 403 Sin permisos for any other user.
Reactions (Likes)
Any authenticated user can like a thread. The endpoint uses an upsert — calling it a second time for the same user and thread does not create a duplicate reaction.{ hilo_id, user_id }. The reacciones_count on the thread list endpoint reflects the current total.
Reactions are currently limited to a single “like” per user per thread. There is no endpoint to remove a reaction.
Trending Topics
The trending topics sidebar panel is powered by a lightweight tag-frequency query:tags arrays for the given materia, counts each tag’s frequency, sorts descending, and returns the top 5. This data refreshes every time the forum tab is loaded.
Permissions Summary
Who can do what in the forum?
Who can do what in the forum?
| Action | Estudiante | Docente | Admin | Preceptor |
|---|---|---|---|---|
| Read threads and replies | ✅ | ✅ | ✅ | ✅ |
| Create a thread | ✅ | ✅ | ✅ | ✅ |
| Edit / delete own thread | ✅ | ✅ | ✅ | ✅ |
| Edit / delete others’ threads | ❌ | ❌ | ❌ | ❌ |
| Post a reply | ✅ | ✅ | ✅ | ✅ |
| Edit / delete own reply | ✅ | ✅ | ✅ | ✅ |
| Edit / delete others’ replies | ❌ | ❌ | ❌ | ❌ |
| Like a thread | ✅ | ✅ | ✅ | ✅ |
| View trending topics | ✅ | ✅ | ✅ | ✅ |
Forum API Reference
| Method | Path | Description |
|---|---|---|
GET | /api/foro/:materiaId/hilos | List all threads with counts |
POST | /api/foro/:materiaId/hilos | Create a new thread |
PATCH | /api/foro/hilos/:hiloId | Edit own thread |
DELETE | /api/foro/hilos/:hiloId | Delete own thread (cascades replies + reactions) |
GET | /api/foro/hilos/:hiloId/respuestas | List replies for a thread |
POST | /api/foro/hilos/:hiloId/respuestas | Post a reply |
PATCH | /api/foro/respuestas/:respuestaId | Edit own reply |
DELETE | /api/foro/respuestas/:respuestaId | Delete own reply |
POST | /api/foro/hilos/:hiloId/reacciones | Like a thread |
GET | /api/foro/:materiaId/temas | Top-5 trending tags |