Sei in: LetoCMS » LetoCMS » Stato attuale del progetto
Pubblicità

Stato attuale del progetto

Pubblicità

Lo sviluppo del CMS è ancora molto ridotto, ma come potete già vedere da questo sito web, sono già implementate diverse funzionalità.

Caratteristiche implementate

Attualmente il CMS fornisce strumenti molto efficaci, ma allo stesso tempo semplici, per l'implementazione di nuovi moduli e funzionalità. Per indicare sommariamente le caratteristiche implementate attualmente:

  • Elevata modularità del sistema
  • Molti automatismi disponibili o possibili
  • Semplice amministrazione dell'intero sito
  • Supporto per siti multipli (anche di proprietà degli utenti)
  • Gestione delle autorizzazioni agli utenti tramite gruppi e permessi (non esistono livelli statici)
  • Massima integrazione tra i componenti
  • Internazionalizzabilità con riconoscimento automatico della migliore lingua per il visitatore

Inoltre sono in via di progetto, sviluppo o completamento le seguenti caratteristiche:

  • Supporto di template grafici di altri sistemi (Joomla, Smarty, etc.)
  • Inclusione di altre classi utili nel kernel
  • Sviluppo di un modulo per rendere più "sociale" il sistema e migliorare l'interazione mutua tra gli utenti
  • Definizione di strutture che possono semplificare ulteriormente alcune particolari interazioni tra componenti (ad es. servizi offerti da moduli utilizzabili da altri moduli)
  • Sistema intelligente di gestione delle e-mail
  • Implementazione di protocolli standard come Web Services, WebDAV, ecc per migliorare l'interoperabilità del CMS con altri sistemi e incrementarne la flessibilità anche al fine di offrire la migliore esperienza di navigazione possibile agli utenti

Ulteriori informazioni sullo stato attuale di sviluppo delle funzionalità, possono essere raccolte nel resto della pagina.

Moduli

Sono attualmente implementati i seguenti moduli, con le relative indicazioni sul progresso nello sviluppo:

  • admin [75%]
    Implementa il pannello di controllo generale del sito web
  • affiliates [90%]
    Implementa il supporto per le affiliazioni
  • cache [100%]
    Implementa un meccanismo per la gestione della cache delle pagine sul server e per la gestione della cache sul client
  • casperd [60%]
    Implementa l'interfaccia web di gestione al server Casperd (gestore di code e lavori su un cluster: casperd su google code)
  • categories [95%]
    Implementa la suddivisione dei contenuti (di vario genere) in categorie e pagine
  • downloads [70%]
    Permette di utilizzare un SimpleContent come download
  • extjs [100%]
    Il famoso framework per la realizzazione di interfacce grafiche, incluso come modulo
  • facebook [40%]
    Permette l'interazione con facebook e tutte le sue funzionalità: applicazioni e connect.
  • files [100%] [deprecato]
    Permette al browser di scaricare file pubblici e di utilità (immagini, js, css, ecc.)
  • files_browser [70%]
    Permette di navigare i files del sito web tramite WebDAV e una comoda e intuitiva interfaccia realizzata con ExtJS.
  • google_utils [95%]
    Permette di generare sitemap per Google Sitemaps, annunci AdSense, ecc.
  • htmleditor [100%]
    Permette di utilizzare l'editor FCKEditor
  • imaging [40%]
    Fornisce alcuni servizi utili come CAPTCHA ed altre funzionalità grafiche avanzate, come ad esempio l'identificazione del viso nella foto dell'utente.
  • info [100%]  [deprecato]
    Un semplice modulo per informazioni
  • ldap [100%]
    Permette l'integrazione con un server LDAP per il login. Completo, ma potrebbe anche implementare una maggiore integrazione gestendo anche i gruppi, i permessi e quant'altro possa risultare utile.
  • letojs [5%]
    Costituirà il core JavaScript del CMS e fungerà da wrapper per moltissime funzioni quali DOM, ecc. al fine di aumentare la flessibilità del CMS
  • links_directory [1%]
    Implementa la gestione di una directory di link utilizzando le categorie.
  • mysql [90%]
    Permette di gestire database MySQL (soprattutto se non è installato il driver MySQL per PDO)
  • nav_assist [95%]
    Fornisce funzionalità per migliorare la navigabilità all'interno del sito web
  • page_tracker [90%]
    Fornisce funzionalità per migliorare la navigabilità all'interno del sito web tra pagine SimpleContent e altre pagine secondo l'esperienza degli altri utenti
  • payments [50%]
    Fornirà le funzionalità necessarie alla gestione dei pagamenti on-line ad esempio tramite Paypal
  • positioning [100%]
    Permette di indicare delle coordinate globali per un SimpleContent. Utile nelle descrizioni di un oggetto. Fa riferimento a Google Maps ed è estendibile per offrire altri servizi legati alla posizione (ad es. previsioni meteo)
  • projects [20%]
    Modulo per la gestione di progetti. Permette di creare e gestire progetti sfruttando la flessibilità e la funzione multi-sito di LetoCMS.
  • rss_contents [80%]
    Permette di utilizzare feed RSS come fonti per i contenuti nelle categorie
  • rss_provider [50%]
    Fornisce la possibilità di creare e gestire feed RSS dai contenuti del sito
  • sc_linker [95%]
    Collega i SimpleContent tra di loro (in base al titolo)
  • sc_related [100%]
    Elenca SimpleContent correlati al SimpleContent corrente
  • search [100%]
    Permette agli utenti di effettuare ricerche all'interno del sito (attraverso estensioni fornite da altri moduli)
  • shop [100%]
    Offrirà le funzionalità necessarie all'implementazione di un catalogo per il commercio elettronico e relativo carrello della spesa, appoggiandosi al modulo payments per la gestione dei pagamenti on-line
  • simple_contents [90%]
    Implementa un semplice modello estendibile di contenuti
  • site_docs [90%]
    Permette di fornire pagine di documentazione sulle funzioni del sito e dei moduli a utenti e amministratori del sito web
  • social [10%]
    Implementa le funzioni di base per la costruzione di un social network e rende possibile la comunicazione tra utenti
  • svn [5%]
    Implementa, completamente in PHP, la gestione totale di un repository SVN basato su un backend di tipo FSFS. Permette checkout, commit, ecc.
  • uploads [85%]
    Gestisce efficacemente gli upload con un occhio di riguardo alle necessità dei web master soprattutto in occasione di spostamento del sito web su altri host
  • users [80%]
    Gestione degli utenti
  • weather [60%]
    Offre previsioni meteo tramite il servizio WeatherBug
  • webdav [5%]
    Offre una comoda ed estendibile interfaccia tramite WebDAV al sito web.
  • webportal_theme [100%]
    Permette di utilizzare i temi realizzati per WebPortal CMS
  • webservices [60%]
    Permette la creazione di web service gestendone interamente l'accesso in modo estremamente semplice sfruttando le potenzialità di LetoCMS, fornendone anche automaticamente la descrizione WSDL.

Per interpretare al meglio il significato delle percentuali di completamento o per offrire comunque un'idea più precisa di cosa indicano, sono stati utilizzati i seguenti colori con i relativi significati:

  • completo e perfettamente funzionante
  • Quasi completo, ma già utilizzabile
  • Non è ancora completo, ma ha già le funzionalità di base
  • Non è completo, ma ha già le funzionalità di base più urgenti
  • Non è utilizzabile

Come è possibile notare dall'associazione percentuale di completamento <-> colore, la corrispondenza non è diretta. Infatti alcuni moduli, ad esempio shop necessitano di alcune piccole funzioni che, non essendo ancora implementate, rendono non utilizzabile il modulo.

Funzionalità avanzate

Il modulo facebook non è ancora completo, ma è già possibile prendere visione delle funzionalità offerte dal modulo, aggiungendo l'applicazione letotest su Facebook. Attualmente non sono ancora implementate le funzionalità di interazione con Facebook Connect. Nell'applicazione sopra citata, è possibile navigare questo sito web, visto come applicazione per Facebook.

Sono inoltre in fase di sviluppo ulteriori moduli per l'integrazione con altri sistemi, come ad esempio OpenSocial. Tale sviluppo è purtroppo rallentato dai miei impegni personali e dal fatto che ho appena iniziato ad approcciarmi a questo "mondo". Data la sua diffusione però, ritengo che ne sia di vitale importanza l'implementazione.

Le funzionalità offerte dal modulo webservices inoltre, permettono l'instaurazione di web service in pochissimo tempo. È infatti necessario costruire solo le classi contenenti i metodi da rendere disponibili e aggiungere la classe come estensione al gestore dei web service. Il resto è gestito dal modulo in maniera del tutto automatica. Costruire servizi web per i propri siti non è mai stato così semplice e veloce.

Prossimi passi

La direzione in cui si sta proseguendo lo sviluppo, consiste essenzialmente nel completamento dei moduli già avviati, nello sviluppo di nuovi moduli necessari ed urgenti e nell'ottimizzazione di alcune funzionalità svolte dal CMS, principalmente in termini di prestazioni, tempi di risposta e carico per la CPU del server, il tutto continuando ad incrementare la sua flessibilità e fornendogli potenzialità non comuni per altri CMS.

Ottimizzazioni introdotte

Recentemente sono state introdotte alcune ottimizzazioni per ridurre il carico computazionale per l'elaborazione delle pagine del sito web:

  • Cache dei dati sui moduli
    Dall'analisi del profiling dell'esecuzione degli script del CMS, è emerso (come ci si poteva attendere senza eccessivi sforzi mentali) che la lettura dei descrittori dei moduli e la generazione di tutta la struttura dati impiegava anche l'80% dell'intero tempo d'esecuzione dello script. Tale cache ha ridotto questo tempo da circa l'80% ad un tempo pari a < 1% del tempo d'esecuzione degli script.
  • Accesso diretto ai file statici
    Abilitando l'accesso diretto ai file statici, E' stato ridotto notevolmente il peso computazionale sul server. Il controllo sugli accessi è comunque mantenuto, poiché i file statici ai quali è possibile accedere direttamente devono essere contenuti in una particolare directory.
  • AJAX browsing
    La nuova funzionalità (non ancora completamente implementata) si propone l'obiettivo di ridurre il carico computazionale del server. Ciò è permesso dal fatto di richiedere al server molti meno dati: non viene richiesta l'intera pagina, quindi non viene elaborato il tema, non vengono caricati/mostrati i blocchi, si riduce drasticamente il numero di richieste, eliminando la richiesta di tutte le immagini necessarie alla grafica. Solo il documento e le operazioni collegate vengono elaborate.
    Purtroppo non è ancora del tutto compatibile con tutte le caratteristiche del CMS ed alcune operazioni non sono state implementate del tutto (refresh, aggiornamento dello stato della pagina, come ad esempio il blocco "Sei in").

Ulteriori ottimizzazzioni verranno introdotte in seguito, continuando ad analizzare le prestazioni del CMS, ogni volta che verrà identificato un così detto "collo di bottiglia".

Cerca
Prodotti
Documentazione