Anno scolastico 2023/2024.
Il progetto Universal
è un'applicazione destinata alla gestione degli esami universitari. Fornisce funzionalità per studenti, docenti e la segreteria, con un'interfaccia intuitiva e funzionale per la gestione e consultazione delle informazioni relative agli esami.
Il database per il progetto si trova nella cartella progetto/database
e include i seguenti file:
- Dump del Database: Contiene la struttura e i dati del database.
- Tabelle: Script per la creazione delle tabelle del database.
- Funzioni: Script per la definizione delle funzioni nel database.
- Procedure: Script per la creazione delle procedure.
- Trigger: Script per la configurazione dei trigger.
Le varie interfacce della Web App sono suddivise nelle seguenti sezioni:
Per eseguire l'applicazione Universal
, è necessario avere installato sul proprio dispositivo:
- PostgreSQL (Versione 15.x)
- PHP (Versione 7.x o superiore, con un server web come Apache o Nginx)
- Docker (opzionale, ma consigliato per l'installazione semplificata del database)
Per avviare il progetto in modo rapido e sicuro, è possibile utilizzare Docker per gestire l'ambiente del database PostgreSQL. Questa soluzione garantisce che l'applicazione venga eseguita con la versione corretta di PostgreSQL e che tutte le configurazioni siano predefinite. Non è necessario installare PostgreSQL manualmente sul sistema.
-
Clona questo repository:
git clone https://github.com/comitanigiacomo/Universal.git cd universal
-
Assicurati di avere Docker e Docker Compose installati. Se non hai già Docker, puoi seguire le istruzioni ufficiali di Docker per il tuo sistema operativo:
-
Avvia il database PostgreSQL utilizzando Docker. Nella root del progetto, esegui il comando:
docker-compose up -d
Questo comando avvierà i seguenti servizi:
-
PostgreSQL: il database sarà accessibile sulla porta
5432
della tua macchina locale. -
Le variabili di ambiente configurano l'utente
giacomo
con i seguenti parametri:-
Utente:
giacomo
-
Password:
giacomo
-
Database:
universal
-
Il database sarà configurato automaticamente e pronto per essere utilizzato.
Una volta avviato il container con Docker (docker-compose up -d
), è necessario popolare manualmente il database eseguendo i due script SQL in questo ordine:
- importa la struttura del database (tabelle, funzioni, procedure, trigger):
docker cp database/dump-schema-only.sql <nome_container>:/dump-schema-only.sql
docker exec -it <nome_container> sh
psql -U giacomo -d universal -f /dump-schema-only
- Importa i dati (utenti, esami ecc...):
docker cp database/dump-data-only.sql <nome_container>:/dump-data-only.sql
docker exec -it <nome_container> sh
psql -U giacomo -d universal -f /dump-data-only
Durante l'importazione è bene assicurarsi che:
-
Il container PostgreSQL sia in esecuzione
-
I file
.sql
siano correttamente posizionati nella cartellaprogetto/database
L'applicazione include un utente di tipo Segretario con le seguenti credenziali di accesso:
Email: giacomo.comitani@segretari.universal.it
Password: passwor!
(Nota: questa password è la stessa per tutti gli utenti).
Se si desidera connettersi al database PostgreSQL direttamente, si può utilizzare il client psql
con le seguenti credenziali:
Host: localhost
Porta: 5432
Utente: giacomo
Password: giacomo
Database: universal
E connettersi al database usando il comando:
psql -h localhost -U giacomo -d universal
Se desideri avviare rapidamente la Web App per testarne il funzionamento, è possibile farlo direttamente da Visual Studio Code, grazie all’estensione PHP Server. Ecco i passaggi:
-
Apri Visual Studio Code e posizionati nella cartella
progetto/webapp
. -
Installa l'estensione PHP Server (se non l'hai già installata)
-
Vai nella barra laterale di VS Code → Estensioni (icona quadrata)
-
Cerca PHP Server di brapifra e installala
-
-
Avvia il server locale:
-
Apri il file
login.php
-
In alto a destra apparirà un icona blu -> cliccala
-
Si aprirà automaticamente il browser con la Web App attiva
-
Warning
Assicurati che PHP sia installato sul tuo sistema (in PATH), altrimenti l’estensione non funzionerà correttamente. Inoltre, il container Docker del database deve essere attivo perché la Web App possa funzionare.