Un'applicazione desktop moderna e sicura per la gestione di database SQLite con crittografia integrata.
- 🔐 Crittografia integrata: Database crittografati con Fernet (AES-128)
- 🛡️ Autenticazione: Protezione con password (PBKDF2-SHA256)
- 🎨 Tema moderno: Interfaccia elegante con temi scuri e chiari
- 📊 Gestione completa: Crea, modifica, elimina tabelle e record
- 📎 Allegati: Supporto per file allegati ai record
- ↩️ Undo/Redo: Sistema di undo/redo per le operazioni
- 📱 Cross-platform: Compatibile con Windows, macOS e Linux
- Python 3.8+
- PyQt6
- cryptography
- Pillow
- Clonare il repository:
git clone https://github.com/yourusername/DatabasePro.git
cd DatabasePro- Creare un ambiente virtuale:
python -m venv venv- Attivare l'ambiente virtuale:
Windows:
venv\Scripts\activatemacOS/Linux:
source venv/bin/activate- Installare le dipendenze:
pip install -r requirements.txtAvviare l'applicazione:
python app.py- Username: Non richiesto
- Password predefinita:
Admin - Azione consigliata: Cambiare la password immediatamente
Dalla interfaccia puoi:
- Creare nuove tabelle con colonne personalizzate
- Aggiungere, modificare e eliminare record
- Allegare file ai record
- Proteggere il database con una password
I seguenti file NON devono essere mai condivisi o pubblicati:
auth.json- Credenziali di autenticazionedb_key.key- Chiave di crittografia del databasedatabase_avanzato.db.enc- Database crittografato con dati sensibili
Questi file sono automaticamente aggiunti a .gitignore.
- Crittografia del database: Fernet (AES-128 simmetrica)
- Hashing della password: PBKDF2-SHA256 con 200.000 iterazioni
- Permessi file: File sensibili con permessi ristretti (0o600)
- File nascosti: Su Windows, file sensibili sono nascosti
- Scrittura atomica: Operazioni JSON atomiche per evitare corruzione
Per creare un eseguibile standalone:
python build_exe.pyL'eseguibile sarà creato nella cartella dist/.
Per creare l'installer completo:
python build_installer.pyNota: L'eseguibile avrà i propri file di autenticazione e chiave di crittografia, indipendenti da quelli di sviluppo.
L'applicazione include un sistema di aggiornamento automatico:
- All'avvio: L'app controlla automaticamente se sono disponibili nuove versioni su GitHub
- Download: Se c'è un aggiornamento, viene proposto il download dell'installer
- Installazione: L'installer viene eseguito automaticamente per aggiornare l'applicazione
Per pubblicare una nuova versione (richiede GitHub CLI):
# Prima crea l'installer
python build_installer.py
# Poi crea la release (patch = 1.0.0 -> 1.0.1)
python create_release.py patch
# Oppure per una minor release (1.0.0 -> 1.1.0)
python create_release.py minor
# Oppure per una major release (1.0.0 -> 2.0.0)
python create_release.py majorLo script:
- Incrementa automaticamente la versione in
updater.py - Commit e push delle modifiche
- Crea una release su GitHub con l'installer allegato
DatabasePro/
├── app.py # Applicazione principale
├── database.py # Gestione database e crittografia
├── auth.py # Autenticazione e hashing
├── config.py # Gestione tema e configurazione
├── dialogs.py # Dialog personalizzati
├── ui_components.py # Componenti UI
├── ui_delegates.py # Delegate per tabelle
├── validators.py # Validatori per input
├── access.py # Controllo accesso
├── file_utils.py # Utility per file
├── updater.py # Sistema di auto-aggiornamento
├── build_exe.py # Script di build eseguibile
├── build_installer.py # Script di build installer
├── create_release.py # Script per creare release GitHub
├── installer_gui.py # GUI dell'installer
├── requirements.txt # Dipendenze
├── logo.png # Logo applicazione
├── app_config.json.example # Esempio configurazione (da rinominare)
└── README.md # Questo file
Per usare variabili d'ambiente personalizzate, creare un file .env:
DATABASE_PATH=/path/to/database
AUTH_PATH=/path/to/auth
Non committare il file .env al repository.
Le pull request sono benvenute. Per cambiamenti importanti, aprire un issue prima per discussione.
MIT License
Per bug report, feature request o altre domande, aprire un issue.
- Non condividere mai i file
auth.json,db_key.keyo il database crittografato - Cambiare la password predefinita al primo accesso
- Tenere il software aggiornato per ricevere patch di sicurezza