Dopo aver introdotto il progetto, passiamo alla parte riguardante lo sviluppo.
Per sviluppare il progetto, sono stati impiegati i seguenti linguaggi di grafica e di programmazione:
- html5
- css3
- php 7
- javascript
- ajax
Con l’html e il css ho sviluppato il layout e l’interfaccia grafica della piattaforma.
Il linguaggio php è stato impiegato per la realizzazione di tutta la parte gestionale della piattaforma e per lo sviluppo di tutte le funzioni del progetto.
Javascript è stato impiegato per la realizzazione di alcuni strumenti utili, come editor di testo, avvisi per l’utente, popup e altri aspetti funzionali, riguardanti l’interfaccia grafica.
L’AJAX, tecnica di programmazione formata da javascript e xml, adatto per la realizzazione di applicazioni in grado di interagire con il browser e il server, è stato impiegato per la realizzazione del file manager e di altre funzioni fondamentali per un cloud.
SharekFile presenta diversi sistemi di organizzazione interni per la gestione dei dati, degli utenti e di tutte le informazioni che vengono utilizzate.
Registrazione
Per la registrazione SharekFile memorizza una serie di dati quali: nome, cognome, indirizzo email, password e username. I dati che vengono inseriti sono sottoposti a diversi controlli:
- Viene controllato se il nome utente inserito corrisponde ad un altro nome utente usato in un’altra registrazione
- Viene controllato se l’indirizzo email presenta una sintassi corretta
- Viene controllato se la password rispetta i parametri di sicurezza. La password deve essere composta da almeno 8 caratteri alfa numerici, deve contenere almeno un numero e almeno una lettera maiuscola per essere accettata.
Una volta che sono stati controllati i dati, prima del salvataggio all’interno del database avviene la fase di criptazione, in cui la password viene cifrata tramite l’algoritmo sha512 per garantire una sicurezza maggiore nei confronti dell’utente registrato.
Per completare la procedura di registrazione, sarà necessario confermare l’indirizzo email. Con la conferma dell’indirizzo verrà creata la cartella utente e abilitato lo spazio per l’account.
Login
Per effettuare il login la piattaforma richiede il nome utente e la password. Per la convalida dell’accesso, viene criptata la password inserita, sempre usando l’algoritmo sha512, e confrontata la password cifrata con quella salvata all’interno del database. Questa procedura viene effettuata in quanto il tipo di criptazione utilizzato non permette la decriptazione dei dati.
Una volta che il login è stato confermato si può accedere all’area utente.
L’accesso viene gestito con il metodo delle sessioni e per il momento non vengono usati cookie.
Gestione dei file
Per il momento lo spazio disponibile per ogni utente è senza vincoli.
SharekFile permette ad ogni utente di interagire e di intervenire con i file contenuti nella propria directory e non gli è possibile accedere alle directory di altri utenti. Questo è dato dal fatto che è stato impostato un sistema di permessi ben configurato, in modo tale da evitare problemi di sicurezza.
Il caricamento dei file avviene tramite il metodo POST. La dimensione massima di ogni file è di 1.9 GB. Questo valore non è di default, ma è stato impostato tramite il file .htaccess, file di configurazione del server Apache.
Non tutti i file caricati saranno visibili nel file manager. Infatti SharekFile è in grado di riconoscere file potenzialmente dannosi per il sistema (come file .sql) e quindi non li renderà utilizzabili tramite la piattaforma. Saranno però accessibili allo scaricamento via ftp,
Numerazione delle versioni
Per la numerazione delle varie versioni di SharekFile ho deciso di utilizzare una numerazione a 3 cifre.
Prima cifra
La prima cifra corrisponde all’avanzamento delle versioni nei rilasci stabili del progetto. Dato che SharekFile, attualmente si trova nello stato di alpha, la prima cifra è impostata a 0
Seconda cifra
La seconda cifra rappresenta l’avanzamento dei rilasci alpha e beta. Quando la terza cifra raggiunge il valore 10, viene incrementata di 1 la seconda cifra. La seconda cifra rappresenta quindi una serie di cambiamenti importanti apportati al progetto.
Terza cifra
La terza cifra rappresenta il rilascio di aggiornamenti minori, come la risoluzione di qualche problema, il miglioramento di una funzionalità o l’implementazione di una nuova feature
–> Funzionalità del progetto