Application de contrats de partenariat
Application web PHP/SQLite permettant de saisir, signer électroniquement et exporter en PDF des contrats de partenariat commercial, avec authentification et gestion des contrats par utilisateur.
- PHP (POO)
- SQLite
- PDO
- TCPDF
- HTML5 / CSS / JS
Captures d'écran
Aperçu de l'application en fonctionnement.
À propos du projet
Application web permettant de saisir, signer et exporter en PDF des contrats de partenariat commercial. Partie d'un simple formulaire HTML, je l'ai étendue en une application complète avec comptes utilisateurs, base de données et génération de documents.
Cadre : TP de développement web réalisé dans le cadre du Bloc 1 (sujet de M. Langloy). Objectif initial : transformer un contrat type fourni en PDF en formulaire HTML optimisé (champs requis, listes, expressions régulières HTML5), puis le faire évoluer.
Fonctionnalités
- Comptes utilisateurs : inscription et connexion sécurisées (mots de passe hachés).
- Gestion des contrats : création, édition, consultation et liste des contrats par utilisateur.
- Formulaire HTML5 : champs obligatoires, listes (datalist), partenaires et contributions dynamiques, contrôle de saisie par expressions régulières.
- Signature électronique : tracé de la signature dans le navigateur (canvas).
- Export PDF : génération du contrat finalisé avec ses signatures (TCPDF).
Stack technique
- PHP orienté objet (classes
Database,User,Formulaire). - Base de données SQLite via PDO (requêtes préparées).
- Sessions PHP pour l'authentification.
- TCPDF pour la génération des PDF ; HTML / CSS / JavaScript côté client.
Compétence du Bloc 1 validée
- 1.4 : travailler en mode projet (analyse du besoin, découpage en tâches, versionnement Git).
Statut
Projet de formation, exécuté en local (serveur XAMPP / Apache + PHP).
Documentation technique
Architecture
L'application suit un schéma de type contrôleur frontal : tout passe
par index.php, qui route vers la bonne vue selon le paramètre
?page= (connexion, liste, création, édition, signature, aperçu, PDF…).
Le code est séparé entre le cœur (classes métier) et les
vues.
src/
index.php routeur (front controller)
config/config.php configuration + session
core/ Database.php · User.php · Formulaire.php
data/ formulaires.db (SQLite)
lib/TCPDF-main/ génération des PDF
views/ pages, includes, assets
Modèle de données (SQLite)
Trois tables reliées par clés étrangères :
users(id, email, password, prenom, nom, created_at)
formulaires(id, user_id → users, titre, partenaires,
nature_activites, repartition_benefices, … )
signatures(id, formulaire_id → formulaires,
signataire_type, image_data, created_at)
Authentification
Inscription et connexion gérées par la classe User : mots de passe
hachés avec password_hash (bcrypt) et vérifiés avec
password_verify. L'état de connexion est conservé en session et les
pages sensibles (liste, création, signature…) sont protégées : un visiteur non
connecté est redirigé vers la page de connexion.
Saisie & contrôle du formulaire
Le contrat reprend la structure d'un contrat de partenariat (partenaires,
contributions, répartition des bénéfices, signataires…). Les partenaires et
contributions sont dynamiques (collectés côté serveur) et la saisie
est fiabilisée par les attributs HTML5 (required, pattern,
datalist).
Signature & génération PDF
La signature est tracée dans un <canvas> puis enregistrée (image
encodée) dans la table signatures. À l'export, TCPDF
assemble les données du contrat et les signatures en un document PDF.
Sécurité
- Requêtes préparées (PDO) contre les injections SQL.
- Mots de passe hachés, jamais stockés en clair.
- Contrôle d'accès par session sur les pages protégées.
Guide utilisateur
Lancer l'application
Démarrer XAMPP (Apache + PHP), placer le projet dans
htdocs, puis ouvrir index.php du dossier src
dans le navigateur. La base SQLite et ses tables se créent automatiquement au premier
lancement.
Créer un compte & se connecter
- Sur la page de connexion, créer un compte (nom, prénom, e-mail, mot de passe d'au moins 8 caractères).
- Se connecter avec ses identifiants pour accéder à ses contrats.
Créer un contrat
- Depuis la liste, cliquer sur « Créer ».
- Renseigner le contrat (partenaires, activités, contributions, répartition…). Les champs obligatoires et les formats sont vérifiés à la saisie.
- Enregistrer : le contrat apparaît dans la liste.
Signer le contrat
Ouvrir la page de signature, tracer la signature dans la zone prévue (souris ou écran tactile), puis valider. La signature est associée au contrat.
Aperçu & export PDF
Prévisualiser le contrat, puis générer le PDF final (avec les signatures) pour l'imprimer ou l'archiver.
Gérer ses contrats
La liste regroupe tous vos contrats ; chaque ligne permet de consulter, éditer, signer ou exporter le contrat.
Une question ? Me contacter.