Ce fichier est un .md, c'est à dire qu'il est rédigé en markdown et nécéssite d'être ouvert comme tel, et non pas dans un bloc-note.
Version | Date | Auteur |
---|---|---|
1.0 | 2023.03.01 | BLUMSTEIN Thomas |
1.1 | 2023.29.03 | BLUMSTEIN Thomas |
- Php - version 7.4, threadsafe
- Composer - pas de version précise requise
- Scoop - Installation via le terminal, pas de version précise requise
- NodeJS - version 16.x
- Symfony - pas de version précise requise
Pour la mise en place du projet, plusieurs prérequis sont nécessaires à l'installation. Ils sont listés ci-dessus, et le détail de l'installation ainsi que les résolutions d'erreurs possibles se trouvent ci-dessous.
Les librairies utilisées dans le projet nécessitent une version de Php antérieure à la version 8.0.0.
- Rendez-vous sur le site de Php
- Téléchargez la version 7.4.0 ou toute autre version antérieure, en faisant bien attention à télécharger la version
threadsafe.
- Dézippez le dossier .zip téléchargé. La destination et le nom de ce dossier ne sont pas importants, mais il est conseillé de le placer dans un dossier facilement accessible.
- Ajoutez le chemin vers le dossier tout juste extrait à la variable d'environnement Path.
- Dupliquez le fichier
php.ini-development
et renommez lephp.ini
en changeant son extension. - Ouvrez php.ini avec un éditeur de texte, et décommentez les lignes :
extension_dir = "ext"
extension=pdo_sqlite
- Tapez
var
dans la barre de recherche du pc et sélectionnez l'option "Modifier les variables d'environnement système"
-
Dans la fenêtre qui s'ouvre, cliquez sur "Variables d'environnement" dans l'onglet "Paramètres système avancés" puis sur "Variables d'environnement"
-
Dans la fenêtre du bas "variable système", sélectionnez la variable Path et cliquez sur "Modifier"
-
Cliquez sur "Nouveau" pour ajouter un nouveau chemin à cette variable d'environnement, puis sur "Parcourir"
-
Sélectionnez le dossier tout juste extrait et cliquez sur "OK"
-
Validez en cliquant sur "OK" pour fermer les fenêtres une à une.
-
- Ouvrez un terminal en tapant
cmd
dans la barre de recherche du pc et tapez la commandephp -v
pour vérifier que la version de Php installée est bien antérieure à la version 8.0.0. Si ce n'est pas le cas, recommencez les étapes précédentes en téléchargeant une version antérieure à la version 8.0.0.
Si le terminal affiche "command not found", essayez de fermer le terminal et de recommencer sur un nouveau.
Nous allons ensuite avoir besoin de Composer pour installer les différentes librairies.
- Rendez-vous sur le site de Composer
- Cliquez sur le lien "Composer-Setup.exe" pour télécharger l'installer
- Conservez la configuration par défaut
- Ne pas cocher Developper Mode
- Vérifier que le chemin vers l'executable php est le bon
- Ne rien renseigner ou cocher dans la section Proxy
- Cliquer sur "Install"
- Ouvrez un terminal en tapant
cmd
dans la barre de recherche du pc et tapez la commandecomposer
pour vérifier que l'installation s'est bien déroulée. Il devrait alors apparaître ce dessin ainsi qu'une liste de commandes possibles :
Si le terminal affiche "command not found", essayez de fermer le terminal et de recommencer sur un nouveau.
- Ouvrez un terminal et tapez :
set-ExecutionPolicy RemoteSigned -scope CurrentUser
iwr -useb get.scoop.sh | iex
- Si vous obtenez : "Running the installer as administrator is disabled by default, see https://github.com/ScoopInstaller/Install#for-admin for details." tapez :
iwr -useb get.scoop.sh -outfile 'install.ps1'
.\install.ps1 -RunAsAdmin
La phase suivante concerne l’installation de NodeJS qui nous servira par la suite pour la compilation de nos ressources graphiques.
- Rendez-vous sur le site de NodeJS
- Cliquez sur le logo Windows Installer dans la section LTS pour télécharger l'installer
- Lancez le .msi téléchargé
- Le chemin d'installation n'est pas très important
- Vérifiez que le symbole à côté de "Add to PATH" est bien le même que pour les autres champs
- Il n'y a pas besoin d'installer les outils nécessaires et Chocolatey
- Ouvrez un terminal en tapant
cmd
dans la barre de recherche du pc et tapez la commandenode -v
pour vérifier que l'installation s'est bien déroulée. Il devrait alors apparaître la version de node téléchargée :
Si le terminal affiche "command not found", essayez de fermer le terminal et de recommencer sur un nouveau.
- Ouvrez un terminal et tapez :
scoop install symfony-cli
symfony local:php:list -vvv
- Vérifiez que votre version php choisie est bien surlignée, et pas une autre
- Si ce n'est pas le cas, changez la variable d'environnement de PHP en vous référent au paragraphe Php
Le code source du projet est disponible sur le dépôt Github.
- Pensez à bien vous placer sur la branche où se trouve le code vous interessant : Import-Export pour l'outil de planification ou Test-Tool pour l'outil d'ordonnancement
- Dans un terminal, déplacez vous dans le dossier du projet (par exemple
cd C:[User]\PRD
) - Changez votre version de php :
echo [votre-version-php] > .php-version
(ex :echo 7.4.0 > .php-version
)
- Dans un terminal ouvert dans le dossier du projet tapez la commande
symfony server:start
pour démarrer le serveur
Si cette erreur s'affiche:
Il faut alors installer symfony en allant sur le site Symfony
- Ajoutez le dossier d'extraction de symfony à la variable d'environnement Path si ce n'est pas fait
- Tapez la commande
symfony -V
pour vérifier que l'installation s'est déroulée sans problème (la majuscule est importante)
- Ouvrez un navigateur et tapez l'adresse inscrite dans l'encadré vert (ici http://127.0.0.1:8000)
- Si tout s'est bien déroulé, la page de connexion du projet devrait s'afficher et vous pourrez vous connecter.
Le projet est organisé en modèle Modèle Vue Contrôleur (MVC) Symfony reliant le site à une base de données et en 3 dossiers principaux
Au 29/03/2023, les versions utilisées sont les suivantes :
- PHP : v7.4.3
- Symfony : v5.4.20
- nodeJS : v18.14.0
- Scoop : v0.3.1
- Composer : v2.5.1
- Librairies Javascript
- Bootstrap : v5.1.3
- FullCalendar Scheduler : v5.11.0
- Jquery : v3.6.0
- JqueryUI : v1.13.1
- Popper : v2.10.2
- AnimEvent : v1.0.17
- LeaderLine : v1.0.7
La base de données est une base SQLITE3. Elle est située dans le dossier src/var
et est nommée database.sqlite
. Le serveur Symfony y accède sous forme d'entités qui sont situées dans le dossier src/Entity
. Chaque entité correspond à une table de la base de données. (ex : src/Entity/Appointment.php
correspond à la table Appointment
de la base de données et permet de générer des objets Appointment
qui seront utilisés dans le code du projet et qui correpondent aux entrées de la table.)
La base de données est organisée suivant le modèle relationnel suivant :
La table SimulationInfos
n'est utilisée que dans l'outil de simulation et n'existe pas dans la base de données de l'outil de planification.
Le frontend est composé de 2 dossiers principaux :
public
: contient les fichiers statiques (css, js, images, etc.) chacun dans un sous-dossier séparé.templates
: contient les fichiers twig (fichiers html utilisés par symfony) qui seront affichés par le navigateur.
Les fichiers utilisés par le serveur Symfony sont situés dans le dossier src et organisés en 3 sous- dossiers :
Controller
: contient les fichiers php qui gèrent les requêtes du navigateur et qui renvoient les pages twig.Entity
: contient les fichiers php qui correspondent aux entités de la base de données.Repository
: contient les fichiers php qui permettent de récupérer les données de la base de données.