{"id":19594374,"url":"https://github.com/umbertodellamonica/filiera-token","last_synced_at":"2026-04-15T19:39:51.622Z","repository":{"id":227504352,"uuid":"768913312","full_name":"UmbertoDellaMonica/Filiera-Token","owner":"UmbertoDellaMonica","description":"The proposed system focuses on managing the dairy supply chain through a distributed application (DApp) built on blockchain technology. The key actors involved in the supply chain include the Milk Collection and Transformation Center, the Cheese Producer, the Retailer, and the Consumer.","archived":false,"fork":false,"pushed_at":"2024-03-14T07:20:17.000Z","size":10802,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"production","last_synced_at":"2025-11-19T19:24:22.598Z","etag":null,"topics":["besu","blockchain","docker","ethereum","ethereum-blockchain","ethereum-contract","ethereum-token","firefly","flutter","flutter-apps","private-blockchain","qbft-consensus","rest-api","solidity"],"latest_commit_sha":null,"homepage":"https://umbertodellamonica.github.io/Filiera-Token/","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/UmbertoDellaMonica.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-03-08T00:51:02.000Z","updated_at":"2024-09-17T14:22:36.000Z","dependencies_parsed_at":"2024-11-11T08:43:40.583Z","dependency_job_id":"aac638a6-dd9d-4a46-829a-acd0088e5199","html_url":"https://github.com/UmbertoDellaMonica/Filiera-Token","commit_stats":null,"previous_names":["umbertodellamonica/filiera-token"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/UmbertoDellaMonica/Filiera-Token","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbertoDellaMonica%2FFiliera-Token","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbertoDellaMonica%2FFiliera-Token/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbertoDellaMonica%2FFiliera-Token/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbertoDellaMonica%2FFiliera-Token/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/UmbertoDellaMonica","download_url":"https://codeload.github.com/UmbertoDellaMonica/Filiera-Token/tar.gz/refs/heads/production","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/UmbertoDellaMonica%2FFiliera-Token/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31857616,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-15T15:24:51.572Z","status":"ssl_error","status_checked_at":"2026-04-15T15:24:39.138Z","response_time":63,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["besu","blockchain","docker","ethereum","ethereum-blockchain","ethereum-contract","ethereum-token","firefly","flutter","flutter-apps","private-blockchain","qbft-consensus","rest-api","solidity"],"created_at":"2024-11-11T08:43:18.699Z","updated_at":"2026-04-15T19:39:51.579Z","avatar_url":"https://github.com/UmbertoDellaMonica.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Filiera-Token\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"150\" src=\"./docs/filiera-token-logo.png\" style=\"border-radius: 10px;\"\u003e\n\u003c/p\u003e\n\n\n\u003cp align=\"center\" dir=\"auto\"\u003e\n  Un progetto sviluppato per il corso di Sicurezza dei Dati\u003cbr\u003e \n  Università di Salerno.\n\u003c/p\u003e\n\n\nBenvenuti nel progetto FilieraToken!\n\nIl sistema proposto si concentra sulla gestione della filiera lattiero-casearia attraverso un'applicazione distribuita (DApp) basata su tecnologia blockchain. Questa soluzione innovativa, chiamata FilieraToken, mira a garantire la trasparenza, l'efficienza e la tracciabilità lungo l'intera catena di produzione e distribuzione del formaggio.\n\n### Attori della Filiera:\n\n| Ruolo Attore | Descrizione | Immagine |\n| ------------ | ----------- | -------- |\n| Centro di Raccolta e Trasformazione del Latte | Il Centro di Raccolta e Trasformazione del Latte svolge un ruolo cruciale nel processo di produzione. È responsabile della raccolta del latte dalle aziende agricole, della sua trasformazione in formaggio e della distribuzione ai successivi attori della filiera. | \u003cimg src=\"./docs/milk_farm.jpg\" alt=\"Centro di Raccolta\" width=\"200\"/\u003e |\n| Produttore di Formaggio | Il Produttore di Formaggio riceve il latte trasformato dal Centro di Raccolta e Trasformazione del Latte e lo utilizza per creare i prodotti caseari. Utilizzando la tecnologia blockchain, ogni passaggio nella produzione del formaggio viene registrato in modo sicuro e immutabile. | \u003cimg src=\"./docs/cheeseProducer.jpg\" alt=\"Produttore di Formaggio\" width=\"200\"/\u003e |\n| Retailer | Il Retailer è l'ultimo anello della catena di distribuzione prima che il formaggio raggiunga il consumatore finale. Grazie a CheeseChain, il Retailer può garantire ai propri clienti la provenienza e la qualità del formaggio offerto. | \u003cimg src=\"./docs/retailer.jpg\" alt=\"Retailer\" width=\"200\"/\u003e |\n| Consumatore | Il Consumatore rappresenta il destinatario finale del formaggio. Grazie alla tracciabilità garantita dalla tecnologia blockchain, il Consumatore può avere fiducia nell'origine e nella qualità del prodotto che sta acquistando. | \u003cimg src=\"./docs/consumer.jpg\" alt=\"Consumatore\" width=\"200\"/\u003e |\n\n\n### Prodotti:\n\n| Nome del Prodotto | Descrizione | Immagine |\n| ----------------- | ----------- | -------- |\n| CheeseBlock (Blocco di Formaggio) | Il CheeseBlock rappresenta un'unità di formaggio prodotta e distribuita lungo la filiera. Ogni CheeseBlock è unico e identificabile attraverso il suo hash sulla blockchain di CheeseChain. | \u003cimg src=\"./Filiera-Token-FrontEnd/filiera_token_front_end/filiera_token_front_end/assets/cheese_block.png\" alt=\"CheeseBlock\" width=\"200\"/\u003e |\n| CheesePiece (Pezzetto di Formaggio) | Il CheesePiece è una frazione più piccola del formaggio, spesso utilizzata per degustazioni o per la preparazione di piatti specifici. Anche il CheesePiece è tracciabile attraverso la blockchain di CheeseChain. | \u003cimg src=\"./Filiera-Token-FrontEnd/filiera_token_front_end/filiera_token_front_end/assets/cheese_piece.png\" alt=\"CheesePiece\" width=\"200\"/\u003e |\n| MilkBatch (Partita di Latte) | Il MilkBatch è una partita specifica di latte raccolto e trasformato in formaggio. Ogni MilkBatch è registrato sulla blockchain insieme alle informazioni riguardanti la sua origine e il suo percorso nella filiera. | \u003cimg src=\"./Filiera-Token-FrontEnd/filiera_token_front_end/filiera_token_front_end/assets/milk.png\" alt=\"MilkBatch\" width=\"200\"/\u003e |\n\n## Architettura\n\n![Immagine Architettura](./docs/architettura.png)\n\nL'architettura del sistema è composta dalle seguenti componenti e tecnologie:\n\n### Componenti:\n\n| Strumento/Framework | Descrizione                                                                                                                                                                            |\n|----------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Docker               | Docker permette di creare un ambiente virtuale isolato per l'esecuzione di Firefly. Questo fornisce un'infrastruttura modulare e scalabile per la gestione delle applicazioni blockchain. |\n| Firefly              | Firefly rappresenta il nucleo del sistema, fornendo la piattaforma e le funzionalità essenziali per la gestione della filiera lattiero-casearia tramite la tecnologia blockchain.    |\n| Hyperledger Besu     | Hyperledger Besu è un client Ethereum completo che implementa la specifica Ethereum Proof of Authority (PoA). È utilizzato per l'interazione con la blockchain Ethereum e per l'esecuzione dei contratti intelligenti. |\n| Truffle              | Truffle è un framework di sviluppo per la scrittura e la migrazione di smart contract. Fornisce strumenti per lo sviluppo, il testing e la distribuzione di contratti intelligenti su blockchain Ethereum. |\n| HardHat              | Hardhat è un framework di sviluppo per la scrittura e la migrazione di smart contract. Fornisce strumenti per lo sviluppo, il testing e la distribuzione di contratti intelligenti su blockchain Ethereum. |\n\n\n\n### Tecnologie:\n\n| Tecnologia | Descrizione | Immagine |\n| ---------- | ----------- | -------- |\n| Python | Python è il linguaggio di programmazione utilizzato per lo sviluppo di Firefly. Offre flessibilità e facilità di sviluppo per implementare le funzionalità del sistema. \u003csup\u003e[1]\u003c/sup\u003e | \u003cimg src=\"./docs/python.svg\" alt=\"Python\" width=\"100\"/\u003e |\n| Solidity | Solidity è il linguaggio di programmazione utilizzato per lo sviluppo di Hyperledger Besu. È noto per le sue prestazioni elevate e la concorrenza incorporata, rendendolo ideale per applicazioni blockchain. \u003csup\u003e[2]\u003c/sup\u003e | \u003cimg src=\"./docs/solidity.jpg\" alt=\"Solidity\" width=\"100\"/\u003e |\n| Flutter | Flutter è un framework open-source sviluppato da Google per la creazione di app mobili multi-piattaforma. Utilizza il linguaggio di programmazione Dart e offre un'ampia gamma di widget personalizzabili e un sistema di rendering veloce. \u003csup\u003e[3]\u003c/sup\u003e | \u003cimg src=\"./docs/fluttericon.png\" alt=\"Flutter\" width=\"100\"/\u003e |\n| JWT (JSON Web Token) | JWT è uno standard aperto (RFC 7519) che definisce un modo compatto e autonomo per trasmettere informazioni in sicurezza tra due parti come un oggetto JSON. È comunemente utilizzato per autenticare e autorizzare gli utenti in applicazioni web e API RESTful. \u003csup\u003e[4]\u003c/sup\u003e | \u003cimg src=\"./docs/jwt_logo.jpg\" alt=\"JWT\" width=\"100\"/\u003e |\n| Metamask | Metamask è un'estensione del browser che consente agli utenti di gestire facilmente il proprio portafoglio Ethereum e interagire con le DApp (Decentralized Applications) sulla blockchain Ethereum direttamente dal browser. \u003csup\u003e[5]\u003c/sup\u003e | \u003cimg src=\"./docs/metamask.jpg\" alt=\"Metamask\" width=\"100\"/\u003e |\n| Ganache | Ganache è un ambiente di sviluppo personale Ethereum che consente di eseguire test, eseguire debug e realizzare contratti, oltre ad avere una blockchain Ethereum privata per lo sviluppo. \u003csup\u003e[6]\u003c/sup\u003e | \u003cimg src=\"./docs/ganache-logo.png\" alt=\"Ganache\" width=\"100\"/\u003e |\n\n\n### Riferimenti:\n\n\n\n\n![Immagine Architettura](./docs/docker_architecture.png)\n\n\n## Navigazione\n\nGli utenti hanno accesso alle seguenti pagine in base al loro ruolo:\n\n![Immagine Architettura](./docs/navigazione_utente.png)\n\n- **Guest**: L'utente in modalità guest può accedere solo alle pagine di Login e SignUp per registrarsi o accedere al sistema.\n- **MilkHub**: L'utente MilkHub ha accesso alle pagine di Inventory e Setting per gestire i propri dati e le proprie preferenze.\n- **CheeseProducer**: L'utente CheeseProducer ha accesso alle pagine di Shop, Inventory, Setting e Product Buyed per gestire i propri prodotti, visualizzare gli acquisti passati e modificare le impostazioni.\n- **Retailer**: L'utente Retailer ha accesso alle pagine di Shop, Inventory, Setting e Product Buyed per visualizzare e gestire i propri prodotti, nonché per modificare le impostazioni.\n- **Consumer**: L'utente Consumer ha accesso alle pagine di Shop, Product Buyed e Setting per navigare tra i prodotti disponibili, visualizzare gli acquisti passati e modificare le impostazioni del proprio account.\n\n\n### Pagine:\n\n| Nome della Pagina | Descrizione | Immagine |\n| ----------------- | ----------- | -------- |\n| Login | Pagina di accesso per gli utenti registrati. Qui gli utenti possono inserire le proprie credenziali per accedere al sistema. | ![Login](./docs/login.png) |\n| SignUp | Pagina di registrazione per i nuovi utenti. Qui gli utenti possono creare un nuovo account fornendo le informazioni richieste. | ![SignUp](./docs/singup.png) |\n| Shop | Pagina principale del negozio, dove gli utenti possono visualizzare e acquistare i prodotti disponibili. | ![Shop](./docs/acquisto/selezione_acquisto.png) |\n| Product Buyed | Pagina dove gli utenti possono visualizzare i prodotti che hanno acquistato in passato. | ![Product Buyed](./docs/conversione/conversione1.png) |\n| Inventory | Pagina dove gli utenti possono gestire i propri prodotti e metterli in vendita nel negozio. | ![Inventory](./docs/inventory.png) |\n| Setting | Pagina delle impostazioni, dove gli utenti possono visualizzare e modificare le proprie informazioni personali e le preferenze del sistema. | ![Setting](./docs/setting.png) |\n\n## Dapp : \n![Immagine Architettura](./docs/dapp.png)\n\n| Microservizio         | Descrizione                                                                                                                                                           | Immagine                   |\n|-----------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------|\n| MilkHub Microservice  | Il microservizio MilkHub gestisce le operazioni relative alla catena di distribuzione del latte, inclusa la raccolta, la trasformazione e la distribuzione ai clienti. | ![MilkHub](./docs/milkhub_micro.png)           |\n| CheeseProducer Microservice | Il microservizio CheeseProducer gestisce le operazioni relative alla produzione di formaggio, compresa la lavorazione del latte e la creazione di prodotti caseari. | ![CheeseProducer](./docs/cheese_producer_micro.png) |\n| Retailer Microservice | Il microservizio Retailer gestisce le operazioni di vendita al dettaglio, inclusa la gestione degli ordini, la gestione del magazzino e l'interazione con i clienti. | ![Retailer](./docs/retailer_micro.png)         |\n| Consumer Microservice | Il microservizio Consumer gestisce le operazioni relative agli utenti finali che acquistano prodotti, inclusa la visualizzazione dei prodotti disponibili e la gestione degli ordini. | ![Consumer](./docs/consumer_micro.png)         |\n\n\n\n\n\n## UseCase\n\n- Questi risultano essere i principali Use Case sviluppati durante il progetto : \n\n## Acquisto del Prodotto\n\nL'utente una volta selezionato il prodotto e una volta inserita la quantità riceverà una notifica di avvenuta conferma dell'applicazione oppure di errore.\n\n| | | |\n| --- | --- | --- |\n| ![Step 2 - Acquisto del Prodotto](./docs/acquisto/acquisto1.png) | ![Step 2 - Acquisto del Prodotto](./docs/acquisto/acquisto2.png) | ![Step 2 - Acquisto del Prodotto](./docs/acquisto/acquisto3.png) |\n| ![Step 2 - Acquisto del Prodotto](./docs/acquisto/acquisto_api.png) | | |\n\n\n## Conversione del Prodotto\n\nL'utente che avrà completato l'acquisto del prodotto, ha la possibilità di andare nei prodotti acquistati e provare a convertire il prodotto con la stessa modalità di acquisto: inserisce la quantità che vuole convertire e il prezzo con il quale andare a vendere il prodotto.\n\n| | | |\n| --- | --- | --- |\n| ![Step 2 - Conversione del Prodotto](./docs/conversione/conversione2.png) | ![Step 2 - Conversione del Prodotto](./docs/conversione/conversione3.png) | ![Step 2 - Acquisto del Prodotto](./docs/conversione/conversione_fine.png) |\n| ![Step 2 - Conversione del Prodotto](./docs/conversione/conversione_api.png) | | |\n\n\n## Conclusioni\n\n\n![Conclusioni e Sviluppi Futuri](./docs/sviluppi.png)\n\n\n## Author\n- Gerardo Leone\n- Umberto Della Monica\n\n## Tutor\n- Pasquale P. Perillo \n- Pietro Catalano\n- Salvatore Moscariello \n\n## Riferimenti e Citazioni \n\n1. **Docker**: \n   - [Sito Ufficiale](https://www.docker.com/)\n   - [Documentazione](https://docs.docker.com/)\n\n2. **Firefly**: \n   - [Repository GitHub](https://github.com/hyperledger-labs/firefly)\n   - [Documentazione](https://docs.firefly.mikaku.ca/)\n\n3. **Hyperledger Besu**: \n   - [Repository GitHub](https://github.com/hyperledger/besu)\n   - [Documentazione](https://besu.hyperledger.org/en/stable/)\n\n4. **Truffle**: \n   - [Sito Ufficiale](https://www.trufflesuite.com/truffle)\n   - [Documentazione](https://www.trufflesuite.com/docs/truffle/overview)\n\n5. **HardHat**: \n   - [Repository GitHub](https://github.com/nomiclabs/hardhat)\n   - [Documentazione](https://hardhat.org/getting-started/)\n\n6. **Python.org**: \n   - [Python.org](https://www.python.org/)\n\n7. **Solidity Documentation**: \n   - [Solidity Documentation](https://docs.soliditylang.org/en/v0.8.12/)\n\n8. **Flutter Documentation**: \n   - [Flutter Documentation](https://flutter.dev/docs)\n\n9. **JWT.io**: \n   - [JWT.io](https://jwt.io/)\n\n10. **Metamask Documentation**: \n   - [Metamask Documentation](https://metamask.io/)\n\n11. **Truffle Suite - Ganache**: \n   - [Truffle Suite - Ganache](https://www.trufflesuite.com/ganache)\n\n## Altre Risorse:\n\n- **ERC20 - Standard di Token Ethereum**: \n   - [Specifiche ERC20](https://ethereum.org/en/developers/docs/standards/tokens/erc-20/)\n   - [Documentazione](https://eips.ethereum.org/EIPS/eip-20)\n\n## Azienda \n\n[![Logo Azienda](./docs/Logo_LinearIT_h68.png)](https://www.linearit.it/)\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumbertodellamonica%2Ffiliera-token","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fumbertodellamonica%2Ffiliera-token","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fumbertodellamonica%2Ffiliera-token/lists"}