README

Fichier: README.md | Taille: 8.10 KB | Modifié: 24/10/2025 00:59

💼 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

  1. Copier les fichiers

- Tous les fichiers sont déjà dans le dossier pages/admin/

  1. Accéder à l'installation

- URL : http://votre-domaine.com/pages/admin/

- Le système vous redirigera automatiquement vers l'installation

  1. 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

  1. 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

  1. users - Utilisateurs du système

- id, username, password, email, created_at

  1. clients - Clients

- id, name, company, email, phone, address, postal_code, city, created_at

  1. invoices - Factures

- id, invoice_number, client_id, invoice_date, due_date, status

- subtotal, tax_rate, tax_amount, total, notes

- created_at, updated_at

  1. invoice_items - Lignes de facture

- id, invoice_id, description, quantity, unit_price, total

  1. 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é

  1. Changez le mot de passe par défaut immédiatement
  2. Sauvegardez régulièrement la base de données
  3. Protégez le dossier data/ avec .htaccess si possible :

```apache

# Créer un fichier .htaccess dans pages/admin/data/

Deny from all

```

  1. Utilisez HTTPS en production
  2. Limitez l'accès au dossier admin par IP si possible

💡 Utilisation

Créer une facture

  1. Cliquez sur "Nouvelle facture" depuis le tableau de bord ou la liste des factures
  2. Remplissez les informations générales (numéro, client, dates, TVA)
  3. Ajoutez des lignes de facture (description, quantité, prix)
  4. Les totaux sont calculés automatiquement
  5. Ajoutez des notes si nécessaire
  6. Cliquez sur "Enregistrer"

Gérer les clients

  1. Allez dans "Clients"
  2. Cliquez sur "Nouveau client"
  3. Remplissez les informations
  4. Enregistrez

Imprimer une facture

  1. Ouvrez la facture (icône 👁️)
  2. Cliquez sur "Imprimer / PDF"
  3. Utilisez la fonction d'impression du navigateur
  4. 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

  1. Méthode 1 : Via l'interface

- Allez dans Paramètres

- Cliquez sur "Télécharger la base de données"

  1. Méthode 2 : Manuellement

- Copiez le fichier pages/admin/data/invoices.db

Restaurer une sauvegarde

  1. Remplacez le fichier pages/admin/data/invoices.db par votre sauvegarde
  2. 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