Manual FEMPO-2

Gestor d'Aplicacions - Portal de Comunicacions Integrat

Descripció General

FEMPO-2 és una aplicació web moderna basada en Laravel (backend) que gestiona un sistema integral de comunicacions, assistència i resultats d'aprenentatge per a institucions educatives.

Objectiu Principal:
Facilitar la comunicació entre professors, alumnes i empresaris, amb sistemes de seguiment de jornades de pràctiques, resultats d'aprenentatge i gestió de convenis.

Característiques Principals

Sistema de Chat

Converses privades i grupals en temps real entre usuaris del sistema

Gestió de Jornades

Control d'assistència amb horaris d'entrada i sortida, i registre d'activitats

Resultats d'Aprenentatge

Seguiment de RA (Resultats d'Aprenentatge) assolits per alumne

Gestió d'Empreses

Registro i gestió de empreses amb assignació de convenis

Dashboard de Dades

Resum estadístic de jornades, RAs i activitat dels usuaris

Autenticació Segura

Sistema de login amb tokens API (Laravel Sanctum)

Arquitectura General

Diagrama Arquitectònic

Frontend
(HTML/JS)
↔️
Laravel API
(/api/*)
↔️
Database
(MySQL)

Stack Tecnològic

Capa Tecnologia Descripció
Frontend HTML5 + Bootstrap 5 + Vanilla JS Interfície estàtica amb comunicació via API REST
Backend Laravel 11 + PHP 8.2+ Framework MVC amb API RESTful
Autenticació Laravel Sanctum Tokens API per a requests autenticades
Chat Musonza Chat Package Sistema de missatgeria integrat
Base de Dades MySQL / MariaDB Emmagatzematge relacional

Funcionalitats Principals

1. Sistema de Autenticació

Funcionament:
  1. Usuari accedeix a index.html i completa el formulari de login
  2. Frontend envia credencials a POST /api/login
  3. Backend verifica credencials i genera token Sanctum
  4. Token s'emmagatzema en localStorage del navegador
  5. Totes les peticions posteriors utilitzen l'header "Authorization: Bearer {token}"

2. Gestió de Jornades

Procés:
  • El professor/alumne crea una jornada amb data específica
  • Registra hora d'entrada (automàtica a l'actualitat)
  • Al finalitzar, registra hora de sortida
  • Afegeix descripció d'activitats realitzades
  • Pot associar Resultats d'Aprenentatge a la jornada
  • La jornada es desa en la base de dades

3. Sistema de Chat

Tipus de Converses:
  • Privades: Entre dos usuaris específics
  • Grupals: Entre múltiples participants
Funcions:
  • Enviar/Rebre missatges en temps real
  • Llista de participants en cada conversació
  • Historial de missatges persistents
  • Marcar converses com llegides

4. Gestió de RAs (Resultats d'Aprenentatge)

Workflow:
  1. Admin defineix RAs del programa educatiu
  2. Professor assigna RAs a alumnes
  3. Durant les jornades, es registra quin RAs s'ha treballat
  4. Sistema pot generar reportes de RAs assolits per alumne
  5. Dashboar mostra estadístiques de compliment

5. Gestió de Empreses

Dades d'Empresa:
  • Nom i descripció de l'empresa
  • Logo/Imatge representativa
  • Ubicació i dades de contacte
  • Empresari propietari
  • Convenis associats

6. Dashboard Estadístic

Mètriques Disponibles:
  • Total de jornades completades
  • Jornades pendents
  • Usuaris actius recentment
  • RAs assolits per alumne
  • Hores totals treballades

Rols i Permisos

PROFESSOR

Permisos:
  • Veure llista de empreses
  • Crear i gestionar jornades (pròpies)
  • Veure i editar RAs de alumnes assignats
  • Participar en chat privat i grupal
  • Accedir a dashboard personal
  • Veure perfil personal
  • No pot gestionar empreses
  • No pot veure usuaris sense permís

ALUMNE

Permisos:
  • No pot veure llista de empreses
  • Crear i gestionar jornades (pròpies)
  • Veure els seus RAs assignats
  • Participar en chat privat i grupal
  • Accedir a dashboard personal
  • Veure perfil personal
  • No pot crear/editar RAs
  • Accés limitat a dades d'altres alumnes

EMPRESARI

Permisos:
  • Crear i editar les seves empreses
  • Veure llista d'empreses (pròpies i del sector)
  • Gestionar convenis i alumnes en pràctiques
  • Participar en chat privat i grupal
  • Veure jornades dels alumnes en pràctiques
  • Veure perfil personal
  • No pot gestionar RAs
  • No pot accedir a admin panel

ADMIN

Permisos:
  • Accés complet a totes les funcions
  • Gestionar usuaris (crear, editar, eliminar)
  • Gestionar empreses i convenis
  • Accedir a totes les dades del sistema
  • Veure reports i estadístiques
  • Configurar paràmetres del sistema
  • Accés panel d'administració
  • Veure logs i activitat del sistema

Instal·lació i Configuració

Requisits Previs

Passos d'Instal·lació

1. Clonar el repositori

git clone https://github.com/tusuario/fempo-2.git cd fempo-2

2. Instal·lar dependències PHP

composer install

3. Configurar variables d'entorn

cp .env.example .env php artisan key:generate

4. Configurar base de dades en .env

DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=fempo_db DB_USERNAME=root DB_PASSWORD=

5. Executar migracions

php artisan migrate

6. Sembrar dades inicials (opcional)

php artisan db:seed

7. Iniciar el servidor

php artisan serve

L'aplicació estarà disponible en http://localhost:8000

Configuració de CORS (si cal)

Si el frontend i backend estan en dominis diferents, configurar CORS en config/cors.php

Configuració de Sanctum (API Tokens)

# Publicar configuració de Sanctum php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider" # Crear taula de tokens php artisan migrate

Guia d'Ús

Per a Professors

1. Iniciar Sessió

  1. Accedir a http://localhost:8000
  2. Introduir email i contrasenya
  3. Fer clic a "Iniciar sessió"

2. Registrar una Jornada

  1. En el panell principal, fer clic a "Nova Jornada"
  2. Seleccionar la data
  3. El sistema registra automàticament l'hora d'entrada actual
  4. Al finalitzar, fer clic a "Registrar sortida"
  5. Afegir descripció d'activitats
  6. Seleccionar RAs treballats (opcional)
  7. Fer clic a "Guardar Jornada"

3. Gestionar RAs de Alumnes

  1. Fer clic a "Gestió RAs"
  2. Seleccionar un alumne
  3. Fer clic a "Afegir RA" per assignar resultats d'aprenentatge
  4. Seleccionar els RAs de la llista disponible
  5. Fer clic a "Guardar"

4. Accedir a Chat

  1. Fer clic a l'icona de "Chat" al navegador
  2. O accedir a http://localhost:8000/chat.html
  3. Seleccionar una conversació existent o crear una nova
  4. Escribir i enviar missatges

Per a Alumnes

1. Veure Jornades Assignades

  1. En el dashboard, veure secció "Les meves jornades"
  2. Cada jornada mostra data, hores i activitats
  3. Fer clic per veure detalls complerts

2. Veure RAs Personals

  1. Fer clic a "Els meus RAs"
  2. Veure la llista de Resultats d'Aprenentatge assignats
  3. Veure estat de compliment de cada RA

Per a Empresaris

1. Crear una Empresa

  1. Fer clic a "Afegir Empresa"
  2. Omplir dades: nom, descripció, ubicació, telèfon
  3. Pujat logo (opcional)
  4. Fer clic a "Crear Empresa"

2. Gestionar Convenis

  1. Accedir a la empresa des del llistat
  2. Fer clic a "Gestionar Convenis"
  3. Afegir alumnes en pràctiques
  4. Definir períodes de pràctiques

3. Veure Activitat dels Alumnes

  1. Fer clic en un alumne en pràctiques
  2. Veure el llistat de jornades treballades
  3. Accedir a detalls d'activitats realitzades

Per a Admins

1. Accedir al Panel d'Administració

  1. Fer clic a l'icona d'admin (engranatge)
  2. O accedir a http://localhost:8000/admin

2. Gestionar Usuaris

  1. Fer clic a "Usuaris" al menú
  2. Veure llistat de tots els usuaris
  3. Fer clic a "Crear Usuari" per afegir novells
  4. Assignar rol: Professor, Alumne o Empresari
  5. Fer clic a "Guardar"

3. Consultar Reports

  1. Fer clic a "Reports" al menú
  2. Seleccionar interval de dates
  3. Seleccionar mètrica (jornades, RAs, usuaris)
  4. Fer clic a "Generar Report"

Solució de Problemes

Problemes Comuns

Error: "SQLSTATE[HY000]: General error"

Causa: Error en la base de dades Solució:
  1. Verificar que MySQL està en funcionament
  2. Verificar credencials en .env
  3. Executar: php artisan migrate:fresh

Error: "Class not found"

Causa: Dependencies no instal·lades correctament Solució:
composer dump-autoload composer install --no-cache

Error: "Token invalid or expired"

Causa: Token API ha expirat o és invàlid Solució:
  1. Fer logout i login de nou
  2. Netejar localStorage: Premeu F12, Console, localStorage.clear()

Login no funciona

Diagnòstic:
  1. Obrir DevTools (F12) → Network
  2. Intentar login i observar la petició
  3. Verificar response del servidor (error 401, 422, etc.)
  4. Revisar storage/logs/laravel.log per a més detalls

Chat no funciona

Solució:
  1. Verificar que el token és vàlid
  2. Revisar que Musonza Chat package està instal·lat
  3. Executar: composer require musonza/chat
  4. Executar migracions: php artisan migrate

Jornades no es guarden

Diagnòstic:
  1. Verificar que la taula jornades existeix
  2. Revisar permisos de l'usuari
  3. Comprovar que els camps obligatoris estan omplerts
  4. Revisar els logs: tail -f storage/logs/laravel.log

Logs i Debugging

Logs de Laravel:
storage/logs/laravel.log

Veure logs en temps real:
tail -f storage/logs/laravel.log

Resetear la Base de Dades

Això eliminarà TOTES les dades:
php artisan migrate:fresh --seed

Contactar Suport

Per a més ajuda, revisar:
Laravel Documentation
Bootstrap Documentation
Crear issue en GitHub amb detalls del problema