- Licence : AGPL v3 - Copyright Conseil Régional Nord Pas de Calais - Picardie, Conseil départemental de l'Essonne, Conseil régional d'Aquitaine-Limousin-Poitou-Charentes
- Développeur(s) : ATOS
- Financeur(s) : Région Nord Pas de Calais-Picardie, Département 91, Région Aquitaine-Limousin-Poitou-Charentes
- Description : Application de réservation de ressources : salles et matériels.(Remote Booking System)
gradle copyMod
Dans le fichier /ent-core.json.template
:
Déclarer l'application dans la liste :
{ "name": "net.atos~rbs~0.1-SNAPSHOT", "config": { "main" : "net.atos.entng.rbs.Rbs", "port" : 8026, "sql" : true, "mongodb" : false, "neo4j" : false, "app-name" : "Réservation de ressources", "app-address" : "/rbs", "app-icon" : "rbs-large", "host": "http://localhost:8090", "ssl" : false, "auto-redeploy": false, "userbook-host": "http://localhost:8090", "integration-mode" : "HTTP", "mode" : "dev" } }
Associer une route d'entée à la configuration du module proxy intégré ("name": "fr.wseduc~rbs~0.1-SNAPSHOT"
) :
{ "location": "/rbs", "proxy_pass": "http://localhost:8026" }
RBS est une application de gestion de réservations de ressources. Elle permet de gérer des Ressources organisées en Types de ressources, d'effectuer des Réservations sur ces Ressources, et de consulter les Réservations. Les permissions sont configurées sur les Types de ressources (via des partages Ent-core). Les Réservations peuvent être soumises à validations, et peuvent être ponctuelles ou périodiques. La consultation peut se faire grâce à un Calendrier, ou grâce à une Liste des réservations.
RBS met en œuvre un comportement de recherche sur le nom des ressources, des types de ressources et sur les motifs de réservation.
Les données du module sont stockées dans une base PostgreSQL, dans le schéma rbs
.
Les scripts sql se trouvent dans le dossier "src/main/resources/sql".
3 tables représentent le modèle relationnel applicatif :
resource_type
: Types de ressourcesresource
: Ressourcesbooking
: Réservations et créneaux de réservation Une Réservation ponctuelle correspond à une entrée dans la table Booking Une Réservation périodique correspond à une entrée mère dans la tablebooking
représentant la réservation, et n entrées filles dans la tablebooking
correspondant aux créneaux
Les tables resource_type
et resource
sont liées à des tables de partage pour implémenter le fonctionnement du framework Ent-core
resource_type_shares
resource_shares
Le module serveur utilise 4 contrôleurs :
DisplayController
: Routage des vues et sécurité globaleResourceTypeController
: APIs de manipulation des Types de ressources et sécurité sur ces objetsResourceController
: APIs de manipulation des Ressources et sécurité sur ces objetsBookingController
: APIs de manipulation des Réservations et sécurité sur ces objets, contrôles particuliers sur le status des Réservations et les propriétés des Ressources et Types de ressources.
Les contrôleurs étendent les classes du framework Ent-core exploitant les CrudServices de base. Pour manipulations spécifiques, des classes de Service sont utilisées :
ResourceTypeService
: concernant les Types de ressourcesResourceService
: concernant les RessourcesBookingService
: concernant les Réservations
Le module serveur met en œuvre deux évènements issus du framework Ent-core :
RbsRepositoryEvents
: Logique de changement d'année scolaireRbsSearchingEvents
: Logique de recherche
Des jsonschemas permettent de vérifier les données reçues par le serveur, ils se trouvent dans le dossier "src/main/resources/jsonschema".
Le modèle Front-end manipule 3 objets model :
ResourceType
comprenant une Collection d'objetsResource
de ce typeResource
comprenant une Collection d'objetsBooking
, réservations faites sur cette ressourceBooking
comprenant, si c'est une Réservation périodique, un tableau d'objetsBooking
représantant les créneaux.
Il y a 2 Collections globales :
model.resourceTypes
: synchronisée depuis le serveur. Sa synchronisation entraîne celles des collections deResource
de chaque Type de ressources. Celle des collections deBooking
de chaque Ressource est conditionnée par la sélection de la Ressource.model.bookings
: vide, manipulée par le contôleur pour représenter les Réservations affichées selon les ressources sélectionnées et d'autres critères. Cette collection mélange les réservations et créneaux de réservations périodiques pour permettres les actions sur sélections (via la méthodeselection()
)