0% ont trouvé ce document utile (0 vote)
6 vues4 pages

Application PHP de gestion de tâches

Transféré par

wailsef288
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
6 vues4 pages

Application PHP de gestion de tâches

Transféré par

wailsef288
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Examen final : Technologie Web

Filière : Génie des réseaux et des Systèmes de Télécommunication


Durée :3h

1. Application de gestion collaborative des tâches :


Vous devez développer une application PHP orientée objet permettant à plusieurs utilisateurs
de créer, partager et gérer des tâches.
L'application doit inclure :
• Gestion des utilisateurs ;
• Création, modification et suppression de tâches ;
• Partage de tâches entre plusieurs utilisateurs ;
• Affichage des tâches par utilisateur ;
• Filtres (statut, date) ;

2. BASE DE DONNÉES (4 points):


Créez une base todolist avec 3 tables :

Figure 1:Schéma relationnel

1
Script SQL
-- Table des utilisateurs
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
nom VARCHAR(100) NOT NULL,
email VARCHAR(100) NOT NULL UNIQUE
);
-- Table des tâches
CREATE TABLE taches (
id INT AUTO_INCREMENT PRIMARY KEY,
titre VARCHAR(255) NOT NULL,
description TEXT,
statut ENUM('à faire', 'en cours', 'terminée') DEFAULT 'à faire',
date_limite DATE
);
-- Table d'association user ↔ tâche
CREATE TABLE affectations (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
tache_id INT NOT NULL,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
FOREIGN KEY (tache_id) REFERENCES taches(id) ON DELETE CASCADE,
UNIQUE(user_id, tache_id) -- Évite les doublons d'affectation
);

3. CLASSES (POO) (6 points)


Dans le dossier models/, créez les 3 classes suivantes :
Classe User
• Attributs privés : id, nom, email

2
• Méthodes (public): constructeur, getters/setters, __toString()
Classe Tache
• Attributs privés : id, titre, description, statut, dateLimite
• Méthodes (public): constructeur, getters/setters, afficher() → retourne une description
lisible
Classe Affectation
• Attributs privés : id, userId, tacheId
• Méthodes (public) : constructeur, getters/setters

4. CLASSES MANAGER (6 points)


Dans le dossier managers/, créez :
[Link] (1 pt)
• une classe qui fournit une seule instance de connexion PDO à la base de données,
réutilisable dans toute l’application.
[Link] (2 pts)
• ajouter(User $u) : ajoute un nouvel utilisateur en base
• getById(int $id) : récupère un utilisateur par son identifiant
[Link] (2 pts)
• ajouter (Tache $t) : ajoute une nouvelle tâche
• modifier (Tache $t) : modifie une tâche existante
• supprimer (int $id) : supprime une tâche par son identifiant
• getAll() : retourne l’ensemble des tâches
[Link] (1 pt)
• affecter(int $userId, int $tacheId) : associe une tâche à un utilisateur
• getTachesByUser(int $userId) : liste les tâches d’un utilisateur
• getUsersByTache(int $tacheId) : liste les utilisateurs associés à une tâche
Toutes les requêtes doivent être préparées avec prepare() et bindValue() ou bindParam().

5. Implémentation (4 points)
Dans [Link], montrez l’utilisation des classes avec les étapes suivantes :
1. Créez 2 utilisateurs

3
2. Créez 3 tâches
3. Affectez des tâches aux utilisateurs
4. Modifiez le statut d’une tâche
5. Affichez les tâches d’un utilisateur
Vous pouvez utiliser du HTML simple (<ul>, <table>) pour présenter les résultats.
Créer un répertoire qui porte votre nom (sans espace) dans le WWW (ou htdocs pour xampp) et
enregistrer tout le travail dans ce répertoire.

Vous aimerez peut-être aussi