raja CMS

1. PRINCIPE 2. ARCHITECTURE 3. SERVICE 4. DEPLOIEMENT

 

raja CMS - Strict HTML 5 Content Management System - enfin un CMS sans .php !
Pas de langage de template compliqué comme XSLT, les données sont directement insérées par le DOM.

Le site est composé d'une liste de pages issues d'une liste de modèles
Un modèle est composé d'une liste de sections contenant articles et objets

SITE PAGE MODELE SECTION ARTICLE OBJET

Le CMS permet d'ajouter, supprimer, ordonner, éditer :
- des articles et des objets dans des sections,
- des sections dans les modèles et dans les pages,
- des pages dans le site

 

1. PRINCIPE

SITE – PAGE - MODÈLE - SECTION - ARTICLE - OBJET

Le site web est vu comme une arborescence de pages HTML.
Chaque page est une instance d'un des MODÈLES adaptés au contexte du projet.
Chaque modèle a des SECTIONS (par exemple, entête, corps, colonne, pied) qui peuvent accueillir, selon le modèle et la section, un ou plusieurs ARTICLES ordonnés.
La représentation d'un article sous forme HTML dépend du MODÈLE dans lequel il est affiché.
Les données d'un article sont obtenues auprès des ressources HTTP du site web.
Un article est lui-même constitué d'une liste d'OBJETS élémentaires éditables (par exemple texte riche, image, vidéo, calendrier).

SOLUTION MODULAIRE

Le site web est construit selon une architecture moderne, extensible, et séparant parfaitement chaque tiers.
La Vue est écrite uniquement en DOM HTML + JavaScript client.
Le Modèle n'est accessible qu'à travers une interface HTTP (type REST) par la Vue ou par le serveur de pages.
Aucune logique « client » ne contamine l'application « serveur ». L'interface utilisateur et les pages HTML finales vues par le client sont construites uniquement avec du code JavaScript client.

L'application node.js est située derrière un reverse proxy HTTP 1.1 comme Nginx.
La pile logicielle côté serveur (Back-End) est node.js / express.js / webkitgtk / express-dom / raja.
Les données peuvent être stockées dans n'importe quelle base tant qu'une interface HTTP respectant une sémantique REST est disponible. En pratique, nous utilisons PostgreSQL.

Côté client (Front-End) toutes les solutions modernes sont utilisables, telles que jquery / bootstrap / angular, ou encore jquery / semantic-ui + une librairie de DOM binding.

Le front-end ne dépend plus du back-end que dans la mesure où il dépend des données.
Tous les modules utilisés sont « open source ».
De nombreux services externes peuvent être utilisés en complément (un service SMTP comme Mandrillapp, un hébergeur de données avec interface HTTP REST comme Strongloop, hébergeurs de fichiers statiques sur nuage, …).

 

2. ARCHITECTURE

ARCHITECTURE OUVERTE, INDEPENDANTE ET PERFORMANTE

Elle ne dépend pas de frameworks existants, n'impose aucune technologie, hormis celle disponible dans les navigateurs. L'arborescence du site réside en l'assemblage de modèles par un réseau de liens.
L'assemblage est multi-niveaux et multi-critères.

Elle synchronise efficacement toutes les dépendances, modification par modification. La gestion du cache est intégrée au coeur du CMS.
Les fichiers statiques sont automatiquement « minifiés ».
Toutes les dépendances sont automatiquement mises à jour en temps réel.
Devant node.js / express.js,raja CMS utilise le moteur de rendu webkit.
Architecture n-tiers

SERVICE ISOMORPHE

Le rendu des pages est fait de manière isomorphe à l'aide de Raja, un moteur de rendu de pages HTML pilotant webkitgtk à l'intérieur de l'application serveur.
Raja est capable de gérer automatiquement de nombreux niveaux de cache et les synchroniser entre eux grâce à son architecture unique de cache distribué traçant les dépendances entre les ressources.

Le CMS construit sur cette architecture bénéficie directement des performances obtenues par un système de cache applicatif intégré, tout en restant indépendant et modulaire.
Il profite en plus de la messagerie socket.io utilisée pour le cache, permettant une synchronisation « live » des données sur les pages ouvertes – en option.
L'interface principale d'échange entre le Front et le Back étant HTTP, le Back est pour une grande partie interchangeable, Raja pouvant être vu comme un proxy entre le Front et le Back.
De la même manière, le Back étant fixé, on peut facilement écrire un nouveau Front de manière complètement indépendante. La promesse d'une architecture n-tiers est tenue.

 

3. SERVICE

MODÈLES FLEXIBLES

Les modèles de chaque pages sont composés de sections modifiables.
Ils sont construits indifféremment à partir des standards du marché :
- « Font-end Frameworks » semantic-ui ou bootstrap, qu'ils soient Unify ou développés spécifiquement
- « Front-end API Rest » React.js, Meteor ou encore Angular.js
- En savoir plus sur les modèles

Un modèle de page est composé d'une liste de sections pré-définies à assembler.
raja CMS permet d'ajouter, supprimer, ordonner :
- des objets dans des sections
- des sections dans des modèles
- des modèles dans l'architecture
- En savoir plus sur les sections

FONCTIONNALITÉS

La gestion de l'arborescence dynamique se réalise à partir de la page d'index de l'administration, véritable plan du site, par glisser déposer des représentations de pages. Ajouts, suppressions, modifications.
Outil permettant de créer des pages sur la base des modèles pré-définis.
Modification de la position des pages dans l'arbre.

L'édition des pages comporte un éditeur d'articles gérant les séquences et des éditeurs d'objets spécifiques aux objets, gérant les contenus en fonction des objets.

L'édition des ressources de bases de données SQL est transparente, automatiques, prédéfinies par type d'articles et position dans l'arborescence.
Les liaisons aux ressources REST sont accessibles sur simple déclaration dans les éditeurs d'objets appropriés.
La gestion des accès contrôlés est définie par zones, protégées en fonction des types de clients.

4. DEPLOIEMENT

REFERENCEMENT NATUREL

Le site respecte les règles de positionnement, hiérarchisation et notation du consortium WWW et le « Ranking » de Google. L'optimisation du référencement naturel est obtenu par le respect inconditionnel de la norme Html 5.0 Strict.
Tous les modèles sont validés par le W3C.

COMPATIBILITE NAVIGATEURS ET TERMINAUX

La compatibilité des navigateurs et des terminaux, tactiles et mobiles, est assurée par la structure html5 des modèles semantic-ui ou Bootstrap. L'utilisation du moteur de rendu webkit permet les exports .pdf de qualité.

SAUVEGARDE

Sauvegarde des données par interface REST, interne au service ou externalisées (amazon S3 etc).

Connexion utilisateurs enregistrés

We noticed some issues

Connexion par réseaux sociaux :

Contact us :

EDA s.a.r.l.
La grande Roulière
79150 Voultegon
France

info@eda.sarl
+(33) 607 182 560

© 2015 EDA s.a.r.l.