Abilian Core
Abilian Core est le framework applicatif web qui sert de base à Abilian SBE. C'est un ensemble d'outils et de bibliothèques logicielles qui permettent de simplifier et d'accélérer le développement d'applications web collaboratives et métiers.
En voici les fonctionnalités et caractéristiques principales:
Routage et gestion des URL : le framework doit permettre de définir des routes pour chaque page ou fonctionnalité de l'application et de gérer la navigation de manière transparente.
Gestion des requêtes et des réponses HTTP : le framework gère les demandes d'informations envoyées par le navigateur et envoyer des réponses adaptées, que ce soit pour le rendu de page HTML ou de requête "REST" au format JSON.
Modèle MVT : le framework propose une architecture Modèle-Vue-Template pour séparer les différents aspects de l'application et faciliter la maintenance.
Gestion des templates : permet de générer des pages HTML dynamiques à partir de modèles prédéfinis, en utilisant notamment le langage Jinja.
Base de données et ORM : inclut une couche d'abstraction pour simplifier la gestion des bases de données et les interactions avec celles-ci. Celle-ci se base sur SQLAlchemy.
Gestion des sessions et de l'authentification : Abilian Core propose des mécanismes pour gérer les sessions utilisateurs et l'authentification, ainsi que pour protéger l'application contre les attaques de type CSRF ou XSS.
Internationalisation : Abilian Core offre des fonctionnalités pour faciliter la traduction de l'application dans différentes langues. Il s'appuie pour cela sur la bibliothèque Babel.
Sécurité : le framework gère de manière sécurisée les entrées utilisateur, les mots de passe et les données sensibles. Il s'appuie notamment sur des listes d'accès (ACL).
Tests unitaires et fonctionnels : il inclut des outils et des aides pour faciliter l'écriture et l'exécution de tests unitaires et fonctionnels pour garantir la qualité des applications développées.
Techniquement, Abilian Core est basé sur le framework web Flask Flask. Il est développé en Python 3 et utilise les bibliothèques SQLAlchemy, Jinja et Babel.