Skip to content

sygefor/sygefor

Repository files navigation

SYGEFOR3

Qu'est-ce que Sygefor3 ?

Sygefor3 est une solution de gestion de formations conçu par l'Association du Réseau des URFIST, puis enrichie par l'adCRFCB ainsi que le CNRS. Elle a été réalisée par Conjecto. L'application se présente sous la forme d'une interface de gestion privée. Une version publique de la solution permet aux stagiaires de s'inscrire aux formations. Une API publique est également disponible. Les types d'authentification OAuth2 et Shibboleth sont intégrés à la solution.

Démonstration

Un version de démonstration de la solution est disponible à l'adresse : http://sygefor.conjecto.com.

Captures d'écran

Configuration requise

PHP

  • version 5.3.9 minimum (sauf 5.3.16). Php7 n'est pas compatible pour le moment.
  • extensions :
    • json
    • xml
    • zip
    • ctype
  • modules :
    • pdo_mysql
    • openssl
    • apc
    • mbstring
    • curl
    • fileinfo

Symfony2

Sygefor3 s'appuie sur Symfony 2.8.

MySQL

version 5.0 minimum

ElasticSearch

Sygefor3 s'appuie sur un serveur ElasticSearch qui gère l'indexation de l'ensemble des éléments.

Unoconv

La génération des PDF lors d'un publipostage est rendue possible grâce à la librairie Unoconv qui doit donc être installée sur le serveur.

  • version 0.7

Shibboleth

Sygefor3 utilise la Fédération d'identité Education-Recherche de Renater pour permettre aux stagiaires de s'inscrire, au travers du protocole Shibboleth. Il faut donc installer un Service Provider sur le serveur et le déclarer auprés de Renater :

Installation d'un SP Shibboleth

Docker


Une fois le dépôt cloné, rendez-vous dans le dossier sygefor et mettez à jour les sous-modules avec la commande : git submodule update --init

Vous pouvez ensuite utiliser docker pour lancer les services nécessaires à Sygefor3. Le docker-compose.yml contient les containers déjà configurés.

Associer les droits à l'utilisateur www-data pour pour les dossiers : app/cache et app/logs :

  • sudo chown -R www-data. app/cache/
  • sudo chown -R www-data. app/logs/

Attention à renseigner les bons paramètres dans app/config/parameters.yml. Vous pouvez remplacer :

  • database_host par mysql
  • elasticsearch_host par elasticsearch
  • mailer_host par mailcatcher

Vous pouvez associer les droits d'écriture à l'utilisateur www-data pour les répertoires suivants :

  • var/Material
  • var/Publipost
  • /tmp/sygefor dans le container

Vous pouvez ensuite exécuter la commande docker-compose up -d pour lancer les containers.

Installer docker

Installer docker-compose

Une fois les containers lancés, exécutez les commandes suivantes pour finaliser l'installation :

  • docker exec -it sygefor_shibboleth composer install
  • docker exec -it sygefor_shibboleth yarn install
  • docker exec -it sygefor_shibboleth bower install --allow-root
  • docker exec -it sygefor_shibboleth php app/console doctrine:schema:create
  • docker exec -it sygefor_shibboleth php app/console doctrine:fixtures:load
  • docker exec -it sygefor_shibboleth php app/console fos:js-routing:dump
  • docker exec -it sygefor_shibboleth gulp build:dist
  • docker exec -it sygefor_shibboleth php app/console fos:elastica:populate

Il suffit alors de se rendre sur localhost avec votre navigateur pour accéder au BO

Installation de Sygefor3

Prérequis

Le projet

  • git clone https://github.com/sygefor/sygefor.git
  • cd sygefor
  • git submodule update --init
  • composer install
    • Renseigner les paramètres symfony
  • yarn install
  • bower install
  • php app/console doctrine:database:create
  • php app/console doctrine:schema:create
  • php app/console doctrine:fixtures:load (pour générer quelques données initiales)
  • php app/console fos:js-routing:dump
  • gulp build:dist
  • php app/console fos:elastica:populate
  • php app/console server:run 127.0.0.1:8000
  • Se rendre sur localhost:8000 avec votre navigateur pour accéder au BO
  • Se connecter avec les identifiants admin/admin
  • Ajouter une entrée dans votre fichier host pour faire pointer sygefor.com vers 127.0.0.1
  • Se rendre sur sygefor.com:8000 avec votre navigateur pour accéder au FO

API

Sygefor3 intègre une API disponible dans ApiBundle. Il est possible de réserver certaines parties de l'API aux utilisateurs connectés en OAuth2 ou via Shibboleth. L'API permet notamment d'exporter les formations et les sessions de formations.

Export LHEO

Sygefor3 intègre un export LHEO des formations.

Etendre

Le coeur de Sygefor3 est intégré dans les sous-modules du projet. Ce coeur déclare des classes et des controlleurs abstraits. Vous devez étendre ces classes et controlleurs pour faire fonctionner l'application. Le AppBundle intègre ces extentions. Vous pourrez comprendre comment étendre Sygefor3 en regardant ce bundle.

Vous pouvez également adapter l'interface privée de gestion en modifiant les modèles AngularJS contenus dans le répertoire app/Resources/public/ng. Le module FrontBundle intègre une version publique et allégée de Sygefor permettant aux stagiaires de s'inscrire aux différents stages. Vous pourrez aussi retrouver un module Bilan basé sur ElasticSearch.