Retour au CV

Tesla App — version web

Application web PHP reproduisant des fonctionnalités de contrôle Tesla, avec conception UML, mocks API et base MVC.

Projet académique - Janvier 2025

Stack technique

PHP MVC MariaDB PDO Composer PHPUnit CodeSniffer UML

Contexte du projet

Projet académique mené sur deux semestres autour d’une reproduction web de l’application mobile Tesla. L’objectif était de permettre le contrôle et la consultation d’un véhicule depuis un navigateur, en s’appuyant sur une architecture PHP, une base MariaDB et des échanges API simulés par mocks lorsque les tests réels n’étaient pas possibles.

Points clés du projet

  • Application web pensée pour contrôler un véhicule Tesla depuis un navigateur.
  • Architecture PHP MVC avec contrôleurs, vues, modèles API, modèles SQL et classe Application.
  • Mocks JSON pour simuler les réponses de l’API Tesla et permettre les tests hors véhicule.
  • Tests PHPUnit, documentation PHPDoc et règles de style avec PHP_CodeSniffer.

Périmètre fonctionnel

Le système couvrait l’authentification sécurisée, la consultation des informations véhicule, la localisation, le contrôle des ouvertures, les actions sur le coffre, les lumières, le limiteur de vitesse et des pistes d’évolution comme les trajets ou les statistiques de recharge. Chaque fonctionnalité a été décrite avec ses acteurs, préconditions, flux nominal et flux alternatifs.

Modélisation UML

Le projet s’est appuyé sur des diagrammes de contexte, cas d’utilisation, séquence et classes pour clarifier les échanges entre utilisateur, application, API Tesla et base de données. Cette phase a servi de base à l’organisation des contrôleurs, modèles API, modèles SQL et vues.

Réalisation et code

Le code a été structuré selon une architecture MVC en PHP. Les modèles étaient séparés entre requêtes API et accès base de données via PDO. Les réponses de l’API Tesla ont été simulées avec des mocks JSON afin de développer et tester sans accès constant au véhicule. Une seconde itération a restructuré le projet autour d’un dossier app, d’un dossier public et d’une classe Application lancée par index.php, avec une meilleure gestion des erreurs.

Tests et limites

Les tests unitaires utilisaient PHPUnit avec des jeux de réponses JSON simulées. Le projet a permis d’obtenir une base web fonctionnelle et documentée, mais les appels API réels n’ont pas pu être validés complètement sur véhicule à cause des contraintes de sécurité, de tokens et de coordination entre les équipes développement et sécurité.