|
|
<!DOCTYPE html> |
|
|
<html lang="en"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>Admin Panel - Kudaram Lakeview</title> |
|
|
<link rel="icon" type="image/x-icon" href="/static/favicon.ico"> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script> |
|
|
<script src="https://unpkg.com/feather-icons"></script> |
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> |
|
|
</head> |
|
|
<body class="bg-gray-100"> |
|
|
<div class="flex h-screen"> |
|
|
|
|
|
<div class="w-64 bg-gray-800 text-white"> |
|
|
<div class="p-4 border-b border-gray-700"> |
|
|
<h1 class="text-xl font-bold flex items-center"> |
|
|
<img src="/static/logo.png" alt="Logo" class="h-8 mr-2"> |
|
|
Admin Panel |
|
|
</h1> |
|
|
</div> |
|
|
<nav class="p-4"> |
|
|
<div class="space-y-2"> |
|
|
<a href="/admin" class="flex items-center p-2 rounded bg-gray-700"> |
|
|
<i data-feather="home" class="mr-2"></i> Dashboard |
|
|
</a> |
|
|
<a href="/admin/bookings" class="flex items-center p-2 rounded hover:bg-gray-700"> |
|
|
<i data-feather="calendar" class="mr-2"></i> Bookings |
|
|
<i data-feather="calendar" class="mr-2"></i> Bookings |
|
|
</a> |
|
|
<a href="/admin/rooms" class="flex items-center p-2 rounded hover:bg-gray-700"> |
|
|
<i data-feather="home" class="mr-2"></i> Rooms |
|
|
</a> |
|
|
<a href="/admin/guests" class="flex items-center p-2 rounded hover:bg-gray-700"> |
|
|
<i data-feather="users" class="mr-2"></i> Guests |
|
|
</a> |
|
|
<a href="/admin/staff" class="flex items-center p-2 rounded hover:bg-gray-700"> |
|
|
<i data-feather="user-plus" class="mr-2"></i> Staff |
|
|
</a> |
|
|
<a href="/admin/reports" class="flex items-center p-2 rounded hover:bg-gray-700"> |
|
|
<i data-feather="bar-chart-2" class="mr-2"></i> Reports |
|
|
</a> |
|
|
<a href="/admin/settings" class="flex items-center p-2 rounded hover:bg-gray-700"> |
|
|
<i data-feather="settings" class="mr-2"></i> Settings |
|
|
</a> |
|
|
</div> |
|
|
</nav> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="flex-1 overflow-auto"> |
|
|
|
|
|
<header class="bg-white shadow-sm"> |
|
|
<div class="flex justify-between items-center p-4"> |
|
|
<h2 class="text-xl font-semibold">Dashboard Overview</h2> |
|
|
<div class="flex items-center space-x-4"> |
|
|
<div class="relative"> |
|
|
<i data-feather="bell" class="text-gray-500"></i> |
|
|
<span class="absolute top-0 right-0 h-2 w-2 rounded-full bg-red-500"></span> |
|
|
</div> |
|
|
<div class="flex items-center"> |
|
|
<img src="http://static.photos/people/200x200/5" alt="Admin" class="h-8 w-8 rounded-full"> |
|
|
<span class="ml-2">Admin</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</header> |
|
|
|
|
|
|
|
|
<main class="p-6"> |
|
|
|
|
|
<div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6"> |
|
|
<div class="bg-white rounded-lg shadow p-6"> |
|
|
<div class="flex items-center"> |
|
|
<div class="p-3 rounded-full bg-green-100 text-green-600"> |
|
|
<i data-feather="dollar-sign"></i> |
|
|
</div> |
|
|
<div class="ml-4"> |
|
|
<p class="text-gray-500">Today's Revenue</p> |
|
|
<h3 class="text-2xl font-bold">₹24,500</h3> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-white rounded-lg shadow p-6"> |
|
|
<div class="flex items-center"> |
|
|
<div class="p-3 rounded-full bg-blue-100 text-blue-600"> |
|
|
<i data-feather="home"></i> |
|
|
</div> |
|
|
<div class="ml-4"> |
|
|
<p class="text-gray-500">Occupied Rooms</p> |
|
|
<h3 class="text-2xl font-bold">14/24</h3> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-white rounded-lg shadow p-6"> |
|
|
<div class="flex items-center"> |
|
|
<div class="p-3 rounded-full bg-purple-100 text-purple-600"> |
|
|
<i data-feather="users"></i> |
|
|
</div> |
|
|
<div class="ml-4"> |
|
|
<p class="text-gray-500">New Guests</p> |
|
|
<h3 class="text-2xl font-bold">8</h3> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="bg-white rounded-lg shadow p-6"> |
|
|
<div class="flex items-center"> |
|
|
<div class="p-3 rounded-full bg-yellow-100 text-yellow-600"> |
|
|
<i data-feather="calendar"></i> |
|
|
</div> |
|
|
<div class="ml-4"> |
|
|
<p class="text-gray-500">Check-ins Today</p> |
|
|
<h3 class="text-2xl font-bold">5</h3> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"> |
|
|
<div class="bg-white rounded-lg shadow p-6"> |
|
|
<h3 class="text-lg font-semibold mb-4">Revenue Overview</h3> |
|
|
<canvas id="revenueChart" height="300"></canvas> |
|
|
</div> |
|
|
<div class="bg-white rounded-lg shadow p-6"> |
|
|
<h3 class="text-lg font-semibold mb-4">Occupancy Rate</h3> |
|
|
<canvas id="occupancyChart" height="300"></canvas> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="bg-white rounded-lg shadow overflow-hidden"> |
|
|
<div class="px-6 py-4 border-b border-gray-200"> |
|
|
<h3 class="text-lg font-semibold">Recent Bookings</h3> |
|
|
</div> |
|
|
<div class="overflow-x-auto"> |
|
|
<table class="min-w-full divide-y divide-gray-200"> |
|
|
<thead class="bg-gray-50"> |
|
|
<tr> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Booking ID</th> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Guest</th> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Room</th> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Check-in</th> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Check-out</th> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th> |
|
|
<th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Action</th> |
|
|
</tr> |
|
|
</thead> |
|
|
<tbody class="bg-white divide-y divide-gray-200"> |
|
|
<tr> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#BK00123</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Rahul Sharma</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Deluxe Lake View</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">15 May 2023</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">18 May 2023</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Confirmed</span> |
|
|
</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> |
|
|
<a href="#" class="text-indigo-600 hover:text-indigo-900">View</a> |
|
|
</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#BK00122</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Priya Patel</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Executive Suite</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">14 May 2023</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">16 May 2023</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">Pending</span> |
|
|
</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> |
|
|
<a href="#" class="text-indigo-600 hover:text-indigo-900">View</a> |
|
|
</td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#BK00121</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Vikram Singh</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Family Suite</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">12 May 2023</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">15 May 2023</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap"> |
|
|
<span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Confirmed</span> |
|
|
</td> |
|
|
<td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500"> |
|
|
<a href="#" class="text-indigo-600 hover:text-indigo-900">View</a> |
|
|
</td> |
|
|
</tr> |
|
|
</tbody> |
|
|
</table> |
|
|
</div> |
|
|
</div> |
|
|
</main> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<script> |
|
|
|
|
|
feather.replace(); |
|
|
|
|
|
|
|
|
const revenueCtx = document.getElementById('revenueChart').getContext('2d'); |
|
|
const revenueChart = new Chart(revenueCtx, { |
|
|
type: 'line', |
|
|
data: { |
|
|
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], |
|
|
datasets: [{ |
|
|
label: 'Revenue (₹)', |
|
|
data: [150000, 175000, 190000, 210000, 225000, 240000], |
|
|
backgroundColor: 'rgba(16, 185, 129, 0.1)', |
|
|
borderColor: 'rgba(16, 185, 129, 1)', |
|
|
borderWidth: 2, |
|
|
tension: 0.3 |
|
|
}] |
|
|
}, |
|
|
options: { |
|
|
responsive: true, |
|
|
plugins: { |
|
|
legend: { |
|
|
display: false |
|
|
} |
|
|
}, |
|
|
scales: { |
|
|
y: { |
|
|
beginAtZero: true |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
|
|
|
const occupancyCtx = document.getElementById('occupancyChart').getContext('2d'); |
|
|
const occupancyChart = new Chart(occupancyCtx, { |
|
|
type: 'bar', |
|
|
data: { |
|
|
labels: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun'], |
|
|
datasets: [{ |
|
|
label: 'Occupancy Rate (%)', |
|
|
data: [65, 72, 68, 78, 82, 85], |
|
|
backgroundColor: 'rgba(99, 102, 241, 0.6)', |
|
|
borderColor: 'rgba(99, 102, 241, 1)', |
|
|
borderWidth: 1 |
|
|
}] |
|
|
}, |
|
|
options: { |
|
|
responsive: true, |
|
|
plugins: { |
|
|
legend: { |
|
|
display: false |
|
|
} |
|
|
}, |
|
|
scales: { |
|
|
y: { |
|
|
beginAtZero: true, |
|
|
max: 100 |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
</script> |
|
|
</body> |
|
|
</html> |