IsacC2005/EvaluacionAsistida
📝 GestiĂłn de notas y evaluaciĂłn escolar para nivel básico. EVA permite a los docentes gestionar referentes teĂłricos e indicadores de aprendizaje, consumiendo datos de matrĂcula de forma externa. Incluye exportaciĂłn a Excel/Word y procesamiento de tareas en segundo plano (Jobs).
EVA 'EvaluaciĂłn Asistida'
Eva es un sistema de gestion de notas para escuelas de nivel basico en donde lo profesores podran cargar sus proyectos de aprendizaje y cargar sus referentes teoricos con sus indicadores.
Esta version de Eva no gestiona a los profesores, matriculas ni estudiante, ya que esos datos los espera por medio de un API externa.
Indice
Estructura
app/
├── Console/
│ └── Commands/
│ ├── DispatchPendingJobs.php <-- Shedule para la creación de los boletines
│ └── JapecoSync.php <-- Shedula para la syncronización con JAPECO
│
├── Constants/
│ ├──PermissionConstants.php <-- Contantes de permisos
│ ├──RoleConstants.php <-- Contantes de roles
│ └──TDTO.php <-- Contantes de transformaciones de DTO
│
├── DTOs/
│ ├── Details/ <-- DTOs detallados de los modelos
│ ├── Searches/ <-- DTOs para búsquedas
│ └── Summary/ <-- DTOs resumidos de los modelos
│
├── Events/
│
├── Exceptions/ <-- Excepciones personalizadas
│
├── Exports/
│ └── NotesExport.php <-- Clase para exportar notas a Excel
│
├── Factories/
│ └── ***/ <-- Archivos de transformación de datos a DTOs
│
├── Http/
│ ├── Controllers/ <-- Controladores de peticiones Http
│ │ └── ***/
│ ├── Middleware/
│ │ └── ***/
│ └── Requests/ <-- Clases de validación para peticiones Http
│ └── ***/
│
├── Jobs/
│ └── CreateTicketJob.php <-- Job para la creación de boletines
│
├── Models/
│ └── ***/
│
├── Providers/
│ └── ***/
│
├── Repositories/
│ ├── Interfaces/ <-- Interfaces para los repositorios
│ └── ***/ <-- Implementaciones de los repositorios
│
├── Rules/
│ └── ***/ <-- Reglas de validación personalizadas
│
├── Services/
│ └── ***/ <-- Lógica de negocio de la aplicación
│
├── .env <-- Archivo de configuracion
Requisitos
- PHP: VersiĂłn 8.0 o superior.
- Composer: Gestor de dependencias de PHP.
- Node.js: VersiĂłn 16.x o superior.
- npm (viene con Node.js).
- MySQL (o tu base de datos preferida, como PostgreSQL, SQLite, etc.).
- Git: Para clonar el repositorio.
Tecnologias
Frameworks
- Laravel: VersiĂłn
^12.0.0 - Vue.js: VersiĂłn
^3.5.13 - Tailwindcss: VersiĂłn
^3.3.2
Dependencias Vue
- Typescript: VersiĂłn
^5.2.2 - Headlessui: VersiĂłn
^1.7.23 - Pinia: VersiĂłn
^3.0.3 - Inertiajs: VersiĂłn
^5.2.4 - Tsparticles: VersiĂłn
^3.9.1
Dependencias Laravel
- maatwebsite/excel: VersiĂłn
^3.1 - phpoffice/phpword: VersiĂłn
^1.4 - predis/predis: VersiĂłn
^3.2 - spatie/laravel-activitylog: VersiĂłn
^4.10 - spatie/laravel-backup: VersiĂłn
^9.3 - spatie/laravel-permission: VersiĂłn
^6.20
InstalaciĂłn
Sigue estos pasos para poner en marcha el proyecto en tu máquina local:
-
Clona el repositorio:
git clone https://github.com/IsacC2005/EvaluacionAsistida.git cd EvaluacionAsistida -
Instala las dependencias de PHP:
composer install
-
Configura el archivo de entorno (
.env):Copia el archivo de ejemplo
.env.exampley renĂłmbralo a.env:cp .env.example .env
Abre el archivo
.envrecién creado y configura tus credenciales de base de datos y cualquier otra variable de entorno necesaria. Aquà tienes un ejemplo de configuración de base de datos para MySQL:APP_NAME="Eva" APP_ENV=local APP_KEY= APP_DEBUG=true APP_URL=http://localhost:8000 DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=eva_db # Cambia esto por el nombre de tu BD DB_USERNAME=user_db # Cambia esto por tu usuario de BD DB_PASSWORD=password_bd # Cambia esto por tu contraseña de BD JAPECO_URL= "localhost:4000" # Cambia esto por la dirección del API de JAPECO
-
Genera la clave de la aplicaciĂłn Laravel:
php artisan key:generate
-
Ejecuta las migraciones de la base de datos:
Esto creará las tablas necesarias en tu base de datos.
php artisan migrate --seed
-
Instala las dependencias de JavaScript:
npm install
-
Compila los assets de frontend:
-
Para desarrollo (con recarga en caliente - HMR):
npm run dev
-
Para producciĂłn (archivos optimizados):
npm run build
-
EjecuciĂłn del Proyecto
Una vez que hayas completado los pasos de instalaciĂłn, puedes iniciar el servidor de desarrollo de Laravel:
php artisan servePara iniciar el servidor de Vue ejecuta el siguiente comando:
npm run devPara iniciar las colas de procesos ejecuta el siguiente comando:
php artisan queue:work --queue=work,japeco-syncPara correr los shedules ejecuta el siguiente comando:
while($true){
php artisan schedule:run
sleep(60)
}đź”— Documentaciones
A continuaciĂłn se listan los enlaces a la documentaciĂłn oficial de los principales frameworks y librerĂas utilizados en este proyecto, agrupados por su contexto para una fácil referencia.
| CategorĂa | TecnologĂa | Enlace Directo a la DocumentaciĂłn |
|---|---|---|
| Backend / PHP | Laravel | đź”— laravel.com/docs |
maatwebsite/excel |
đź”— docs.laravel-excel.com | |
phpoffice/phpword |
đź”— phpword.readthedocs.io | |
predis/predis |
đź”— predis.github.io/predis/ | |
spatie/laravel-activitylog |
đź”— spatie.be/docs/laravel-activitylog | |
spatie/laravel-backup |
đź”— spatie.be/docs/laravel-backup | |
spatie/laravel-permission |
đź”— spatie.be/docs/laravel-permission | |
| Frontend / JS | Vue.js | đź”— vuejs.org/guide/ |
| Pinia | đź”— pinia.vuejs.org/ | |
| Inertia.js | đź”— inertiajs.com/documentation | |
| TypeScript | đź”— typescriptlang.org/docs/ | |
| Headless UI | đź”— headlessui.com/react/menu | |
| TSParticles | đź”— particles.js.org/docs/ | |
| Estilos | Tailwind CSS | đź”— tailwindcss.com/docs |
