Áleran Vocals
Piano, entrenamiento con micrófono y juegos de oído para alumnos de canto: notas, escalas, afinación, rango vocal, resistencia e intervalos.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證製作者的介紹僅有上面的一句話。 更多詳情請閱讀儲存庫 README。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗Aplicación web para registrar y hacer seguimiento a trámites académicos de excepción (homologaciones, cancelaciones extemporáneas, supletorios, reingresos, solicitudes a comités). El estudiante registra su solicitud y consulta su avance; un asesor la toma y la gestiona, el administrador supervisa a los asesores, y cada cambio de estado queda en el historial. n8n envía los avisos y convierte en casos las solicitudes que llegan por correo.
Proyecto del curso Sistemas Empresariales (UPB).
| Carpeta | Propósito |
|---|---|
web/ | Frontend (Next.js + React), desplegado en Vercel. |
supabase/ | Base de datos: migraciones SQL, políticas RLS, storage, datos de prueba y plantillas de correo de autenticación. |
n8n/ | Flujos de n8n exportados en JSON, un archivo por flujo. |
infra/ | Configuración del servidor en Azure: docker-compose.yml, Caddyfile y plantilla de variables de entorno. |
docs/ | Propuesta, plan, diagramas y evidencias del proyecto. |
Cada carpeta tiene su propio README con más detalle.
| Rol | Entra a | Puede |
|---|---|---|
| Estudiante | /mis-solicitudes | Registrar solicitudes, seguir las suyas y retirar una pendiente. Cada solicitud nueva queda a cargo del asesor con menos solicitudes abiertas. |
| Asesor | /gestion | Ver todas las solicitudes, gestionar las que tiene asignadas (estado, observación, tipo) y tomar una sin responsable (las que el admin libera o las que llegan cuando no hay asesores). |
| Administrador | /admin | Todo lo del asesor sobre cualquier caso, más: reasignar o liberar casos, reabrir uno finalizado o rechazado, ver la carga de cada asesor y las métricas, y dar o quitar el rol de asesor (/admin/usuarios). |
Las reglas viven en la base de datos (RLS y los triggers asignar_responsable y validar_cambio_solicitud), no en la interfaz: la asignación automática vale igual para la web y para los correos que convierte F4; dos asesores que toman el mismo caso a la vez compiten por el bloqueo de la fila y solo uno lo obtiene. El rol de administrador solo se asigna por SQL. supabase/snippets/prueba-roles.sql comprueba estas reglas contra la base local.
| Componente | Herramienta |
|---|---|
| Frontend | Next.js (React) en Vercel |
| Base de datos, autenticación y archivos | Supabase |
| Automatización | n8n Community Edition en una VM de Azure |
| HTTPS del servidor | Caddy |
git clone https://github.com/jeliasdiaz/SE_Proyecto.git
cd SE_Proyecto
Frontend:
cd web
cp .env.example .env.local # completar con la URL y la llave publishable de Supabase
npm install
npm run dev
Supabase local (requiere Docker), desde la raíz del repositorio:
npx supabase start
.env.example, sin valores reales.service_role / sb_secret_...) nunca va en el frontend; solo la usa n8n.José Díaz · Edwin Vélez · Miguel Moreno · Abel García · Santiago Martínez