ModuLink è una piattaforma SaaS (Software as a Service) modulare e multi-tenant progettata per la gestione integrata dei processi aziendali. Il sistema permette alle aziende di creare il proprio ambiente di lavoro su misura, installando e configurando solo i moduli necessari per le proprie attività operative.
Important
Stato del Progetto: In seguito alla consegna dell'esame, la demo live è stata disabilitata. Inoltre, è stato rimosso dalla pipeline di CI/CD il passaggio di pubblicazione automatica dell'immagine su Docker Hub.
- Sito Web & Documentazione: roberto-cito.github.io/ModuLink
- Demo Live:
modulink.run.place(Disabilitata - Esame consegnato)
- Caratteristiche Principali
- Architettura Modulare
- Tech Stack
- Struttura del Progetto
- Installazione e Configurazione (Java)
- Deployment con Docker
- Utilizzo e Credenziali
- Modulink Team
- Multi-Tenancy: Gestione sicura di molteplici aziende con isolamento dei dati.
- Onboarding Guidato: Procedura wizard per la registrazione di nuove aziende e del Responsabile.
- Role-Based Access Control (RBAC): Gestione granulare dei permessi tramite ruoli personalizzabili (GDU/GRU).
- Modularità Dinamica: Possibilità di installare/disinstallare funzionalità tramite uno Store interno (GMA).
- Sicurezza: Autenticazione robusta, hashing delle password (BCrypt) e gestione sessioni.
Il sistema è composto dai seguenti moduli funzionali:
| Acronimo | Nome Modulo | Descrizione |
|---|---|---|
| GTM | Gestione Task Manager | Creazione, assegnazione e monitoraggio di task con priorità e scadenze. Supporta assegnazione a singoli utenti o ruoli. |
| GDM | Gestione Magazzino | Inventario prodotti, gestione giacenze, tracciamento prezzi e operazioni di carico/scarico merce. |
| GDE/GCA | Gestione Eventi/Calendario | Calendario aziendale condiviso per la pianificazione di riunioni ed eventi, con gestione dei partecipanti,. |
| Acronimo | Nome Modulo | Descrizione |
|---|---|---|
| GDR | Gestione Responsabile | Gestione della registrazione aziendale e del profilo del responsabile (utente Master). |
| GDU | Gestione Utenti | Amministrazione delle anagrafiche dipendenti, creazione account e gestione accessi. |
| GMA | Gestione Moduli | Accesso allo Store per installare o rimuovere moduli dalla dashboard aziendale. |
| GRU | Gestione Ruoli | Creazione e modifica dei ruoli e dei permessi associati agli utenti. |
- Java 17
- Spring Boot 3 (Web, Security, Data JPA, Validation, Mail)
- Maven (Dependency Management)
- Thymeleaf (Server-side Java Template Engine)
- HTML5 / CSS3 (Custom Stylesheet in
src/main/resources/static/css) - JavaScript (Logica client-side in
src/main/resources/static/javascript) - Bootstrap Icons (Iconografia)
- MySQL 8.0
- FileSystem (Gestione upload loghi e immagini profilo)
La struttura del codice sorgente segue l'architettura dei sottosistemi,,,:
src
└── main
└── java
└── com
└── modulink
├── Controller
│ ├── AdminModules (Manage, News, Support)
│ ├── Dashboard
│ ├── HomePage
│ ├── Login / Register / EditUser
│ └── UserModules
│ ├── GDE (Eventi)
│ ├── GDM (Magazzino)
│ ├── GDR (Responsabile)
│ ├── GDU (Utenti)
│ ├── GMA (Store & Ruoli)
│ ├── GRU (Gestione Ruoli)
│ └── GTM (Task Manager)
├── DatabasePopulator
└── Model
├── Azienda / Utente / Ruolo
├── Modulo / Task / Prodotto / Eventi
└── Relazioni (Assegnazione, Partecipazione, ecc.)
Questa sezione guida alla configurazione manuale dell'ambiente di sviluppo.
Requisiti:
- Java SDK (JDK) 17 o superiore.
- Database MySQL attivo.
- Server SMTP/IMAP/POP per le notifiche mail.
- Apache Maven.
- Git.
Passaggi:
-
Clonare il repository:
git clone https://github.com/roberto-cito/ModuLink
Oppure scaricare lo ZIP dal repository.
-
Compilazione: Posizionarsi nella cartella radice (dove si trova
pom.xml) ed eseguire:mvn clean package
Questo comando scarica le dipendenze e genera il file
.jarnella cartellatarget/,. -
Esecuzione: Avviare il server tramite il comando java, assicurandosi di aver configurato le variabili d'ambiente necessarie (vedi sezione Docker per la lista delle variabili):
java -jar target/modulink-3.6.3-RELEASE.jar
L'applicazione sarà raggiungibile all'indirizzo
http://localhost:80.
Il progetto dispone di una pipeline automatica che pubblica l'immagine su Docker Hub (rc82/modulink).
Docker Run da terminale:
È possibile avviare l'applicazione senza compilare il codice, scaricando l'immagine e passando le variabili d'ambiente per Database e Mail,:
docker pull rc82/modulink
docker run -it --rm \
-e DB_URL="jdbc:mysql://localhost:3306/modulink" \
-e DB_USER="root" \
-e DB_PASS="tua_password" \
-e MAIL="noreply@tuodominio.it" \
-e PASSWORD_MAIL="password_smtp" \
-p 80:8080 \
rc82/modulinkNota: Il database non è incluso nell'immagine e va configurato separatamente o tramite un container dedicato (es. MySQL o PostgreSQL).
Il server genera automaticamente delle aziende di base per il testing e un account amministratore globale (azienda admin).
Credenziali di Default:
| Password | |
|---|---|
| admin@modulink.run.place | Admin1234@ |
- Roberto Cito (RC) - Team Member
- Daniele Carpentieri (DC) - Team Member
- Aleksandre Chikviladze (AC) - Team Member
- Arjel Buzi (AB) - Team Member