💼 Système de Gestion de Factures - Proinfo83
📋 Description
Système complet de gestion de factures développé sur mesure pour Proinfo83.fr. Cette application permet de gérer facilement vos factures, clients et paiements avec une interface moderne et intuitive.
✨ Fonctionnalités
🔐 Authentification
- Connexion sécurisée avec identifiant et mot de passe
- Hachage des mots de passe avec bcrypt
- Gestion des sessions avec timeout automatique (30 minutes)
- Protection contre les accès non autorisés
📊 Tableau de bord
- Vue d'ensemble des statistiques importantes
- Nombre total de factures (totales, en attente, payées, en retard)
- Montants (revenu total, montant en attente)
- Nombre de clients
- Liste des dernières factures
- Actions rapides
📄 Gestion des factures
- Création et modification de factures
- Numérotation automatique (FAC-YYYY-NNNN)
- Ajout de lignes de facture multiples
- Calcul automatique des totaux (HT, TVA, TTC)
- Statuts : En attente, Payée, Annulée
- Recherche et filtrage avancés
- Visualisation et impression/export PDF
- Détection des factures en retard
👥 Gestion des clients
- Ajout et modification de clients
- Informations complètes (nom, société, email, téléphone, adresse)
- Recherche de clients
- Suppression avec confirmation
⚙️ Paramètres
- Changement de mot de passe
- Informations système
- Sauvegarde de la base de données
🚀 Installation
Prérequis
- PHP 7.4 ou supérieur
- Extension PHP MySQL (PDO MySQL) activée
- Base de données MySQL (fournie par votre hébergeur)
- Serveur web (Apache, Nginx, etc.)
Étapes d'installation
- Copier les fichiers
- Tous les fichiers sont déjà dans le dossier pages/admin/
- Accéder à l'installation
- URL : http://votre-domaine.com/pages/admin/
- Le système vous redirigera automatiquement vers l'installation
- Configuration de la base de données
- Remplissez les informations de votre base de données MySQL
- Ces informations sont disponibles dans votre espace client hébergeur
- Le système créera automatiquement toutes les tables nécessaires
- Connexion par défaut
- Identifiant : admin
- Mot de passe : admin123
⚠️ IMPORTANT : Changez immédiatement le mot de passe par défaut après la première connexion !
📁 Structure des fichiers
```
pages/admin/
├── login.php # Page de connexion
├── logout.php # Déconnexion
├── auth-check.php # Vérification d'authentification
├── dashboard.php # Tableau de bord
├── invoices.php # Liste des factures
├── edit-invoice.php # Création/modification de facture
├── view-invoice.php # Visualisation de facture
├── clients.php # Gestion des clients
├── settings.php # Paramètres
├── header.php # En-tête commun
├── footer.php # Pied de page commun
├── admin-style.css # Styles CSS
├── admin-script.js # JavaScript
├── data/ # Dossier de données
│ └── invoices.db # Base de données SQLite (créée automatiquement)
└── README.md # Ce fichier
```
🗄️ Base de données
Le système utilise MySQL pour stocker les données. La base de données est configurée lors de l'installation.
Tables
- users - Utilisateurs du système
- id, username, password, email, created_at
- clients - Clients
- id, name, company, email, phone, address, postal_code, city, created_at
- invoices - Factures
- id, invoice_number, client_id, invoice_date, due_date, status
- subtotal, tax_rate, tax_amount, total, notes
- created_at, updated_at
- invoice_items - Lignes de facture
- id, invoice_id, description, quantity, unit_price, total
- payments - Paiements (structure prête, à implémenter)
- id, invoice_id, amount, payment_date, payment_method, notes, created_at
🔒 Sécurité
- ✅ Mots de passe hachés avec
password_hash()(bcrypt) - ✅ Protection contre les injections SQL (requêtes préparées PDO)
- ✅ Protection XSS avec
htmlspecialchars() - ✅ Sessions sécurisées avec régénération d'ID
- ✅ Timeout de session automatique
- ✅ Vérification d'authentification sur toutes les pages
Recommandations de sécurité
- Changez le mot de passe par défaut immédiatement
- Sauvegardez régulièrement la base de données
- Protégez le dossier data/ avec .htaccess si possible :
```apache
# Créer un fichier .htaccess dans pages/admin/data/
Deny from all
```
- Utilisez HTTPS en production
- Limitez l'accès au dossier admin par IP si possible
💡 Utilisation
Créer une facture
- Cliquez sur "Nouvelle facture" depuis le tableau de bord ou la liste des factures
- Remplissez les informations générales (numéro, client, dates, TVA)
- Ajoutez des lignes de facture (description, quantité, prix)
- Les totaux sont calculés automatiquement
- Ajoutez des notes si nécessaire
- Cliquez sur "Enregistrer"
Gérer les clients
- Allez dans "Clients"
- Cliquez sur "Nouveau client"
- Remplissez les informations
- Enregistrez
Imprimer une facture
- Ouvrez la facture (icône 👁️)
- Cliquez sur "Imprimer / PDF"
- Utilisez la fonction d'impression du navigateur
- Choisissez "Enregistrer au format PDF" comme imprimante
🎨 Personnalisation
Modifier les couleurs
Éditez admin-style.css et modifiez les variables CSS :
```css
:root {
--primary-color: #667eea; /* Couleur principale */
--secondary-color: #764ba2; /* Couleur secondaire */
--success-color: #10b981; /* Succès */
--warning-color: #f59e0b; /* Avertissement */
--danger-color: #ef4444; /* Danger */
}
```
Modifier les informations de l'entreprise
Éditez view-invoice.php et modifiez la section .company-info :
```php
VOTRE ENTREPRISE
Votre slogan
Votre adresse
Email: votre@email.com
Tél: Votre numéro
```
🔧 Maintenance
Sauvegarder la base de données
- Méthode 1 : Via l'interface
- Allez dans Paramètres
- Cliquez sur "Télécharger la base de données"
- Méthode 2 : Manuellement
- Copiez le fichier pages/admin/data/invoices.db
Restaurer une sauvegarde
- Remplacez le fichier
pages/admin/data/invoices.dbpar votre sauvegarde - Assurez-vous que les permissions sont correctes (chmod 666)
Ajouter un utilisateur
Exécutez ce code PHP (créez un fichier temporaire) :
```php
require_once 'auth-check.php';
$db = getDatabase();
$username = 'nouvel_utilisateur';
$password = password_hash('mot_de_passe', PASSWORD_DEFAULT);
$email = 'email@example.com';
$stmt = $db->prepare("INSERT INTO users (username, password, email) VALUES (?, ?, ?)");
$stmt->execute([$username, $password, $email]);
echo "Utilisateur créé !";
?>
```
📞 Support
Pour toute question ou problème :
- Email : contact@proinfo83.fr
- Site web : https://proinfo83.fr
📝 Changelog
Version 1.0.0 (2025-10-23)
- ✨ Version initiale
- 🔐 Système d'authentification
- 📊 Tableau de bord avec statistiques
- 📄 Gestion complète des factures
- 👥 Gestion des clients
- ⚙️ Paramètres et configuration
- 🎨 Interface moderne et responsive
- 🖨️ Impression/Export PDF des factures
🚀 Fonctionnalités futures possibles
- [ ] Gestion des paiements partiels
- [ ] Envoi de factures par email
- [ ] Relances automatiques
- [ ] Devis (avant facture)
- [ ] Statistiques avancées et graphiques
- [ ] Export Excel/CSV
- [ ] Multi-utilisateurs avec rôles
- [ ] API REST
- [ ] Application mobile
📄 Licence
© 2025 Proinfo83.fr - Tous droits réservés
---
Développé avec ❤️ pour Proinfo83.fr