EASYCOWORK - Toulon

Inscription

Soyez les bienvenus sur EASYCOWORK réservation de salle de réunion en ligne. Vous pouvez reserver facilement vos salle de réunion sur toulon pour vos collaborateurs.

Consigne

Vous décidez de créer un site permettant à vos utilisateurs de réserver une salle pour un événement ou autre.

Pour commencer, à l’aide de phpMyAdmin, créez votre base de données nommée “reservationsalles”.
Dans cette base de donnée, créez une table “utilisateurs” qui contient les champs suivants :

  • - id, int, clé primaire et Auto Incrément
  • - login, varchar de taille 255
  • - password, varchar de taille 25

Créez ensuite une table “reservations” qui contient les champs suivants :

  • - id, int, clé primaire et Auto Incrément
  • - titre, varchar de taille 255
  • - description, TEXT
  • - debut, datetime
  • - fin, datetime
  • - id_utilisateur, int

Maintenant que la base de données est prête, vous allez avoir besoin de créer différentes pages :

  • - Une page d’accueil qui présente votre site (index.php)
  • - Une page contenant un formulaire d’inscription (inscription.php)

Le formulaire doit contenir l’ensemble des champs présents dans la table “utilisateurs” (sauf “id”) ainsi qu’une confirmation de mot de passe. Dès qu’un utilisateur remplit ce formulaire, les données sont insérées dans la base de données et l’utilisateur est redirigé vers la page de connexion.

Le formulaire doit avoir deux <inputs> nommés : “login” et “password”. Lorsque le formulaire est validé, s’il existe un utilisateur en base de donnée correspondant à ces informations, alors l’utilisateur devient connecté et une (ou plusieurs) variables de session ($_SESSION) sont créées.

Une page permettant de modifier son profil (profil.php) :

Cette page possède un formulaire permettant à l’utilisateur de modifier son login et son mot de passe. Le login actuel de l’utilisateur doit être récupéré et affiché dans le champ de modification afin de savoir ce que l’on modifie. Le mot de passe ne doit pas s’afficher “en clair” ni être récupéré depuis la base de données. Il faudra le retaper et le re confirmer si on veut pouvoir modifier les informations de profil.

Une page permettant de voir le planning de la salle (planning.php) :

Sur cette page on voit le planning de la semaine avec l’ensemble des réservations effectuées. Le planning se présente sous la forme d’un tableau avec les jours de la semaine en cours.

Dans ce tableau, il y a en colonne les jours et les horaires en ligne. Sur chaque réservation, il est écrit le nom de la personne ayant réservé la salle ainsi que le titre. Exemple :

Si un utilisateur clique sur une réservation dans le tableau, il est dirigé sur la page dédiée ci-dessous avec les détails de la réservation (reservation.php). ATTENTION : Les réservations se font du lundi au vendredi et de 8h à 19h.

Les créneaux ont une durée fixe d’une heure.

Une page permettant de voir une réservation (reservation.php?id=) :

Cette page affiche le nom du créateur, le titre de l’événement, la description, l’heure de début et de fin.

Pour savoir quel évènement afficher, vous devez récupérer l’id de l’événement en utilisant la méthode get. (ex : http://localhost/reservationsalles/reservation.php?id=1) Seules les utilisateurs connectés peuvent accéder aux événements.

Un formulaire de réservation de salle (reservation-form.php) :

Ce formulaire permet de créer une réservation. Contient les informations suivantes : titre, description, date de début, date de fin.

Votre site doit avoir une structure html correcte et un design soigné à l’aide de css. Vous avez la liberté de choisir un thème à l’image de votre groupe.

Le projet doit être mis à la racine de votre Plesk, en faisant en sorte que nous arrivions directement sur votre page principale (nommée index.php). Un lien vers votre repos github associé au projet doit être présent sur votre site. Le projet est à rendre sur https://github.com/prenom-nom/reservation-salles Pensez à donner les droits sur le répertoire à deepthoughtlaplateforme ! Pensez également à rendre votre base de données, avec la requête de création de celle-ci !


Création de la base de donnée et des tables


            -- phpMyAdmin SQL Dump
-- version 5.2.0
-- https://www.phpmyadmin.net/
--
-- Host: localhost:3306
-- Generation Time: Jun 12, 2024 at 08:54 PM
-- Server version: 8.0.30
-- PHP Version: 8.3.7

SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;

--
-- Database: `reservationsalles`
--

-- --------------------------------------------------------

--
-- Table structure for table `reservations`
--

CREATE TABLE `reservations` (
  `id` int UNSIGNED NOT NULL,
  `titre` varchar(255) COLLATE utf8mb4_general_ci NOT NULL,
  `description` longtext COLLATE utf8mb4_general_ci,
  `debut` datetime DEFAULT NULL,
  `fin` datetime DEFAULT NULL,
  `id_utilisateur` int DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `reservations`
--

INSERT INTO `reservations` (`id`, `titre`, `description`, `debut`, `fin`, `id_utilisateur`) VALUES
(35, 'Formation Informatique', 'La plateforme Toulon', '2024-01-12 09:00:00', '2024-01-12 16:00:00', 1),
(36, 'Formation TSSR', 'La plateforme Toulon', '2024-01-11 17:00:00', '2024-01-11 18:00:00', 1),
(38, 'Formation DWWM', 'La plateforme Toulon', '2024-01-12 17:00:00', '2024-01-12 18:00:00', 1),
(39, 'Formation DWWM', 'La plateforme Toulon', '2024-01-15 09:00:00', '2024-01-15 13:00:00', 1),
(40, 'Présentaion Projet', 'La plateforme Toulon', '2024-01-17 12:00:00', '2024-01-17 13:00:00', 1),
(41, 'Réunion Information', 'La plateforme Toulon', '2024-01-18 14:00:00', '2024-01-18 15:00:00', 1),
(42, 'Formation CDA', 'La plateforme Toulon', '2024-02-23 14:00:00', '2024-02-23 15:00:00', 1),
(43, 'Formation DWWM', 'La plateforme Toulon', '2024-03-19 15:00:00', '2024-03-19 16:00:00', 1);

-- --------------------------------------------------------

--
-- Table structure for table `utilisateurs`
--

CREATE TABLE `utilisateurs` (
  `id` int NOT NULL,
  `login` varchar(100) COLLATE utf8mb4_general_ci NOT NULL,
  `password` varchar(25) COLLATE utf8mb4_general_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--
-- Dumping data for table `utilisateurs`
--

INSERT INTO `utilisateurs` (`id`, `login`, `password`) VALUES
(1, 'administrateur', 'Administrateur83!'),
(2, 'utilisateur01', 'Utilisateur01!');

--
-- Indexes for dumped tables
--

--
-- Indexes for table `reservations`
--
ALTER TABLE `reservations`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `id_UNIQUE` (`id`),
  ADD KEY `id_utilisateur_idx` (`id_utilisateur`);

--
-- Indexes for table `utilisateurs`
--
ALTER TABLE `utilisateurs`
  ADD PRIMARY KEY (`id`),
  ADD UNIQUE KEY `login_UNIQUE` (`login`),
  ADD UNIQUE KEY `id_UNIQUE` (`id`);

--
-- AUTO_INCREMENT for dumped tables
--

--
-- AUTO_INCREMENT for table `reservations`
--
ALTER TABLE `reservations`
  MODIFY `id` int UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=44;

--
-- AUTO_INCREMENT for table `utilisateurs`
--
ALTER TABLE `utilisateurs`
  MODIFY `id` int NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;

--
-- Constraints for dumped tables
--

--
-- Constraints for table `reservations`
--
ALTER TABLE `reservations`
  ADD CONSTRAINT `id_utilisateur` FOREIGN KEY (`id_utilisateur`) REFERENCES `utilisateurs` (`id`);
COMMIT;

/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
1        
        

            Création des utilisateur : administrateur et utilisateur01 pour les testes:
                INSERT INTO `utilisateurs` ( `login`, `password`) VALUES
                ('administrateur', 'Administrateur83!'),
                ('utilisateur01', 'Utilisateur01!'),

        

Inscription possible sur la page reservation de salles La Plateforme