Académique Documents
Professionnel Documents
Culture Documents
Ecole ESIAM
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Remerciements
Je tiens à exprimer ma gratitude envers toutes les personnes qui m'ont soutenu tout au long de
ce projet de création d'une application Windows et d'un site web pour mettre en relation les
prestataires et leurs clients.
Mr. Rachid WAKRIM pour son encadrement et ses conseils précieux tout au long du projet.
Mes collègues et amis qui ont partagé leurs idées et m'ont soutenu pendant les moments de
doute.
Je tiens également à remercier toutes les ressources en ligne, les documentations et les forums
communautaires qui m'ont aidé à résoudre les défis techniques rencontrés durant le
développement de l'application et du site web.
Enfin, je souhaite exprimer ma reconnaissance envers mon Ecole ESIAM pour m'avoir offert la
possibilité de réaliser ce projet et d'approfondir mes connaissances dans le domaine de la
programmation et du développement web.
Mes sincères remerciements à tous ceux qui ont contribué de près ou de loin à la réussite de ce
projet.
1
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Introduction
Je vous présente mon projet de création d'une application Windows et d'un site web visant à
mettre en relation les prestataires et leurs clients. Permettez-moi de me présenter brièvement.
Je suis Walid Sakaly, un ingénieur industriel avec plusieurs années d'expérience dans le
domaine. Au cours de ma carrière, j'ai eu l'occasion de travailler sur des projets variés, en
mettant l'accent sur l'optimisation des processus, la gestion de la qualité et la recherche de
solutions innovantes.
Fort de mon expérience en ingénierie industrielle, j'ai constaté un défi récurrent auquel sont
confrontés les prestataires de services : la difficulté de trouver des clients correspondant à
leurs compétences et à leurs disponibilités. De même, les clients peuvent éprouver des
difficultés à trouver des prestataires qualifiés et fiables pour répondre à leurs besoins
spécifiques.
C'est dans cette optique que j'ai conçu ce projet d'application Windows et de site web.
L'objectif est de créer une plateforme conviviale et efficace permettant de mettre en relation
les prestataires et leurs clients, facilitant ainsi les échanges, la recherche de services et la
gestion des projets.
Le projet comprendra les fonctionnalités suivantes : création de profils pour les prestataires et
les clients, recherche avancée de services, système de messagerie intégré, gestion des
disponibilités, évaluations et commentaires, ainsi que la possibilité de réserver des services en
ligne.
En me basant sur une analyse approfondie des besoins des prestataires et des clients, ainsi que
sur une étude de marché réalisée spécifiquement pour le Maroc, je suis convaincu que cette
application et ce site web répondront à une demande croissante dans le secteur des services.
Ils offriront une solution pratique, transparente et sécurisée pour la mise en relation des
prestataires et des clients, tout en favorisant la confiance et la qualité des services proposés.
Je suis impatient de discuter de ce projet avec vous et d'obtenir votre soutien pour sa
réalisation. Je suis convaincu que mon expertise en ingénierie industrielle et ma passion pour
le développement de solutions technologiques innovantes sont des atouts précieux pour mener
à bien ce projet.
Je me tiens à votre disposition pour toute information complémentaire ou pour discuter plus
en détail des aspects techniques et opérationnels du projet. Merci de votre attention et de
l'opportunité qui m'est donnée de présenter ce projet.
2
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
3
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
I- Cahier de charge
1- Contexte du projet
Le contexte du projet de création d'une application Windows et d'un site web pour mettre en
relation les prestataires et leurs clients repose sur le besoin croissant de faciliter les échanges et
les transactions entre ces deux parties. Dans de nombreux secteurs d'activité, il existe une
demande importante pour des services professionnels de qualité, tandis que les prestataires
cherchent à atteindre un public plus large et à établir des relations durables avec leurs clients.
Dans ce contexte, l'idée de développer une application Windows et un site web dédiés à la mise
en relation des prestataires et des clients émerge comme une solution prometteuse. Ces
plateformes offriront un moyen efficace et convivial pour les clients de trouver des prestataires
compétents, de comparer leurs offres et de prendre contact avec eux facilement. De leur côté,
les prestataires pourront présenter leurs services, mettre en valeur leurs compétences et gérer
leurs interactions avec les clients de manière plus efficace.
En créant cette application Windows et ce site web, l'objectif est de simplifier le processus de
recherche, de sélection et de communication entre les prestataires et les clients, en favorisant la
transparence, la confiance et la qualité des services rendus. Ce projet s'inscrit dans une
démarche d'innovation technologique et de création de valeur ajoutée pour les utilisateurs, en
répondant à un réel besoin du marché.
2- Objectifs du projet
Les objectifs du projet de création d'une application Windows et d'un site web pour mettre en
relation les prestataires et leurs clients sont les suivants :
1. Faciliter la recherche de prestataires : L'objectif principal est de fournir aux clients un moyen
simple et efficace de trouver des prestataires correspondant à leurs besoins spécifiques.
L'application et le site web permettront aux clients de rechercher des prestataires en fonction de
critères tels que le secteur d'activité, la localisation, les compétences, les évaluations et les tarifs.
2. Offrir une plateforme de mise en relation : L'application et le site web serviront de plateforme
pour la mise en relation directe entre les prestataires et les clients. Les clients pourront consulter
les profils des prestataires, accéder à leurs portfolios, lire les avis et les évaluations laissés par
d'autres clients, et ainsi prendre des décisions éclairées avant de contacter un prestataire.
4
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
En résumé, les objectifs du projet sont de créer une plateforme technologique qui simplifie la
mise en relation entre les prestataires et les clients, tout en favorisant la transparence, la
confiance et la qualité des services rendus.
La création de l'application Windows et du site web visant à mettre en relation les prestataires et
leurs clients est justifiée par plusieurs raisons :
Répondre à un besoin du marché : Il existe un réel besoin sur le marché pour une plateforme
efficace permettant de mettre en relation les prestataires et les clients. Les méthodes
traditionnelles de recherche de prestataires peuvent être laborieuses et peu pratiques, tandis
que les prestataires peuvent avoir du mal à se faire connaître. L'application et le site web
offriront une solution moderne et conviviale pour répondre à ce besoin et faciliter les échanges
entre les deux parties.
Simplifier le processus de recherche : Les clients ont souvent du mal à trouver des prestataires
adaptés à leurs besoins spécifiques. L'application et le site web permettront aux clients de
5
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
rechercher facilement des prestataires en fonction de critères précis tels que le secteur d'activité,
la localisation, les compétences, les évaluations, etc. Cela simplifiera considérablement le
processus de recherche et permettra aux clients de trouver plus rapidement les prestataires
appropriés.
En somme, la création de l'application Windows et du site web pour mettre en relation les
prestataires et les clients répond à un besoin du marché, simplifie le processus de recherche,
favorise la transparence et la confiance, améliore l'efficacité des clients et soutient le
développement professionnel des prestataires. Ces justifications démontrent la pertinence et la
valeur ajoutée de ce projet.
L'analyse des besoins est une étape cruciale dans le processus de création d'une application
Windows et d'un site web pour mettre en relation les prestataires et leurs clients. Elle permet de
comprendre les attentes et les exigences des utilisateurs, tant du côté des prestataires que des
clients. Voici les principaux aspects à prendre en compte lors de l'analyse des besoins :
- Gestion des services : Les prestataires devront pouvoir ajouter, modifier et supprimer les
services qu'ils proposent, ainsi que définir les tarifs associés.
6
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Communication avec les clients : Il sera important de permettre aux prestataires d'échanger
des messages avec les clients potentiels, de répondre aux questions et de négocier les termes
des services.
- Gestion des disponibilités : Certains prestataires peuvent avoir besoin de spécifier leurs
disponibilités horaires et de gérer leur emploi du temps.
- Informations détaillées : Les clients ont besoin d'accéder à des informations détaillées sur les
prestataires, notamment leurs compétences, leurs réalisations passées, leurs tarifs et les avis des
clients précédents.
- Communication avec les prestataires : Il est essentiel de permettre aux clients de contacter les
prestataires, de poser des questions, de demander des devis et de négocier les conditions des
services.
- Évaluation et notation des prestataires : Les clients doivent pouvoir évaluer et laisser des avis
sur les prestataires avec lesquels ils ont travaillé, afin d'aider les autres utilisateurs dans leur
choix.
3. Fonctionnalités communes :
- Système d'authentification : Les utilisateurs devront pouvoir créer des comptes, se connecter
de manière sécurisée et gérer leurs informations personnelles.
- Notifications : Les utilisateurs devront recevoir des notifications concernant les messages, les
demandes de devis, les réponses, etc.
- Interface utilisateur conviviale : L'application et le site web devront offrir une interface intuitive
et conviviale, facilitant la navigation et la recherche d'informations.
L'analyse des besoins doit être réalisée en concertation avec les prestataires et les clients
potentiels, en utilisant des méthodes telles que les enquêtes, les entretiens ou les études de
marché. Elle permettra d'identifier les fonctionnalités clés à développer et de garantir que
l'application et le site web répondent aux attentes des utilisateurs.
4 - Étude de marché
L'étude de marché au Maroc a révélé un fort potentiel pour notre projet de création d'une
application Windows et d'un site web visant à mettre en relation les prestataires et leurs clients.
7
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
8
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
9
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Il est important de noter que Visual Studio 2010 est une version plus ancienne, et il existe des
versions plus récentes de Visual Studio avec des fonctionnalités et des améliorations
supplémentaires.
Microsoft SQL Server est un système de gestion de base de données relationnelle (SGBDR)
développé par Microsoft. Il offre une plateforme complète pour le stockage, la gestion et
l'analyse des données.
1. Gestion des données : SQL Server permet de stocker et de gérer de grandes quantités de
données de manière efficace et fiable. Il prend en charge les opérations de création, de
modification, de suppression et de recherche de données à l'aide du langage SQL (Structured
Query Language).
2. Sécurité des données : SQL Server propose des fonctionnalités de sécurité avancées pour
protéger les données sensibles. Il prend en charge l'authentification, l'autorisation, le chiffrement
des données, l'audit des accès et d'autres mesures de sécurité pour garantir l'intégrité et la
confidentialité des données.
3. Haute disponibilité : SQL Server offre des options de haute disponibilité pour garantir la
continuité des opérations. Il prend en charge la réplication des données, le clustering, la mise en
miroir et le basculement automatique pour minimiser les temps d'arrêt en cas de panne ou de
maintenance planifiée.
10
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
4. Intégration avec d'autres produits Microsoft : SQL Server s'intègre étroitement avec d'autres
produits et technologies de Microsoft, tels que Visual Studio, .NET Framework, Azure, Power BI,
SharePoint, etc. Cela facilite le développement d'applications, l'analyse des données et
l'intégration avec d'autres systèmes.
5. Analyse de données : SQL Server propose des fonctionnalités avancées d'analyse de données,
y compris l'exploration des données, le data mining et la modélisation prédictive. Il prend en
charge l'exécution de requêtes complexes et l'optimisation des performances pour les charges
de travail analytiques.
6. Business Intelligence (BI) : SQL Server inclut des fonctionnalités de Business Intelligence, telles
que l'intégration des données, l'ETL (Extract, Transform, Load), la modélisation
multidimensionnelle, les rapports et les tableaux de bord interactifs. Cela permet aux
organisations d'extraire des informations significatives à partir de leurs données et de prendre
des décisions éclairées.
7. Extensibilité : SQL Server permet aux développeurs d'étendre ses fonctionnalités à l'aide de
langages de programmation tels que T-SQL, .NET, R et Python. Il prend également en charge les
procédures stockées, les fonctions définies par l'utilisateur et les déclencheurs pour
personnaliser et automatiser les opérations de base de données.
Microsoft SQL Server est largement utilisé par les entreprises de toutes tailles pour gérer leurs
données, développer des applications, prendre des décisions basées sur les données et obtenir
des informations commerciales précieuses.
11
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Crystal report
12
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
6. Intégration avec d'autres applications : Crystal Reports peut être intégré à d'autres applications
logicielles, telles que des applications web, des systèmes de gestion de bases de données et des
applications d'entreprise, pour générer des rapports dynamiques en temps réel.
Crystal Reports est largement utilisé dans les entreprises pour créer des rapports analytiques,
des factures, des relevés financiers, des tableaux de bord et d'autres types de rapports
professionnels. Il offre une interface conviviale et des fonctionnalités avancées pour répondre
aux besoins de génération de rapports complexes.
VS Code
13
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
7. Prise en charge des tâches automatisées et des scripts de compilation grâce à des intégrations
avec des outils tels que Gulp, Grunt et npm.
10. Intégration avec des services cloud tels qu’Azure pour le déploiement et la gestion des
applications.
VS Code est apprécié pour sa légèreté, sa simplicité et sa flexibilité, ce qui en fait un choix
populaire pour de nombreux développeurs dans différents domaines.
XAMPP
14
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
XAMPP est compatible avec plusieurs systèmes d'exploitation, notamment Windows, macOS et
Linux, et il est largement utilisé par les développeurs et les étudiants pour apprendre,
expérimenter et développer des projets web.
Mozilla Firefox
Mozilla Firefox est un navigateur web libre et gratuit disponible pour PC et mobiles, développé et
distribué par la Mozilla Foundation depuis 2003, avec l'aide de milliers de bénévoles. L'entreprise
Mozilla Corporation est créée en 2005 pour se charger du développement.
1. Développement orienté vers les standards : Firefox est un navigateur qui accorde une grande
importance aux standards du web. En utilisant Firefox lors du développement, vous pouvez vous
assurer que votre site web ou votre application est conforme aux normes et fonctionne
correctement sur d'autres navigateurs.
3. Prise en charge des technologies émergentes : Firefox est souvent en avance dans l'adoption
des nouvelles technologies et des fonctionnalités du web. Cela vous permet de profiter des
dernières avancées et de tester les fonctionnalités émergentes, telles que les API web, les
animations CSS, les transitions, les grilles CSS, etc.
15
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
En résumé, Firefox est un navigateur qui favorise les standards du web, offre des outils de
développement puissants, prend en charge les technologies émergentes et met l'accent sur la
confidentialité et la sécurité. Son utilisation dans le développement web peut améliorer votre
productivité, vous permettre de tester des fonctionnalités avancées et garantir une expérience
optimale pour les utilisateurs de votre site web.
16
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
1- Méthodologie
La gestion adaptative de projet, également connue sous le nom de gestion de projet
agile, est une approche flexible et itérative de la gestion de projets qui se concentre sur la
collaboration, l'adaptation aux changements et la livraison continue de produits
fonctionnels. Cette méthode diffère de la gestion traditionnelle de projet, qui suit un plan
rigide de bout en bout.
b. Livraison itérative et incrémentale : Plutôt que de tout livrer à la fin, l'approche agile
encourage à fournir des versions fonctionnelles du logiciel à intervalles réguliers. Cela
permet au développeur solo de recevoir des retours plus tôt et d'ajuster le
développement en conséquence.
17
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Prestataire
Service
Intervention
18
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Facture
Personnel
Pointage
Site web
Client
19
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Panier
Prestataire
Service
20
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Page du service
Modérateur
21
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Application
22
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Siteweb
23
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Application desktop
Les classes
Connexion
La classe "connexion" en VB.NET gère la connexion à une base de données SQL Server. Elle
importe l'espace de noms "System.Data.SqlClient" et déclare une instance de la classe
"SqlConnection" (cnx) for the database connection, a string variable (chemin) to store the
database connection path, and an integer variable (f) to store a file identifier. The class includes
the constructor, which reads the database connection path from a text file ("connexion.txt") and
initializes the SqlConnection's "ConnectionString" property. It also contains methods to open and
close the database connection. This class facilitates handling the database connection using a
text file for the connection path.
classprestatair
La classe "classprestatair" en Visual Basic .NET est utilisée pour interagir avec une base de
données et gérer les informations des prestataires de services. Elle importe l'espace de noms
"System.Data.SqlClient" pour travailler avec les bases de données SQL Server via la classe
SqlConnection. La classe contient une variable publique "c" de type "connexion" pour gérer la
connexion à la base de données, ainsi que des variables publiques "ds" (DataSet) et "da"
(SqlDataAdapter) pour le stockage en mémoire des données et les mises à jour de la base de
données.
Cette classe fournit diverses méthodes publiques telles que "affichagePrestataire" pour
récupérer et remplir le DataSet avec les informations des prestataires, "ajouter" pour insérer un
nouvel enregistrement de prestataire dans la base de données, "supprimer" pour effacer un
enregistrement de prestataire en fonction de l'ID fourni, "servicelist" pour récupérer un
DataTable contenant les informations sur les services, et différentes méthodes de recherche
basées sur le nom, le prénom, le numéro de téléphone, le CIN, la date et l'ID des prestataires.
24
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
En somme, cette classe offre un ensemble complet de fonctionnalités pour gérer les données des
prestataires de services dans la base de données, en leur permettant d'être récupérées, insérées,
mises à jour et supprimées, ainsi que d'effectuer diverses recherches en fonction de différents
critères.
Classclient
La classe "classClient" en VB.NET est conçue pour interagir avec une table de base de données
appelée "Client". Elle importe l'espace de noms "System.Data.SqlClient" pour travailler avec SQL
Server et déclare une série de membres, y compris une instance de la classe "connexion" pour
gérer la connexion à la base de données, un DataSet pour stocker les résultats des requêtes, un
SqlDataAdapter pour exécuter les commandes SQL et remplir le DataSet, et une variable entière
pour le stockage de valeurs.
La classe propose plusieurs méthodes qui effectuent différentes opérations sur la table "Client".
La méthode "affichageClient" récupère toutes les lignes de la table en exécutant une requête
SELECT, remplit le DataSet avec les résultats et ferme la connexion à la base de données.
La méthode "rechercheclient" effectue une recherche dans la table "Client" en utilisant un mot-
clé et une colonne spécifiés, afin d'éviter les attaques par injection SQL.
Il y a aussi des méthodes pour effectuer des recherches basées sur le nom, le prénom, le numéro
de téléphone, le numéro de CIN et la date d'inscription des clients dans la table.
La méthode "updateinfo" met à jour les informations d'un enregistrement dans la table "Client"
en utilisant les nouvelles valeurs fournies en tant que paramètres.
25
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
La classe utilise des objets SqlCommand pour exécuter des requêtes SQL, et les méthodes sont
organisées de manière à permettre la manipulation des données dans la table "Client" de
manière sécurisée et efficace. Des requêtes SQL alternatives sont également commentées dans
le code, fournissant des options supplémentaires pour réaliser les opérations nécessaires sur la
table "Client".
Classservice
Cette classe en VB.NET s'appelle "ClassService" et elle contient des méthodes pour effectuer des
opérations sur une table de base de données appelée "Service". Voici une explication des
différentes parties de la classe :
Public Class ClassService : Cette ligne déclare une classe appelée "ClassService".
- Public c As New connexion : C'est une instance de la classe "connexion", qui gère la connexion à
la base de données.
- Public ds As New DataSet : C'est une instance de la classe "DataSet", qui contient les données
résultantes des requêtes exécutées.
- Public da As New SqlDataAdapter : C'est une instance de la classe "SqlDataAdapter", qui est
utilisée pour exécuter des commandes SQL et remplir le DataSet.
- Public v As Integer = 0 : C'est une variable entière utilisée pour stocker une valeur.
Ensuite, il y a plusieurs méthodes qui effectuent différentes opérations sur la table "Service" :
- Public Sub affichageservice() : Cette méthode ouvre la connexion à la base de données, exécute
une requête SELECT pour récupérer toutes les lignes de la table "Service" et remplit le DataSet
avec les résultats. Enfin, elle ferme la connexion à la base de données.
- Public Sub ajouter(ByVal VaNom As String, ByVal VarDesc As String) : Cette méthode ajoute un
nouvel enregistrement à la table "Service" en utilisant les valeurs fournies en tant que
paramètres.
26
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Public Sub updateinfo(ByVal idvar As Integer, ByVal VaNom As String, ByVal VarDesc As String) :
Cette méthode met à jour les informations d'un enregistrement dans la table "Service" en
utilisant les nouvelles valeurs fournies en tant que paramètres.
Ces méthodes utilisent des objets SqlCommand pour exécuter des requêtes SQL et des objets
SqlDataAdapter pour remplir le DataSet avec les résultats des requêtes. La classe "connexion" est
utilisée pour gérer la connexion à la base de données.
Class intervention
Cette classe en VB.NET s'appelle "ClassIntervention" et elle contient des méthodes pour effectuer
des opérations sur une table de base de données appelée "Intervention". Voici une explication
des différentes parties de la classe :
Public Class ClassIntervention : Cette ligne déclare une classe appelée "ClassIntervention".
- Public c As New connexion : C'est une instance de la classe "connexion", qui gère la connexion à
la base de données.
- Public ds As New DataSet : C'est une instance de la classe "DataSet", qui contient les données
résultantes des requêtes exécutées.
- Public da As New SqlDataAdapter : C'est une instance de la classe "SqlDataAdapter", qui est
utilisée pour exécuter des commandes SQL et remplir le DataSet.
- Public v As Integer = 0 : C'est une variable entière utilisée pour stocker une valeur.
27
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Ensuite, il y a plusieurs méthodes qui effectuent différentes opérations sur la table "Intervention"
:
- Public Sub ajouter(ByVal idcvar As Integer, ByVal idptvar As Integer, ByVal idsvar As Integer,
ByVal InterventionDatevar As Date, ByVal InterventionDescvar As String, ByVal
InterventionPrixvar As Double) : Cette méthode ajoute une nouvelle intervention à la table
"Intervention" en utilisant les valeurs fournies en tant que paramètres.
- Public Sub update(ByVal InterventionIdvar As Integer, ByVal idcvar As Integer, ByVal idptvar As
Integer, ByVal idsvar As Integer, ByVal InterventionDatevar As Date, ByVal InterventionDescvar As
String, ByVal InterventionPrixvar As Double) : Cette méthode met à jour les informations d'une
intervention dans la table "Intervention" en utilisant les nouvelles valeurs fournies en tant que
paramètres.
28
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Public Function searchNav() : Cette méthode ne retourne pas de valeur pour le moment. Son
objectif n'est pas clairement défini.
Ces méthodes utilisent des objets SqlCommand pour exécuter des requêtes SQL et des objets
SqlDataAdapter pour remplir le DataSet avec les résultats des requêtes. La classe "connexion" est
utilisée pour gérer la connexion à la base de données.
ClassAdmin
Cette classe en VB.NET s'appelle "ClassAdmin" et elle contient des méthodes pour effectuer des
opérations sur une table de base de données appelée "Personel". Voici une explication des
différentes parties de la classe :
Public Class ClassAdmin : Cette ligne déclare une classe appelée "ClassAdmin".
- Public c As New connexion : C'est une instance de la classe "connexion", qui gère la connexion à
la base de données.
- Public ds As New DataSet : C'est une instance de la classe "DataSet", qui contient les données
résultantes des requêtes exécutées.
- Public da As New SqlDataAdapter : C'est une instance de la classe "SqlDataAdapter", qui est
utilisée pour exécuter des commandes SQL et remplir le DataSet.
Ensuite, il y a plusieurs méthodes qui effectuent différentes opérations sur la table "Personel" :
29
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Public Sub affichage() : Cette méthode exécute une requête SELECT pour récupérer les données
de la table "Personel" ainsi que la somme du temps total (totaltime_sum) à partir de la table
"Pointage" en effectuant une jointure. Les résultats sont stockés dans le DataSet.
- Public Sub ajouter(ByVal loginVar As String, ByVal passwordVar As String, ByVal nomVar As
String, ByVal prenomVar As String, ByVal fonctionVar As String) : Cette méthode ajoute un nouvel
enregistrement à la table "Personel" en utilisant les valeurs fournies en tant que paramètres. Elle
détermine également la valeur du rang (rankVar) en fonction de la valeur de la fonction.
- Public Sub modifier(ByVal idVar As Integer, ByVal nomVar As String, ByVal prenomVar As String,
ByVal fonctionVar As String) : Cette méthode modifie les informations d'un enregistrement dans
la table "Personel" en utilisant les nouvelles valeurs fournies en tant que paramètres. Elle met
également à jour la valeur du rang (rankVar) en fonction de la valeur de la fonction.
Ces méthodes utilisent des objets SqlCommand pour exécuter des requêtes SQL et des objets
SqlDataAdapter pour remplir le DataSet avec les résultats des requêtes. La classe "connexion" est
utilisée pour gérer la connexion à la base de données.
Form
Login page
30
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
31
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Remarque : Il est important de noter que certaines parties du code font référence à des
variables, fonctions ou formulaires qui ne sont pas définis dans cette classe. Pour que ce code
fonctionne correctement, il doit être utilisé dans le contexte approprié et intégré avec le reste de
l'application.
Accueil
32
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Public c As New connexion : C'est une instance de la classe "connexion", qui gère la connexion à
la base de données.
- Public ds As New DataSet : C'est une instance de la classe "DataSet", qui contient les données
résultantes des requêtes exécutées.
- Public da As New SqlDataAdapter : C'est une instance de la classe "SqlDataAdapter", qui est
utilisée pour exécuter des commandes SQL et remplir le DataSet.
La classe contient plusieurs événements de contrôle qui sont déclenchés lorsque des actions
sont effectuées sur les contrôles de l'interface utilisateur :
33
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Ces événements sont utilisés pour contrôler l'affichage des différents formulaires en fonction des
actions de l'utilisateur. La classe "connexion" est utilisée pour gérer la connexion à la base de
données.
Prestataire
34
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Public Class prestatair : Cette ligne déclare une classe appelée "prestatair".
- Public a As New classprestatair : C'est une instance de la classe "classprestatair", qui gère les
opérations liées aux prestataires.
La classe contient plusieurs événements de contrôle qui sont déclenchés lorsque des actions
sont effectuées sur les contrôles de l'interface utilisateur :
35
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
36
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Client
37
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Public client As New classClient : C'est une instance de la classe "classClient", qui gère les
opérations liées aux clients.
- Public idclient As Integer : C'est une variable entière utilisée pour stocker l'ID du client
sélectionné.
La classe contient plusieurs événements de contrôle qui sont déclenchés lorsque des actions
sont effectuées sur les contrôles de l'interface utilisateur :
38
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Service
39
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Public Class service : Cette ligne déclare une classe appelée "service".
- Public service As New ClassService : C'est une instance de la classe "ClassService", qui gère les
opérations liées aux services.
- Public i As Integer : C'est une variable pour stocker l'index de la ligne sélectionnée dans le
DataGridView.
- Public idservice As Integer : C'est une variable pour stocker l'ID du service sélectionné.
La classe contient plusieurs événements de contrôle qui sont déclenchés lorsque des actions
sont effectuées sur les contrôles de l'interface utilisateur :
40
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
événement est déclenché lorsque l'utilisateur clique sur une ligne du DataGridView
"ServiceDataGridView". Il récupère l'index de la ligne sélectionnée, puis récupère l'ID du service
correspondant à partir du DataSet service.ds.Tables("Service"). Ensuite, il affiche les informations
du service sélectionné dans les contrôles correspondants.
Remarque : Il est important de noter que certaines parties du code font référence à des
variables, fonctions ou formulaires qui ne sont pas définis dans cette classe. Pour que ce code
fonctionne correctement, il doit être utilisé dans le contexte approprié et intégré avec le reste de
l'application.
Intervention
41
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Public Class intervention : Cette ligne déclare une classe appelée "intervention".
- Public PrestataireID As Integer : C'est une variable qui stocke l'ID du prestataire sélectionné.
- Public InterventionIDp As Integer : C'est une variable qui stocke l'ID de l'intervention
sélectionnée.
La classe contient plusieurs événements de contrôle qui sont déclenchés lorsque des actions
sont effectuées sur les contrôles de l'interface utilisateur :
42
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Remarque : Il est important de noter que certaines parties du code font référence à des
variables, fonctions ou formulaires qui ne sont pas définis dans cette classe. Pour que ce code
fonctionne correctement, il doit être utilisé dans le contexte approprié et intégré avec le reste de
l'application.
43
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Admin page
44
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Public personel As New ClassAdmin : C'est une instance de la classe "ClassAdmin", qui gère les
opérations liées aux utilisateurs administrateurs.
- Public idPersonel As Integer : C'est une variable pour stocker l'ID de l'utilisateur administrateur
sélectionné.
- Public selectedValueG As String : C'est une variable pour stocker la valeur sélectionnée dans le
ComboBox "ComboBox1".
- Public selectedValue As String : C'est une variable pour stocker la valeur sélectionnée dans le
ComboBox "ComboBox1" (utilisée pour le traitement interne).
La classe contient plusieurs événements de contrôle qui sont déclenchés lorsque des actions
sont effectuées sur les contrôles de l'interface utilisateur :
45
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
l'utilisateur clique sur le bouton "ModClientButton". Il récupère les nouvelles valeurs des
contrôles de saisie (comme PersonelNomTextBox, PersonelPrenomTextBox, etc.) et les utilise
pour mettre à jour les informations de l'utilisateur administrateur dans la base de données en
utilisant la méthode personel.modifier. Enfin, il rafraîchit les données du DataSet
personel.ds.Tables("Personel").
Remarque : Il est important de noter que certaines parties du code font référence à des
variables, fonctions ou formulaires qui ne sont pas définis dans cette classe. Pour que ce code
fonctionne correctement, il doit être utilisé dans le contexte approprié et intégré avec le reste de
l'application.
Module
Les modules "employeelog" et "extravalues" jouent un rôle essentiel dans la gestion de notre
projet visant à mettre en relation les prestataires et leurs clients. Le module "employeelog"
contient des variables publiques qui nous permettent de stocker des informations clés sur les
46
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
employés, notamment leur nom, identifiant, rang, horaires d'arrivée et de départ, ainsi que leur
temps de connexion. Cela nous permettra d'assurer un suivi précis des activités des employés et
d'optimiser leur gestion au sein de la plateforme. De l'autre côté, le module "extravalues"
comprend plusieurs structures, notamment pour enregistrer les données relatives aux
interventions, aux clients et aux prestataires. Ces structures sont spécifiquement conçues pour
stocker les informations pertinentes sur les intervenants et les services, ce qui facilitera leur
gestion, leur recherche et leur utilisation dans notre application Windows et notre site web. Ces
deux modules joueront un rôle central dans le développement de notre projet, en garantissant
une organisation efficace des données et une meilleure expérience utilisateur pour les
prestataires et les clients.
Ces deux modules sont des structures de données utilisées pour stocker des informations dans
votre projet. Voici une explication de chaque module et des structures qu'ils contiennent :
Module "employeelog" :
Ce module contient des variables publiques qui peuvent être utilisées pour stocker les
informations liées aux employés et à leur pointage (horaires de travail). Voici les variables
contenues dans ce module :
Module "extravalues" :
Ce module contient trois structures différentes, chacune étant utilisée pour stocker des
informations spécifiques concernant les interventions, les clients et les prestataires.
1. Structure "InterventionValues" :
47
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
2. Structure "ClientValues" :
- `ClientType` (String) : Stocke le type de client (peut être particulier ou entreprise, par
exemple).
3. Structure "prestatireValues" :
Ces modules et structures sont destinés à organiser et à stocker les données de manière claire et
structurée dans votre projet, ce qui facilitera leur utilisation dans différentes parties de votre
application Windows.
48
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Site web
49
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Index
Index c’est une page web comprenant différentes sections telles que "Hero Section", "About
Section", "Values Section", "Counts Section", et "Contact Section". Le document déclare son type
avec `<!DOCTYPE html>` et utilise l'anglais comme langue principale. La section `<head>`
contient des balises `<meta>` pour la description et les mots-clés (à compléter ultérieurement),
ainsi que des balises `<link>` pour les polices Google Fonts, les icônes de favicon, et les icônes
Apple Touch pour les appareils iOS. Le titre du site est défini avec `<title>` comme "Fixer.ma".
Des feuilles de styles CSS pour les plugins et le fichier principal "style.css" sont incluses via des
balises `<link>`. Le corps de la page commence avec la balise `<body>` et inclut une en-tête
`<header>` et un pied de page `<footer>` en utilisant des scripts PHP pour charger le contenu
depuis des fichiers "header.php" et "footer.php". Des icônes basées sur Bootstrap sont utilisées
pour afficher des symboles, et des fichiers JavaScript externes sont inclus pour gérer des
fonctionnalités spécifiques du site. Le fichier principal JavaScript "main.js" est inclus pour gérer
les fonctionnalités personnalisées du site.
Header
Ce code représente la partie d'en-tête (header) de la page HTML. Voici une description de son
contenu :
- Le code PHP commence par démarrer une session à l'aide de `session_start()`, ce qui permet
de gérer des variables de session pour stocker des informations sur l'utilisateur connecté.
- Ensuite, il inclut un fichier "connexion.php" qui doit contenir les informations nécessaires pour
établir la connexion à la base de données (non inclus dans ce code).
- La section d'en-tête `<header>` est définie avec l'ID "header" et la classe "fixed-top", ce qui
signifie qu'elle restera fixée en haut de la page même lorsque l'utilisateur fait défiler le contenu.
- Un lien `<a>` avec la classe "logo" qui renvoie à la page d'accueil "index.php". Le logo de
"Fixer.Ma" est affiché à côté du texte.
- Une balise `<nav>` avec l'ID "navbar" et la classe "navbar". À l'intérieur de cette balise, on
retrouve une liste non ordonnée `<ul>` avec plusieurs éléments de navigation `<li>`. Chaque
élément représente un lien vers une section spécifique du site (par exemple, "Home", "About",
"Services", "Team", "Blog" et "Contact").
50
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Le code PHP est utilisé pour gérer la navigation en fonction de l'état de connexion de
l'utilisateur. Si l'utilisateur est connecté (vérifié par `isset($_SESSION['ClientUserName'])`), un
menu déroulant est affiché avec les options "Profile", "Edit profile", "Check your orders" et
"Logout". Sinon, un lien "Sign in" est affiché pour inviter l'utilisateur à se connecter.
- Enfin, une icône en forme de liste (hamburger) est utilisée pour la navigation mobile lorsque la
taille de l'écran est réduite. Cette icône est représentée par la balise `<i class="bi bi-list mobile-
nav-toggle"></i>`, et lorsqu'elle est cliquée, elle affichera le menu de navigation.
Le reste du contenu de la page HTML (non inclus dans ce code) suivra après cette partie d'en-
tête, et il devrait être placé à l'intérieur de la balise `<body>`.
Footer
Le code que vous avez fourni représente la partie HTML de la section du pied de page (footer)
pour le template FlexStart Bootstrap. Voici une description de chaque élément du pied de page :
2. La classe `footer-top` contient les informations principales du pied de page, telles que le logo,
le texte descriptif et les liens vers les profils de médias sociaux.
3. Dans la section `footer-info`, vous avez le logo "FlexStart", une description de l'entreprise
"Cras fermentum odio eu feugiat lide par naso tierra. Justo eget nada terra videa magna derita
valies darta donna mare fermentum iaculis eu non diam phasellus.", et les icônes des réseaux
sociaux (Twitter, Facebook, Instagram et LinkedIn).
4. Les deux sections suivantes `footer-links` affichent des liens vers des pages importantes du
site, tels que "Home", "About us", "Services", "Terms of service" et "Privacy policy". Chaque lien
est symbolisé par une icône de flèche.
51
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
6. En bas du pied de page, il y a une autre division (div) avec les droits d'auteur et les crédits. Le
copyright indique que le site est la propriété de "FlexStart" et que tous les droits sont réservés.
Les crédits mentionnent que le template a été conçu par "BootstrapMade".
Notez que certaines parties du code contiennent des liens vers des pages spécifiques (par
exemple, `<a href="index.html" class="logo d-flex align-items-center">`). Vous devrez vérifier si
les liens correspondent aux pages réelles du site Web et les ajuster en conséquence.
Service
52
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
La barre de navigation verticale est générée à l'aide de boucles PHP, où chaque bouton
représente une catégorie de services et est cliquable. Lorsqu'un bouton de catégorie est cliqué,
les informations des services correspondant à cette catégorie sont affichées sous forme de
cartes avec des miniatures, noms, descriptions et un bouton "More details" pour obtenir plus de
détails.
Le système de pagination est utilisé pour afficher un nombre limité de services par page. Le pied
de page `<footer>` est inclus à l'aide du fichier "footer.php".
Enfin, un script JavaScript gère l'affichage des formulaires de connexion et d'inscription lorsque
certains liens sont cliqués, permettant une interaction fluide avec le contenu.
53
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
54
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Le `<body>` de la page commence par inclure le code du `header.php`, qui est probablement
la partie supérieure commune de l'en-tête du site contenant le logo, la navigation et d'autres
éléments.
- Le contenu principal de la page est ensuite placé dans la balise `<main>` avec l'ID "main".
- Une section "Breadcrumbs" est créée pour montrer le chemin de navigation de l'utilisateur.
Dans cet exemple, les liens sont définis pour "Home" et "Service detail".
- La section principale de la page est définie dans une balise `<section>` avec la classe "inner-
page". Elle contient du code PHP pour vérifier les paramètres d'URL "serviceid", "providerId" et
"categoryId".
- Si ces paramètres sont présents dans l'URL (ce qui signifie qu'un service spécifique a été
sélectionné), le contenu du service sera affiché. Le contenu du service comprend les informations
suivantes : nom, statut, images (affichées dans un carousel), description, prix régulier et prix
promotionnel.
- Le nom et le prix du fournisseur de service sont également affichés en utilisant les informations
récupérées de la base de données.
- La section du pied de page ("Footer") est incluse en utilisant le code du `footer.php`, qui
contient généralement les informations de contact, les liens sociaux, etc.
- La page se termine par l'inclusion des fichiers JavaScript utilisés par le template pour la
fonctionnalité du site.
En résumé, cette page HTML affiche les détails d'un service spécifique à partir de la base de
données, y compris des images dans un carousel, et permet aux utilisateurs connectés de
55
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
contacter le fournisseur de service pour ce service. Le header et le footer du site sont inclus pour
assurer une cohérence dans le style et la navigation du site.
Singup
56
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Le contenu principal de la page est ensuite placé dans la balise `<main>` avec l'ID "main".
- Une section "Breadcrumbs" est créée pour montrer le chemin de navigation de l'utilisateur.
Dans cet exemple, les liens sont définis pour "Home" et "Inner Page".
- La section principale de la page est définie dans une balise `<section>` avec la classe "inner-
page". Elle contient un formulaire d'inscription pour les utilisateurs.
- Le formulaire demande à l'utilisateur s'il est un "Client" ou un "Service Provider" en utilisant une
liste déroulante (balise `<select>`).
- Le formulaire a une action définie comme "signupmanager.php", ce qui signifie que lorsque
l'utilisateur soumet le formulaire, les données seront envoyées à "signupmanager.php" pour être
traitées.
- La section du pied de page ("Footer") est incluse en utilisant le code du `footer.php`. Le pied de
page contient des informations sur l'inscription à la newsletter, des liens utiles, des liens vers les
services proposés par le site et les informations de contact.
- La page se termine par l'inclusion des fichiers JavaScript utilisés par le template pour la
fonctionnalité du site.
En résumé, cette page HTML est une page d'inscription pour les utilisateurs du site FlexStart
Bootstrap Template. Les utilisateurs peuvent choisir s'ils sont des clients ou des fournisseurs de
services, et ils doivent fournir des informations personnelles pour s'inscrire. Le formulaire
enverra les données à "signupmanager.php" pour le traitement ultérieur. Le header et le footer
du site sont inclus pour assurer une cohérence dans le style et la navigation du site.
Singup management
57
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Le code commence par démarrer une session et inclure le fichier de connexion à la base de
données (connexion.php).
- Les données du formulaire sont récupérées à l'aide de la méthode POST et stockées dans des
variables, telles que $AccountType, $Username, $email, $password, etc.
- Le mot de passe est ensuite crypté à l'aide de la fonction `md5()` avant d'être stocké dans la
base de données. Notez que l'utilisation de `md5()` pour le hachage des mots de passe n'est pas
considérée comme sécurisée car elle est vulnérable à des attaques par dictionnaire et ne prend
pas en compte les meilleures pratiques modernes de hachage de mots de passe. Il est
recommandé d'utiliser des méthodes plus sécurisées comme `password_hash()` en PHP.
- Ensuite, le code vérifie si le compte est de type "Client" ou "Service Provider". Si c'est un compte
"Client", il vérifie si l'adresse e-mail n'est pas déjà utilisée par un autre compte client. Si l'e-mail
est unique, le code insère les données dans la table "client" de la base de données. Sinon, il
affiche une alerte indiquant que l'adresse e-mail existe déjà.
- Si le compte est un "Service Provider", il insère directement les données dans la table
"serviceprovider" de la base de données.
- Enfin, le code vérifie si l'insertion dans la base de données a réussi. S'il réussit, une alerte est
affichée indiquant que l'inscription s'est déroulée avec succès, et l'utilisateur est redirigé vers la
page d'accueil (index.php). Sinon, une alerte est affichée indiquant qu'il y a eu un problème lors
de l'inscription.
Encore une fois, il est important de noter que le hachage du mot de passe avec `md5()` n'est pas
considéré comme sûr de nos jours. Il est préférable d'utiliser des méthodes de hachage de mots
de passe plus sûres et appropriées, comme `password_hash()` en PHP.
Singin
58
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
59
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Le reste du code est constitué de liens vers des fichiers CSS, JavaScript et des polices utilisées par
le template FlexStart. Ces fichiers sont inclus pour appliquer la mise en forme et les
fonctionnalités spécifiques au template.
clientloginmanagement
Ce code PHP représente le traitement de la connexion pour les clients. Voici une description des
principales parties du code :
- `session_start()` : Cette fonction démarre une nouvelle session ou restaure une session
existante. Elle est utilisée pour gérer les variables de session.
- Les variables `$email` et `$password` sont récupérées à partir des données saisies par
l'utilisateur dans le formulaire de connexion sur la page précédente.
- La variable `$encypedpw` contient le mot de passe saisi par l'utilisateur, mais crypté à l'aide de
la fonction `md5()`. Il est important de noter que `md5()` n'est pas une méthode de hachage
sécurisée pour stocker les mots de passe. Il est recommandé d'utiliser des méthodes de hachage
plus sécurisées, comme `password_hash()` et `password_verify()`.
- La requête SQL est exécutée pour vérifier si l'e-mail et le mot de passe saisis correspondent aux
informations d'un client dans la base de données. La requête sélectionne toutes les lignes de la
table "client" où l'e-mail et le mot de passe correspondent aux valeurs saisies.
- Si un client correspondant est trouvé dans la base de données, ses informations sont extraites
de la requête et stockées dans les variables `$nom` et `$idClient`. Ensuite, les variables de
session `$_SESSION['ClientUserName']` et `$_SESSION['ClientID']` sont définies pour conserver
ces informations pendant la session.
60
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- Enfin, si l'authentification est réussie, l'utilisateur est redirigé vers la page "index.php" en
utilisant la fonction `header("location:index.php")`.
Encore une fois, il est important de noter que l'utilisation de `md5()` pour le hachage des mots
de passe est considérée comme obsolète en raison de ses vulnérabilités de sécurité. Il est
fortement recommandé d'utiliser des méthodes de hachage plus sécurisées pour stocker les
mots de passe.
Edit profil
61
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
- La section `footer-top` affiche les informations générales du pied de page, y compris le logo
"FlexStart", une description de l'entreprise et des liens vers les profils de médias sociaux (Twitter,
Facebook, Instagram, LinkedIn).
- Les sections `footer-links` présentent des liens vers des pages importantes du site ("Home",
"About us", "Services", "Terms of service" et "Privacy policy").
2. Le corps de la page (`main`) comprend la section "Breadcrumbs" (fil d'Ariane) qui affiche le
chemin de navigation ("Home" > "Edit profile") et la section "Edit profile" elle-même.
- Dans la section "Edit profile", un formulaire est affiché avec les informations actuelles de
l'utilisateur (nom d'utilisateur, e-mail, mot de passe, prénom, nom, date de naissance, numéro de
téléphone, ville de résidence et adresse).
- Lorsque l'utilisateur soumet le formulaire en cliquant sur "Edit", les modifications sont traitées
et mises à jour dans la base de données.
3. Le code PHP incorporé au sein de la section "Edit profile" gère le processus de mise à jour des
informations du profil utilisateur dans la base de données. Les nouvelles valeurs saisies par
l'utilisateur sont récupérées et utilisées pour mettre à jour les données du client correspondant
dans la base de données. La mise à jour est effectuée lorsque l'utilisateur clique sur le bouton
"Edit" et soumet le formulaire.
Ordre
62
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
63
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
En résumé, cette page présente les commandes passées par le client et permet d'accéder
facilement aux détails de chaque commande. Elle offre également la possibilité de supprimer
une commande et de contacter directement le prestataire via WhatsApp.
Dashboard
Page de connexion
Le code HTML que vous avez fourni représente une page de connexion (signin) utilisant le
modèle Bootstrap v5.0. Voici une description des principales sections de cette page :
1. Balises `meta` : Ces balises fournissent des métadonnées sur la page, telles que le jeu de
caractères, l'encodage, l'auteur, la description, etc.
2. Balises `link` : Ces balises permettent de lier des feuilles de style CSS à la page HTML. Dans ce
cas, la feuille de style Bootstrap core CSS est liée ainsi que le fichier de style personnalisé
`signin.css`.
4. Code PHP : Le code PHP est utilisé pour vérifier si l'utilisateur est déjà connecté ou non. Si
l'utilisateur est déjà connecté (c'est-à-dire si la variable de session `nomClient` est définie),
l'utilisateur est redirigé vers la page d'accueil (`index.php`). Sinon, le formulaire de connexion est
affiché.
64
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
5. Balises `main` et `form` : Le formulaire de connexion est contenu dans la balise `form-
signin` de la balise `main`. Le formulaire utilise la méthode POST et envoie les données de
connexion à la page `serviceprovloginmanagement.php`.
7. Balise `button` : Le bouton "Sign in" est utilisé pour soumettre le formulaire.
9. Remarque : Le code PHP utilise la variable de session `nomClient` pour vérifier si l'utilisateur
est déjà connecté en tant que client. Cependant, pour la connexion des prestataires de services
(`serviceprovider`), la variable de session `nomClient` n'est pas appropriée. Vous devrez peut-
être ajuster cette partie du code pour gérer correctement la connexion des prestataires de
services. Vous pouvez utiliser une autre variable de session appropriée pour cela.
Le code PHP que vous avez fourni gère la connexion des prestataires de services
(`serviceprovider`). Voici comment cela fonctionne :
1. Le code commence par démarrer une session à l'aide de `session_start()` et inclut le fichier de
connexion à la base de données à l'aide de `include("connexion.php")`.
2. Ensuite, il récupère les données du formulaire de connexion soumises par l'utilisateur à l'aide
des variables `$_POST['serviceprovideremail']` et `$_POST['serviceproviderpw']`.
3. Ensuite, le code exécute une requête SQL pour vérifier si l'utilisateur avec l'e-mail et le mot de
passe fournis existe dans la table des prestataires de services (`serviceprovider`). La requête est
effectuée à l'aide de la fonction `mysqli_query()`.
4. Si la requête renvoie un résultat avec au moins une ligne (c'est-à-dire que l'utilisateur existe
dans la base de données), le code récupère les informations de l'utilisateur à l'aide de
`mysqli_fetch_assoc()` et les stocke dans des variables.
65
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
6. Enfin, si l'authentification réussit, l'utilisateur est redirigé vers la page d'accueil (`index.php`) à
l'aide de `header("location:index.php")`.
Remarque : Ce code utilise le mot de passe en clair pour vérifier l'authentification. Cela peut être
risqué en termes de sécurité. Il est fortement recommandé d'utiliser des techniques de hachage
sécurisées (par exemple, bcrypt) pour stocker et vérifier les mots de passe des utilisateurs. De
plus, évitez d'utiliser des requêtes SQL directes avec des données utilisateur, car cela peut
conduire à des vulnérabilités d'injection SQL. Utilisez plutôt des requêtes préparées avec des
paramètres liés pour éviter cela.
Index
66
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
1. La première partie est une vérification de session qui s'assure que l'utilisateur est connecté en
tant que fournisseur de services. Si l'utilisateur n'est pas connecté, il est redirigé vers la page de
connexion (signin.php).
3. Le reste du code est une page HTML avec des styles Bootstrap pour créer une mise en page de
tableau de bord. La page contient un en-tête avec le nom de la société et un champ de
recherche.
4. Le tableau de bord est divisé en deux colonnes : la colonne de gauche contient un menu de
navigation avec différentes options, telles que "Dashboard", "Orders", "Profil", "Customers" et
"Reports". Il y a également une liste de services liés au fournisseur qui est affichée dans le menu.
5. La colonne de droite est l'espace principal du tableau de bord. Actuellement, il n'y a pas de
contenu spécifique dans cette partie du code.
6. Le code utilise également la bibliothèque "feather-icons" pour afficher des icônes dans le
menu de navigation.
En résumé, ce code est une page de tableau de bord pour un fournisseur de services qui affiche
des informations importantes telles que les commandes, le profil du fournisseur et les rapports.
Il permet également à l'utilisateur de naviguer entre différents services liés au fournisseur.
Order
67
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
68
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Enfin, le code inclut les scripts JavaScript nécessaires pour améliorer l'expérience utilisateur,
notamment pour charger les icônes Feather.
Cette page est un exemple de base pour un tableau de bord destiné aux prestataires de services,
qui permettra aux utilisateurs connectés de gérer les commandes et les services associés. Le
reste des fonctionnalités du tableau de bord sera implémenté dans les pages incluses ou liées,
telles que "ordertable.php" et "services-page.php".
Order table
Ce code PHP génère un tableau HTML affichant une liste de commandes pour un prestataire de
services connecté. Voici une explication du code :
1. Le code commence par définir une table HTML avec une en-tête (`<thead>`) et un corps
(`<tbody>`).
2. À l'aide d'une boucle `while`, le code récupère les informations de chaque commande à partir
de la base de données et les affiche dans une ligne du tableau.
3. Les informations récupérées pour chaque commande incluent : l'ID de la commande (`ocID`),
le nom du client (`ClientFirstName` et `ClientSecondName`), le service choisi (`ContentName`),
et le statut de la commande (`statue`).
4. Pour chaque commande, une ligne est créée dans le tableau avec les informations affichées
dans différentes colonnes.
5. La dernière colonne du tableau contient des boutons qui permettent au prestataire de changer
le statut de la commande. Chaque bouton est un lien qui redirige vers la page "orderstatue.php"
avec les paramètres d'URL `orderId` et `Statue` correspondant à l'ID de la commande et au
nouveau statut choisi (Accepted, wait, ou refused).
6. Les icônes graphiques utilisées pour les boutons sont des icônes Bootstrap (`bi bi-check-
circle`, `bi bi-hourglass-split`, et `bi bi-x-circle`) pour représenter respectivement l'acceptation,
la mise en attente et le refus de la commande.
69
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
7. Le reste du code utilise la syntaxe PHP pour insérer les données récupérées de la base de
données dans les cellules du tableau.
Ce code permettra aux prestataires de voir la liste de leurs commandes avec les informations
pertinentes, ainsi que de modifier le statut de chaque commande en utilisant les boutons
d'action appropriés. La mise à jour du statut de la commande se fait en cliquant sur l'un des
boutons, qui redirigera l'utilisateur vers la page "orderstatue.php" pour effectuer la modification
dans la base de données.
Service page
Ce code PHP génère une page HTML pour afficher les détails d'un service spécifique sélectionné
à partir d'une liste de services disponibles pour un prestataire de services connecté. Voici une
explication du code :
1. La page commence par inclure le fichier "connexion.php" pour établir une connexion à la base
de données et démarrer une session (`session_start()`).
2. Le code définit une page HTML avec les liens vers les fichiers CSS et JavaScript nécessaires
(Bootstrap et Feather Icons).
4. La colonne de gauche est une barre latérale de navigation qui affiche les différentes sections
du tableau de bord, y compris le lien vers la liste des services disponibles ("services-page.php")
pour le prestataire.
5. La colonne de droite est l'espace principal de la page où les détails du service sélectionné
seront affichés.
6. Le code utilise une condition PHP (`if (isset($_GET['pageid']))`) pour vérifier si un ID de page
spécifique (`pageid`) a été passé en tant que paramètre dans l'URL.
7. Si un ID de page est présent dans l'URL, le code récupère les détails du service associé à cet ID
(`$idp`) à partir de la base de données.
70
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
9. Le code utilise une boucle `foreach` pour afficher les images du service sous forme de
vignettes.
10. Le bouton "Update" permet de mettre à jour les détails du service en redirigeant l'utilisateur
vers la page "update-services-page.php" avec l'ID du service en tant que paramètre.
11. Le bouton "Delete" permet de supprimer le service (l'action de suppression n'est pas incluse
dans ce code, mais il serait nécessaire d'implémenter cette fonctionnalité de manière sécurisée
pour éviter la suppression accidentelle de données).
12. Si aucun ID de page n'est présent dans l'URL, aucun détail de service ne sera affiché dans la
colonne de droite.
En résumé, cette page permet au prestataire de voir les détails d'un service spécifique
sélectionné à partir d'une liste de services disponibles. Le prestataire peut également mettre à
jour les détails du service en cliquant sur le bouton "Update" et afficher les images associées au
service. Cependant, il est important de noter que la fonctionnalité de suppression de service doit
être implémentée avec précaution pour éviter les suppressions non désirées.
71
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
72
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
7. Le formulaire permet au prestataire de saisir les détails du nouveau service, tels que le nom du
service, la description, le type de service et les images associées.
8. Une fois que le formulaire est soumis, les détails du service seront envoyés au fichier "add-
service-form.php" pour traitement.
9. Le formulaire utilise la méthode POST pour soumettre les données au fichier "add-service-
form.php".
En résumé, cette page permet au prestataire d'ajouter un nouveau service à la liste des services
disponibles. Le formulaire d'ajout est inclus dans la page, et les détails du service saisi par le
prestataire seront soumis pour traitement lorsqu'il clique sur le bouton "Ajouter". Le code pour le
traitement du formulaire se trouve probablement dans le fichier "add-service-form.php".
Le code HTML et PHP ci-dessus affiche un formulaire permettant d'ajouter un nouveau contenu
(service) à la liste des services disponibles pour un prestataire de services. Voici une explication
détaillée :
2. Le formulaire utilise la méthode POST pour soumettre les données au même fichier (page)
pour le traitement ultérieur.
- `content_type`: Liste déroulante (select) qui affiche les types de services disponibles. Les
options sont récupérées à partir de la table "service" dans la base de données.
- `content_status`: Liste déroulante (select) pour indiquer l'état du service (Actif ou Inactif).
- `content_pictures`: Champ de type fichier pour télécharger les images associées au service. Il
prend en charge le téléchargement de plusieurs fichiers (`multiple`).
73
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
5. Le code PHP ci-dessous commence par vérifier si le formulaire a été soumis (méthode POST).
Si le formulaire est soumis, il récupère les données du formulaire, y compris les images
téléchargées.
6. Il effectue des validations pour s'assurer que les images téléchargées sont dans les formats
autorisés (JPEG, PNG ou GIF).
7. Si les validations sont réussies, les images sont téléchargées dans le répertoire
"content_pictures/" et les noms des images sont stockés dans la base de données sous forme de
chaîne séparée par des virgules.
8. Les autres détails du service sont également insérés dans la base de données, y compris le
nom du service, l'ID du prestataire, le type de service, l'état du service, la description et le prix.
9. Avant d'insérer le type de service dans la base de données, le code effectue une requête pour
obtenir l'ID du type de service en fonction du nom sélectionné dans la liste déroulante.
10. En cas de succès de l'insertion, une alerte JavaScript s'affiche et indique que le contenu a été
ajouté avec succès.
11. Si une erreur se produit lors de l'insertion, un message d'erreur est affiché.
Edite profile
74
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
75
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
3. Si le formulaire est soumis, une requête SQL `UPDATE` est utilisée pour mettre à jour les
informations du prestataire de services dans la base de données.
4. Si la mise à jour est réussie, l'utilisateur est redirigé vers la page de profil (`profil.php`). Sinon,
un message d'erreur est affiché.
5. Avant de soumettre le formulaire, le code PHP récupère les valeurs existantes du prestataire
de services à partir de la base de données en utilisant l'ID du prestataire de services connecté
(ServiceProviderID). Ces valeurs sont ensuite assignées aux variables correspondantes pour les
afficher dans les champs du formulaire.
6. Si une erreur se produit lors de la mise à jour du profil, un message d'erreur est affiché.
7. Le formulaire utilise la méthode POST pour soumettre les modifications au même fichier
(page) pour le traitement ultérieur.
8. Les valeurs existantes du prestataire de services sont affichées dans les champs du formulaire
pour permettre à l'utilisateur de les mettre à jour.
En résumé, ce code permet au prestataire de services connecté de mettre à jour ses informations
de profil en remplissant le formulaire. Les modifications sont enregistrées dans la base de
données et l'utilisateur est redirigé vers la page de profil mise à jour.
76
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Conclusion
Le rapport de ce projet de création de site web et d'application desktop pour la liaison entre
clients et prestataires présente le développement réussi d'une plateforme fonctionnelle.
L'objectif principal était de faciliter la communication entre les clients et les prestataires de
services.
Le site web et l'application desktop ont été développés avec succès, permettant aux clients de
rechercher et de contacter facilement les prestataires de services en fonction de leurs besoins.
Les clients peuvent parcourir les différentes catégories de services disponibles, afficher les profils
des prestataires, et soumettre des demandes de service.
Cependant, le rapport met en évidence quelques limitations dans les applications. Malgré leur
fonctionnalité, certaines options essentielles sont encore manquantes. Parmi celles-ci, nous
notons le système de paiement en ligne, qui est crucial pour faciliter les transactions entre les
clients et les prestataires de manière sécurisée et pratique. L'absence d'un système de chat
intégré limite également la communication en temps réel entre les deux parties, ce qui pourrait
être un obstacle dans le processus de négociation et de clarification des détails des services.
En outre, le rapport mentionne l'absence d'une page de statistiques dédiée aux prestataires.
Cette page permettrait aux prestataires de visualiser et d'analyser des données pertinentes
concernant leurs performances, telles que le nombre de commandes reçues, les revenus
générés, et les commentaires des clients. Une telle fonctionnalité est essentielle pour aider les
prestataires à prendre des décisions éclairées et à améliorer leur activité.
En conclusion, bien que les applications de liaison entre clients et prestataires soient
fonctionnelles, elles ne sont pas encore parfaites. L'ajout d'un système de paiement en ligne,
d'un chat intégré, et d'une page de statistiques pour les prestataires sont autant d'améliorations
potentielles qui contribueraient à renforcer l'efficacité et la convivialité de la plateforme. Il est
donc recommandé de poursuivre le développement de ces fonctionnalités pour offrir une
expérience plus complète et satisfaisante aux utilisateurs.
77
Création d'une solution informatique client-prestataire avec un logiciel Desktop et un site web dynamique dédié à la gestion de
| SAKALY
Bibliographie
Livres:
Articles de revues:
2. Brown, Sarah. (2019). "Introduction to SQL Server: A Beginner's Guide." Journal of Database
Management, 35(2), 45-58.
Sites web:
4. Mozilla Developer Network. (n.d.). "CSS Guide and Reference." Retrieved from
https://developer.mozilla.org/en-US/docs/Web/CSS
Documentation officielle :
Forums et Communautés :
Ressources en ligne :
9. Udemy. (2021). "VB.NET: Learn to Code with Visual Basic.NET." Retrieved from
https://www.udemy.com/course/vb-net-beginners/
N'oubliez pas de suivre les directives de citation spécifiques au style de référence que vous
utilisez, telles que APA, MLA ou Chicago, pour formater correctement chaque entrée de la
bibliographie.
78