Aller au contenu

drwh_group — Site Principal

Rôle du service

drwh_group est la vitrine principale de DAREWATCH CONSULTING SARL. Quand un visiteur accède au site principal, il arrive ici. Cette page présente l'entreprise et oriente les visiteurs vers les deux autres pôles (Tech et Immo).

URL

Local : http://localhost:8002
Production : darewatchgroup.com


Stack technique

graph LR
    PHP[PHP 8.2+] --> LAR[Laravel 11]
    LAR --> LW[Livewire]
    LAR --> BLADE[Blade\nTemplating]
    LAR --> BS[Bootstrap 5\nCSS]
    style PHP fill:#8e44ad,color:#fff
    style LAR fill:#e74c3c,color:#fff
    style LW fill:#f39c12,color:#fff
    style BLADE fill:#27ae60,color:#fff
    style BS fill:#0066FF,color:#fff
Couche Technologie Rôle
Language PHP 8.2+ Langage backend
Framework Laravel 11 Structure MVC, routing, validation
Interactions Livewire Composants dynamiques sans rechargement
Vues Blade Moteur de templates HTML
CSS Bootstrap 5 Design et mise en page

Pages disponibles

Page URL Description
Accueil / Landing page avec hero, statistiques et liens vers Tech & Immo
Contact /contact Formulaire de contact dynamique (Livewire)
Services /services Présentation des domaines d'activité de Darewatch
Articles /articles Articles et actualités de l'entreprise

Architecture du service

apps/drwh_group/
├── app/
│   ├── Http/
│   │   ├── Controllers/
│   │   │   └── PageController.php     ← Contrôleur principal des pages
│   │   └── Requests/                  ← Validation des formulaires
│   └── Livewire/
│       └── ContactForm.php            ← Composant formulaire de contact
├── resources/
│   └── views/
│       ├── layouts/
│       │   └── app.blade.php          ← Template de base (navbar + footer)
│       ├── pages/
│       │   ├── home.blade.php         ← Page d'accueil
│       │   ├── contact.blade.php      ← Page contact
│       │   ├── articles.blade.php     ← Page articles
│       │   └── services.blade.php     ← Page services
│       ├── composants/                ← Composants réutilisables (cards, boutons…)
│       ├── sections/                  ← Grandes sections de page (hero, about…)
│       └── livewire/                  ← Vues des composants Livewire
├── routes/
│   └── web.php                        ← Définition des URLs
├── public/
│   ├── css/                           ← Styles compilés
│   ├── js/                            ← Scripts compilés
│   └── images/                        ← Images statiques
├── config/                            ← Configuration Laravel
├── database/
│   ├── migrations/                    ← Schéma de base de données
│   └── seeders/                       ← Données initiales
└── .env                               ← Variables d'environnement

Comment fonctionne le formulaire de contact ?

sequenceDiagram
    participant U as Utilisateur
    participant LW as Livewire (Front)
    participant LC as ContactForm.php
    participant API as API Backend

    U->>LW: Remplit le formulaire
    LW->>LC: Validation en temps réel
    LC-->>LW: Erreurs affichées
    U->>LW: Soumet le formulaire
    LW->>LC: Données envoyées
    LC->>API: POST /api/contact
    API-->>LC: 200 OK
    LC-->>LW: Message envoyé ✓
    LW-->>U: Confirmation affichée
// apps/drwh_group/app/Livewire/ContactForm.php
class ContactForm extends Component
{
public string $name = '';
public string $email = '';
public string $message = '';
public bool $sent = false;

        protected $rules = [
            'name'    => 'required|min:2',
            'email'   => 'required|email',
            'message' => 'required|min:10',
        ];

        public function submit()
        {
            $this->validate();
            // Envoi à l'API backend
            $this->sent = true;
            $this->reset(['name', 'email', 'message']);
        }
    }
    ```

=== "Vue Blade (HTML)"
```html
<!-- resources/views/livewire/contact-form.blade.php -->
<form wire:submit.prevent="submit">
<input wire:model="name" placeholder="Votre nom" />
@error('name') <span>{{ $message }}</span> @enderror

        <input wire:model="email" type="email" />
        @error('email') <span>{{ $message }}</span> @enderror

        <textarea wire:model="message"></textarea>
        @error('message') <span>{{ $message }}</span> @enderror

        <button type="submit">Envoyer</button>

        @if($sent)
            <p>Message envoyé avec succès !</p>
        @endif
    </form>
    ```

---

## Structure des routes

```php
// apps/drwh_group/routes/web.php
Route::get('/', [PageController::class, 'home'])->name('home');
Route::get('/contact', [PageController::class, 'contact'])->name('contact');
Route::get('/services', [PageController::class, 'services'])->name('services');
Route::get('/articles', [PageController::class, 'articles'])->name('articles');

Lancer le service en local

# Depuis la racine du monorepo
cd apps/drwh_group
php artisan serve --port=8002

# Ou via npm (depuis la racine)
npm run dev:group

Le service sera accessible à http://localhost:8002


Modifier le design

Pour modifier le menu de navigation :

apps/drwh_group/resources/views/layouts/app.blade.php

Pour modifier le contenu d'une page :

apps/drwh_group/resources/views/pages/<nom-de-la-page>.blade.php

Pour modifier les styles :

apps/drwh_group/resources/css/
apps/drwh_group/public/css/

Liens complémentaires