# Phase 2 - Pages Web à créer

## ✅ Créées
- `resources/views/layouts/app.blade.php` - Layout principal
- `resources/views/campaigns/index.blade.php` - Liste collectes
- `resources/views/campaigns/show.blade.php` - Détail collecte + paiement Stripe

## À créer (fichiers templates)

### Auth Pages
- `resources/views/auth/login.blade.php` - Connexion
- `resources/views/auth/register.blade.php` - Inscription

### Fundraiser Dashboard
- `resources/views/dashboard/index.blade.php` - Mes collectes
- `resources/views/dashboard/create.blade.php` - Créer collecte
- `resources/views/dashboard/edit.blade.php` - Modifier collecte
- `resources/views/dashboard/donations.blade.php` - Mes donations reçues

### Admin Panel
- `resources/views/admin/index.blade.php` - Dashboard admin
- `resources/views/admin/campaigns.blade.php` - Modération
- `resources/views/admin/stats.blade.php` - Statistiques

## Routes Blade (à ajouter dans routes/web.php)

```php
Route::view('/', 'campaigns.index')->name('home');
Route::get('/collectes', 'CampaignController@index')->name('campaigns.index');
Route::get('/collectes/{campaign}', 'CampaignController@show')->name('campaigns.show');

Route::middleware(['auth'])->group(function () {
    Route::get('/dashboard', 'DashboardController@index')->name('dashboard');
    Route::get('/dashboard/nouvelle-collecte', 'CampaignController@create')->name('campaigns.create');
    Route::post('/dashboard/collectes', 'CampaignController@store');
});

Route::middleware(['auth', 'admin'])->group(function () {
    Route::get('/admin', 'AdminController@index')->name('admin');
    Route::get('/admin/campaigns', 'AdminController@campaigns');
    Route::post('/admin/campaigns/{campaign}/approve', 'AdminController@approve');
});
```

## Templates à copier/adapter depuis les contrôleurs existants

Chaque page Blade doit :
1. Étendre `layouts.app`
2. Utiliser Alpine.js + fetch API pour communiquer
3. Afficher données via PHP directement ou Alpine.js
4. Être responsive Tailwind CSS

**Structure commune** :
```blade
@extends('layouts.app')
@section('title', 'Page Title')
@section('content')
<div x-data="pageComponent()" x-cloak>
    <!-- content avec Alpine.js -->
</div>
<script>
function pageComponent() {
    return { ... }
}
</script>
@endsection
```

## Notes pour implémentation rapide

- Utiliser les mêmes couleurs : vert #10B981 (Tailwind green-600)
- Icônes : emojis uniquement
- Alpine.js pour tous les fetch API
- Forms : validation client + serveur
- Stripe Payment Element pour paiements
