/TchouTchou

Project managing an entire station system throughout France, employee and customer side

Primary LanguagePHPMIT LicenseMIT

MKT MKT MKT MKT Website


Connue pour posséder le second plus grand chemin de fer en Europe, la France a pour moyen de transport prédominant sur son territoire le train. Disposant de 2 734 km de ligne à grande vitesse qui transporte chaque année se sont plus de 1 milliards de passagers qui transitent sur ce réseau. Pour rendre ce système fonctionnel il a donc fallu faire appel à des outils de gestion tant pour les achats des clients que pour les opérations techniques. Afin de moderniser ses services, la SNCF lance en 2021 son application de réservation : SNCF Connect. Cette dernière vient s’implanter aux côtés d’autres applications de réservation comme Trainline ou Tictactrip. Étant nous-mêmes utilisateurs de ces applications nous avons pu constater leurs défauts, leurs qualités mais également les améliorations que nous aurions aimé y apporter. Au vu de ce constat, nous avons donc cherché à proposer une solution technique à ce postulat.

Objectif

L'objet de ce projet est de réaliser un site de réservation de billets de train avec des options pour consulter le trafic. Le projet est constitué d’un site internet avec une version PC et mobile pour les clients mais aussi d’une partie pour l’entreprise afin de gérer le trafic.

Périmètre

Ce projet est réalisé par un groupe de 5 personnes d’un niveau équivalent en 2ème année du BUT informatique. Le projet n'utilisera pas de framework, ni de PWA. Le développement du projet se fait en dehors des heures de cours avec deux heures toutes les deux semaines de réunion avec notre tuteur. Le projet se déroule sur 4 mois et se termine par une soutenance de 40 minutes.

Outils et technologies utilisés

Ce projet utilise volontairement aucun framework

Contribuer au Projet

Tout d'abord choisissez entre soit fork ou clone le projet, pour commencer à développer sur le projet en local référez vous à la partie sur docker afin de mettre en place le serveur web et la base de données Oracle. Une fois le serveur local mis en place, vous pouvez setup votre base de données en suivant ces étapes. Si vous constatez un bug n'hésitez pas a créer une issue, si vous développez une nouvelle fonctionnalité ou en améliorez une, faites une pull request. De plus pour repérer les bugs vous pouvez simplement visiter notre site Tchoutchou.

Pour update le server il suift de aller sur ce lien et attendre que la page charge

Pour facilement avoir accès à toutes les branches, après avoir cloner le repo : git worktree add ../<nom dossier> <nom branche>

pour plus d'infos cliquez ici

Base de données

Un graphe de la BDD est disponible ici.

Les trajets disponibles des différents tiers sont disponibles ici :

Figma

Accès vers notre figma

Merci de garder un historique des modifications / étapes (avant de modifier une frame, veuillez la dupliquer)

Docker

Il faut évidemment avoir docker installé.


Comment installer docker ?

Web

  1. Téléchargez l'image en utilisant la commande : docker pull kmcgill88/php-oracle

  2. Pour construire le serveur, placez-vous dans le répertoire source du repo et utilisez la commande suivante :
    docker run -d -p 80:80 --mount type=bind,source=$(pwd)/web,target=/var/www/html --name=web kmcgill88/php-oracle

  3. Pour arréter et lancer le serveur pour la première fois, utilisez les commandes suivantes :
    docker stop web
    docker start web

  4. Une fois le docker construit et lancé, rendez-vous sur http://localhost/ pour accéder à votre site. Vous pouvez maintenant faire vos modifications en local et développer !

Oracle

  1. Commencez par récupérer l'image: docker pull gvenzl/oracle-xe
  2. Ensuite, lancez le container:
    docker run -it -p 1521:1521 -e ORACLE_PASSWORD=<your password> -v oracle-volume:/opt/oracle/oradata --name=DBB gvenzl/oracle-xe
  3. Une fois le container lancé, vous pouvez vous connecter à l'utilisateur system en utilisant le mot de passe utilisé lors de la création du container. Nous vous recommandons fortement de créer un utilisateur dédié pour plus de sécurité.
    De plus, nous avons utilisé un utilisateur nommé Tchou pour l'intégralité de notre site, certaines requête sql y font référence, pour éviter tout souci nous vous recommandons fortement d'utiliser le même nom d'utilisateur.
  4. Construisez la base de données à partir du fichier Backup.sql
  5. En cas de problème vous pouvez consulter directement le git du docker pour plus d’information.

Setup

  1. Clonez le projet sur votre machine locale.
  2. Pour accéder à la base de données, vous devez ajouter un fichier config_connection.php dans le répertoire /web/config.
  3. Le contenu du fichier doit être comme suit:
<?php

// Accès base de données
const BD_HOST = '<adresse_ip>';
const BD_DBNAME = '';
const BD_USER = '<nom_utilisateur>';
const BD_PWD = '<mot_de_passe>';
const BD_PORT = '<port_par_default:1521>'; 
const BD_SID = 'xe';
  1. Remplacez <adresse_ip>, <nom_utilisateur>, et <mot_de_passe> avec les informations appropriées pour votre base de données.
  2. Le port par défaut est 1521, et le SID est 'xe', mais vous pouvez le changer si nécessaire.

Remarque : Pour des raisons de sécurité, ce fichier est exclu par défaut. Vous devez donc ajouter le fichier config_connection.php et remplir les informations nécessaires pour accéder à la base de données.

Auteur

Loïc Pupier
Loïc Pupier
Remi Jara
Remi Jara
Jules Rabec
Jules Rabec
Loan Maeght
Loan Maeght
Antoine Voillot
Antoine Voillot