← Retour au portfolio

SAE 1.06 : Distribution Militaire

Projet scolaire · E-commerce & Développement WEB

Présentation

Distribution Militaire est un site web de e-commerce réalisé dans le cadre du BUT Informatique. Il allie développement web, architecture MVC, méthodes Agile et rédaction narrative.

Repos GitLab : https://gitlabinfo.iutmontp.univ-montp2.fr/sae_301_grp4/distributionmilitaire
Démo Webinfo : https://webinfo.iutmontp.univ-montp2.fr/~duhautn/web/controleurFrontal.php

Contexte

Pour mettre à l'épreuve nos compétences en développement WEB (PHP, HTML, CSS), nous avons dû développer de A à Z un site de e-commerce.

Nous avons choisi de présenter un site de vente de rations militaires, afin de développer une interface au design militaire correspondant complètement à notre vision d'entreprise. Ce projet nous a permis de gérer tous les aspects d'une plateforme e-commerce fonctionnelle.

Objectifs

  • Développer un site e-commerce complet de A à Z
  • Implémenter une architecture MVC (Modèle-Vue-Contrôleur) en PHP
  • Concevoir et gérer une base de données pour produits, utilisateurs, panier et historique
  • Créer une identité visuelle forte et cohérente (thème militaire)
  • Gérer le versionnage avec GitLab

Technologies

Réalisations

  • Architecture MVC : Séparation claire entre Modèles (données), Vues (interfaces) et Contrôleurs (logique métier)
  • Gestion base de données : Système complet pour produits, utilisateurs, panier d'achat et historique des commandes
  • Classes CRUD : Opérations Create, Read, Update, Delete pour toutes les entités
  • Système de cookies : Gestion des sessions utilisateurs et du panier persistant
  • Interface militaire : Direction artistique cohérente avec le thème des rations militaires
  • Versionnage GitLab : Travail collaboratif avec branches, commits et merge requests

Contexte narratif

DistributionMilitaire est une entreprise Russe longtemps cachée, qui vend des produits pour les bases militaires environnantes. Dans une volonté d'agrandir leur marché, ils ont récemment pris la décision d'ouvrir une facade pour permettre au grand public d'également acheter des produits de qualité militaire pour la survie, le camping ou la chasse.

Mais cette facade est le point d'entrée qui permettra, des années après, à des opérateurs militaires français de s'infiltrer dans une des bases militaires les plus sécurisées et secrète de Russie, à travers une opération qui secouera le monde entier : l'Opération Snow Bear.

Alors, arriverez-vous à pénétrer l'infrastructure ultra-sécurisée et mener vos agents de terrain à la victoire ? Vous le saurez en participant au Capture The Flag Opération: Snow Bear.

Compétences développées

  • Développement WEB : Architecture MVC, conception d'interfaces utilisateur
  • PHP avancé : Programmation orientée objet, classes CRUD, sessions et cookies
  • Base de données : Modélisation, requêtes SQL, gestion des relations
  • Versionnage : GitLab, travail collaboratif, résolution de conflits
  • Design : Identité visuelle, direction artistique, cohérence graphique
  • E-commerce : Panier d'achat, gestion des commandes, espace utilisateur

Résultat

Site e-commerce fonctionnel avec architecture MVC propre, design militaire immersif, et toutes les fonctionnalités essentielles : catalogue de produits, panier d'achat, gestion des utilisateurs et historique des commandes.

Extrait de code : Contrôleur générique

Classe abstraite servant de base à tous les contrôleurs du projet. Elle implémente le pattern MVC en gérant l'affichage des vues, les redirections et la navigation entre les pages.

<?php

namespace App\distributionmilitaire\Controleur;

abstract class ControleurGenerique
{
    protected static function getNomClasse(): string
    {
        $shortName = (new \ReflectionClass(static::class))->getShortName();
        $nom = preg_replace('/^Controleur/', '', $shortName);
        return strtolower($nom);
    }

    protected static function afficherVue(string $cheminVue, array $parametres = []): void
    {
        extract($parametres);

        $cheminComplet = __DIR__ . '/../vue/' . $cheminVue;
        if (!file_exists($cheminComplet)) {
            throw new \Exception("Vue non trouvée : $cheminComplet");
        }

        require $cheminComplet;
    }

    protected static function redirigerVersURL(string $url): void
    {
        header("Location: $url");
        exit;
    }

    public static function rediriger(string $controleur = "", string $action = "", array $query = []) : void
    {
        $tableauQueryString = [];
        if($action != "") {
            $tableauQueryString[] = "action=$action";
        }
        if($controleur != "") {
            $tableauQueryString[] = "controleur=$controleur";
        }
        foreach ($query as $name => $value) {
            $valueURL = escape_url($value);
            $tableauQueryString[] = "$name=$valueURL";
        }
        $queryString = !empty($tableauQueryString) ? ("?" . join("&", $tableauQueryString)) : "";
        $url = "controleurFrontal.php" . $queryString;
        self::redirigerVersURL($url);
    }
}

Galerie & Rendu

Page d'accueil de Distribution Militaire