Clean project: remove test files, debug logs, and add documentation

This commit is contained in:
dahoud
2025-10-05 13:41:33 +00:00
parent 96a17eadbd
commit 291847924c
438 changed files with 65754 additions and 32713 deletions

View File

@@ -184,26 +184,26 @@ class ModeratorDashboard extends StatelessWidget {
),
],
),
child: Column(
child: const Column(
children: [
ListTile(
leading: const CircleAvatar(
leading: CircleAvatar(
backgroundColor: Color(0xFFFFE0E0),
child: Icon(Icons.flag, color: Color(0xFFD63031)),
),
title: const Text('Contenu inapproprié signalé'),
subtitle: const Text('Commentaire sur événement'),
trailing: const Text('Urgent'),
title: Text('Contenu inapproprié signalé'),
subtitle: Text('Commentaire sur événement'),
trailing: Text('Urgent'),
),
const Divider(height: 1),
Divider(height: 1),
ListTile(
leading: const CircleAvatar(
leading: CircleAvatar(
backgroundColor: Color(0xFFFFF3E0),
child: Icon(Icons.person_add, color: Color(0xFFE17055)),
),
title: const Text('Demande d\'adhésion'),
subtitle: const Text('Marie Dubois'),
trailing: const Text('2j'),
title: Text('Demande d\'adhésion'),
subtitle: Text('Marie Dubois'),
trailing: Text('2j'),
),
],
),
@@ -214,19 +214,19 @@ class ModeratorDashboard extends StatelessWidget {
Widget _buildRecentActivity() {
return DashboardRecentActivitySection(
activities: [
activities: const [
DashboardActivity(
title: 'Signalement traité',
subtitle: 'Contenu supprimé',
icon: Icons.check_circle,
color: const Color(0xFF00B894),
color: Color(0xFF00B894),
time: 'Il y a 1h',
),
DashboardActivity(
title: 'Membre suspendu',
subtitle: 'Violation des règles',
icon: Icons.person_remove,
color: const Color(0xFFD63031),
color: Color(0xFFD63031),
time: 'Il y a 3h',
),
],

View File

@@ -4,7 +4,7 @@ library org_admin_dashboard;
import 'package:flutter/material.dart';
import '../../../../../core/design_system/tokens/tokens.dart';
import '../../widgets/widgets.dart';
import '../../widgets/dashboard_widgets.dart';
/// Dashboard Control Panel pour Administrateur d'Organisation
@@ -236,52 +236,7 @@ class _OrgAdminDashboardState extends State<OrgAdminDashboard> {
/// Section métriques organisation
Widget _buildOrganizationMetricsSection() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
'Vue d\'ensemble Organisation',
style: TypographyTokens.headlineMedium.copyWith(
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: SpacingTokens.md),
DashboardStatsGrid(
stats: [
DashboardStat(
icon: Icons.people,
value: '156',
title: 'Membres Actifs',
color: const Color(0xFF00B894),
onTap: () => _onStatTap('members'),
),
DashboardStat(
icon: Icons.euro,
value: '12,450€',
title: 'Budget Mensuel',
color: const Color(0xFF0984E3),
onTap: () => _onStatTap('budget'),
),
DashboardStat(
icon: Icons.event,
value: '8',
title: 'Événements',
color: const Color(0xFFE17055),
onTap: () => _onStatTap('events'),
),
DashboardStat(
icon: Icons.trending_up,
value: '94%',
title: 'Satisfaction',
color: const Color(0xFF00CEC9),
onTap: () => _onStatTap('satisfaction'),
),
],
onStatTap: _onStatTap,
),
],
);
return const QuickStatsSection.organizationStats();
}
/// Section actions rapides admin
@@ -526,29 +481,9 @@ class _OrgAdminDashboardState extends State<OrgAdminDashboard> {
),
),
const SizedBox(height: SpacingTokens.md),
const DashboardInsightsSection(
metrics: [
DashboardMetric(
label: 'Cotisations collectées',
value: '89%',
progress: 0.89,
color: Color(0xFF00B894),
),
DashboardMetric(
label: 'Budget utilisé',
value: '67%',
progress: 0.67,
color: Color(0xFF0984E3),
),
DashboardMetric(
label: 'Objectif annuel',
value: '78%',
progress: 0.78,
color: Color(0xFFE17055),
),
],
),
// Remplacé par PerformanceCard pour les métriques
const PerformanceCard.server(),
],
);
}
@@ -565,33 +500,9 @@ class _OrgAdminDashboardState extends State<OrgAdminDashboard> {
),
),
const SizedBox(height: SpacingTokens.md),
DashboardRecentActivitySection(
activities: const [
DashboardActivity(
title: 'Nouveau membre approuvé',
subtitle: 'Sophie Laurent rejoint l\'organisation',
icon: Icons.person_add,
color: Color(0xFF00B894),
time: 'Il y a 2h',
),
DashboardActivity(
title: 'Budget mis à jour',
subtitle: 'Allocation événements modifiée',
icon: Icons.account_balance_wallet,
color: Color(0xFF0984E3),
time: 'Il y a 4h',
),
DashboardActivity(
title: 'Rapport généré',
subtitle: 'Rapport mensuel d\'activité',
icon: Icons.assessment,
color: Color(0xFF6C5CE7),
time: 'Il y a 1j',
),
],
onActivityTap: (activityId) => _onActivityTap(activityId),
),
// Remplacé par RecentActivitiesSection
const RecentActivitiesSection.organization(),
],
);
}

View File

@@ -340,26 +340,26 @@ class SimpleMemberDashboard extends StatelessWidget {
),
const SizedBox(height: SpacingTokens.md),
DashboardRecentActivitySection(
activities: [
activities: const [
DashboardActivity(
title: 'Cotisation payée',
subtitle: 'Décembre 2024',
icon: Icons.payment,
color: const Color(0xFF00B894),
color: Color(0xFF00B894),
time: 'Il y a 1j',
),
DashboardActivity(
title: 'Profil mis à jour',
subtitle: 'Informations personnelles',
icon: Icons.edit,
color: const Color(0xFF00CEC9),
color: Color(0xFF00CEC9),
time: 'Il y a 1 sem',
),
DashboardActivity(
title: 'Inscription événement',
subtitle: 'Assemblée Générale',
icon: Icons.event,
color: const Color(0xFF0984E3),
color: Color(0xFF0984E3),
time: 'Il y a 2 sem',
),
],

View File

@@ -1,4 +1,5 @@
import 'package:flutter/material.dart';
import '../../widgets/dashboard_widgets.dart';
@@ -37,24 +38,24 @@ class _SuperAdminDashboardState extends State<SuperAdminDashboard> {
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
// Header avec heure et statut système
_buildSystemStatusHeader(),
// Header avec informations système
const DashboardHeader.superAdmin(),
const SizedBox(height: 16),
// KPIs système en temps réel
_buildSimpleKPIsSection(),
const QuickStatsSection.systemKPIs(),
const SizedBox(height: 16),
// Performance serveur
_buildSimpleServerSection(),
const PerformanceCard.server(),
const SizedBox(height: 16),
// Alertes importantes
_buildSimpleAlertsSection(),
const RecentActivitiesSection.alerts(),
const SizedBox(height: 16),
// Activité récente
_buildSimpleActivitySection(),
const RecentActivitiesSection.system(),
const SizedBox(height: 16),
// Actions rapides système
@@ -64,330 +65,17 @@ class _SuperAdminDashboardState extends State<SuperAdminDashboard> {
);
}
/// Section KPIs simplifiée
Widget _buildSimpleKPIsSection() {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Métriques Système',
style: TextStyle(
fontWeight: FontWeight.bold,
color: Color(0xFF6C5CE7),
fontSize: 20,
),
),
const SizedBox(height: 12),
Row(
children: [
Expanded(
child: _buildSimpleKPICard(
'Organisations',
'247',
'+12 ce mois',
Icons.business,
const Color(0xFF0984E3),
),
),
const SizedBox(width: 8),
Expanded(
child: _buildSimpleKPICard(
'Utilisateurs',
'15,847',
'+1,234 ce mois',
Icons.people,
const Color(0xFF00B894),
),
),
],
),
const SizedBox(height: 8),
Row(
children: [
Expanded(
child: _buildSimpleKPICard(
'Uptime',
'99.97%',
'30 derniers jours',
Icons.trending_up,
const Color(0xFF00CEC9),
),
),
const SizedBox(width: 8),
Expanded(
child: _buildSimpleKPICard(
'Temps Réponse',
'1.2s',
'Moyenne 24h',
Icons.speed,
const Color(0xFFE17055),
),
),
],
),
],
);
}
/// Carte KPI simplifiée
Widget _buildSimpleKPICard(
String title,
String value,
String subtitle,
IconData icon,
Color color,
) {
return Container(
padding: const EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
blurRadius: 8,
offset: const Offset(0, 2),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Row(
children: [
Icon(icon, color: color, size: 20),
const Spacer(),
Text(
value,
style: TextStyle(
fontWeight: FontWeight.bold,
color: color,
fontSize: 18,
),
),
],
),
const SizedBox(height: 4),
Text(
title,
style: const TextStyle(
fontWeight: FontWeight.w600,
color: Colors.black87,
fontSize: 12,
),
),
Text(
subtitle,
style: const TextStyle(
color: Colors.grey,
fontSize: 10,
),
),
],
),
);
}
/// Section serveur simplifiée
Widget _buildSimpleServerSection() {
return Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
blurRadius: 4,
offset: const Offset(0, 2),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Performance Serveur',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Color(0xFF6C5CE7),
),
),
const SizedBox(height: 12),
_buildMetricRow('CPU', '67.3%', Colors.orange),
const SizedBox(height: 8),
_buildMetricRow('RAM', '12.4 GB / 16 GB', Colors.blue),
const SizedBox(height: 8),
_buildMetricRow('Disque', '847 GB / 1 TB', Colors.red),
],
),
);
}
/// Ligne de métrique
Widget _buildMetricRow(String label, String value, Color color) {
return Row(
children: [
Container(
width: 8,
height: 8,
decoration: BoxDecoration(
color: color,
shape: BoxShape.circle,
),
),
const SizedBox(width: 8),
Text(
label,
style: const TextStyle(fontWeight: FontWeight.w600),
),
const Spacer(),
Text(
value,
style: TextStyle(
color: color,
fontWeight: FontWeight.w600,
),
),
],
);
}
/// Section alertes simplifiée
Widget _buildSimpleAlertsSection() {
return Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
blurRadius: 4,
offset: const Offset(0, 2),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Alertes Système',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Color(0xFF6C5CE7),
),
),
const SizedBox(height: 12),
_buildAlertRow('Charge CPU élevée', 'Serveur principal', Colors.orange),
const SizedBox(height: 8),
_buildAlertRow('Espace disque faible', 'Base de données', Colors.red),
const SizedBox(height: 8),
_buildAlertRow('Connexions élevées', 'Load balancer', Colors.amber),
],
),
);
}
/// Ligne d'alerte
Widget _buildAlertRow(String title, String source, Color color) {
return Row(
children: [
Icon(Icons.warning, color: color, size: 16),
const SizedBox(width: 8),
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text(
title,
style: const TextStyle(
fontWeight: FontWeight.w600,
fontSize: 12,
),
),
Text(
source,
style: const TextStyle(
color: Colors.grey,
fontSize: 10,
),
),
],
),
),
],
);
}
/// Section activité simplifiée
Widget _buildSimpleActivitySection() {
return Container(
padding: const EdgeInsets.all(12),
decoration: BoxDecoration(
color: Colors.white,
borderRadius: BorderRadius.circular(8),
boxShadow: [
BoxShadow(
color: Colors.black.withOpacity(0.05),
blurRadius: 4,
offset: const Offset(0, 2),
),
],
),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Activité Récente',
style: TextStyle(
fontSize: 16,
fontWeight: FontWeight.bold,
color: Color(0xFF6C5CE7),
),
),
const SizedBox(height: 12),
_buildActivityRow('Nouvelle organisation créée', 'il y a 2h'),
const SizedBox(height: 8),
_buildActivityRow('Utilisateur connecté', 'il y a 5min'),
const SizedBox(height: 8),
_buildActivityRow('Sauvegarde terminée', 'il y a 1h'),
],
),
);
}
/// Ligne d'activité
Widget _buildActivityRow(String title, String time) {
return Row(
children: [
Container(
width: 8,
height: 8,
decoration: const BoxDecoration(
color: Color(0xFF6C5CE7),
shape: BoxShape.circle,
),
),
const SizedBox(width: 8),
Expanded(
child: Text(
title,
style: const TextStyle(fontSize: 12),
),
),
Text(
time,
style: const TextStyle(
color: Colors.grey,
fontSize: 10,
),
),
],
);
}
/// Organisations Content
Widget _buildOrganizationsContent() {
@@ -942,83 +630,7 @@ class _SuperAdminDashboardState extends State<SuperAdminDashboard> {
/// Header avec statut système et heure
Widget _buildSystemStatusHeader() {
return Container(
padding: const EdgeInsets.all(16),
decoration: BoxDecoration(
gradient: const LinearGradient(
colors: [Color(0xFF6C5CE7), Color(0xFF5A4FCF)],
begin: Alignment.topLeft,
end: Alignment.bottomRight,
),
borderRadius: BorderRadius.circular(16),
boxShadow: [
BoxShadow(
color: const Color(0xFF6C5CE7).withOpacity(0.3),
blurRadius: 15,
offset: const Offset(0, 5),
),
],
),
child: Row(
children: [
Expanded(
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
const Text(
'Système Opérationnel',
style: TextStyle(
color: Colors.white,
fontSize: 18,
fontWeight: FontWeight.bold,
),
),
const SizedBox(height: 4),
Text(
'Dernière mise à jour: ${DateTime.now().hour.toString().padLeft(2, '0')}:${DateTime.now().minute.toString().padLeft(2, '0')}',
style: TextStyle(
color: Colors.white.withOpacity(0.8),
fontSize: 12,
),
),
],
),
),
Container(
padding: const EdgeInsets.all(8),
decoration: BoxDecoration(
color: Colors.white.withOpacity(0.2),
borderRadius: BorderRadius.circular(12),
),
child: Row(
mainAxisSize: MainAxisSize.min,
children: [
Container(
width: 8,
height: 8,
decoration: const BoxDecoration(
color: Color(0xFF00B894),
shape: BoxShape.circle,
),
),
const SizedBox(width: 6),
const Text(
'En ligne',
style: TextStyle(
color: Colors.white,
fontSize: 12,
fontWeight: FontWeight.w600,
),
),
],
),
),
],
),
);
}
/// Actions rapides système
Widget _buildSystemQuickActions() {

View File

@@ -4,7 +4,6 @@ library visitor_dashboard;
import 'package:flutter/material.dart';
import '../../../../../core/design_system/tokens/tokens.dart';
import '../../widgets/widgets.dart';
/// Dashboard Landing Experience pour Visiteur
class VisitorDashboard extends StatelessWidget {
@@ -219,7 +218,7 @@ class VisitorDashboard extends StatelessWidget {
],
),
const SizedBox(height: SpacingTokens.md),
Text(
const Text(
'Nous sommes une association dynamique qui rassemble les passionnés de technologie. Notre mission est de favoriser l\'apprentissage, le partage de connaissances et l\'entraide dans le domaine du développement.',
style: TypographyTokens.bodyMedium,
),
@@ -490,24 +489,24 @@ class VisitorDashboard extends StatelessWidget {
),
],
),
child: Column(
child: const Column(
children: [
ListTile(
leading: const Icon(Icons.email, color: Color(0xFF6C5CE7)),
title: const Text('Email'),
subtitle: const Text('contact@association-dev.fr'),
leading: Icon(Icons.email, color: Color(0xFF6C5CE7)),
title: Text('Email'),
subtitle: Text('contact@association-dev.fr'),
contentPadding: EdgeInsets.zero,
),
ListTile(
leading: const Icon(Icons.phone, color: Color(0xFF6C5CE7)),
title: const Text('Téléphone'),
subtitle: const Text('+33 1 23 45 67 89'),
leading: Icon(Icons.phone, color: Color(0xFF6C5CE7)),
title: Text('Téléphone'),
subtitle: Text('+33 1 23 45 67 89'),
contentPadding: EdgeInsets.zero,
),
ListTile(
leading: const Icon(Icons.location_on, color: Color(0xFF6C5CE7)),
title: const Text('Adresse'),
subtitle: const Text('123 Rue de la Tech, 75001 Paris'),
leading: Icon(Icons.location_on, color: Color(0xFF6C5CE7)),
title: Text('Adresse'),
subtitle: Text('123 Rue de la Tech, 75001 Paris'),
contentPadding: EdgeInsets.zero,
),
],