ULTIMO AGGIORNAMENTO 031112 ================================================================================ INDICE PREAMBOLO SPERIMENTAZIONE MANCA BUGS PRIORITÀ DI SVILUPPO OTTIMIZZAZIONI LIVELLI DI ACCESSO DaB FILES DIR x DIR DATABASE STATISTICHE ================================================================================ PREAMBOLO *** I file devono essere modificati da un editor che rispetta il TAB di indentazione che è stato fissato arbitrariamente su: 2 caratteri. (La teoria vorrebbe un TAB fisico fissato a 8 caratteri, e una indentazione sui 2, solo che QUANTA, l'ambiente di sviluppo in uso, non permette questa distinzione. Pork!) *** Per aiutare a identificare il file di origine di ogni funzione, sarebbe bene includere nel nome di ogni funzione un richiamo al file stesso. Esempio, le funzioni in dab_HTML_functions si chiamano HTML_top(...), HTML_doc(...), etc. etc. ================================================================================ SPERIMENTAZIONE (punti da definire collettivamente) *** Al momento le procedure di accesso assegnano all'autore e a una lista che lui definisce (non implementato ancora) la possibilità di aggiungere nuovi paragrafi, mentre gli altri possono solo aggiungere alternative. *** Gli algoritmi di calcolo di colore (media pesata dei voti), densità (media pesata degli impegni) e di contrasto. *** Si definiscono prima tutte le alternative e poi si comincia a votare (non implementato ancora) *** Tutti possono creare documenti, ovvero non è considerato un livello di accesso per la creazione di documenti. ================================================================================ MANCA *** Non ci sono procedure amministrative comode per la creazione di utenti, la cancellazione di documenti e il backup del DB. *** Al momento non c'è una procedura per definire livelli di accesso diversi da quelli di default (ovvero per riempire la tabella access_control). *** Non è considerato un livello di accesso per la creazione di documenti. *** Manca una gestione efficace degli accessi generali a tutte le pagine, con procedura di accreditamento e poi un controllo effettivo a livello di sistema oltre a quello pagina per pagina. *** Mancano procedure di Stop aggiunta bolle - Start/Stop votazioni Vedere la "reversibilità di queste funzione quali problemi comporta (annullamento di voti precedenti, ...) *** Composizione documento fruizione off-line *** Mailer che spedisce info legate agli eventi *** Configurazione preferenze utente per mailer eventi Aggiunta/Rimozione bolla Aggiunta/Rimozione alternative Voto avvenuto Apertura/Chiusura fasi ================================================================================ BUGS ================================================================================ PRIORITÀ DI SVILUPPO *** Per rendere operativa una prima sperimentazione: 1) Anche se rudimentale accesso con user/password 2) Tool di amministrazione di creazione utenti, cancellazione doc, backup o del DB (per ripristinare una situazione quando si fa casino) o del singolo documento. *** Subito dopo 1) Procedura per definire livelli di accesso diversi ai doc per liste di utenti. 2) Procedure di start/stop voti e bolle alternative. ================================================================================ OTTIMIZZAZIONI *** Bisogna controllare e possibilmente ridurre le query al db per ogni pagina, in quanto è la parte più time consuming. *** Bisogna controllare meglio la gestione dei
nel testo delle bolle. *** Io (MC) sto provando solo con mozilla: chissà come funziona con altri browser! *** In dab_functions ci sono alcune query (es shift_bubble_number e next_bubble_nUmber) che dovrebbero poter essere ottimizzate conoscendo un po' meglio sql. *** Si potrebbe pensare di mettere il codice php in file include esterni in modo da separarlo effettivamente dall'HTML, ma forse è meglio farlo alla fine. Work in progress: quando il livello di separazione (non solo html/php) raggiungerà un livello soddisfacente, potrebbe valere la pena di metterlo su sourceforge. ================================================================================ LIVELLI DI ACCESSO Tre sono i livelli: READ, ADD, EDIT. READ permette solo di leggere. ADD permette di aggiungere bolle alternative e di votare EDIT di cancellare bolle intere (tutti i blocchi di alternative tra loro) Come valori numerici READ, ADD e EDIT sono crescenti, ma possono essere utilizzati anche come bit mask perché sono potenze di 2 (1, 2, 4). Di default ogni utente ha accesso in READ e ADD, mentre l'autore ha accesso in EDIT. Se l'accesso a un documento è di default, questo viene scritto nei campi access_read (accesso di default = tutti gli utenti) access_add_Bubble (accesso di default = tutti gli utenti) access_edit_Bubble (accesso di default = l'autore) della tabella bubble_doc. Se il valore invece di DEFAULT è LIST, allora va considerata la tabella access_control con i campi doc/user/access_level. Questa serve per estendere i diritti EDIT oltre l'autore o per restringere i diritti ADD e READ. Ovvero se l'accesso a un documento è di tipo LIST, si cerca in access_control il livello di accesso dell'utente controllando la presenza del record doc/user. Se è presente, allora è trovato il livello di accesso, altrimenti l'accesso è negato. L'autore di un documento ha comunque accesso EDIT. Una singola bolla alternativa può essere modificata e cancellata solo dal suo autore, mentre può essere cancellata in blocco con le sue alternative dall'autore del documento. ================================================================================ DaB FILES DIR x DIR (in ordine alfabetico) /css ==> Fogli di stile dab.css Stili comuni TopBar.css Stili per la barra superiore /doc ==> Pagine di documentazione e quant'altro bolle.htm Breve pagina statica sul metodo /html ==> contiene tutto l'HTML delle pagine /common ==> funzioni chiamate da più pagine dab_HTML_display_bubble.php mostra una bolla dab_HTML_display_doc.php mostra un documento dab_HTML_display_paragraph_buttons.php mostra i bottoni di paragrafo dab_HTML_display_votes.php mostra tutti i voti di una bolla /pages ==> html specifico di singole pagine dab_HTML_add_doc.php html di dab_add_doc.php dab_HTML_edit_bubble.php html di dab_edit_bubble.php dab_HTML_user_home.php html di dab_user_home.php dab_HTML_vote_bubble.php html di vote_bubble.php dab_HTML_functions.php ciò che rimane delle altre funzioni html /icons ==> Icone utilizzate nella visualizzazione dello stato delle bolle contrast.png Icona sorgente per la generazione delle icone seguenti contrast_x.png Contrasto delle bolle (x = 0..9) density_x.png Densità delle bolle (x = 0..9) veto.png Icona che compare ad indicare uno o più veti volume.png Icona che viene visualizzata con dimensione variabile ad indicare il volume /img ==> Immagini varie TopBar_logo.png Immagine da visualizzare sulla destra in alto TopBar_logoff.png Icona di logoff visualizzata sulla sinistra in alto greentick.gif Generico segno di spunta verde redcross.gif Generico croce rossa retelilliput.gif Il nostro mondo con le aluccie /inc ==> Include file comuni dab_admin_common.php include alternativo a "dab_common" per le sole pagine di amministrazione dab_common.php connessione al DB e variabili comuni dab_config.php le costanti comuni a tutti dab_functions.php concentra le funzioni che non utilizzano HTML dab_stats.php calcoli statistici /lib ==> Contiene le definizioni delle classi class_TopBar.php Classe per la visualizzazione della barra in alto comune dab_upload.php Classe per l'upload dei files. DaB FILES // Dab ==> :-) dab_add_doc.php aggiunge documenti dab_edit_bubble.php aggiunge e cancella bolle e alternative dab_info.php mostra tutte le alternative e i voti con i commenti di una bolla dab_show_doc.php mostra un documento e permette di accedere a tutto dab_upload_doc.php Interfaccia a dab_upload.php per l'upload effettivo di un doc dab_user_home.php mostra elenco dei documenti accessibili a un utente dab_vote_bubble.php votazione bolle // Questi andranno sostituiti con funzioni del sistema che accoglierà _dab_admin_home.php partenza per "istallazione" _dab_create_db.php crea il DB _dab_fill_db.php lo riempie con dati di test _dab_user_login.php sceglie l'utente // Files di servizio DAB_HISTORY storia delle modifiche DAB_README guida all'istallazione DAB_RELEASE_NOTES questo documento index.html homepage phpinfo.php questo non manca mai ================================================================================ DATABASE La struttura del database è descritta nel file _dab_create_db.php. Manca un po' di documentazione, però al momento è quanto di più chiaro ci sia. ================================================================================ STATISTICHE Le statistiche sono nel file dab_stats.inc. Per il momento sono esattamente identiche a quanto descritto nei file di documentazione tecnica originale.