Rapport de Stage en E-commerce Laravel
Rapport de Stage en E-commerce Laravel
THEME :APPLICATION DE E-
COMMERCE LARAVEL
Sous l’encadrement :
Académique de : Professionnelle de :
ANNEE ACADEMIQUE
2023-2024
REMERCIEMENTS
L’accomplissement de ce projet a été effectué grâce à de nombreuses
personnes qui, tout au long de celui-ci, m’ont accordé leurs soutiens que ce soit
sur le plan psychologique, physique, et moral. C’est la raison pour laquelle je
tiens à exprimer ma reconnaissance par le biais de ces remerciements :
➢ A Madame BINDZI MURIELLE, pour ses conseils, son attention et le suivi qu’elle
nous a accordé durant cette année académique non seulement en tant
qu’encadreur académique mais aussi en tant qu’enseignante.
➢ A mes camarades de promotion qui ont partagés avec moi leur amour pour la
technologie, leurs rêves et ambitions et, tout au long de cette formation m’ont
encouragé par leurs exemples et persévérances.
V. INTRODUCTION
1. Présentation
2. Leurs services
3. Plan de localisation
4. Organigramme
5. Déroulement du stage
1. Cahier de charge
2. Analyse (Merise)
3. Maquette Figma
5. Qualité du code
6. Gestion de version
7. Base de données
X. RÉFÉRENCE
I. Liste des images
- Image 1 : Localisation de CCN Technologies
- Image 2 : Organigramme de CCN Technologies
- Image 3 : Logo de Shopwise
- Image 4 : Modèle conceptuel de données
- Image 5 : Schéma fonctionnel de Shopwise
- Image 6 : Page d’accueil
- Image 7 : Page d’inscription client
- Image 8 : Page de connexion
- Image 9 : Page de connexion administrateur
- Image 10 : Dashboard ou zone d’administration
de ccn technologies
1. PRÉSENTATION
CCN&Technologies Sarl est une entreprise camerounaise basée à Yaoundé et Douala spécialisée
dans les technologies de l'information et de la communication (TIC). Leur gamme de services
comprend la fourniture d'ordinateurs et de consommables informatiques ainsi que la mise en place de
solutions de gestion informatisées sur mesure. Avec plus de 200 sites créés, allant du simple site
vitrine aux sites avec service client, catalogue en ligne et e-Commerce, CCN&Technologies Sarl offre
une expertise complète dans la conception de sites web. Ils assurent la réservation de noms de
domaine, l'hébergement sur leurs serveurs, la conception graphique, le développement web et la
maintenance, agissant en tant qu'interlocuteur unique pour leurs clients. Leur expérience s'étend à
divers secteurs au Cameroun et dans le monde, notamment institutionnel, tertiaire, bâtiment, industriel
et tourisme, garantissant leur savoir-faire pour la mise en œuvre de solutions informatiques.
2. LEURS SERVICES
➢ CREATION DES SITES WEB : En effet comme son nom l’indique ce service consiste de
créer des sites web de dernière technologie et de haut standing pour leur client
➢ HEBERGEMENTS WEB : L’hébergement web est le fait de rendre son site accessible sur
internet
➢ SSL CERTIFATES : Ce certificat SSL permet de sécuriser un site web en assurant le
cryptage des échanges de données tels que les transactions en ligne. Les navigateurs Internet,
une fois vérifiée l'authenticité du certificat SSL, attestent que le site est sécurisé en affichant
plusieurs éléments reconnus par les internautes tels que le cadenas ou la « green bar ». Ce
service offres les avantages suivants : Sécurisez vos transactions en ligne, installation sur
multiples serveurs, choisissez votre type de sécurité, prévention des attaques par
Hameçonnage
➢ LOGICIEL ET APPLICATION : CCN Technologies offre un service de création de
logiciel et application pour votre entreprise
➢ ENVOIE SMS PRO EN LIGNE
➢ ENVOIE DES NEWSLETTERS
➢ IP ET TV CHANNELS : L'IPTV veut dire (Internet Protocol télévision) est une forme de
télévision diffusée sur un réseaux utilisant l'internet Protocol. C'est un Protocol qui vous
permet d'avoir la télévision chez vous grâce à l’internet ; Il vous suffit d'avoir une connexion
internet (ADSL, Fibre, Wifi ou autres).
3. Plan de localisation
4. Organigramme
5. Déroulement du stage
du projet
1. Cahier de charge
1.1) Contexte
Dans le but de nous perfectionner, nous effectuons un stage académique au sein de l’entreprise CCN
Technologie, c‘est dans ce cadre que le projet de conception d’une application web de gestion
d’établissement supérieure nous a été confiée.
➢ Fournir une solution complète de plateforme de commerce électronique prête à l'emploi pour
les petites et grandes entreprises. Il peut être utilisé pour créer des sites web de commerce
électronique pour des magasins de shopping, de mode, de vêtements, numériques, de montres,
etc.
➢ Offrir des fonctionnalités e-commerce complètes telles que le catalogue de produits, les
attributs et déclinaisons de produits, la gestion des commandes, les remises, l'expédition, etc.
➢ Permettre une personnalisation et une conception faciles grâce à une structure modulaire et
une approche réactive pour s'adapter à tous les appareils.
➢ Intégrer de nombreux modes de paiement, la prise en charge multidevises et RTL pour une
flexibilité maximale.
➢ Fournir des fonctionnalités avancées comme la galerie d'images, l'aperçu rapide des produits,
les recommandations de produits, l'analytique Google, etc. pour améliorer l'expérience
utilisateur.
➢ Suivre les meilleures pratiques de codage, être facilement traduisible et offrir un système
d'autorisation flexible pour faciliter la gestion et l'évolutivité.
En résumé, l'objectif principal est de fournir une plateforme de commerce électronique clé en main,
personnalisable et évolutive pour aider les entreprises à créer rapidement et efficacement leur boutique
en ligne.
ANALYSE DES
CONCEPTION DE DÉVELOPPEMENT DES INTEGRATION DES TESTS ET DÉPLOIEMENT DE
BESOINS ET
L'APPLICATION FONCTIONNALITÉS FONCTIONNALITÉS VALIDATIONS L'APPLICATION
SPÉCIFICATIONS
DÉVELOPPEMENT DES
MODULES DE TESTS DE FORMATION DES
GESTION PERFORMANCE UTILISATEURS
ADMINISTRATIVE
ORGANIGRAMME DE SHOPWISE
1.5) Périmètre du projet
L'application de commerce électronique Laravel peut être déployée de plusieurs façons, offrant une
grande flexibilité en fonction de vos besoins et de votre budget. Voici quelques options :
➢ Hébergement partagé :
- Idéal pour : Débutants, petits sites web avec trafic modéré, budgets limités.
- Avantages : Facile à configurer, moins cher, pas besoin de gérer l'infrastructure.
- Inconvénients : Performances limitées, moins de contrôle sur les ressources, peut être
partagé avec d'autres sites web, ce qui peut affecter les performances.
- Exemples de fournisseurs : HostGator, GoDaddy, Bluehost.
➢ Hébergement Cloud :
- Idéal pour : Sites web avec un trafic élevé et variable, besoin d'évolutivité et de
fiabilité, budgets plus importants.
- Avantages : Évolutivité automatique, haute disponibilité, performances élevées,
gestion simplifiée.
- Inconvénients : Plus cher que les autres options, peut nécessiter une configuration
complexe.
- Exemples de fournisseurs : AWS (Amazon Web Services), Google Cloud Platform,
Microsoft Azure.
➢ Hébergement dédié :
- Idéal pour : Sites web très volumineux et exigeants, besoin de performances
maximales, budgets élevés.
- Avantages : Performances optimales, contrôle total sur le serveur, sécurité accrue.
- Inconvénients : Coût élevé, nécessite des connaissances techniques pour la gestion du
serveur.
Accès à l'application :
Une fois déployée, l'application de commerce électronique Laravel sera accessible via un nom de
domaine. Vous devrez enregistrer un nom de domaine (par exemple, [Link]) et le
configurer pour qu'il pointe vers le serveur où l'application est hébergée. L'accès se fera ensuite via
l'adresse web du nom de domaine (par exemple, [Link]).
Conseils supplémentaires :
- Sélectionnez un fournisseur d'hébergement adapté à vos besoins et à votre budget.
- Assurez-vous que le fournisseur d'hébergement prend en charge PHP et MySQL.
- Configurez le serveur pour les performances optimales.
- Installez un certificat SSL pour sécuriser votre site web.
- Effectuez des tests de performance réguliers.
- Mettez à jour régulièrement l'application et les dépendances.
➢ Entrepreneurs et commerçants :
- Petites entreprises : Le projet offre une solution abordable et facile à utiliser pour
créer un site web de vente en ligne, sans nécessiter de compétences techniques
avancées.
- Grandes entreprises : Le projet peut servir de base pour développer un site web de
commerce électronique plus complexe et scalable, avec des fonctionnalités
supplémentaires et une architecture plus robuste.
➢ Utilisateurs finaux :
- Consommateurs : Les utilisateurs finaux peuvent profiter d'une expérience d'achat en
ligne conviviale et intuitive, avec une sélection de produits diverse, des prix
compétitifs et un service client efficace.
- Entreprises de vente en ligne : Le projet permet aux entreprises de vendre leurs
produits en ligne, d'atteindre un public plus large et d'accroître leurs ventes.
En résumé, ce projet cible un large éventail d'utilisateurs, des développeurs aux entrepreneurs et aux
consommateurs. Il offre une solution flexible et complète pour la création de sites web de commerce
électronique, et permet d'adapter les fonctionnalités et le design aux besoins spécifiques de chaque
utilisateur.
➢ Pictogramme :
- Panier d’achat
- Recherche
- Profil utilisateur
- Retour gratuit (sous certaines conditions)
- Garantie
- Options de paiement
➢ Logo
LOGO DE SHOPWISE
➢ Ressources humaines :
- Développeurs : Vous aurez besoin d’une équipe de développeurs expérimentés en
PHP, Laravel et MySQL pour mettre en place et maintenir le système.
- Designer UI/UX : Pour assurer une bonne expérience utilisateur, un designer UI/UX
peut être nécessaire pour concevoir l’interface utilisateur et l’expérience utilisateur.
- Administrateur système : Pour gérer le serveur, la base de données, et s’occuper des
questions de sécurité et de performance.
- Spécialiste SEO : Pour optimiser le site pour les moteurs de recherche et améliorer sa
visibilité.
- Spécialiste du support client : Pour aider les utilisateurs avec leurs questions et
problèmes lors de l’utilisation du site.
➢ Ressources logicielles :
- Laravel : Le Framework PHP sur lequel le système est construit.
- MySQL : Le système de gestion de base de données utilisé pour stocker les données.
- Apache ou nginx : Le serveur web pour héberger l’application.
- PHP : Le langage de programmation utilisé pour développer l’application.
- Diverses extensions PHP : Comme BCMath, Ctype, Fileinfo, JSON, Mbstring,
OpenSSL, PDO, Tokenizer, XML, etc.
- Module Re_write du serveur : Ce module est nécessaire pour permettre la réécriture
d’URL, ce qui est couramment utilisé dans les applications Laravel.
- Module PHP_CURL : Ce module est nécessaire pour faire des appels à des API et
d’autres URL.
➢ Ressources matérielles :
- Serveur : Un serveur pour héberger l’application web. Cela pourrait être un serveur
dédié, un serveur partagé, ou un service d’hébergement cloud.
- Stockage : De l’espace de stockage pour la base de données, les fichiers du site web,
les images des produits, etc.
- Bande passante : Suffisamment de bande passante pour gérer le trafic vers et depuis
le site web.
Ressources Coût
Serveur Web 10.000FCFA/an
Développeurs PHP & Laravel 300.000FCFA/mois
Designer UI/UX 250.000FCFA
Administrateur système 300.000FCFA
Spécialiste SEO 200.000FCFA
Spécialiste du support client 200.000FCFA
Laravel Gratuit
MySQL Gratuit
Apache Gratuit
2. Analyse : MCD avec MERISE
3. Maquette Figma
4. Méthode de gestion du projet : AGILE SCRUM
Il est important de noter que Scrum est un cadre flexible et adaptatif. Il est conçu pour être
ajusté et affiné en fonction des besoins spécifiques de votre équipe et de ce projet.
➢ Outils : il existe plusieurs outils spécifiques pour gérer un projet Laravel avec Scrum.
Voici quelques-uns :
- GitScrum : GitScrum est un outil de gestion de projet développé pour aider les
entrepreneurs, les indépendants, les managers et les équipes à augmenter leur
productivité avec la méthodologie Agile et la gamification. Il est un outil
puissant et fonctionnel que vous pouvez utiliser pour organiser vos projets et
gérer les tâches de votre équipe dans des espaces de travail.
- Project Management Tool by devaslanphp : C’est un outil de gestion de
projet open source basé sur Laravel. Il est livré avec plus de 60 langues prêtes à
l’emploi et a été créé avec les meilleures technologies.
- Laravel Vue Scrum : C’est un outil de gestion de la vélocité Scrum construit
avec Laravel et [Link].
- Laravel Project Management System by wisuja : C’est un système de
gestion de projet basé sur Scrum construit en utilisant Laravel 8. Il intègre
également le Machine Learning dans l’estimateur de temps d’achèvement des
tâches et la recommandation du personnel.
Ces outils aident à organiser et à gérer votre travail en utilisant la méthodologie Scrum. Ils
offrent des fonctionnalités telles que les tableaux Kanban dynamiques, les sprints GitScrum
pour associer vos tâches à des jalons, les diagrammes de Gantt GitScrum pour une vue de
l’agenda, et bien d’autres fonctionnalités interactives.
5. Qualité du code
Méthodes d'analyse :
- Analyse manuelle du code
- Utilisation de l'outil de linting PHP CodeSniffer
- Exécution des tests unitaires avec PHPUnit
- Mesure de la couverture de code avec PHPUnit
- Analyse de la complexité cyclomatique avec PHPStan
Résultats :
➢ Structure et organisation du code :
- Le code respecte l'architecture MVC de Laravel.
- Le code est bien organisé en dossiers et fichiers distincts, suivant les conventions de
Laravel.
- Les classes, les fonctions et les variables sont nommées de manière cohérente et
descriptive.
- Le code utilise des namespaces pour organiser les classes et éviter les conflits de
nommage. Exemple : Le dossier `app/Http/Controllers` contient les contrôleurs,
`app/Models` contient les modèles, et `ressources/views` contient les vues.
➢ Conventions de codage :
- Le code respecte les standards de codage PSR-2.
- L'outil PHP CodeSniffer a été utilisé pour vérifier les conventions de codage.
- Il y a quelques violations des conventions de codage mineures, mais elles n'ont pas
d'impact significatif sur la qualité du code. Exemple : Utilisation de l'espacement des
tabulations incorrect dans quelques fichiers.
- Standard de nommage : CamelCase pour les classes et les méthodes, snake_case pour les
noms de variables et les noms de tables.
➢ Sécurité :
- Le code utilise les fonctionnalités de sécurité intégrées à Laravel, comme la protection
contre les attaques CSRF, les injections SQL et les attaques XSS.
- Les mots de passe sont hachés avec bcrypt et les informations sensibles sont stockées dans
des variables d'environnement.
- Tests de sécurité : Des tests de sécurité manuels ont été effectués pour vérifier la
robustesse du code face aux attaques courantes.
- Gestion des erreurs de sécurité : Les erreurs de sécurité sont journalisées et notifiées à
l'administrateur du système.
➢ Performances :
- Le code utilise la mise en cache de la base de données pour améliorer les performances
des pages les plus sollicitées.
- Les images sont optimisées pour la taille et la compression.
- Outils de mesure des performances : Xdebug et Blackfire.
- Optimisations de performances : Utilisation de la mise en cache de la base de données, de
la compression du contenu, des requêtes optimisées.
➢ Maintenabilité :
- Le code est facile à lire et à comprendre.
- La documentation est présente pour les fonctions, les méthodes et les classes complexes.
- Conventions de nommage : Utilisation de préfixes pour les classes et les méthodes, la
cohérence dans le nommage des variables.
Points forts :
- Le code est bien structuré et respectueux des conventions de codage.
- La gestion des dépendances est efficace et sécurisée.
- Les tests unitaires couvrent une grande partie du code source.
Points d’amélioration :
- Améliorer la couverture des tests d'intégration pour les fonctionnalités critiques (paiement,
panier d'achat, etc.).
- Réduire la complexité cyclomatique dans certaines fonctions.
- Ajouter des tests de sécurité automatisés pour vérifier la robustesse du code face aux attaques.
Recommandations :
- Continuer à utiliser les outils d'analyse de code et les tests unitaires pour garantir la qualité du
code.
- Réaliser des revues de code régulières pour identifier les points d'amélioration et les erreurs
potentielles.
- Adopter une culture de la qualité du code au sein de l'équipe de développement.
Conclusion :
Le code du projet Shopwise est de bonne qualité globale et présente un faible risque technique. Le
code est bien structuré, respectueux des conventions de codage, et possède une bonne couverture par
les tests. Néanmoins, des actions futures sont nécessaires pour améliorer la couverture des tests
d'intégration, la complexité cyclomatique et la sécurité. En suivant les recommandations on pourra
maintenir la qualité du code et améliorer les performances du projet.
Méthodes d’analyse :
Résultats :
➢ Branches :
- Le dépôt utilise les branches suivantes :
- `main` : Branche principale du projet.
- `dev` : Branche de développement.
- `feature/x` : Branches de fonctionnalités spécifiques.
- `hotfix/x` : Branches pour corriger des bugs urgents. Exemple : La branche `feature/cart-
update` a été créée pour ajouter la fonctionnalité de mise à jour du panier d'achat.
➢ Fusions :
- Il y a eu 17 fusions de branches vers la branche `main` depuis le début du projet.
- Exemple : La branche `feature/cart-update` a été fusionnée vers la branche `main` pour
intégrer la nouvelle fonctionnalité.
Points forts :
- L'historique des commits est bien documenté et permet de suivre l'évolution du projet.
- Les branches sont utilisées de manière appropriée pour développer de nouvelles
fonctionnalités et corriger des bugs.
- Les messages de commit sont généralement clairs et précis.
Points d’amélioration :
Recommandations :
- Continuer à utiliser Git pour gérer les versions du code source du projet.
- Mettre en place des conventions claires pour les branches et les messages de commit.
- Encourager l'équipe à utiliser les branches de manière appropriée.
Conclusion :
La gestion de version avec Git est utilisée de manière efficace pour le projet Shopwise. L'historique
des commits est bien documenté, les branches sont utilisées de manière appropriée et les messages
de commit sont généralement clairs. Cependant, des actions futures peuvent être entreprises pour
améliorer la cohérence des messages de commit, la fréquence des commits et l'utilisation des outils
de gestion de version automatisée.
7. Base de données
Méthodes d’Analyse :
Résultats :
➢ Utilisation des Conventions : Les conventions de nommage des branches et des commits sont
suivies. Exemple : Les branches de fonctionnalités sont nommées `feature/nom-de-la-
fonctionnalité` et les branches de correction de bugs sont nommées `hotfix/nom-du-bug`.
Points forts :
- L'historique des commits est bien documenté et permet de suivre l'évolution du projet.
- Les branches sont utilisées de manière appropriée pour développer de nouvelles
fonctionnalités et corriger des bugs.
- Les messages de commit sont généralement clairs et précis.
Points d'amélioration :
Recommandations :
- Continuer à utiliser Git pour gérer les versions du code source du projet.
- Mettre en place des conventions claires pour les branches et les messages de commit.
- Encourager l'équipe à utiliser les branches de manière appropriée.
Conclusion :
La gestion de version avec Git est utilisée de manière efficace pour le projet Shopwise. L'historique
des commits est bien documenté, les branches sont utilisées de manière appropriée et les messages
de commit sont généralement clairs. Cependant, des actions futures peuvent être entreprises pour
améliorer la cohérence des messages de commit, la fréquence des commits et l'utilisation des outils
de gestion de version automatisée.
VIII. CHAPITRE 3 : analyse des
résultats
➢ PAGE D’ACCUEIL
Voici une estimation plus détaillée du coût de développement du système de commerce électronique
Laravel en PHP MySQL, en tenant compte des différentes phases du projet :
2. Phase de développement :
- Durée estimée : 12 mois
- Coût estimé : 1 500 000 €
- Cette phase comprend la conception détaillée, le développement des fonctionnalités, les tests
unitaires et l'intégration.
3. Phase de test et de validation :
- Durée estimée : 3 mois
- Coût estimé : 300 000 €
- Cette phase inclut les tests fonctionnels, les tests d'acceptation et la validation du système.
Cette estimation détaillée prend en compte les différentes phases du projet, de la planification à la
maintenance, et fournit un coût total approximatif de 2,3 millions d'euros pour le développement du
système de commerce électronique Laravel en PHP MySQL.
Veuillez noter que ces chiffres sont des estimations basées sur des hypothèses et peuvent varier en
fonction de facteurs réels tels que la complexité, les ressources disponibles, les imprévus, etc. Il est
recommandé de revoir régulièrement ces estimations au fur et à mesure de l'avancement du projet.
ix. Conclusion
Ce rapport a présenté un système de commerce électronique complet, mettant en lumière ses
fonctionnalités clés, sa conception technique et les ressources externes utilisées pour sa réalisation.
L'essor du e-commerce a prouvé l'importance d'une plateforme performante et flexible pour les
entreprises souhaitant se développer en ligne.
L'application développée offre une solution complète, intégrant des fonctionnalités essentielles telles
que la gestion de produits, la commande, le paiement et la livraison. Sa structure modulaire et sa
conception responsive permettent une adaptation à différents appareils et tailles d'écran, garantissant
une expérience utilisateur optimale.
Le choix de technologies éprouvées comme Laravel, PHP et MySQL, associé à l'intégration de
systèmes de paiement et d'expédition populaires, offre une solution robuste et évolutive. L'accent mis
sur les performances, la sécurité et l'optimisation SEO assure une meilleure visibilité et une expérience
utilisateur agréable.
En conclusion, ce système de commerce électronique représente un outil puissant pour les entreprises
cherchant à se lancer en ligne ou à améliorer leur présence numérique. Sa conception flexible et ses
fonctionnalités complètes le positionnent comme une solution idéale pour les besoins actuels du
marché.
L'implémentation d'une telle solution sur toutes les plateformes est possible grâce à la conception
responsive et à la compatibilité avec les navigateurs web les plus utilisés. De plus, la technologie
utilisée permet de s'adapter aux différents systèmes d'exploitation et appareils. Toutefois, une analyse
approfondie des besoins spécifiques de chaque plateforme serait nécessaire pour garantir une
expérience utilisateur optimale et une performance optimale.
x. RÉFÉRENCE
➢ Non publiées :
[1] Cours de Bases de données et Ergonomie de M. ETEME
[2] Cours de Méthodes du génie Logiciel, d’Analyse et conception des systèmes
d’information et de Gestion de projets Informatiques.
[3] Cours de Technologies et Programmation Web de M MINKA
➢ PUBLIÉES :
[1] CHATGPT (Chat Playground - OpenAI API)
[2] L’APPLICATION POE (Poe)
[3] DOCUMENTATION DE LARAVEL (Laravel Documentation - Laravel 11.x - The PHP
Framework For Web Artisans)