# 🚀 Guide d'Installation Complet - Zarreda

Ce guide vous explique comment configurer et lancer le projet **Zarreda** étape par étape, incluant la gestion automatique de la base de données.

---

## 📋 1. Prérequis

Assurez-vous d'avoir installé :
-   **Node.js** (v18+) : [Télécharger ici](https://nodejs.org/)
-   **MySQL** (XAMPP est recommandé pour Windows) : [Télécharger XAMPP](https://www.apachefriends.org/)

---

## 🛠️ 2. Installation des Dépendances

Ouvrez un terminal à la racine du projet `zarreda`.

### ⚡ Backend (Serveur)
```bash
cd server
npm install
```

### 🎨 Frontend (Interface)
Ouvrez un autre terminal :
```bash
cd frontend
npm install
```

---

## 🗄️ 3. Gestion de la Base de Données

Le projet est conçu pour être **autonome**. Vous n'avez aucune commande SQL à taper manuellement.

### 3.1 Configuration
1. Démarrez **MySQL** (via XAMPP Control Panel).
2. Ouvrez le fichier `server/.env` et vérifiez vos accès :
   ```env
   DB_HOST=localhost
   DB_USER=root
   DB_PASSWORD=
   DB_NAME=zarreda
   PORT=5000
   ```

### 3.2 Processus Automatique
Dès que vous lancez le serveur (`node server.js`), le code exécute les actions suivantes :
1. **Création de la Base** : Si `zarreda` n'existe pas, elle est créée.
2. **Création des Tables** :
   - `stock` : Gère les quantités de produits (Poulet, Basstila, etc.).
   - `orders` : Stocke les informations clients (Nom, Adresse, Téléphone).
   - `order_items` : Relie les plats commandés à chaque commande.
3. **Initialisation** : Les stocks par défaut sont insérés automatiquement lors du tout premier lancement.

---

## 🚀 4. Lancement de l'Application

Vous devez avoir **DEUX terminaux** actifs.

### 🚩 Terminal 1 : Backend
```bash
cd server
node server.js
```
*Attendez de voir : "Serveur démarré sur le port 5000".*

### 🚩 Terminal 2 : Frontend
```bash
cd frontend
npm run dev
```
*Ouvrez l'adresse affichée (généralement `http://localhost:5173`).*

---

## 🧹 5. Astuces et Dépannage

### Port Déjà Utilisé (EADDRINUSE)
Si le port 5000 est bloqué sur Windows, lancez cette commande en PowerShell :
```powershell
Stop-Process -Id (Get-NetTCPConnection -LocalPort 5000).OwningProcess -Force
```

---

## 🖥️ 6. Accès direct
- **Client** : `http://localhost:5173`
- **Admin** : `http://localhost:5173/admin/dashboard`
