Commit 5c773daa authored by Mikael Salson's avatar Mikael Salson
Browse files

Merge branch 'david'

parents 2a869a41 173b8d85
......@@ -24,4 +24,6 @@ upload/*
*.tex
*.fdb_latexmk
/doc/user/manual.html
/demo
\ No newline at end of file
/demo
/docker/upload/*
/docker/database
# INSTALLATION D'ALECSIA
## Installation avec Docker
Ajoutez éventuellement des comptes et mots de passe dans le fichier
`docker/alecsia/conf/passwords.yml`. Ces comptes doivent soit correspondre à
des comptes enseignants (et doivent donc être présents dans le teacherbook qui
est initialisé avec le fichier SQL `docker/dump.sql`) soit correspondre à des
comptes étudiants (pour l'instant il n'y a pas la possibilité de les créer
automatiquement il faut les créer à la main une fois le teacherbook installé).
Éditez éventuellement les volumes pour les mettre à l'endroit qui vous
convient et faites en sorte que les répertoires de logs et d'upload soit
accessibles en écriture par tout le monde.
Une fois cette configuration faite on peut lancer les conteneurs en se rendant
dans le répertoire `docker`, puis :
```
docker-compose up -d
```
Then the Alecsia web application should be available at:
http://localhost:8080/alecsia/web/app_dev.php (with usernames/passwords as set
in `passwords.yml`.
The teacherbook (used by Alecsia) is accessible through: http://localhost:8080/teacherbook/ (for instance: http://localhost:8080/teacherbook/teacher/hopper should return the user Grace Hopper).
## Installation sans Docker
Télécharger Alecsia ne suffit pas : ce dossier n'est en effet pas fourni avec l'ensemble
des composants permettant de faire fonctionner l'application. Ces fichiers, les "vendors"
, sont des plug-ins qu'il ne serait pas judicieux d'inclure dans un dépôt git.
## Logiciels pré-requis
### Logiciels pré-requis
Par ailleurs Alecsia a certains pré-requis technologiques :
- PHP 5.5+. Alecsia ne fonctionne pas avec les versions récentes de PHP (par ex. PHP 7)
......@@ -20,7 +47,7 @@ Par ailleurs Alecsia a certains pré-requis technologiques :
Dans le cas où vous utilisez un système basé sur Debian/Ubuntu vous pouvez
essayer (à vos risques et périls) le script `server_install.sh`.
### Script d'installation du serveur
#### Script d'installation du serveur
Durant l'installation, il vous faudra rentrer un mot de passe pour
l'administrateur de la base de données. C'est celui-là qui vous sera utile
......@@ -28,7 +55,7 @@ pour que PhpMyAdmin puisse s'y connecter.
La connexion à PhpMyAdmin doit être possible depuis l'adresse `http://localhost/phpmyadmin`.
## Installation d'Alecsia
### Installation d'Alecsia
De plus, une phase de configuration est nécessaire pour faire fonctionner Alecsia.
Le présent document donne donc une marche à suivre afin de parvenir à obtenir une copie
......@@ -36,7 +63,7 @@ d'Alecsia exécutable sur votre machine.
Mettez-vous dans un répertoire de travail.
### Installation du teacherbook
#### Installation du teacherbook
Alecsia repose sur une liste des enseignants connus afin de savoir si la
personne qui vient de se connecter est enseignante ou étudiante.
......@@ -52,7 +79,7 @@ composer install
```
pour installer les composants nécessaires à l'application.
### Configurer le teacherbook
#### Configurer le teacherbook
Le fichier `config.php.example` contient un exemple de fichier de
configuration. Copiez-le et renommez-le en `config.php` et modifiez les
......@@ -67,9 +94,9 @@ Peuplez la base de données avec le fichier `dump.sql` (il est par exemple
possible d'importer des données SQL depuis PhpMyAdmin, sinon cela peut être
fait en ligne de commande).
### Se conecter à son teacherbook
#### Se conecter à son teacherbook
## I. TÉLÉCHARGEMENT DES VENDORS
### I. TÉLÉCHARGEMENT DES VENDORS
> Symfony utilise composer. Lancer 'composer install' à la racine.
Il téléchargera les vendors : cela devrait prendre quelques minutes.
......@@ -77,7 +104,7 @@ fait en ligne de commande).
> Vérifiez qu'un dossier "vendor" a été créé à la racine du dossier Alecsia.
## II. CONFIGURATION
### II. CONFIGURATION
> Tentez de lancer http://<chemin_vers_alecsia>/web/config.php
Ce fichier a pour but de tester si la configuration du serveur est correcte.
......@@ -103,7 +130,7 @@ fait en ligne de commande).
> Le répertoire où les travaux d'étudiants seront uploadés est déterminé par le chemin spécifié dans le fichier `app/config/parameters.yml` sous la variable `alecsia.upload_dir`. Ce répertoire doit être accessible en écriture par le serveur web.
## III. CRÉATION DE LA STRUCTURE DE BDD
### III. CRÉATION DE LA STRUCTURE DE BDD
> Exécutez 'app/console doctrine:schema:create'
Si tout se passe bien, la commande remplira la base de données avec les
......@@ -112,7 +139,7 @@ fait en ligne de commande).
> Si vous venez d'une précédente installation de Alecsia, il s'agira alors
de lancer 'app/console doctrine:schema:update'.
## IV. TEACHER BOOK
### IV. TEACHER BOOK
> Installer le teacher book (récupérer l'application sur le dépôt https://git.framasoft.org/mikaels/teacherbook)
......@@ -121,7 +148,7 @@ fait en ligne de commande).
> Modifier la valeur de la variable de configuration alecsia.lille1.teacherbook
dans le fichier parameters.yml
## V. PHPUNIT
### V. PHPUNIT
> Le lancement des tests unitaires nécessite l'installation de phpunit
......@@ -132,23 +159,23 @@ sudo pear install pear.phpunit.de/PHPUnit
> Ensuite on peut tranquillement faire à la racine un
phpunit -c app/
## VI. Déployer l'application
### VI. Déployer l'application
Il devrait être nécessaire de faire un :
```
app/console assets:install
```
## VII. ACCÉDER À L'APPLICATION
### VII. ACCÉDER À L'APPLICATION
Il suffit d'accéder au fichier `web/app.php` (pour la version production) ou à `web/app_dev.php` (pour la version développement).
Attention la version production nécessite l'accès au SSO/CAS de Lille 1 alors que pour la version développement l'authentification ne se fait que par un fichier (pour plus de détail voir la partie « Authentification ») du fichier [doc/dev.org](doc/dev.org).
## QUE FAIRE SI ALECSIA NE MARCHE PLUS APRES UN PULL
### QUE FAIRE SI ALECSIA NE MARCHE PLUS APRES UN PULL
> Lancez le script 'composer update'
## APRÈS UNE MISE À JOUR DE SYMFONY
### APRÈS UNE MISE À JOUR DE SYMFONY
```
php ./vendor/sensio/distribution-bundle/Sensio/Bundle/DistributionBundle/Resources/bin/build_bootstrap.php
......
......@@ -75,30 +75,30 @@
},
{
"name": "doctrine/annotations",
"version": "v1.6.0",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/annotations.git",
"reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5"
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
"reference": "c7f2050c68a9ab0bdb0f98567ec08d80ea7d24d5",
"url": "https://api.github.com/repos/doctrine/annotations/zipball/54cacc9b81758b14e3ce750f205a393d52339e97",
"reference": "54cacc9b81758b14e3ce750f205a393d52339e97",
"shasum": ""
},
"require": {
"doctrine/lexer": "1.*",
"php": "^7.1"
"php": "^5.6 || ^7.0"
},
"require-dev": {
"doctrine/cache": "1.*",
"phpunit/phpunit": "^6.4"
"phpunit/phpunit": "^5.7"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.6.x-dev"
"dev-master": "1.4.x-dev"
}
},
"autoload": {
......@@ -139,42 +139,37 @@
"docblock",
"parser"
],
"time": "2017-12-06T07:11:42+00:00"
"time": "2017-02-24T16:22:25+00:00"
},
{
"name": "doctrine/cache",
"version": "v1.8.0",
"version": "v1.6.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
"reference": "d768d58baee9a4862ca783840eca1b9add7a7f57"
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/cache/zipball/d768d58baee9a4862ca783840eca1b9add7a7f57",
"reference": "d768d58baee9a4862ca783840eca1b9add7a7f57",
"url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
"reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
"shasum": ""
},
"require": {
"php": "~7.1"
"php": "~5.5|~7.0"
},
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
"require-dev": {
"alcaeus/mongo-php-adapter": "^1.1",
"doctrine/coding-standard": "^4.0",
"mongodb/mongodb": "^1.1",
"phpunit/phpunit": "^7.0",
"predis/predis": "~1.0"
},
"suggest": {
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
"phpunit/phpunit": "~4.8|~5.0",
"predis/predis": "~1.0",
"satooshi/php-coveralls": "~0.6"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.8.x-dev"
"dev-master": "1.6.x-dev"
}
},
"autoload": {
......@@ -209,29 +204,29 @@
}
],
"description": "Caching library offering an object-oriented API for many cache backends",
"homepage": "https://www.doctrine-project.org",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"cache",
"caching"
],
"time": "2018-08-21T18:01:43+00:00"
"time": "2017-07-22T12:49:21+00:00"
},
{
"name": "doctrine/collections",
"version": "v1.5.0",
"version": "v1.4.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/collections.git",
"reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf"
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/collections/zipball/a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
"reference": "a01ee38fcd999f34d9bfbcee59dbda5105449cbf",
"url": "https://api.github.com/repos/doctrine/collections/zipball/1a4fb7e902202c33cce8c55989b945612943c2ba",
"reference": "1a4fb7e902202c33cce8c55989b945612943c2ba",
"shasum": ""
},
"require": {
"php": "^7.1"
"php": "^5.6 || ^7.0"
},
"require-dev": {
"doctrine/coding-standard": "~0.1@dev",
......@@ -281,43 +276,37 @@
"collections",
"iterator"
],
"time": "2017-07-22T10:37:32+00:00"
"time": "2017-01-03T10:49:41+00:00"
},
{
"name": "doctrine/common",
"version": "v2.10.0",
"version": "v2.7.3",
"source": {
"type": "git",
"url": "https://github.com/doctrine/common.git",
"reference": "30e33f60f64deec87df728c02b107f82cdafad9d"
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/common/zipball/30e33f60f64deec87df728c02b107f82cdafad9d",
"reference": "30e33f60f64deec87df728c02b107f82cdafad9d",
"url": "https://api.github.com/repos/doctrine/common/zipball/4acb8f89626baafede6ee5475bc5844096eba8a9",
"reference": "4acb8f89626baafede6ee5475bc5844096eba8a9",
"shasum": ""
},
"require": {
"doctrine/annotations": "^1.0",
"doctrine/cache": "^1.0",
"doctrine/collections": "^1.0",
"doctrine/event-manager": "^1.0",
"doctrine/inflector": "^1.0",
"doctrine/lexer": "^1.0",
"doctrine/persistence": "^1.1",
"doctrine/reflection": "^1.0",
"php": "^7.1"
"doctrine/annotations": "1.*",
"doctrine/cache": "1.*",
"doctrine/collections": "1.*",
"doctrine/inflector": "1.*",
"doctrine/lexer": "1.*",
"php": "~5.6|~7.0"
},
"require-dev": {
"doctrine/coding-standard": "^1.0",
"phpunit/phpunit": "^6.3",
"squizlabs/php_codesniffer": "^3.0",
"symfony/phpunit-bridge": "^4.0.5"
"phpunit/phpunit": "^5.4.6"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.10.x-dev"
"dev-master": "2.7.x-dev"
}
},
"autoload": {
......@@ -349,49 +338,46 @@
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "PHP Doctrine Common project is a library that provides additional functionality that other Doctrine projects depend on such as better reflection support, persistence interfaces, proxies, event system and much more.",
"homepage": "https://www.doctrine-project.org/projects/common.html",
"description": "Common Library for Doctrine projects",
"homepage": "http://www.doctrine-project.org",
"keywords": [
"common",
"doctrine",
"php"
"annotations",
"collections",
"eventmanager",
"persistence",
"spl"
],
"time": "2018-11-21T01:24:55+00:00"
"time": "2017-07-22T08:35:12+00:00"
},
{
"name": "doctrine/data-fixtures",
"version": "v1.3.1",
"version": "v1.2.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/data-fixtures.git",
"reference": "3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a"
"reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a",
"reference": "3a1e2c3c600e615a2dffe56d4ca0875cc5233e0a",
"url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e",
"reference": "17fa5bfe6ff52e35cb3d9ec37c934a2f4bd1fa2e",
"shasum": ""
},
"require": {
"doctrine/common": "~2.2",
"php": "^7.1"
"php": "^5.6 || ^7.0"
},
"conflict": {
"doctrine/phpcr-odm": "<1.3.0"
"doctrine/orm": "< 2.4"
},
"require-dev": {
"doctrine/dbal": "^2.5.4",
"doctrine/orm": "^2.5.4",
"phpunit/phpunit": "^7.0"
"phpunit/phpunit": "^5.4.6"
},
"suggest": {
"alcaeus/mongo-php-adapter": "For using MongoDB ODM with PHP 7",
"doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
"doctrine/orm": "For loading ORM fixtures",
"doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
......@@ -403,8 +389,8 @@
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\DataFixtures\\": "lib/Doctrine/Common/DataFixtures"
"psr-0": {
"Doctrine\\Common\\DataFixtures": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
......@@ -422,7 +408,7 @@
"keywords": [
"database"
],
"time": "2018-03-20T09:06:36+00:00"
"time": "2016-09-20T10:07:57+00:00"
},
{
"name": "doctrine/dbal",
......@@ -619,109 +605,35 @@
],
"time": "2013-09-05T11:23:37+00:00"
},
{
"name": "doctrine/event-manager",
"version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/event-manager.git",
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/a520bc093a0170feeb6b14e9d83f3a14452e64b3",
"reference": "a520bc093a0170feeb6b14e9d83f3a14452e64b3",
"shasum": ""
},
"require": {
"php": "^7.1"
},
"conflict": {
"doctrine/common": "<2.9@dev"
},
"require-dev": {
"doctrine/coding-standard": "^4.0",
"phpunit/phpunit": "^7.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\": "lib/Doctrine/Common"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Roman Borschel",
"email": "roman@code-factory.org"
},
{
"name": "Benjamin Eberlei",
"email": "kontakt@beberlei.de"
},
{
"name": "Guilherme Blanco",
"email": "guilhermeblanco@gmail.com"
},
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com"
},
{
"name": "Johannes Schmitt",
"email": "schmittjoh@gmail.com"
},
{
"name": "Marco Pivetta",
"email": "ocramius@gmail.com"
}
],
"description": "Doctrine Event Manager component",
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
"keywords": [
"event",
"eventdispatcher",
"eventmanager"
],
"time": "2018-06-11T11:59:03+00:00"
},
{
"name": "doctrine/inflector",
"version": "v1.3.0",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/inflector.git",
"reference": "5527a48b7313d15261292c149e55e26eae771b0a"
"reference": "90b2128806bfde671b6952ab8bea493942c1fdae"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/5527a48b7313d15261292c149e55e26eae771b0a",
"reference": "5527a48b7313d15261292c149e55e26eae771b0a",
"url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae",
"reference": "90b2128806bfde671b6952ab8bea493942c1fdae",
"shasum": ""
},
"require": {
"php": "^7.1"
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "^6.2"
"phpunit/phpunit": "4.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.3.x-dev"
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
"Doctrine\\Common\\Inflector\\": "lib/Doctrine/Common/Inflector"
"psr-0": {
"Doctrine\\Common\\Inflector\\": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
......@@ -758,36 +670,36 @@
"singularize",
"string"
],
"time": "2018-01-09T20:05:19+00:00"
"time": "2015-11-06T14:35:42+00:00"
},
{
"name": "doctrine/instantiator",
"version": "1.1.0",
"version": "1.0.5",
"source": {
"type": "git",
"url": "https://github.com/doctrine/instantiator.git",
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda"
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"reference": "185b8868aa9bf7159f5f953ed5afb2d7fcdc3bda",
"url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
"reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
"shasum": ""
},
"require": {
"php": "^7.1"
"php": ">=5.3,<8.0-DEV"
},
"require-dev": {
"athletic/athletic": "~0.1.8",
"ext-pdo": "*",
"ext-phar": "*",
"phpunit/phpunit": "^6.2.3",
"squizlabs/php_codesniffer": "^3.0.2"
"phpunit/phpunit": "~4.0",
"squizlabs/php_codesniffer": "~2.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.2.x-dev"
"dev-master": "1.0.x-dev"
}
},
"autoload": {
......@@ -812,25 +724,28 @@
"constructor",
"instantiate"
],
"time": "2017-07-22T11:58:36+00:00"
"time": "2015-06-14T21:17:01+00:00"
},
{
"name": "doctrine/lexer",
"version": "v1.0.1",
"version": "1.0.2",
"source": {
"type": "git",
"url": "https://github.com/doctrine/lexer.git",
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
"reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
"url": "https://api.github.com/repos/doctrine/lexer/zipball/1febd6c3ef84253d7c815bed85fc622ad207a9f8",
"reference": "1febd6c3ef84253d7c815bed85fc622ad207a9f8",
"shasum": ""
},
"require": {
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "^4.5"
},
"type": "library",
"extra": {
"branch-alias": {
......@@ -838,8 +753,8 @@
}
},
"autoload": {
"psr-0": {
"Doctrine\\Common\\Lexer\\": "lib/"
"psr-4": {
"Doctrine\\Common\\Lexer\\": "lib/Doctrine/Common/Lexer"
}
},
"notification-url": "https://packagist.org/downloads/",
......@@ -860,13 +775,16 @@
"email": "schmittjoh@gmail.com"
}
],
"description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
"homepage": "http://www.doctrine-project.org",
"description": "PHP Doctrine Lexer parser library that can be used in Top-Down, Recursive Descent Parsers.",
"homepage": "https://www.doctrine-project.org/projects/lexer.html",
"keywords": [
"annotations",
"docblock",
"lexer",
"parser"
"parser",
"php"
],
"time": "2014-09-09T13:34:57+00:00"
"time": "2019-06-08T11:03:04+00:00"
},
{
"name": "doctrine/orm",
......@@ -941,175 +859,18 @@
],
"time": "2015-08-31T13:19:01+00:00"
},
{
"name": "doctrine/persistence",
"version": "v1.1.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/persistence.git",
"reference": "c0f1c17602afc18b4cbd8e1c8125f264c9cf7d38"
},
"dist": {
"type": "zip",
"url": "h