La GUI è stata sviluppata utilizzando Tauri, che combina il backend in Rust con il frontend in React. L'applicazione consente agli utenti di configurare le impostazioni per il backup dei dati, specificando cartelle, file e opzioni personalizzate per il salvataggio su disco in un file settings.json.
Il progetto è organizzato in due principali directory:
src: Contiene i componenti React che gestiscono l'interfaccia utente.src-tauri: Contiene il codice Rust che gestisce la logica di backend, inclusa la manipolazione del file delle impostazioni.
Questa cartella contiene l'applicazione frontend sviluppata con React. La struttura delle sottocartelle è la seguente:
-
components: Contiene i componenti React utilizzati per l'interfaccia utente, quelli principali sono:DarkModeTable.jsx: Componente che permette di inserire i percorsi dei file e delle cartelle da salvare.InfoModal.jsx: Componente per visualizzare informazioni modali.LanguageComponent.jsx: Componente per cambiare la lingua dell'applicazione.MyFormComponent.jsx: Componente per gestire il form di selezione delle preferenze relative alle categorie di file che si desidera includere o escludere dal backup.
-
pages: Contiene le pagine principali dell'applicazione:Homepage.jsx: La homepage dell'applicazione .
-
File principali:
App.jsx: Gestisce la logica dell'applicazione React e le chiamate API verso il backend RUST.main.jsx: Punto di ingresso dell'applicazione React.App.css: Stili CSS per l'applicazione.
Questa cartella contiene la logica backend dell'applicazione scritta in Rust:
main.rs: Contiene tutte le funzioni principali necessarie per gestire le impostazioni, il caricamento e il salvataggio del filesettings.json, e la gestione delle preferenze dell'utente.
L'applicazione offre diverse funzionalità per configurare e gestire i backup:
- Aggiunta di Percorsi e Cartelle: L'utente può aggiungere percorsi di file o cartelle che desidera includere nel backup.
- Gestione delle Preferenze: Selezione delle categorie di file (documenti, codice, immagini, ecc.) da includere o escludere dal backup.
- Salvataggio delle Impostazioni: Le impostazioni dell'utente sono salvate in un file
settings.json. - Supporto Multilingua: L'utente può selezionare la lingua dell'interfaccia (attualmente supporta Inglese e Italiano).
- Reset delle Preferenze: Ripristino delle impostazioni di backup alle condizioni iniziali.
- Gestione Destinazione di Backup: L'utente può specificare e modificare la destinazione del backup.
Le impostazioni dell'applicazione vengono salvate in un file settings.json nella directory principale del progetto. Questo file viene aggiornato automaticamente dalle funzioni backend ogni volta che l'utente modifica le preferenze nell'interfaccia utente.
Il frontend comunica con il backend utilizzando le API Tauri. Le principali funzioni disponibili sono:
get_preferences: Recupera le preferenze salvate.set_preferences: Imposta nuove preferenze per i percorsi specificati.add_path: Aggiunge un nuovo percorso per il backup.remove_path: Rimuove un percorso dalle impostazioni di backup.reset_preferences: Ripristina tutte le preferenze di backup alle impostazioni di default.get_language: Recupera la lingua attualmente selezionata.set_language: Modifica la lingua dell'interfaccia.get_destination: Recupera la destinazione di backup attuale.set_destination: Imposta la destinazione del backup.remove_destination: Rimuove la destinazione del backup.
- Tauri: Framework per creare applicazioni desktop utilizzando tecnologie web (Rust + Webview).
- Rust: Linguaggio di programmazione utilizzato per il backend dell'applicazione.
- React: Libreria JavaScript per costruire interfacce utente.
- Bootstrap: Framework CSS per il design dell'interfaccia utente.
Assicurarsi di avere Rust e Node.js installati nel tuo ambiente di sviluppo. Dopodiché, esegui i seguenti comandi:
# Installazione delle dipendenze del progetto frontend
cd src
npm install
# Installazione delle dipendenze del progetto tauri (backend)
cd ../src-tauri
cargo tauri dev
# Esecuzione
cargo tauri dev