Mathias KLIEM Mes projets
Contactez-moi A propos
Mathias KLIEM

Kaiserstuhl Escape

Projet étudiant

Kaiserstuhl Escape

Dans le cadre de ma formation, j’ai dû réaliser pour un projet (la SAE 401) le site web d’une entreprise d’escape game. Le but principal de ce projet était de développer un backoffice complet.

Pour réaliser ce projet, j’ai utilisé de l’HTML, du CSS, du JS, du PHP et une base de données MariaDB.
Une des premières tâches que j’ai réalisée est la création de la structure de la base de données

J’ai commencé par réfléchir à tout ce que devait contenir le site web. J’ai donc fait un MCD :

Schéma du MCD de la base de données

J’ai ensuite réalisé un MLD pour décrire la structure des tables :

  • user (id_user, email, password, firstName, lastName, rights)
  • escapeGame (id_escapeGame, name, nameFR, description, descriptionFR, address, visible, price2_3Persons, price4Persons, price5Persons, price6Persons, price7Persons, price8Persons, price9Persons, price10Persons, price11Persons, price12Persons, price12PlusPersons, difficulty, difficultyFR)
  • giftCard (id_giftCard, buyingDate, type, code, usageDate, #id_giftCardAmount, #id_escapeGame, #id_user)
  • giftCardAmount qAndACat (id_qAndACat, title, titleFR, #id_escapeGame)
  • qAndAQuestion (id_qAndAQuestion, title, titleFR, answer, answerFR, #id_qAndACat) jobs (id_jobs, title, titleFR, position, positionFR, task, taskFR, strength, strengthFR, visible)
  • contactForm (id_contactForm, date, firstName, lastName, email, phone, message)
  • reviews (id_reviews, firstName, lastName, description, descriptionFR, rating, #id_escapeGame)
  • buying (#id_user, #id_escapeGame, id_buying, buyingDate, gameDate, hours, nbPlayers, buyersFirstName, buyersLastName, type)

Pour réaliser tout cela j’ai utilisé un outil en ligne https://dbconcept.tuxfamily.org.
Pour ce qui est du reste du site, mon équipe et moi-même avons réalisé un MVC.

 

Du côté client le site permet :

  • D’avoir des informations sur un escape game
  • D’acheter des escape games et des cartes cadeaux
  • De connaître les questions fréquemment posées
  • D’avoir plus d’informations sur l’entreprise
  • De candidater pour une offre d’emploi

Du côté back office, les administrateurs du site peuvent :

  • Ajouter / modifier / supprimer des escape games
  • Ajouter / supprimer des montants pour les cartes cadeaux
  • Afficher / supprimer les messages envoyés depuis le formulaire de contact
  • Ajouter / supprimer des réservations
  • Ajouter / modifier / supprimer des catégories de la FAQ
  • Ajouter / modifier / supprimer des questions de la FAQ
  • Ajouter / modifier / supprimer des offres d’emploi
  • Afficher / supprimer des avis

Le site est également disponible dans deux langues, le français et l’anglais.

Pour ce qui est de l’installation du site j’ai mis en place un script d’installation pour un serveur Linux. Il supporte plusieurs distributions :

  • RHEL 8+ et ses clones (AlmaLinux, RockyLinux, Oracle Linux)
  • Fedora 37+
  • Debian 12
  • Ubuntu 22.04+

Le script détecte automatiquement si l’utilisateur est sur une distribution compatible. Il va ensuite installer tous les paquets nécessaires. Le site demandant au minimum PHP 8.0, le script vérifie que PHP 8 est disponible dans les dépôts de la distribution. Dans le cas de RHEL 8, le script va automatiquement activer le module pour avoir PHP 8.0.

Une fois que tous les paquets nécessaires ont été installés, le script va activer les services (apache, php-fpm, mariadb) et ouvrir le pare feu si un système de pare feu est installé. Le script prend en charge ufw et firewalld.

Dans le cas où le site doit être mis à jour, le script propose aussi de mettre à jour le site en sauvegardant les fichiers importants avant d’installer la nouvelle version.

Lien vers le site web
Lien vers le dépôt GitHub