feat: frontend 100% complet + rapport PFE final DOCX
Module Stock: - StockMovement model, StockService, StockProvider - StockScreen : liste avec barre visuelle et filtre alertes - StockDetailScreen : résumé gradient, historique, ajustement manuel Flutter Web: - web/index.html (écran chargement animé, PWA) - web/manifest.json (nom, icônes, couleurs) Rapport PFE final: - Chapitres 5.8→5.11 : Achats, Production, Stock, Web - Chapitre 6 : Tests et validation (scénario 12 étapes) - Chapitre 7 : Conclusion et perspectives - Annexes A/B/C complètes - generate_report.py mis à jour (frontend terminé) - Rapport-ERP-Rayhan-Ali-Guennari.docx régénéré (45 Ko) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<base href="$FLUTTER_BASE_HREF">
|
||||
<meta charset="UTF-8">
|
||||
<meta content="IE=Edge" http-equiv="X-UA-Compatible">
|
||||
<meta name="description" content="ERP Sur Mesure — SUARL Rayhan">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<meta name="apple-mobile-web-app-status-bar-style" content="black">
|
||||
<meta name="apple-mobile-web-app-title" content="Rayhan ERP">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<link rel="apple-touch-icon" href="icons/Icon-192.png">
|
||||
<link rel="icon" type="image/png" href="favicon.png"/>
|
||||
<title>Rayhan ERP</title>
|
||||
<link rel="manifest" href="manifest.json">
|
||||
<style>
|
||||
body {
|
||||
margin: 0;
|
||||
background-color: #F5F7FA;
|
||||
}
|
||||
#loading {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
height: 100vh;
|
||||
flex-direction: column;
|
||||
font-family: 'Roboto', sans-serif;
|
||||
}
|
||||
.spinner {
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border: 4px solid #E5E7EB;
|
||||
border-top: 4px solid #1565C0;
|
||||
border-radius: 50%;
|
||||
animation: spin 0.8s linear infinite;
|
||||
margin-bottom: 16px;
|
||||
}
|
||||
@keyframes spin { to { transform: rotate(360deg); } }
|
||||
#loading p { color: #6B7280; font-size: 14px; }
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div id="loading">
|
||||
<div class="spinner"></div>
|
||||
<p>Chargement de Rayhan ERP…</p>
|
||||
</div>
|
||||
<script>
|
||||
window.addEventListener('flutter-first-frame', function() {
|
||||
document.getElementById('loading').remove();
|
||||
});
|
||||
</script>
|
||||
<script src="flutter_bootstrap.js" async></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "Rayhan ERP",
|
||||
"short_name": "Rayhan ERP",
|
||||
"start_url": ".",
|
||||
"display": "standalone",
|
||||
"background_color": "#F5F7FA",
|
||||
"theme_color": "#1565C0",
|
||||
"description": "Système de Gestion Intégré — SUARL Rayhan",
|
||||
"orientation": "portrait-primary",
|
||||
"prefer_related_applications": false,
|
||||
"icons": [
|
||||
{
|
||||
"src": "icons/Icon-192.png",
|
||||
"sizes": "192x192",
|
||||
"type": "image/png"
|
||||
},
|
||||
{
|
||||
"src": "icons/Icon-512.png",
|
||||
"sizes": "512x512",
|
||||
"type": "image/png"
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user