# 🚀 Démarrage MVP Veza - Guide Complet

**Date** : 2025-01-16

---

## ✅ État Actuel

Les services sont **déjà démarrés** d'après les logs :
- ✅ **Backend** : En cours d'exécution (logs dans `backend.log`)
- ✅ **Frontend** : En cours d'exécution sur http://localhost:5173

---

## 🔐 Identifiants de Test

### Compte Utilisateur Principal

```
📧 Email    : test@veza.app
👤 Username : testuser
🔑 Password : test123
```

### Comment se connecter

1. **Ouvrir votre navigateur** : http://localhost:5173
2. **Aller sur la page de login** : http://localhost:5173/login
3. **Entrer les identifiants** :
   - Email : `test@veza.app`
   - Password : `test123`
4. **Cliquer sur "Se connecter"**

---

## 🌐 URLs des Services

### Frontend (React/Vite)
- **URL principale** : http://localhost:5173
- **HMR activé** : Hot Module Replacement pour le développement

### Backend (Go/Gin)
- **URL API** : http://localhost:8080
- **Base API** : http://localhost:8080/api/v1
- **Health check** : http://localhost:8080/api/v1/health

---

## 🛠️ Commandes Utiles

### Vérifier l'état des services

```bash
# Vérifier les processus
ps aux | grep -E "(veza-api|vite)" | grep -v grep

# Vérifier les ports
netstat -tuln | grep -E ":(8080|5173)"

# Tester le backend
curl http://localhost:8080/api/v1/health

# Tester le frontend
curl http://localhost:5173
```

### Voir les logs

```bash
# Logs backend
tail -f backend.log

# Logs frontend
tail -f frontend.log

# Logs backend (dernières lignes)
tail -50 backend.log

# Logs frontend (dernières lignes)
tail -50 frontend.log
```

### Arrêter les services

```bash
# Arrêter tout
pkill -f veza-api
pkill -f vite

# Ou utiliser les PIDs
kill $(cat backend.pid) 2>/dev/null
kill $(cat frontend.pid) 2>/dev/null
```

### Redémarrer les services

```bash
# Utiliser le script de démarrage
./start_mvp.sh

# Ou manuellement :

# 1. Backend
cd veza-backend-api
nohup ./bin/veza-api > ../backend.log 2>&1 &
echo $! > ../backend.pid

# 2. Frontend
cd apps/web
nohup npm run dev > ../../frontend.log 2>&1 &
echo $! > ../../frontend.pid
```

---

## 📋 Endpoints API de Test

### Authentification

```bash
# Login
curl -X POST http://localhost:8080/api/v1/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"test@veza.app","password":"test123"}' \
  -c cookies.txt

# Get Current User (avec cookies)
curl http://localhost:8080/api/v1/auth/me \
  -b cookies.txt

# Logout
curl -X POST http://localhost:8080/api/v1/auth/logout \
  -b cookies.txt
```

### Tracks

```bash
# List Tracks
curl http://localhost:8080/api/v1/tracks \
  -b cookies.txt

# Create Track
curl -X POST http://localhost:8080/api/v1/tracks \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"title":"Test Track","description":"Test"}'
```

### Playlists

```bash
# List Playlists
curl http://localhost:8080/api/v1/playlists \
  -b cookies.txt

# Create Playlist
curl -X POST http://localhost:8080/api/v1/playlists \
  -H "Content-Type: application/json" \
  -b cookies.txt \
  -d '{"title":"My Playlist","description":"Test playlist"}'
```

---

## 🐛 Dépannage

### Backend ne répond pas

```bash
# Vérifier si le processus tourne
ps aux | grep veza-api

# Vérifier les logs
tail -50 backend.log

# Vérifier la base de données
psql -U veza -d veza -c "SELECT 1"

# Redémarrer
cd veza-backend-api
./bin/veza-api > ../backend.log 2>&1 &
```

### Frontend ne charge pas

```bash
# Vérifier si le processus tourne
ps aux | grep vite

# Vérifier les logs
tail -50 frontend.log

# Vérifier le port
lsof -i:5173

# Redémarrer
cd apps/web
npm run dev > ../../frontend.log 2>&1 &
```

### Erreur de connexion à la base de données

```bash
# Vérifier PostgreSQL
sudo systemctl status postgresql

# Vérifier la connexion
psql -U veza -d veza

# Vérifier les variables d'environnement
cd veza-backend-api
cat .env | grep DATABASE
```

### Port déjà utilisé

```bash
# Libérer le port 8080
lsof -ti:8080 | xargs kill -9

# Libérer le port 5173
lsof -ti:5173 | xargs kill -9
```

---

## 📝 Notes Importantes

1. **ClamAV** : Désactivé en développement (uploads fonctionnent sans antivirus)
2. **CSRF** : Désactivé en développement pour faciliter les tests
3. **Role Bypass** : Activé en développement (création de tracks sans rôle spécifique)
4. **Base de données** : PostgreSQL sur localhost:5432
5. **Redis** : Optionnel (utilisé pour rate limiting et sessions si disponible)

---

## 🎯 Prochaines Étapes

1. **Tester la connexion** : http://localhost:5173/login
2. **Explorer le dashboard** : Après connexion
3. **Tester l'upload** : Créer un track
4. **Tester les playlists** : Créer une playlist
5. **Vérifier les logs** : En cas de problème

---

## 📞 Support

- **Logs backend** : `backend.log`
- **Logs frontend** : `frontend.log`
- **PIDs** : `backend.pid`, `frontend.pid`

---

**Bon test ! 🎉**
