- 
backend/: Aplicación Laravel 12 con SQLite para el MVP académico-clínico.
- 
public-assets/: assets NobleUI listos para publicarse en Laravel (public/assets).
- 
_template/: demos, documentación y SCSS originales del tema (solo referencia). codex/setup-branches-and-documentation-workflow
- 
docs/: documentación funcional, planeación y guías de colaboración (docs/blueprint.md,docs/branching.md,docs/contributing.md).
- 
docs/: documentación funcional, de planeación y operación (docs/blueprint.md,docs/environments.md). main
- 
preview.html: mock estático para validar estilos sin correr Laravel.
- Laravel 12 con autenticación base pendiente, pero con módulo de Expedientes leyendo datos ficticios desde SQLite.
- Layout NobleUI integrado en Blade y tablas con DataTables + filtros básicos.
- Seeder que genera 80 expedientes de ejemplo (php artisan migrate --seed).
- Entorno local listo con php artisan serve.
- main: rama estable para releases y despliegues a producción.
- develop: base por defecto para Pull Requests y trabajo continuo.
- feature/: ramas derivadas desde developpara nuevas funcionalidades o fixes concretos. Reemplaza<tarea>por el identificador corto de la actividad (por ejemplo,feature/123-formulario-intake).
Antes de abrir un PR, asegúrate de que apunte a develop salvo que se especifique lo contrario.
Configura la protección de ramas directamente en la interfaz de GitHub siguiendo estos lineamientos:
- Ramas protegidas: aplica la política sobre la rama estable de trabajo (developomain, según corresponda).
- Checks obligatorios: marca como requisitos los jobs de CI lint,testybuildpara poder completar el merge.
- Revisión obligatoria: habilita la casilla de “Require a pull request before merging” e impide merges sin al menos una revisión aprobatoria.
- Pushes restringidos: bloquea los force pushy los pushes directos marcando “Restrict who can push to matching branches” o “Do not allow bypassing the above settings”.
- Sin fusiones directas: fuerza que todos los cambios ingresen por Pull Request activando “Allow force pushes” en estado deshabilitado.
Documenta cualquier excepción temporal en el handbook interno y levanta un recordatorio para revertirla una vez atendido el incidente.
- cd backend
- composer install && npm install
- Copiar .env.example→.env(hay uno de referencia en la raíz) y ajustarDB_CONNECTION=sqlite.
- php artisan key:generate
- php artisan migrate --seed
- php artisan storage:link(expone- storage/app/publicen- public/storage)
- Verifica que storage/app/privateexista con permisos restringidos para el proceso de PHP.
- php artisan serve
Nota: configura
FILESYSTEM_DISKyFILESYSTEM_DISK_PRIVATEen.envsegún el entorno. En código, utilizaconfig('filesystems.private_default')para obtener el disco privado activo.
Opcional:
npm run devsi deseas recompilar assets Vite propios. NobleUI ya está publicado enpublic/assets.
- Los modelos de catálogos (CatalogoCarrera,CatalogoTurno,CatalogoTratamientoyCatalogoPadecimiento) exponen el helper::activos()que devuelve la lista ordenada de registros activos cacheada durante una hora (ajustable conCACHE_CATALOGOS_TTL).
- CatalogoControllerinvalida automáticamente la cache al crear, actualizar o desactivar elementos desde el panel de administración. Si realizas cambios fuera de esos flujos recuerda llamar explícitamente a- Model::flushCache()o ejecutar- php artisan cache:clear.
- Evita consultas directas como CatalogoCarrera::where('activo', true)->get()en código nuevo: reutiliza los helpers para mantener los datos sincronizados y reducir lecturas innecesarias.
Sigue estos pasos para replicar los jobs del workflow de GitHub Actions antes de subir cambios:
- cd backend
- Instala Pint de forma global (una sola vez es suficiente): composer global require laravel/pint
- Ejecuta la verificación de estilo: pint --test
- cd backend
- Asegúrate de que exista database/database.sqlite(puedes crearlo contouch database/database.sqlitesi falta).
- Copia .env.examplea.envy genera la llave de la aplicación:cp .env.example .env && php artisan key:generate
- Ejecuta las migraciones (con semillas si es necesario): php artisan migrate --seed
- Lanza la prueba rápida de humo: php artisan test --testsuite=Feature
- Ejecuta el validador de Blade: php artisan blade:validate
- cd backend
- Instala dependencias de Composer si no lo has hecho: composer install
- Si existe package.json, instala dependencias de Node y construye los assets:npm ci && npm run build
- Si no existe package.json, ejecuta un chequeo rápido de rutas:php artisan route:list
También puedes levantar el entorno local con Docker usando SQLite por defecto:
touch backend/database/database.sqlite
cp backend/.env.example backend/.env
docker compose up -d
docker compose exec app composer install
docker compose exec app php artisan key:generate
docker compose exec app php artisan migrate --seedEl servicio queda disponible en http://localhost:8000. Consulta docs/environments.md para conocer los requisitos y la operativa de cada entorno (local, staging y producción).
- Roles/Permisos (Alumno, Docente, Coordinación, Admin).
- Flujo completo de expedientes (secciones, autosave, timeline y cierre).
- Consentimiento informado y control de revisiones.
- Registro de sesiones/atenciones con anexos por expediente.
- Reportes iniciales de estados, alertas y actividad.
Revisa la documentación en docs/ para más detalles: