Files
wevads-platform/scripts/documentation.php
2026-02-26 04:53:11 +01:00

200 lines
11 KiB
PHP
Executable File

<?php
/**
* WEVAL Marketing - Documentation Architecture Complète
* Mise à jour: Janvier 2026
*/
?>
<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>WEVAL - Documentation Architecture</title>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.1/css/all.min.css">
<style>
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Segoe UI',sans-serif;background:linear-gradient(135deg,#0f172a,#1e293b);min-height:100vh;color:#e2e8f0}
.header{background:linear-gradient(135deg,#0891b2,#0e7490);padding:20px 30px;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}
.header h1{font-size:24px;display:flex;align-items:center;gap:12px}
.header-actions{display:flex;gap:10px}
.btn{padding:10px 18px;border:none;border-radius:8px;cursor:pointer;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:all 0.2s}
.btn-primary{background:rgba(255,255,255,0.15);color:#fff}
.btn-primary:hover{background:rgba(255,255,255,0.25)}
.container{max-width:1600px;margin:0 auto;padding:30px}
.toc{background:linear-gradient(135deg,#1e293b,#334155);border-radius:12px;padding:20px;margin-bottom:30px;border:1px solid rgba(6,182,212,0.3)}
.toc h2{font-size:18px;color:#22d3ee;margin-bottom:15px;display:flex;align-items:center;gap:10px}
.toc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.toc-item{padding:10px 15px;background:rgba(0,0,0,0.2);border-radius:8px;color:#94a3b8;text-decoration:none;font-size:13px;transition:all 0.2s;display:flex;align-items:center;gap:8px}
.toc-item:hover{background:rgba(6,182,212,0.2);color:#22d3ee}
.toc-item i{color:#22d3ee}
.section{background:linear-gradient(135deg,#1e293b,#334155);border-radius:12px;padding:25px;margin-bottom:25px;border:1px solid rgba(6,182,212,0.2)}
.section h2{font-size:20px;color:#22d3ee;margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid rgba(255,255,255,0.1);display:flex;align-items:center;gap:12px}
.section h3{font-size:16px;color:#f8fafc;margin:20px 0 12px;display:flex;align-items:center;gap:8px}
.section h3 i{color:#22d3ee}
.section p{color:#94a3b8;line-height:1.7;margin-bottom:15px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:15px}
@media(max-width:1200px){.grid-2,.grid-3,.grid-4,.toc-grid{grid-template-columns:1fr}}
.card{background:rgba(0,0,0,0.2);border-radius:10px;padding:20px;border:1px solid rgba(255,255,255,0.05)}
.card-title{font-size:14px;font-weight:700;color:#f8fafc;margin-bottom:12px;display:flex;align-items:center;gap:8px}
.card-title i{color:#22d3ee}
.card-title .badge{margin-left:auto;padding:3px 10px;border-radius:12px;font-size:10px;font-weight:600}
.badge-green{background:#10b981;color:#fff}
.badge-blue{background:#3b82f6;color:#fff}
.badge-purple{background:#8b5cf6;color:#fff}
.badge-yellow{background:#f59e0b;color:#fff}
.badge-red{background:#ef4444;color:#fff}
.badge-cyan{background:#06b6d4;color:#fff}
table{width:100%;border-collapse:collapse;font-size:13px;margin:15px 0}
th,td{padding:12px 15px;text-align:left;border-bottom:1px solid rgba(255,255,255,0.1)}
th{background:rgba(0,0,0,0.3);color:#22d3ee;font-weight:600}
tr:hover{background:rgba(6,182,212,0.05)}
td code{background:rgba(6,182,212,0.2);padding:2px 8px;border-radius:4px;font-family:monospace;font-size:12px;color:#22d3ee}
.schema-box{background:rgba(0,0,0,0.3);border-radius:8px;padding:15px;margin:10px 0}
.schema-name{font-weight:700;color:#22d3ee;font-size:14px;margin-bottom:8px}
.schema-tables{display:flex;flex-wrap:wrap;gap:6px}
.schema-table{background:rgba(6,182,212,0.15);padding:4px 10px;border-radius:5px;font-size:11px;color:#94a3b8}
.architecture-diagram{background:#0f172a;border-radius:10px;padding:30px;text-align:center;margin:20px 0}
.arch-row{display:flex;justify-content:center;gap:20px;margin:15px 0;flex-wrap:wrap}
.arch-box{background:linear-gradient(135deg,#1e293b,#334155);border:2px solid;border-radius:12px;padding:15px 25px;min-width:150px;text-align:center}
.arch-box.app{border-color:#22d3ee}
.arch-box.db{border-color:#10b981}
.arch-box.service{border-color:#f59e0b}
.arch-box.external{border-color:#8b5cf6}
.arch-box .icon{font-size:24px;margin-bottom:8px}
.arch-box .name{font-weight:700;font-size:14px}
.arch-box .port{font-size:11px;color:#94a3b8;margin-top:5px}
.arch-arrow{color:#64748b;font-size:24px;display:flex;align-items:center}
.config-block{background:#0f172a;border-radius:8px;padding:15px;font-family:monospace;font-size:12px;color:#94a3b8;overflow-x:auto;margin:10px 0}
.config-block .key{color:#22d3ee}
.config-block .value{color:#10b981}
.config-block .comment{color:#64748b}
.feature-list{list-style:none}
.feature-list li{padding:8px 0;border-bottom:1px solid rgba(255,255,255,0.05);display:flex;align-items:flex-start;gap:10px;font-size:13px}
.feature-list li:last-child{border-bottom:none}
.feature-list li i{color:#22d3ee;margin-top:3px}
.comparison-table th:first-child{width:200px}
.comparison-table td:not(:first-child){text-align:center}
.alert{padding:15px 20px;border-radius:8px;margin:15px 0;display:flex;align-items:flex-start;gap:12px}
.alert i{margin-top:2px}
.alert-info{background:rgba(6,182,212,0.15);border:1px solid #06b6d4;color:#22d3ee}
.alert-warning{background:rgba(245,158,11,0.15);border:1px solid #f59e0b;color:#fbbf24}
.alert-success{background:rgba(16,185,129,0.15);border:1px solid #10b981;color:#34d399}
.print-only{display:none}
@media print{
.print-only{display:block}
.no-print{display:none}
body{background:#fff;color:#000}
.section{border:1px solid #ccc;break-inside:avoid}
}
</style>
</head>
<body>
<div class="header no-print">
<h1><i class="fas fa-book"></i> Documentation Architecture WEVAL</h1>
<div class="header-actions">
<button class="btn btn-primary" onclick="window.print()"><i class="fas fa-print"></i> Imprimer</button>
<!-- btn-killed --></div>
</div>
</div>
<!-- 15. Backup & Restore -->
<div class="section" id="backup">
<h2><i class="fas fa-save"></i> 15. Backup & Restauration</h2>
<div class="grid-2">
<div class="card">
<div class="card-title"><i class="fas fa-clock"></i> Backup Automatique</div>
<ul class="feature-list">
<li><i class="fas fa-calendar"></i> Fréquence: 3:00 AM quotidien</li>
<li><i class="fas fa-database"></i> Bases: adx_system, adx_clients</li>
<li><i class="fas fa-folder"></i> Code: /opt/wevads, /opt/fmgapp, /opt/bcgapp</li>
<li><i class="fas fa-hdd"></i> Destination: /opt/wevads/backups/</li>
<li><i class="fas fa-trash-alt"></i> Rétention: 7 jours</li>
</ul>
</div>
<div class="card">
<div class="card-title"><i class="fas fa-undo"></i> Restauration</div>
<div class="config-block">
<span class="comment"># Restaurer depuis backup</span>
<span class="key">Script:</span> <span class="value">/opt/wevads/scripts/backup/restore.sh</span>
<span class="comment"># Usage</span>
./restore.sh <span class="value">[backup_file.tar.gz]</span>
</div>
</div>
</div>
</div>
<!-- 16. Sécurité -->
<div class="section" id="security">
<h2><i class="fas fa-shield-alt"></i> 16. Sécurité</h2>
<div class="grid-3">
<div class="card">
<div class="card-title"><i class="fas fa-lock"></i> Authentification</div>
<ul class="feature-list">
<li><i class="fas fa-check"></i> Sessions PHP sécurisées</li>
<li><i class="fas fa-check"></i> CSRF protection</li>
<li><i class="fas fa-check"></i> Rate limiting</li>
<li><i class="fas fa-check"></i> Audit logging</li>
</ul>
</div>
<div class="card">
<div class="card-title"><i class="fas fa-shield-alt"></i> Fail2ban</div>
<ul class="feature-list">
<li><i class="fas fa-check"></i> SSH protection</li>
<li><i class="fas fa-check"></i> Apache protection</li>
<li><i class="fas fa-check"></i> Auto-ban après 5 échecs</li>
</ul>
</div>
<div class="card">
<div class="card-title"><i class="fas fa-network-wired"></i> Réseau</div>
<ul class="feature-list">
<li><i class="fas fa-check"></i> SSH sur port 49222</li>
<li><i class="fas fa-check"></i> DB sur localhost only</li>
<li><i class="fas fa-check"></i> Redis sur localhost only</li>
</ul>
</div>
</div>
</div>
<!-- Footer -->
<div style="text-align:center;padding:30px;color:#64748b;font-size:12px;">
<p>Documentation générée le <?= date('d/m/Y à H:i') ?></p>
<p>WEVAL Marketing v2.0 - © 2026</p>
</div>
</div>
<script>
// Smooth scroll for anchor links
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
anchor.addEventListener('click', function(e) {
e.preventDefault();
const target = document.querySelector(this.getAttribute('href'));
if (target) {
target.scrollIntoView({ behavior: 'smooth', block: 'start' });
}
});
});
</script>
<?php include("includes/chatbot-widget.php"); ?>
</body>
</html>