```javascript const express = require('express'); const path = require('path'); const app = express(); const PORT = 3000; // Middleware app.use(express.static(path.join(__dirname))); app.use(express.json()); app.use(express.urlencoded({ extended: true })); // Stockage en mémoire (à remplacer par une base de données) let users = []; let appointments = []; // Routes app.get('/', (req, res) => { res.sendFile(path.join(__dirname, 'index.html')); }); app.get('/register', (req, res) => { res.sendFile(path.join(__dirname, 'register.html')); }); app.get('/login', (req, res) => { res.sendFile(path.join(__dirname, 'login.html')); }); app.get('/dashboard', (req, res) => { res.sendFile(path.join(__dirname, 'dashboard.html')); }); // API endpoints app.post('/api/register', (req, res) => { const { name, email, password } = req.body; // Vérifier si l'utilisateur existe déjà const existingUser = users.find(u => u.email === email); if (existingUser) { return res.status(400).json({ error: 'Cet email est déjà utilisé' }); } // Créer un nouvel utilisateur const newUser = { name, email, password }; users.push(newUser); res.status(201).json({ message: 'Inscription réussie', user: newUser }); }); app.post('/api/login', (req, res) => { const { email, password } = req.body; // Vérifier les identifiants const user = users.find(u => u.email === email && u.password === password); if (!user) { return res.status(401).json({ error: 'Identifiants incorrects' }); } res.json({ message: 'Connexion réussie', user }); }); app.post('/api/appointments', (req, res) => { const { userId, laboratory, date, time, analysis } = req.body; // Créer un nouveau rendez-vous const newAppointment = { id: Date.now(), userId, laboratory, date, time, analysis, status: 'confirmé' }; appointments.push(newAppointment); res.status(201).json({ message: 'Rendez-vous pris avec succès', appointment: newAppointment }); }); app.get('/api/appointments/:userId', (req, res) => { const { userId } = req.params; const userAppointments = appointments.filter(a => a.userId === userId); res.json(userAppointments); }); app.delete('/api/appointments/:id', (req, res) => { const { id } = req.params; const appointmentId = parseInt(id); appointments = appointments.filter(a => a.id !== appointmentId); res.json({ message: 'Rendez-vous annulé' }); }); // Démarrer le serveur app.listen(PORT, () => { console.log(`Serveur démarré sur http://localhost:${PORT}`); }); ```