Je souhaite développer une application de gestion et d’exécution de **commandes de transfert d’agents**. L’objectif est de permettre à des utilisateurs de créer une commande de transfert (ou de dépôt / paiement de facture, etc.), puis de la diffuser en **temps réel** vers des clients (les *devices*) qui l’exécuteront automatiquement. Lors de la création d’une commande, l’application publie un événement via **SignalR** (ou via une API REST si nécessaire) ; les devices (smartphones Android/iOS) connectés reçoivent cet événement, traitent la commande et renvoient une confirmation d’exécution (par SignalR ou par appel d’API).
af4847e
verified
| <html lang="en"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>TransferFlow Pro - Command Management System</title> | |
| <link rel="icon" type="image/x-icon" href="/static/favicon.ico"> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <script src="https://unpkg.com/feather-icons"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/vanta@latest/dist/vanta.globe.min.js"></script> | |
| <script> | |
| tailwind.config = { | |
| theme: { | |
| extend: { | |
| colors: { | |
| primary: '#3B82F6', | |
| secondary: '#10B981', | |
| accent: '#8B5CF6', | |
| dark: '#1F2937', | |
| light: '#F9FAFB' | |
| } | |
| } | |
| } | |
| } | |
| </script> | |
| <style> | |
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); | |
| body { | |
| font-family: 'Inter', sans-serif; | |
| } | |
| .gradient-bg { | |
| background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); | |
| } | |
| .card-hover { | |
| transition: all 0.3s ease; | |
| } | |
| .card-hover:hover { | |
| transform: translateY(-5px); | |
| box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); | |
| } | |
| .stat-card { | |
| transition: all 0.3s ease; | |
| } | |
| .stat-card:hover { | |
| transform: scale(1.05); | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-light"> | |
| <!-- Navigation --> | |
| <nav class="bg-white shadow-sm sticky top-0 z-50"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="flex justify-between h-16"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0 flex items-center"> | |
| <i data-feather="send" class="text-primary h-8 w-8"></i> | |
| <span class="ml-2 text-xl font-bold text-dark">TransferFlow Pro</span> | |
| </div> | |
| <div class="hidden sm:ml-6 sm:flex sm:space-x-8"> | |
| <a href="#" class="border-primary text-dark inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Dashboard</a> | |
| <a href="#" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Commands</a> | |
| <a href="#" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Analytics</a> | |
| <a href="#" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">Devices</a> | |
| </div> | |
| </div> | |
| <div class="hidden sm:ml-6 sm:flex sm:items-center"> | |
| <div class="ml-3 relative"> | |
| <div> | |
| <button type="button" class="bg-white rounded-full flex text-sm focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary" id="user-menu-button" aria-expanded="false" aria-haspopup="true"> | |
| <span class="sr-only">Open user menu</span> | |
| <div class="h-8 w-8 rounded-full bg-primary flex items-center justify-center text-white font-semibold">S</div> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="-mr-2 flex items-center sm:hidden"> | |
| <button type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-400 hover:text-gray-500 hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary" aria-controls="mobile-menu" aria-expanded="false"> | |
| <span class="sr-only">Open main menu</span> | |
| <i data-feather="menu" class="block h-6 w-6"></i> | |
| <i data-feather="x" class="hidden h-6 w-6"></i> | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Mobile menu, show/hide based on menu state. --> | |
| <div class="sm:hidden hidden" id="mobile-menu"> | |
| <div class="pt-2 pb-3 space-y-1"> | |
| <a href="#" class="bg-primary bg-opacity-10 border-primary text-dark block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Dashboard</a> | |
| <a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Commands</a> | |
| <a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Analytics</a> | |
| <a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Devices</a> | |
| </div> | |
| <div class="pt-4 pb-3 border-t border-gray-200"> | |
| <div class="flex items-center px-4"> | |
| <div class="flex-shrink-0"> | |
| <div class="h-10 w-10 rounded-full bg-primary flex items-center justify-center text-white font-semibold">S</div> | |
| </div> | |
| <div class="ml-3"> | |
| <div class="text-base font-medium text-gray-800">stidjani@proconsulting-info.com</div> | |
| <div class="text-sm font-medium text-gray-500">Super Admin</div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </nav> | |
| <!-- Hero Section --> | |
| <div class="relative gradient-bg overflow-hidden"> | |
| <div class="max-w-7xl mx-auto"> | |
| <div class="relative z-10 pb-8 bg-transparent sm:pb-16 md:pb-20 lg:max-w-2xl lg:w-full lg:pb-28 xl:pb-32"> | |
| <svg class="hidden lg:block absolute right-0 inset-y-0 h-full w-48 text-white transform translate-x-1/2" fill="currentColor" viewBox="0 0 100 100" preserveAspectRatio="none" aria-hidden="true"> | |
| <polygon points="50,0 100,0 50,100 0,100" /> | |
| </svg> | |
| <div class="pt-10 mx-auto max-w-7xl px-4 sm:pt-12 sm:px-6 md:pt-16 lg:pt-20 lg:px-8 xl:pt-28"> | |
| <div class="sm:text-center lg:text-left"> | |
| <h1 class="text-4xl tracking-tight font-extrabold text-white sm:text-5xl md:text-6xl"> | |
| <span class="block">Manage Transfer</span> | |
| <span class="block text-accent">Commands Efficiently</span> | |
| </h1> | |
| <p class="mt-3 text-base text-gray-200 sm:mt-5 sm:text-lg sm:max-w-xl sm:mx-auto md:mt-5 md:text-xl lg:mx-0"> | |
| TransferFlow Pro enables real-time command distribution and execution tracking for seamless money transfer operations across multiple devices. | |
| </p> | |
| <div class="mt-5 sm:mt-8 sm:flex sm:justify-center lg:justify-start"> | |
| <div class="rounded-md shadow"> | |
| <a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary hover:bg-blue-700 md:py-4 md:text-lg md:px-10"> | |
| Get Started | |
| </a> | |
| </div> | |
| <div class="mt-3 sm:mt-0 sm:ml-3"> | |
| <a href="#" class="w-full flex items-center justify-center px-8 py-3 border border-transparent text-base font-medium rounded-md text-primary bg-white hover:bg-gray-50 md:py-4 md:text-lg md:px-10"> | |
| Live Demo | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="lg:absolute lg:inset-y-0 lg:right-0 lg:w-1/2"> | |
| <div id="vanta-globe" class="h-56 w-full bg-transparent sm:h-72 md:h-96 lg:w-full lg:h-full"></div> | |
| </div> | |
| </div> | |
| <!-- Stats Section --> | |
| <div class="relative bg-white py-12 sm:py-16 lg:py-20"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="max-w-4xl mx-auto text-center"> | |
| <h2 class="text-3xl font-extrabold text-dark sm:text-4xl"> | |
| Real-time Command Management | |
| </h2> | |
| <p class="mt-3 text-xl text-gray-500 sm:mt-4"> | |
| Track and manage your transfer commands with our advanced real-time system. | |
| </p> | |
| </div> | |
| <div class="mt-10"> | |
| <div class="grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-4"> | |
| <!-- Card 1 --> | |
| <div class="bg-white overflow-hidden shadow rounded-lg stat-card"> | |
| <div class="p-5"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0"> | |
| <i data-feather="send" class="h-6 w-6 text-primary"></i> | |
| </div> | |
| <div class="ml-5 w-0 flex-1"> | |
| <dl> | |
| <dt class="text-sm font-medium text-gray-500 truncate">Total Commands</dt> | |
| <dd> | |
| <div class="text-lg font-medium text-gray-900">1,234</div> | |
| </dd> | |
| </dl> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bg-gray-50 px-5 py-3"> | |
| <div class="text-sm"> | |
| <span class="text-green-600 font-medium">+12% </span> | |
| <span class="text-gray-500">from last month</span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Card 2 --> | |
| <div class="bg-white overflow-hidden shadow rounded-lg stat-card"> | |
| <div class="p-5"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0"> | |
| <i data-feather="check-circle" class="h-6 w-6 text-green-500"></i> | |
| </div> | |
| <div class="ml-5 w-0 flex-1"> | |
| <dl> | |
| <dt class="text-sm font-medium text-gray-500 truncate">Completed</dt> | |
| <dd> | |
| <div class="text-lg font-medium text-gray-900">987</div> | |
| </dd> | |
| </dl> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bg-gray-50 px-5 py-3"> | |
| <div class="text-sm"> | |
| <span class="text-green-600 font-medium">+8% </span> | |
| <span class="text-gray-500">from last month</span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Card 3 --> | |
| <div class="bg-white overflow-hidden shadow rounded-lg stat-card"> | |
| <div class="p-5"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0"> | |
| <i data-feather="clock" class="h-6 w-6 text-yellow-500"></i> | |
| </div> | |
| <div class="ml-5 w-0 flex-1"> | |
| <dl> | |
| <dt class="text-sm font-medium text-gray-500 truncate">In Progress</dt> | |
| <dd> | |
| <div class="text-lg font-medium text-gray-900">123</div> | |
| </dd> | |
| </dl> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bg-gray-50 px-5 py-3"> | |
| <div class="text-sm"> | |
| <span class="text-red-600 font-medium">-3% </span> | |
| <span class="text-gray-500">from last month</span> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Card 4 --> | |
| <div class="bg-white overflow-hidden shadow rounded-lg stat-card"> | |
| <div class="p-5"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0"> | |
| <i data-feather="smartphone" class="h-6 w-6 text-secondary"></i> | |
| </div> | |
| <div class="ml-5 w-0 flex-1"> | |
| <dl> | |
| <dt class="text-sm font-medium text-gray-500 truncate">Active Devices</dt> | |
| <dd> | |
| <div class="text-lg font-medium text-gray-900">42</div> | |
| </dd> | |
| </dl> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="bg-gray-50 px-5 py-3"> | |
| <div class="text-sm"> | |
| <span class="text-green-600 font-medium">+15% </span> | |
| <span class="text-gray-500">from last month</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Features Section --> | |
| <div class="py-12 bg-gray-50"> | |
| <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> | |
| <div class="lg:text-center"> | |
| <h2 class="text-base text-primary font-semibold tracking-wide uppercase">Features</h2> | |
| <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-dark sm:text-4xl"> | |
| A better way to manage transfers | |
| </p> | |
| <p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto"> | |
| TransferFlow Pro provides seamless integration between command creation and device execution with real-time tracking. | |
| </p> | |
| </div> | |
| <div class="mt-10"> | |
| <div class="space-y-10 md:space-y-0 md:grid md:grid-cols-2 md:gap-x-8 md:gap-y-10"> | |
| <div class="card-hover bg-white p-6 rounded-lg shadow"> | |
| <div class="flex items-center justify-center h-12 w-12 rounded-md bg-primary text-white"> | |
| <i data-feather="zap" class="h-6 w-6"></i> | |
| </div> | |
| <div class="mt-5"> | |
| <h3 class="text-lg leading-6 font-medium text-gray-900">Real-time Distribution</h3> | |
| <p class="mt-2 text-base text-gray-500"> | |
| Commands are distributed instantly to connected devices via SignalR, ensuring minimal latency in execution. | |
| </p> | |
| </div> | |
| </div> | |
| <div class="card-hover bg-white p-6 rounded-lg shadow"> | |
| <div class="flex items-center justify-center h-12 w-12 rounded-md bg-secondary text-white"> | |
| <i data-feather="shield" class="h-6 w-6"></i> | |
| </div> | |
| <div class="mt-5"> | |
| <h3 class="text-lg leading-6 font-medium text-gray-900">Secure Execution</h3> | |
| <p class="mt-2 text-base text-gray-500"> | |
| Each command is securely processed with device authentication and execution confirmation. | |
| </p> | |
| </div> | |
| </div> | |
| <div class="card-hover bg-white p-6 rounded-lg shadow"> | |
| <div class="flex items-center justify-center h-12 w-12 rounded-md bg-accent text-white"> | |
| <i data-feather="trending-up" class="h-6 w-6"></i> | |
| </div> | |
| <div class="mt-5"> | |
| <h3 class="text-lg leading-6 font-medium text-gray-900">Performance Analytics</h3> | |
| <p class="mt-2 text-base text-gray-500"> | |
| Track command execution times, success rates, and device performance with detailed analytics. | |
| </p> | |
| </div> | |
| </div> | |
| <div class="card-hover bg-white p-6 rounded-lg shadow"> | |
| <div class="flex items-center justify-center h-12 w-12 rounded-md bg-purple-500 text-white"> | |
| <i data-feather="repeat" class="h-6 w-6"></i> | |
| </div> | |
| <div class="mt-5"> | |
| <h3 class="text-lg leading-6 font-medium text-gray-900">Automatic Retry System</h3> | |
| <p class="mt-2 text-base text-gray-500"> | |
| Failed commands are automatically retried with configurable retry policies and dead letter handling. | |
| </p> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- CTA Section --> | |
| <div class="bg-primary"> | |
| <div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8 lg:flex lg:items-center lg:justify-between"> | |
| <h2 class="text-3xl font-extrabold tracking-tight text-white sm:text-4xl"> | |
| <span class="block">Ready to get started?</span> | |
| <span class="block text-accent">Start managing your transfer commands today.</span> | |
| </h2> | |
| <div class="mt-8 flex lg:mt-0 lg:flex-shrink-0"> | |
| <div class="inline-flex rounded-md shadow"> | |
| <a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-primary bg-white hover:bg-gray-50"> | |
| Get started | |
| </a> | |
| </div> | |
| <div class="ml-3 inline-flex rounded-md shadow"> | |
| <a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary bg-opacity-20 hover:bg-opacity-30"> | |
| Contact sales | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Footer --> | |
| <footer class="bg-dark"> | |
| <div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 md:flex md:items-center md:justify-between lg:px-8"> | |
| <div class="flex justify-center space-x-6 md:order-2"> | |
| <a href="#" class="text-gray-400 hover:text-gray-300"> | |
| <span class="sr-only">Facebook</span> | |
| <i data-feather="facebook" class="h-6 w-6"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-gray-300"> | |
| <span class="sr-only">Twitter</span> | |
| <i data-feather="twitter" class="h-6 w-6"></i> | |
| </a> | |
| <a href="#" class="text-gray-400 hover:text-gray-300"> | |
| <span class="sr-only">GitHub</span> | |
| <i data-feather="github" class="h-6 w-6"></i> | |
| </a> | |
| </div> | |
| <div class="mt-8 md:mt-0 md:order-1"> | |
| <p class="text-center text-base text-gray-400"> | |
| © 2023 TransferFlow Pro. All rights reserved. | |
| </p> | |
| </div> | |
| </div> | |
| </footer> | |
| <script> | |
| // Initialize Vanta.js globe animation | |
| VANTA.GLOBE({ | |
| el: "#vanta-globe", | |
| mouseControls: true, | |
| touchControls: true, | |
| gyroControls: false, | |
| minHeight: 200.00, | |
| minWidth: 200.00, | |
| scale: 1.00, | |
| scaleMobile: 1.00, | |
| color: 0x3b82f6, | |
| color2: 0x8b5cf6, | |
| size: 1.00, | |
| backgroundColor: 0x667eea | |
| }); | |
| // Initialize Feather icons | |
| feather.replace(); | |
| // Mobile menu toggle | |
| document.querySelector('[aria-controls="mobile-menu"]').addEventListener('click', function() { | |
| const menu = document.getElementById('mobile-menu'); | |
| menu.classList.toggle('hidden'); | |
| const menuIcon = this.querySelector('i[data-feather="menu"]'); | |
| const closeIcon = this.querySelector('i[data-feather="x"]'); | |
| menuIcon.classList.toggle('hidden'); | |
| closeIcon.classList.toggle('hidden'); | |
| // Re-initialize icons after toggle | |
| feather.replace(); | |
| }); | |
| </script> | |
| </body> | |
| </html> | |