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.
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)
(HTML/JS)
↔️
Laravel API
(/api/*)
(/api/*)
↔️
Database
(MySQL)
(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:
- Usuari accedeix a index.html i completa el formulari de login
- Frontend envia credencials a POST /api/login
- Backend verifica credencials i genera token Sanctum
- Token s'emmagatzema en localStorage del navegador
- 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
- 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:
- Admin defineix RAs del programa educatiu
- Professor assigna RAs a alumnes
- Durant les jornades, es registra quin RAs s'ha treballat
- Sistema pot generar reportes de RAs assolits per alumne
- 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
- 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
- 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
- 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
- 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
- PHP 8.2 o superior
- Composer
- MySQL 8.0+ o MariaDB 10.5+
- Node.js (opcional, per a compilació d'assets)
- Git
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ó
- Accedir a
http://localhost:8000 - Introduir email i contrasenya
- Fer clic a "Iniciar sessió"
2. Registrar una Jornada
- En el panell principal, fer clic a "Nova Jornada"
- Seleccionar la data
- El sistema registra automàticament l'hora d'entrada actual
- Al finalitzar, fer clic a "Registrar sortida"
- Afegir descripció d'activitats
- Seleccionar RAs treballats (opcional)
- Fer clic a "Guardar Jornada"
3. Gestionar RAs de Alumnes
- Fer clic a "Gestió RAs"
- Seleccionar un alumne
- Fer clic a "Afegir RA" per assignar resultats d'aprenentatge
- Seleccionar els RAs de la llista disponible
- Fer clic a "Guardar"
4. Accedir a Chat
- Fer clic a l'icona de "Chat" al navegador
- O accedir a
http://localhost:8000/chat.html - Seleccionar una conversació existent o crear una nova
- Escribir i enviar missatges
Per a Alumnes
1. Veure Jornades Assignades
- En el dashboard, veure secció "Les meves jornades"
- Cada jornada mostra data, hores i activitats
- Fer clic per veure detalls complerts
2. Veure RAs Personals
- Fer clic a "Els meus RAs"
- Veure la llista de Resultats d'Aprenentatge assignats
- Veure estat de compliment de cada RA
Per a Empresaris
1. Crear una Empresa
- Fer clic a "Afegir Empresa"
- Omplir dades: nom, descripció, ubicació, telèfon
- Pujat logo (opcional)
- Fer clic a "Crear Empresa"
2. Gestionar Convenis
- Accedir a la empresa des del llistat
- Fer clic a "Gestionar Convenis"
- Afegir alumnes en pràctiques
- Definir períodes de pràctiques
3. Veure Activitat dels Alumnes
- Fer clic en un alumne en pràctiques
- Veure el llistat de jornades treballades
- Accedir a detalls d'activitats realitzades
Per a Admins
1. Accedir al Panel d'Administració
- Fer clic a l'icona d'admin (engranatge)
- O accedir a
http://localhost:8000/admin
2. Gestionar Usuaris
- Fer clic a "Usuaris" al menú
- Veure llistat de tots els usuaris
- Fer clic a "Crear Usuari" per afegir novells
- Assignar rol: Professor, Alumne o Empresari
- Fer clic a "Guardar"
3. Consultar Reports
- Fer clic a "Reports" al menú
- Seleccionar interval de dates
- Seleccionar mètrica (jornades, RAs, usuaris)
- Fer clic a "Generar Report"
Solució de Problemes
Problemes Comuns
Error: "SQLSTATE[HY000]: General error"
Causa: Error en la base de dades
Solució:
- Verificar que MySQL està en funcionament
- Verificar credencials en .env
- 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ó:
- Fer logout i login de nou
- Netejar localStorage: Premeu F12, Console, localStorage.clear()
Login no funciona
Diagnòstic:
- Obrir DevTools (F12) → Network
- Intentar login i observar la petició
- Verificar response del servidor (error 401, 422, etc.)
- Revisar storage/logs/laravel.log per a més detalls
Chat no funciona
Solució:
- Verificar que el token és vàlid
- Revisar que Musonza Chat package està instal·lat
- Executar: composer require musonza/chat
- Executar migracions: php artisan migrate
Jornades no es guarden
Diagnòstic:
- Verificar que la taula jornades existeix
- Revisar permisos de l'usuari
- Comprovar que els camps obligatoris estan omplerts
- 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
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
Laravel Documentation
Bootstrap Documentation
Crear issue en GitHub amb detalls del problema