Lodisus est né de la passion, devenue commerce, d'un collectionneur d'objets qui a des histoires à raconter. C'est un gardien d'histoires, un conservateur de souvenirs et de cultures à la recherche d'un moyen d'étendre sa visibilité.

Il a rencontré notre jeune développeur ambitieux ; freelance et de formation autodidacte, en quête d'un projet exigeant afin qu'il se dépasse, qu'il repousse les limites de sa connaissance et de sa créativité.

Après avoir échangé sur leur vision et leurs objectifs, ils ont décidé de travailler ensemble, et Lodisus a vu le jour.

Introduction

Le projet

Lodisus est une boutique e-commerce multi-collections avec un CMS. Le marchand derrière ce projet propose du contenu neuf, mais aussi d'occasion, la nécessité de pouvoir rechercher, filtrer et trier était primordiale ; l'intention était aussi d'avoir un outil centralisé pour visualiser son inventaire, avoir de la visibilité, vendre ses produits, etc. ; ainsi que d'autres idées faisant l'objet de futures mises à jour comme un espace pour sa collection privée.

Mon travail

Tout le travail réalisé est sur mesure, du code au graphisme en passant par l'étude et l'ingénierie du projet.

info Retrouvez, dans ce carrousel, différentes captures d'écrans décrivant plusieurs modules de Lodisus.

Compétences

Formation et Veille technologique
  • Formation autodidacte de meilleures pratiques de développement, remise en question régulière
  • Veille technologique régulière pour apprendre et comprendre ce qui change et donc ce que je devrais apprendre de nouveau
Ingénierie
  • Création d'arbres de décision, afin de fournir des procédures au développeur
  • Création de Modèle Logique de Données Relationnel, afin de fournir un Système de Gestion de Base de Données Relationnel au développeur
Développement
  • Frontend
    • Javascript et bibliothèque JQuery : manipulation et animation du DOM, d'événements ; méthode de requête Ajax
    • Framework Materialize : manipulation d'une grille responsive ; de différents composants permettant de construire le site, de le styliser et de l'animer
  • Backend
    • Architecture MVC PHP orientée objet : CMS administrateur (contenu, remise, client, commande…) ; Boutique e-commerce (listing et page produit, compte client, panier, commande…)
    • Framework Laravel : vue, controller, blade, route, middleware, csrf, requête personnalisée avec validation, requête et relation eloquent, session, log et gestion d'erreur, upload et stockage de fichier, fichier d'environnement, cookies, cache, authentification, réinitialisation de mot de passe, hachage, pagination, exception, console, collection, helper, mail.
    • Intégration d'API : paiement (Vivawallet), livraison (Mondial Relay)
  • Base de données
    • SQL MySQL : création de base de données, de tables, jointure, contrainte de relations, import et export.
    • Framework Laravel : migration, seeding, factory, modèle.
  • Tests
    • Test manuel pour validation de fonctionnalité et recherche de failles / bugs
Serveur
  • Environnement : Développement (local, hors ligne, versionné)
    • Laravel Artisan : création de composants Laravel (request, rule, controller, mail, modèle) ; serveur web intégré
  • Environnement : Production / Test (en ligne, protégé par htaccess)
    • Utilisation d'un service d'hébergement web partagé OVH
Graphisme, UI et UX design
  • Le nom du projet : Lodisus, car sa consonance agréable et mémorielle, prenant son origine dans les mots latins Locus et Paradisus signifie littéralement Chambre de Paradis en référence au monde du jeu vidéo
  • Utilisation d'IA pour générer des images et mascottes d'illustrations (DALL-E)
  • Création de maquettes permettant une intégration frontend
  • Réflexion et optimisation UI / UX design
Gestion de projet
  • Relation client
    • Organisation de différentes réunions
      • Brainstorming, pour discussion des besoins du client et proposition de solutions au travers de la rédaction du cahier des charges, de ses extensions et de ses révisions
      • Présentation, pour démonstration de fonctionnalités
      • Test et Bug, pour discussion du fait de la demande du client d'avoir un accès pendant la phase Alpha du développement
      • Négociation, pour reconvenir de révision n'ayant pas fait l'objet d'accords
    • Le plus complexe dans ce projet a été de définir les besoins du client en binôme avec lui, du fait de ses difficultés de projection, j'ai effectué un travail de recherche de son métier / domaine, de propositions régulières et de multiples révisions sur mon travail de développement notamment pour correspondre à ses besoins
  • Planification
    • Planification des missions à réaliser pour mener à bien le projet, segmentation en sous-missions pour avoir des objectifs réalistes
  • Gestion de problèmes et bugs
    • Lorsqu'un problème inattendu est détecté par le client et qu'il est majeur donc prioritaire, le planning doit être modifié en conséquence
  • Documentation et Démonstration
    • Rédaction de documentation à destination du client et de ses employés chargés de l'administration de l'application, ainsi que démonstration des fonctionnalités lors de réunions prévues et convenues à cet effet
  • Cahier des charges
    • Réalisation de cahier des charges techniques pour définir avec précision et réalisme en fonction des moyens du client, les besoins du projet
  • Documents légaux
    • Création, entièrement par moi-même (sans utilisation de modèle préétabli), d'un contrat et d'un procès-verbal de livraison

Missions (exemples réels)

Réalisation et Implémentation du Système de Gestion de Base de Données Relationnel, de Lodisus

Le SGBD-R de Lodisus est une étape importante, car il s'agit du stockage des données qui seront traitées par l'application web, il est donc important que la conception soit optimale, tant au niveau de sa structure, que de ses relations.

J'ai planifié les étapes suivantes : (Gestion de projet : Planification) :

  • J'ai réfléchi aux données nécessaires au fonctionnement de l'application, des réunions avec le client ont été organisées afin de comprendre ses besoins et de lui proposer une solution réaliste se concentrant sur les différents types de données : les données liées au fonctionnement backend, celles liées aux contenus, celles liées aux utilisateurs. (Ingénierie : Recherche & Gestion de projet : Relation client & Gestion de projet : Cahier des charges)
  • J'ai créé les pièces du puzzle puis les ai assemblées entre elles pour créer le MLD-R de Lodisus. (Ingénierie : Développement)
  • Avant de pouvoir implémenter le MLD-R, j'ai mis au point deux environnements de travail, un serveur local pour le développement et un serveur en ligne pour les tests. (Serveur : Développement & Serveur : Test)
  • Tout au long de cette mission, je me suis posé des questions, je me suis formé et j'ai fait de la veille informatique pour améliorer mes capacités de recherches et mes connaissances. (Formation & Veille technologique)
  • Quant à l'implémentation, je me suis basé sur les migrations et les modèles Eloquent de Laravel, j'ai donc créé la base de données via les migrations puis les modèles de chaque table comprenant notamment leurs relations. (Développement : Base de données)
  • Une fois l'implémentation faite, le client a pu y insérer, à sa demande, les données réelles via le CMS, le cas échéant, j'ai utilisé les seeders et factories de Laravel pour l'insertion de données de test. (Développement : Base de données)
  • L'utilisation réelle des données se fait au travers des différents controllers dédiés pour rendre l'affichage correspondant à l'utilisateur au travers des vues. (Développement : BackEnd & Développement : FrontEnd)
Réalisation du module de commande, incluant les APIs de paiement et de livraison

J'ai choisi de détailler la réalisation du module de commande car, notamment du fait de sa complexité, il est intéressant à raconter et je l'espère à lire.

J'ai planifié les étapes suivantes : (Gestion de projet : Planification)

  • Tout commence par de la veille pour apprendre et comprendre les stratégies utilisées sur le marché. (Formation & Veille technologique)
  • Plusieurs prestataires externes seront nécessaires pour le bon fonctionnement de mon application e-commerce, des prestataires pour le paiement et d'autres pour la livraison. Il s'agit aussi de la gestion des E-mails aux clients et au personnel d'administration des commandes, ainsi que de la gestion du stock, les textes des messages d'erreurs et de succès à afficher, les différentes vérifications sur les informations personnelles fournies par un client pour sa commande, des maquettes… Armé de mes recherches, j'organise une réunion avec mon client pour lui proposer un fonctionnement et convenir des prestataires externes, le pays cible de mon client étant la France, je lui propose La poste ou Mondial Relay ainsi que Stripe ou PayPal ; les prestataires retenus sont Mondial Relay et Viva Wallet. (Ingénierie : Recherche & Gestion de projet : Relation client & Gestion de projet : Cahier des charges)
  • En préparation de la mission du développeur, je réalise un arbre de décision proposant une procédure claire, impliquant différentes ressources (controllers, middleware, session, base de données, gestion des erreurs et logs, mail, API). (Ingénierie : Développement)
  • Il s'agit maintenant du cœur de la mission, réaliser tout cela et faire fonctionner tout ce monde ensemble à l'unisson. De l'intégration des maquettes aux requêtes SQL via Eloquent, en passant par la connexion aux APIs et la gestion des erreurs attendues durant le processus. (Développement : BackEnd & Développement : FrontEnd & Développement : Base de données)
  • L'implémentation du module étant terminée, l'environnement de test étant configuré, la mission des tests est à ne pas sous-estimer, j'essaie de casser l'application ; des bugs sont repérés, des correctifs sont appliqués. (Développement : Test)
  • Malgré que j'ai veillé à documenter directement mon code au fur et à mesure du développement pour faciliter une maintenance / amélioration future par moi ou un autre développeur, je vérifie et complémente la documentation ; puis je conviens avec mon client d'un rendez-vous de présentation pour lui faire une démonstration. De là, il pourra valider la fonctionnalité ou préciser son besoin au travers d'une demande de révision en accord avec le contrat. (Gestion de projet : Relation client)
Mots-clés

Application web e-commerce Laravel ; full-stack, sur mesure, en freelance