Sobre el proyecto

Masarak (مسارك) es una plataforma web árabe con dirección RTL dirigida a estudiantes de secundaria en Yemen, con el objetivo de ayudarlos a explorar sus intereses y comprender las opciones académicas y profesionales disponibles de manera organizada. La plataforma combina una guía de especialidades con una experiencia exploratoria basada en el modelo RIASEC, y luego muestra un resultado interpretativo y recomendaciones vinculadas a las especialidades. Los documentos aclaran explícitamente que la plataforma es una herramienta de orientación y exploración, no una prueba psicológica diagnóstica ni un sustituto de la decisión del estudiante, su familia y los consejeros. El problema que aborda el proyecto es la dificultad de elegir una especialidad universitaria entre los estudiantes de secundaria debido al conocimiento limitado de las especialidades, la falta de claridad sobre sus intereses, la dependencia de impresiones u opiniones de otros, la dificultad para comparar opciones y la escasez de contenido dirigido al contexto local. Los usuarios objetivo son dos grupos: el estudiante que quiere explorar especialidades, conocer sus intereses y obtener recomendaciones e interpretación, y el visitante no registrado que desea conocer la plataforma, navegar por las especialidades y compararlas antes de crear una cuenta. El alcance del MVP incluye: una guía de especialidades académicas fija dentro del proyecto, navegación y comparación de información de especialidades, creación de cuenta, inicio y cierre de sesión, guardado del progreso del estudiante, una evaluación exploratoria de 18 situaciones × 4 opciones, guardado de respuestas durante la evaluación, cálculo de indicadores RIASEC en el servidor, interpretación del resultado en un lenguaje orientativo no diagnóstico, múltiples recomendaciones vinculadas a especialidades, conservación de resultados anteriores, interfaz árabe RTL receptiva y pruebas automatizadas y verificaciones de compilación antes de la fusión. Fuera del alcance del MVP actual: panel de administración, estadísticas administrativas, CRUD para gestionar especialidades desde el sistema, API pública independiente, aplicación móvil independiente, diagnóstico psicológico o medición psicométrica certificada y toma de decisiones obligatoria en nombre del estudiante. Los documentos indican que la presencia de una función en el alcance no implica necesariamente su implementación actual, y el estado de implementación se sigue a través de Issues, Pull Requests y la rama main. Tecnologías adoptadas: Laravel 12 con PHP 8.2+, base de datos MySQL 8.4.x, Eloquent ORM, interfaces Blade, Tailwind CSS, JavaScript/Fetch, autenticación de sesión de Laravel con Cookies y CSRF, herramienta de compilación Vite, Node.js 24.x, Composer 2.x y npm, y pruebas PHPUnit/Laravel Tests. Las decisiones técnicas clave son Laravel Monolith, Blade + Tailwind, JavaScript/Fetch, MySQL 8.4.x, autenticación de sesión, routes/web.php, catálogo de especialidades fijo y procesamiento RIASEC en el servidor. El proyecto menciona explícitamente que no depende en el MVP de React, Vue, SPA, Laravel Breeze, Sanctum, JWT, API Tokens, SQLite o MariaDB. Los datos de especialidades se guardan en un archivo fijo dentro del proyecto: resources/data/specializations.json, y no hay en el MVP actual tablas de base de datos para especialidades, ni panel CRUD, ni panel de gestión de contenido. El repositorio incluye documentación para la gestión del proyecto y el seguimiento del trabajo, como Mini-SRS/Requirements, Project Brief, Team Roles, AI Usage Log, Deliverables Checklist, Technical Decisions, System Architecture, System Workflows y Use Cases, con archivos como AI_Log.md, DELIVERABLES_CHECKLIST.md y la carpeta docs. El método de trabajo se basa en GitHub Issues, ramas, Commits, Pull Requests, Code Review y GitHub Projects, con el flujo: Issue → Branch → Implementation → Commit → Push → Pull Request → Review → Squash Merge → eliminación de la rama. La única rama permanente es main y no se desarrolla directamente en ella. La ejecución requiere Git 2.x, PHP 8.2+, Composer 2.x, Node.js 24.x, npm y MySQL 8.4.x, con scripts listos en Windows: check-environment.bat, setup-database.bat, setup-project.bat, verify-project.bat y start-project.bat. También existe una ruta de ejecución manual mediante composer install, npm ci, php artisan config:clear, migrate, test y npm run build, luego php artisan serve y npm run dev. La aplicación funciona en http://127.0.0.1:8000 con Health Check en /up. Se realizó una prueba real de Clean Clone desde GitHub en un entorno limpio y superó todas las etapas: estructura del repositorio, verificación del entorno, configuración de la base de datos, instalación de Composer y npm, inicialización de Laravel, migraciones, pruebas de Laravel, compilación de Vite, conexión a MySQL, verificación completa y verificación de seguridad de Git. El entorno de prueba mencionado: Laravel 12.69.1, PHP 8.2.12, Composer 2.9.5, Node.js 24.13.1, npm 11.8.0, MySQL 8.4.11 y Git 2.50.1. Las reglas del proyecto incluyen prohibir el Push directo a main, prohibir subir .env, contraseñas, tokens o secretos, rastrear composer.lock y package-lock.json, no usar composer update o npm update durante la configuración normal, no agregar una función fuera del alcance sin un Issue y una decisión clara, y comprender cualquier código generado por IA antes de usarlo y documentar el uso influyente en AI_Log.md. Estado del proyecto: completado hasta ahora la aprobación de la idea y el alcance, la preparación de la documentación básica, la creación del repositorio y la configuración de protección de main, plantillas de Issues y Pull Requests, Labels, GitHub Project con estados Backlog → Ready → In Progress → In Review → Done, cinco Milestones, 15 Issues, GitHub Actions para verificación automática, scripts de entorno, configuración y verificación, y aprobación del Clean Clone. En curso: Batch 3 — Assessment Journey, Batch 4 — Results & Security, Batch 5 — Finalization & Release, cierre de Issues restantes y verificación final. Seguridad: el repositorio no contiene credenciales locales, .env es solo local y está prohibido subirlo, Laravel usa sesiones, cookies, protección CSRF y hash de contraseñas, y no se usan datos administrativos root para la operación diaria de la aplicación.