Onightroof est une application web de réservation de locations saisonnières que j’ai conçue et développée dans le cadre de l’épreuve E5 du BTS SIO option SLAM au lycée Paul Sabatier (session 2025).
Mon objectif : proposer une alternative française crédible aux géants de la location courte durée, avec une solution souveraine, robuste et sécurisée.
Contexte et objectifs du projet
Le constat de départ est simple : la location saisonnière en ligne est dominée par des plateformes étrangères, alors qu’aucun acteur français majeur n’occupe réellement ce marché.
Onightroof se positionne comme une startup toulousaine fondée en 2024, qui mise sur la souveraineté numérique et le respect des données utilisateurs.
Les objectifs fonctionnels principaux :
- Permettre aux voyageurs de rechercher et réserver un logement au meilleur prix.
- Offrir aux hôtes une interface pour publier et gérer leurs annonces.
- Proposer à chaque utilisateur un espace personnel pour gérer son compte, ses réservations et ses informations de facturation.
Fonctionnalités clés
Onightroof est un client léger web qui couvre tout le cycle de réservation, de la découverte du logement jusqu’à l’avis final :
- Consultation des annonces : liste des locations avec nom, ville, hôte, prix, capacité et détails complets.
- Recherche avancée : filtres (ville, capacité, dates) avec auto‑complétion basée sur un fichier JSON de toutes les villes de France.
- Authentification : inscription, connexion et réinitialisation de mot de passe via Laravel Breeze, avec une politique de mot de passe inspirée des recommandations de la CNIL.
- Gestion du compte : modification des informations, photo de profil, suppression de compte avec confirmation.
- Gestion des annonces : création, édition, suppression des logements et de leurs photos.
- Réservations : création et suivi avec détail du calcul (prix de base, frais de service, prix HT/TTC).
- Avis et notes : évaluation des hôtes par les voyageurs, affichée sur le profil public pour renforcer la confiance.
Architecture technique et base de données
Le projet repose sur une stack moderne proche de ce qu’on trouve en entreprise :
- Backend : PHP 8.3 avec le framework Laravel 11.
- Frontend : HTML5, CSS3, Bootstrap 5.3 et JavaScript ES6.
- Données : MariaDB (InnoDB), modélisation complète MERISE (MCD, MLD, MPD) et scripts SQL de création des tables.
- Environnement : DDEV (Docker) pour l’orchestration, Git pour le versioning, Vscodium sous Ubuntu 24.04.
Le modèle de données s’articule autour d’entités comme Users, Rentals, Pictures, Billing_Address, Credit_Card, Transactions et Reservations, reliées par des clés étrangères pour garantir la cohérence (utilisateur ↔ annonces ↔ réservations ↔ paiements).
Sécurité et bonnes pratiques
J’ai accordé une place centrale à la sécurité, du navigateur jusqu’à la base de données :
- CSRF : jetons automatiques Laravel dans tous les formulaires Blade.
- Validation serveur : Form Requests pour centraliser les règles (required/nullable, min/max, types, formats) et garder des contrôleurs lisibles.
- Formulaires HTML5 : champs typés avec
minlength,maxlength,min,max,acceptpour limiter les entrées invalides. - Protection XSS : échappement systématique des variables via
{{ }}dans les vues Blade. - Contrôle d’âge : triggers SQL qui vérifient qu’un utilisateur a au moins 18 ans à la création ou à la mise à jour de son compte.
- Données sensibles : informations bancaires hashées, montants chiffrés et transactions SQL pour gérer les mouvements d’argent de façon atomique.
Résultats et apprentissages
Ce projet m’a permis de couvrir l’ensemble du cycle de développement d’une application web complète : conception UML/MERISE, modélisation de base de données, développement Laravel, intégration front, sécurité et rédaction de documentation.
Malgré la perte d’une première version et la nécessité de repartir de zéro, Onightroof montre ma capacité à concevoir et développer une application fonctionnelle, structurée et sécurisée, dans un contexte proche d’une vraie startup numérique.


0 commentaires