davidegato1's picture
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
<!DOCTYPE html>
<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">
&copy; 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>