Skip to content

giuse27/MakerManager-Client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

130 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MakerManager

Stars Latest Release License
GitHub User

Progetto "MakerManager" di Giuseppe Vaglica per il corso di Programmazione Avanzata (prof. Vecchio, Vallati, A.A. 2025/2026), discusso in data 17/07/2026 e valutato 29/30.

Introduzione

Il progetto MakerManager è un'applicazione distribuita realizzata in Java che permette ad hobbisti e professionisti (maker) di gestire in modo efficiente il proprio inventario hardware e la pianificazione dei progetti. Il sistema si compone di un'interfaccia grafica realizzata in JavaFX e di un servizio backend autonomo (Spring Boot) che gestisce la logica di business e la persistenza dei dati su MySQL.

L'obiettivo principale è mettere in correlazione i componenti posseduti dall'utente (es. sensori, microcontrollori, filamenti 3D) con i requisiti dei progetti presenti in catalogo, così da suggerire all'utente quali progetti può realizzare subito e quali richiedono ancora pochi acquisti.

(ritorna all'inizio)

Sviluppo del software

[!warning] ATTENZIONE
Lo sviluppo di questo progetto è stato diviso in due repository per esigenze legate alla consegna del progetto:

Nonostante le due repository siano separate tutta la documentazione è contenuta qua dentro e fa riferimento al software MakerManager nel suo complesso. Pertanto, è possibile fare affidamento al solo contenuto di questa repository.

Anche le versioni presenti nelle due repo sono coerenti

(ritorna all'inizio)

Changelog

Puoi consultare il changelog per i dettagli delle varie versioni di questo progetto nel file CHANGELOG.md.

(ritorna all'inizio)

Roadmap

Note

La roadmap elenca le funzioni già realizzate e da realizzare del progetto. Non dà dettagli implementativi ma serve solo per tenere traccia del quadro generale del progetto.

  • Client
    • Creazione e setup del progetto MakerManager-Client
    • Architettura base
      • Interfaccia minimale per testare gli endpoint del server
      • Tutti gli endpoint creati lato server possono essere testati
  • Server
    • Creazione e setup del progetto MakerManager-Server
      • Configurazione della connessione MySQL in application.properties
    • Architettura base
      • /inizializza
      • /api/catalogo...
        • Visualizza elementi in catalogo
        • Aggiungi un elemento al catalogo
        • Elimina un elemento dal catalogo a partire dal suo id
      • /api/inventario...
        • Visualizza tutti gli inventari
        • Visualizza il contenuto di un inventario
        • Visualizza gli inventari di un utente
        • Crea un nuovo inventario
        • Elimina un inventario a partire dal suo id
        • Aggiungi un articolo a un inventario
        • Elimina un articolo dall'inventario a partire dal suo id
      • /api/progetti...
        • Visualizza tutti i progetti
        • Visualizza un progetto a partire dal suo id
        • Visualizza i progetti di una tipologia
        • Crea un nuovo progetto
        • Elimina un progetto a partire dal suo id
        • Aggiungi una riga alla BOM di un progetto
        • Elimina una riga dalla BOM di un progetto a partire dal suo id

Raggiungimento di v0.0.0 (architettura base di MakerManager)


  • Client
    • Implementazione di una GUI funzionale
      • Registrazione/login dell'utente
      • Dashboard utente
        • L'utente può visualizzare e gestire i suoi progetti
        • L'utente può visualizzare e gestire i suoi inventari
          • L'utente può creare un nuovo articolo in inventario selezionando un elemento catalogo già esistente o in alternativa può crearne uno nuovo
      • Dashboard globale
        • L'utente può visualizzare i progetti nel catalogo globale
        • L'utente può aprire un progetto per visualizzarne le caratteristiche
  • Server
    • Utente
      • Registrazione con nickname email e password
        • Sistema con token di autorizzazione (JWT)
      • Autenticazione e permessi sugli endpoint
    • Sistema multi ruolo (utente e admin)
    • Endpoint avanzati per la modifica di entità già esistenti
      • Catalogo
        • È possibile modificare un elemento in catalogo (*)
      • Progetti
        • È possibile modificare un progetto (**)
        • È possibile modificare la quantità di un elemento della BOM
      • Inventario
        • È possibile modificare un inventario (**)
        • È possibile modificare il contenuto di un inventario
    • Logica di business
      • Progetti consigliati sulla base delle proprie risorse

  • (*) ci penserò in futuro per il momento è una funzione che potrebbe riguardare sogli gli admin e per il momento non mi interessa
  • (**) priorità minore, non so se voglio implementarlo al momento. Comporterebbe un'uleriore schermata nella GUI già abbastanza pesante. Rimane comunque possibile eliminare un oggetto e ricrearlo se si vogliono modificare campi come nome e descrizione.

Raggiungimento di v1.0.0 (prima versione demo di MakerManager)


  • Funzioni future
    • Tracciamento reale del progresso di un progetto
    • Interazione con altri utenti
    • Interfaccia di prototipazione
      • Diario personale
      • Funzionalità basate sulla logica economica
        • Ricerca di progetti tramite budget personale
    • Possibilità di rendere i progetti privati o pubblici

Raggiungimento di v2.0.0 (prima versione completa di MakerManager)


(ritorna all'inizio)

Manuali

Prerequisiti

  • Java 21 o superiore.
  • MySQL 8.0 o superiore, in ascolto su 127.0.0.1:3306 con credenziali root / root.
  • Maven (per la gestione delle dipendenze).
  • JavaFX Runtime (incluso nelle dipendenze Maven).

NOTA BENE: il database viene creato automaticamente all'avvio.

(ritorna all'inizio)

Installazione

Warning

Le due repository sono versionate in modo coerente: scarica sempre la release del Server corrispondente a quella del Client (in questo momento v1.0.0).

L'indirizzo del Server è centralizzato in un'unica costante, AppConfig.BASE_URL: se il Server gira su un'altra macchina o su un'altra porta è sufficiente modificare quella riga.

  1. Avvia il Server (repository MakerManager-Server):

Scarica il codice sorgente della repository e da NetBeans importa il progetto e avvialo.

Il server resta in ascolto su http://localhost:8080. Al primo avvio viene creato automaticamente il database e l'utente ADMIN di default, con le credenziali definite in src/main/resources/application.properties:

sadmin.default.nickname=giuse27
admin.default.email=giuse27@makermanager.com
admin.default.password=LOUVRE2014
  1. Avvia il Client (questa repository):

Scarica il codice sorgente della repository e da NetBeans importa il progetto e avvialo.

  1. Primo avvio e inizializzazione:

All'avvio del Client compare la schermata di autenticazione: registra un nuovo utente oppure accedi con le credenziali dell'ADMIN di default.

Su un database vuoto non c'è nulla da vedere: accedi come ADMIN, apri il pannello Database e premi Inizializza. Il Server cancella l'eventuale contenuto pregresso (tranne l'ADMIN di default) e ricarica catalogo, utenti, inventari e progetti dal file src/main/resources/data/inizializzazione.json (server).

È possibile proseguire sia dall'account admin sia rientarre con un utente di test tra quelli caricati dal JSON:

  "utenti": [
    { 
      "nickname": "pippo", 
      "email": "pippo@test.com", 
      "password": "LOUVRE2014" 
    },
    { 
      "nickname": "maria", 
      "email": "maria@test.com", 
      "password": "LOUVRE2014" 
    },
    { 
      "nickname": "peppe", 
      "email": "peppe@test.com", 
      "password": "LOUVRE2014" 
    },
    { 
      "nickname": "andrea", 
      "email": "andrea@test.com", 
      "password": "LOUVRE2014" 
    }
  ]

Aprendo la Dashboard MakerManager mostrerà i progetti consigliati in base a ciò che quell'utente possiede in inventario (l'admin a inizializzazione non possiede nulla).

(ritorna all'inizio)

Altri manuali

Documento Contenuto
docs/endpoint.md Manuale completo di tutti gli endpoint esposti dal Server, con permessi ed esempi curl.
documentazione PDF Documento di progetto: caso d'uso, struttura, scelte progettuali, test, sviluppi futuri.
docs/diagrams/diagrammi.md Diagrammi Mermaid: dominio del Server, architettura del Client, casi d'uso.
CHANGELOG.md Storico delle versioni di Client e Server.

(ritorna all'inizio)

Funzionalità del software

Descrizione di MakerManager

MakerManager è un software per hobbisti e professionisti che nasce dall'esigenza di avere un sistema semplice per tenere sotto controllo o creare nuovi progetti. Le funzioni di base sono:

  • Gestione dell'inventario: è possibile creare uno o più inventari di componenti, materiali, strumenti da lavoro e risorse digitali, tenendo traccia delle quantità e delle tipologie.

  • Catalogo condiviso: il catalogo elementi definisce i "modelli teorici" (es. Arduino Nano), mentre il catalogo progetti raccoglie i progetti pubblicati dagli utenti, ciascuno con la propria distinta base (B.O.M. -> Bill of Materials).

  • Progetti consigliati: il sistema mette in relazione i due punti precedenti e suggerisce all'utente i progetti che può realizzare subito con ciò che possiede, oppure quelli per cui gli mancano pochi elementi (soglia configurabile).

(ritorna all'inizio)

Casi d'uso

I singoli casi d'uso sono meglio descritti nella documentazione pdf del progetto o nel file in documentazione PDF.

(ritorna all'inizio)

Esempi di utilizzo

Gli esempi di utilizzo del software sono presenti nella documentazione pdf del progetto o nel file in documentazione PDF.

(ritorna all'inizio)

Informazioni generali

Autore

Questo progetto è stato ideato e sviluppato interamente da:

(ritorna all'inizio)

Contatti

Se hai domande sul progetto, suggerimenti o segnalazioni, puoi trovarmi qui:

Email
Telegram Instagram

(ritorna all'inizio)

Licenza

Puoi consultare la licenza di questo progetto nel file LICENSE.

(ritorna all'inizio)

Informazioni sull'utilizzo dell'AI

Dai un'occhiata al documento AI.md.

(ritorna all'inizio)

Supporta il progetto

Se questo strumento ti è stato utile, ti ha fatto risparmiare tempo o semplicemente ti piace, considera di lasciarmi una ⭐️ su GitHub.

È un piccolo gesto gratuito che mi aiuta tantissimo a mantenere il progetto attivo e visibile!

(ritorna all'inizio)

About

Client JavaFX per MakerManager, un gestionale progettato per maker e creativi. Permette di organizzare l'inventario dei componenti, pubblicare progetti maker e pianificare le prossime attività.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages