aaadejumo commited on
Commit
b8a5d0e
·
verified ·
1 Parent(s): 42fab91

include the visualisation page of this data: 1/1/2024 P12345 S28576 TX Tech Traders 12345 Texas San Antonio 0.00 1,896.00 -1,896.00 Paid Pending

Browse files

1/3/2024 P12346 S28576 TX Tech Traders 12346 Texas San Antonio 7,135.00 1,660.00 5,475.00 Partial Payment
1/7/2024 P12347 S28564 Silicon Beach Tech Distributors 12347 California Santa Monica 9,898.05 0.00 9,898.05 Pending
1/11/2024 P12348 S28568 Memory Masters Corp. 12348 Texas Austin 4,124.20 0.00 4,124.20 Pending
1/13/2024 P12349 S28577 Phoenix CPU & GPU Solutions 12349 Arizona Phoenix 3,951.00 908.00 3,043.00 Partial Payment
1/16/2024 P12350 S28574 FL Component Supply 12350 Florida Jacksonville 2,651.00 6,663.00 -4,012.00 Paid
1/18/2024 P12351 S28577 Phoenix CPU & GPU Solutions 12351 Arizona Phoenix 4,394.42 7,097.00 -2,702.58 Paid
1/21/2024 P12352 S28572 DDR Dynamo LLC 12352 California San Jose 2,227.80 3,511.00 -1,283.20 Paid
1/23/2024 P12353 S28568 Memory Masters Corp. 12353 Texas Austin 1,809.04 4,011.00 -2,201.96 Paid
1/25/2024 P12354 S28574 FL Component Supply 12354 Florida Jacksonville 2,894.90 4,800.00 -1,905.10 Paid
1/28/2024 P12355 S28565 Lone Star Gaming Hardware 12355 Texas Dallas 1,616.79 0.00 1,616.79 Pending
1/31/2024 P12356 S28573 AZ Tech Distributors 12356 Arizona Mesa 1,966.80 3,714.00 -1,747.20 Paid
2/2/2024 P12357 S28563 Suncoast CPU Solutions 12357 Florida Tampa 2,408.72 4,506.00 -2,097.28 Paid
2/5/2024 P12358 S28569 ROG Enthusiasts Outlet 12358 Arizona Tucson 3,311.44 622.00 2,689.44 Partial Payment
2/8/2024 P12359 S28576 TX Tech Traders 12359 Texas San Antonio 3,317.40 2,919.00 398.40 Partial Payment
2/12/2024 P12360 S28576 TX Tech Traders 12360 Texas San Antonio 2,339.80 2,986.00 -646.20 Paid
2/14/2024 P12361 S28574 FL Component Supply 12361 Florida Jacksonville 5,972.60 1,648.00 4,324.60 Partial Payment
2/18/2024 P12362 S28563 Suncoast CPU Solutions 12362 Florida Tampa 13,423.20 5,624.00 7,799.20 Partial Payment
2/21/2024 P12363 S28568 Memory Masters Corp. 12363 Texas Austin 4,903.00 1,604.00 3,299.00 Partial Payment
2/25/2024 P12364 S28575 West Coast PC Imports 12364 California Oakland 2,949.80 1,059.00 1,890.80 Partial Payment
2/27/2024 P12365 S28570 PrimeBoard Direct 12365 Florida Orlando 6,964.90 4,648.00 2,316.90 Partial Payment
3/2/2024 P12366 S28572 DDR Dynamo LLC 12366 California San Jose 4,692.60 1,513.00 3,179.60 Partial Payment
3/6/2024 P12367 S28576 TX Tech Traders 12367 Texas San Antonio 5,725.40 2,704.00 3,021.40 Partial Payment
3/8/2024 P12368 S28567 CoreTech Individual Sales 12368 California San Diego 5,525.80 3,272.00 2,253.80 Partial Payment
3/11/2024 P12369 S28567 CoreTech Individual Sales 12369 California San Diego 3,333.00 2,899.00 434.00 Partial Payment
3/13/2024 P12370 S28568 Memory Masters Corp. 12370 Texas Austin 5,765.82 3,868.00 1,897.82 Partial Payment
3/17/2024 P12371 S28564 Silicon Beach Tech Distributors 12371 California Santa Monica 9,497.20 7,855.00 1,642.20 Partial Payment
3/21/2024 P12372 S28565 Lone Star Gaming Hardware 12372 Texas Dallas 3,194.55 3,408.00 -213.45 Paid
3/24/2024 P12373 S28570 PrimeBoard Direct 12373 Florida Orlando 4,457.60 2,056.00 2,401.60 Partial Payment
3/28/2024 P12374 S28574 FL Component Supply 12374 Florida Jacksonville 6,699.25 1,145.00 5,554.25 Partial Payment
4/1/2024 P12375 S28572 DDR Dynamo LLC 12375 California San Jose 3,441.46 3,926.00 -484.54 Paid
4/5/2024 P12376 S28575 West Coast PC Imports 12376 California Oakland 3,041.65 0.00 3,041.65 Pending
4/8/2024 P12377 S28573 AZ Tech Distributors 12377 Arizona Mesa 5,513.10 4,744.00 769.10 Partial Payment
4/10/2024 P12378 S28568 Memory Masters Corp. 12378 Texas Austin 1,158.20 4,129.00 -2,970.80 Paid
4/12/2024 P12379 S28577 Phoenix CPU & GPU Solutions 12379 Arizona Phoenix 6,721.00 3,858.00 2,863.00 Partial Payment
4/14/2024 P12380 S28577 Phoenix CPU & GPU Solutions 12380 Arizona Phoenix 1,562.90 0.00 1,562.90 Pending
4/17/2024 P12381 S28564 Silicon Beach Tech Distributors 12381 California Santa Monica 5,934.00 4,949.00 985.00 Partial Payment
4/21/2024 P12382 S28573 AZ Tech Distributors 12382 Arizona Mesa 2,143.00 8,132.00 -5,989.00 Paid
4/23/2024 P12383 S28570 PrimeBoard Direct 12383 Florida Orlando 4,435.70 5,822.00 -1,386.30 Paid
4/26/2024 P12384 S28571 GPU Central USA 12384 Texas Houston 8,745.75 0.00 8,745.75 Pending
4/29/2024 P12385 S28564 Silicon Beach Tech Distributors 12385 California Santa Monica 8,077.16 7,995.00 82.16 Partial Payment
5/3/2024 P12386 S28577 Phoenix CPU & GPU Solutions 12386 Arizona Phoenix 820.40 1,782.00 -961.60 Paid
5/5/2024 P12387 S28566 Desert Valley Parts 12387 Arizona Phoenix 4,735.50 0.00 4,735.50 Pending
5/8/2024 P12388 S28568 Memory Masters Corp. 12388 Texas Austin 4,582.76 1,967.00 2,615.76 Partial Payment
5/12/2024 P12389 S28571 GPU Central USA 12389 Texas Houston 3,032.80 1,587.00 1,445.80 Partial Payment
5/14/2024 P12390 S28563 Suncoast CPU Solutions 12390 Florida Tampa 3,200.50 6,695.00 -3,494.50 Paid
5/17/2024 P12391 S28575 West Coast PC Imports 12391 California Oakland 2,080.00 1,910.00 170.00 Partial Payment
5/19/2024 P12392 S28565 Lone Star Gaming Hardware 12392 Texas Dallas 4,230.10 0.00 4,230.10 Pending
5/22/2024 P12393 S28577 Phoenix CPU & GPU Solutions 12393 Arizona Phoenix 4,702.80 0.00 4,702.80 Pending
5/26/2024 P12394 S28577 Phoenix CPU & GPU Solutions 12394 Arizona Phoenix 1,929.10 4,011.00 -2,081.90 Paid
5/28/2024 P12395 S28565 Lone Star Gaming Hardware 12395 Texas Dallas 2,789.90 3,929.00 -1,139.10 Paid
5/31/2024 P12396 S28569 ROG Enthusiasts Outlet 12396 Arizona Tucson 6,522.40 0.00 6,522.40 Pending
6/2/2024 P12397 S28573 AZ Tech Distributors 12397 Arizona Mesa 6,736.20 1,851.00 4,885.20 Partial Payment
6/6/2024 P12398 S28575 West Coast PC Imports 12398 California Oakland 4,451.50 0.00 4,451.50 Pending
6/8/2024 P12399 S28573 AZ Tech Distributors 12399 Arizona Mesa 2,035.60 3,397.00 -1,361.40 Paid
6/10/2024 P12400 S28571 GPU Central USA 12400 Texas Houston 3,569.00 1,423.00 2,146.00 Partial Payment
6/14/2024 P12401 S28571 GPU Central USA 12401 Texas Houston 3,566.20 1,763.00 1,803.20 Partial Payment
6/18/2024 P12402 S28567 CoreTech Individual Sales 12402 California San Diego 3,862.00 2,974.00 888.00 Partial Payment
6/21/2024 P12403 S28570 PrimeBoard Direct 12403 Florida Orlando 4,764.18 3,885.00 879.18 Partial Payment
6/25/2024 P12404 S28574 FL Component Supply 12404 Florida Jacksonville 4,009.50 1,746.00 2,263.50 Partial Payment
6/27/2024 P12405 S28572 DDR Dynamo LLC 12405 California San Jose 2,002.40 994.00 1,008.40 Partial Payment
6/29/2024 P12406 S28567 CoreTech Individual Sales 12406 California San Diego 1,800.21 3,002.00 -1,201.79 Paid
7/2/2024 P12407 S28567 CoreTech Individual Sales 12407 California San Diego 2,029.00 4,580.00 -2,551.00 Paid
7/4/2024 P12408 S28572 DDR Dynamo LLC 12408 California San Jose 5,968.00 4,372.00 1,596.00 Partial Payment
7/8/2024 P12409 S28572 DDR Dynamo LLC 12409 California San Jose 5,228.10 1,931.00 3,297.10 Partial Payment
7/12/2024 P12410 S28577 Phoenix CPU & GPU Solutions 12410 Arizona Phoenix 4,925.76 1,307.00 3,618.76 Partial Payment
7/16/2024 P12411 S28571 GPU Central USA 12411 Texas Houston 2,819.40 2,213.00 606.40 Partial Payment
7/18/2024 P12412 S28572 DDR Dynamo LLC 12412 California San Jose 6,403.90 1,921.00 4,482.90 Partial Payment
7/21/2024 P12413 S28574 FL Component Supply 12413 Florida Jacksonville 7,269.20 1,636.00 5,633.20 Partial Payment
7/25/2024 P12414 S28572 DDR Dynamo LLC 12414 California San Jose 5,943.45 1,241.00 4,702.45 Partial Payment
7/28/2024 P12415 S28566 Desert Valley Parts 12415 Arizona Phoenix 5,516.60 3,076.00 2,440.60 Partial Payment
7/31/2024 P12416 S28571 GPU Central USA 12416 Texas Houston 4,109.80 2,187.00 1,922.80 Partial Payment
8/4/2024 P12417 S28563 Suncoast CPU Solutions 12417 Florida Tampa 2,227.00 1,786.00 441.00 Partial Payment
8/6/2024 P12418 S28569 ROG Enthusiasts Outlet 12418 Arizona Tucson 4,373.40 5,859.00 -1,485.60 Paid
8/8/2024 P12419 S28567 CoreTech Individual Sales 12419 California San Diego 3,391.40 0.00 3,391.40 Pending
8/10/2024 P12420 S28575 West Coast PC Imports 12420 California Oakland 3,507.40 0.00 3,507.40 Pending
8/13/2024 P12421 S28576 TX Tech Traders 12421 Texas San Antonio 4,605.55 2,394.00 2,211.55 Partial Payment
8/17/2024 P12422 S28572 DDR Dynamo LLC 12422 California San Jose 7,253.80 4,324.00 2,929.80 Partial Payment
8/20/2024 P12423 S28576 TX Tech Traders 12423 Texas San Antonio 676.00 1,656.00 -980.00 Paid
8/22/2024 P12424 S28571 GPU Central USA 12424 Texas Houston 773.92 5,339.00 -4,565.08 Paid
8/24/2024 P12425 S28566 Desert Valley Parts 12425 Arizona Phoenix 5,490.72 3,013.00 2,477.72 Partial Payment
8/28/2024 P12426 S28567 CoreTech Individual Sales 12426 California San Diego 2,649.24 1,155.00 1,494.24 Partial Payment
8/30/2024 P12427 S28568 Memory Masters Corp. 12427 Texas Austin 4,858.00 1,398.00 3,460.00 Partial Payment
9/2/2024 P12428 S28572 DDR Dynamo LLC 12428 California San Jose 5,422.40 1,436.00 3,986.40 Partial Payment
9/6/2024 P12429 S28573 AZ Tech Distributors 12429 Arizona Mesa 4,405.70 0.00 4,405.70 Pending
9/9/2024 P12430 S28575 West Coast PC Imports 12430 California Oakland 2,066.40 5,010.00 -2,943.60 Paid
9/11/2024 P12431 S28577 Phoenix CPU & GPU Solutions 12431 Arizona Phoenix 3,137.00 1,528.00 1,609.00 Partial Payment
9/13/2024 P12432 S28574 FL Component Supply 12432 Florida Jacksonville 975.60 1,971.00 -995.40 Paid
9/15/2024 P12433 S28574 FL Component Supply 12433 Florida Jacksonville 7,584.00 1,797.00 5,787.00 Partial Payment
9/18/2024 P12434 S28564 Silicon Beach Tech Distributors 12434 California Santa Monica 10,055.40 1,093.00 8,962.40 Partial Payment
9/22/2024 P12435 S28577 Phoenix CPU & GPU Solutions 12435 Arizona Phoenix 6,771.00 6,100.00 671.00 Partial Payment
9/24/2024 P12436 S28574 FL Component Supply 12436 Florida Jacksonville 7,831.00 2,444.00 5,387.00 Partial Payment
9/28/2024 P12437 S28575 West Coast PC Imports 12437 California Oakland 2,372.40 4,862.00 -2,489.60 Paid
10/2/2024 P12438 S28574 FL Component Supply 12438 Florida Jacksonville 928.44 5,496.00 -4,567.56 Paid
10/4/2024 P12439 S28573 AZ Tech Distributors 12439 Arizona Mesa 3,402.00 5,300.00 -1,898.00 Paid
10/6/2024 P124

Files changed (5) hide show
  1. README.md +7 -5
  2. customers.html +266 -0
  3. index.html +253 -18
  4. prompts.txt +0 -0
  5. sales.html +268 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Inventory Asset App
3
- emoji: 📚
4
- colorFrom: purple
5
- colorTo: indigo
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: inventory-asset-app
3
+ emoji: 🐳
4
+ colorFrom: gray
5
+ colorTo: red
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
customers.html ADDED
@@ -0,0 +1,266 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Customers Data Visualization</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
9
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <style>
13
+ .chart-container {
14
+ position: relative;
15
+ height: 400px;
16
+ width: 100%;
17
+ }
18
+ .grid-item:hover {
19
+ transform: translateY(-5px);
20
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
21
+ }
22
+ </style>
23
+ </head>
24
+ <body class="bg-gray-50">
25
+ <header class="bg-indigo-600 text-white shadow-lg">
26
+ <div class="container mx-auto px-4 py-6">
27
+ <div class="flex justify-between items-center">
28
+ <h1 class="text-3xl font-bold flex items-center">
29
+ <i data-feather="users" class="mr-2"></i> Customers Dashboard
30
+ </h1>
31
+ <nav>
32
+ <ul class="flex space-x-6">
33
+ <li><a href="index.html" class="hover:text-indigo-200 transition">Components</a></li>
34
+ <li><a href="sales.html" class="hover:text-indigo-200 transition">Sales</a></li>
35
+ <li><a href="customers.html" class="hover:text-indigo-200 transition font-bold">Customers</a></li>
36
+ </ul>
37
+ </nav>
38
+ </div>
39
+ </div>
40
+ </header>
41
+
42
+ <main class="container mx-auto px-4 py-8">
43
+ <section class="mb-12" data-aos="fade-up">
44
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Customer Distribution</h2>
45
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
46
+ <div class="bg-white rounded-xl shadow-md p-6">
47
+ <h3 class="text-lg font-medium mb-4 text-gray-700">By State/Region</h3>
48
+ <div class="chart-container">
49
+ <canvas id="stateChart"></canvas>
50
+ </div>
51
+ </div>
52
+ <div class="bg-white rounded-xl shadow-md p-6">
53
+ <h3 class="text-lg font-medium mb-4 text-gray-700">Revenue Distribution</h3>
54
+ <div class="chart-container">
55
+ <canvas id="revenueChart"></canvas>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </section>
60
+
61
+ <section class="mb-12" data-aos="fade-up">
62
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Key Metrics</h2>
63
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
64
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
65
+ <div class="text-indigo-500 mb-3">
66
+ <i data-feather="trending-up" class="w-12 h-12 mx-auto"></i>
67
+ </div>
68
+ <h3 class="text-xl font-semibold mb-2">Highest Revenue</h3>
69
+ <p class="text-3xl font-bold text-gray-800">$901B</p>
70
+ <p class="text-gray-500">QuantumTech Solutions</p>
71
+ </div>
72
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
73
+ <div class="text-green-500 mb-3">
74
+ <i data-feather="users" class="w-12 h-12 mx-auto"></i>
75
+ </div>
76
+ <h3 class="text-xl font-semibold mb-2">Most Customers</h3>
77
+ <p class="text-3xl font-bold text-gray-800">7</p>
78
+ <p class="text-gray-500">California</p>
79
+ </div>
80
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
81
+ <div class="text-blue-500 mb-3">
82
+ <i data-feather="map-pin" class="w-12 h-12 mx-auto"></i>
83
+ </div>
84
+ <h3 class="text-xl font-semibold mb-2">Popular City</h3>
85
+ <p class="text-3xl font-bold text-gray-800">6</p>
86
+ <p class="text-gray-500">Santa Monica</p>
87
+ </div>
88
+ </div>
89
+ </section>
90
+
91
+ <section data-aos="fade-up">
92
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Customer Directory</h2>
93
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
94
+ <div class="overflow-x-auto">
95
+ <table class="min-w-full divide-y divide-gray-200">
96
+ <thead class="bg-gray-50">
97
+ <tr>
98
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">ID</th>
99
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Company</th>
100
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Phone</th>
101
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Email</th>
102
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">State</th>
103
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">City</th>
104
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Revenue</th>
105
+ </tr>
106
+ </thead>
107
+ <tbody class="bg-white divide-y divide-gray-200">
108
+ <!-- Data rows will be inserted here by JavaScript -->
109
+ </tbody>
110
+ </table>
111
+ </div>
112
+ </div>
113
+ </section>
114
+ </main>
115
+
116
+ <footer class="bg-gray-800 text-white py-8">
117
+ <div class="container mx-auto px-4">
118
+ <div class="flex flex-col md:flex-row justify-between items-center">
119
+ <div class="mb-4 md:mb-0">
120
+ <h2 class="text-xl font-bold flex items-center">
121
+ <i data-feather="database" class="mr-2"></i> Customers Dashboard
122
+ </h2>
123
+ <p class="text-gray-400 mt-2">Visualizing customer relationship data</p>
124
+ </div>
125
+ <div class="flex space-x-4">
126
+ <a href="#" class="text-gray-400 hover:text-white transition">
127
+ <i data-feather="github"></i>
128
+ </a>
129
+ <a href="#" class="text-gray-400 hover:text-white transition">
130
+ <i data-feather="twitter"></i>
131
+ </a>
132
+ <a href="#" class="text-gray-400 hover:text-white transition">
133
+ <i data-feather="linkedin"></i>
134
+ </a>
135
+ </div>
136
+ </div>
137
+ <div class="border-t border-gray-700 mt-6 pt-6 text-center text-gray-400 text-sm">
138
+ <p>© 2023 Customers Dashboard. All rights reserved.</p>
139
+ </div>
140
+ </div>
141
+ </footer>
142
+
143
+ <script>
144
+ // Initialize AOS and Feather Icons
145
+ AOS.init();
146
+ feather.replace();
147
+
148
+ // Customer data
149
+ const customers = [
150
+ {id: "C45487", company: "QuantumTech Solutions", phone: "(415) 555-0123", email: "laura.mitchell@quantumtech.com", state: "California", city: "San Francisco", revenue: 901052504038},
151
+ {id: "C45488", company: "Apex Digital Systems", phone: "(214) 555-0176", email: "johnathan.pierce@apexdigital.com", state: "Texas", city: "Dallas", revenue: 349463},
152
+ {id: "C45489", company: "BrightWave Innovations", phone: "(305) 555-0204", email: "carlos.diaz@brightwave.com", state: "Florida", city: "Miami", revenue: 107500},
153
+ {id: "C45490", company: "Summit IT Services", phone: "(480) 555-0335", email: "amanda.reyes@summitit.com", state: "Arizona", city: "Scottsdale", revenue: 82397},
154
+ {id: "C45491", company: "Vertex Software Group", phone: "(713) 555-0412", email: "mike.andrews@vertexsoftware.com", state: "Texas", city: "Houston", revenue: 93826},
155
+ {id: "C45492", company: "Nexus Cloud Solutions", phone: "(213) 555-0567", email: "jennifer.collins@nexuscloud.com", state: "California", city: "Los Angeles", revenue: 103758},
156
+ {id: "C45493", company: "HorizonTech Partners", phone: "(813) 555-0644", email: "david.thompson@horizontechnology.com", state: "Florida", city: "Tampa", revenue: 99378},
157
+ {id: "C45494", company: "Phoenix Digital Network", phone: "(480) 555-0701", email: "robert.johnson@phoenixdigital.com", state: "Arizona", city: "Mesa", revenue: 69633},
158
+ {id: "C45495", company: "Infinite Logic Systems", phone: "(602) 555-0820", email: "angela.simmons@infinitelogic.com", state: "Arizona", city: "Phoenix", revenue: 55322},
159
+ {id: "C45496", company: "LoneStar Data Solutions", phone: "(512) 555-0909", email: "kevin.white@lonestardata.com", state: "Texas", city: "Austin", revenue: 79361},
160
+ {id: "C45497", company: "BluePeak Technologies", phone: "(619) 555-1015", email: "olivia.parker@bluepeaktech.com", state: "California", city: "San Diego", revenue: 65206},
161
+ {id: "C45498", company: "Velocity IT Consulting", phone: "(407) 555-1107", email: "natalie.brooks@velocityit.com", state: "Florida", city: "Orlando", revenue: 69706},
162
+ {id: "C45499", company: "SilverEdge Marketing", phone: "(210) 555-1230", email: "brian.lee@silveredgemarketing.com", state: "Texas", city: "San Antonio", revenue: 120605},
163
+ {id: "C45500", company: "Evergreen Tech Solutions", phone: "(916) 555-1379", email: "david.martinez@evergreentech.com", state: "California", city: "Sacramento", revenue: 91455},
164
+ {id: "C45501", company: "Sunstate Digital Services", phone: "(904) 555-1488", email: "karen.evans@sunstatedigital.com", state: "Florida", city: "Jacksonville", revenue: 80118},
165
+ {id: "C30757", company: "Ernest Kuubagr", phone: "", email: "ernieleo2000@yahoo.com", state: "California", city: "Miami", revenue: 50},
166
+ {id: "C79793", company: "su titu", phone: "1772121852", email: "stuffc@gmail.com", state: "California", city: "Santa Monica", revenue: 100},
167
+ {id: "C57123", company: "jhow", phone: "11991263100", email: "falamacho2025@gmail.com", state: "SP", city: "SÃO PAULO", revenue: 500},
168
+ {id: "C33529", company: "Sarwar Foods", phone: "", email: "", state: "Pakistan", city: "Pakistan", revenue: 40000},
169
+ {id: "C22267", company: "aaa", phone: "", email: "", state: "india", city: "Hyderababd", revenue: 110}
170
+ ];
171
+
172
+ // Populate table
173
+ const tableBody = document.querySelector('tbody');
174
+ customers.forEach(customer => {
175
+ const row = document.createElement('tr');
176
+ row.className = 'hover:bg-gray-50 transition';
177
+ row.innerHTML = `
178
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">${customer.id}</td>
179
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${customer.company}</td>
180
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${customer.phone}</td>
181
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${customer.email}</td>
182
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${customer.state}</td>
183
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${customer.city}</td>
184
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${customer.revenue.toLocaleString()}</td>
185
+ `;
186
+ tableBody.appendChild(row);
187
+ });
188
+
189
+ // State Distribution Chart
190
+ const stateCounts = customers.reduce((acc, customer) => {
191
+ acc[customer.state] = (acc[customer.state] || 0) + 1;
192
+ return acc;
193
+ }, {});
194
+
195
+ const stateCtx = document.getElementById('stateChart').getContext('2d');
196
+ new Chart(stateCtx, {
197
+ type: 'bar',
198
+ data: {
199
+ labels: Object.keys(stateCounts),
200
+ datasets: [{
201
+ label: 'Customers by State',
202
+ data: Object.values(stateCounts),
203
+ backgroundColor: [
204
+ '#6366F1', '#10B981', '#F59E0B', '#EF4444', '#8B5CF6',
205
+ '#EC4899', '#14B8A6', '#F97316', '#8B5CF6', '#EC4899'
206
+ ],
207
+ borderWidth: 0,
208
+ borderRadius: 4
209
+ }]
210
+ },
211
+ options: {
212
+ responsive: true,
213
+ maintainAspectRatio: false,
214
+ plugins: {
215
+ legend: {
216
+ display: false
217
+ }
218
+ },
219
+ scales: {
220
+ y: {
221
+ beginAtZero: true,
222
+ ticks: {
223
+ precision: 0
224
+ }
225
+ }
226
+ }
227
+ }
228
+ });
229
+
230
+ // Revenue Distribution Chart
231
+ const revenueCtx = document.getElementById('revenueChart').getContext('2d');
232
+ new Chart(revenueCtx, {
233
+ type: 'pie',
234
+ data: {
235
+ labels: customers.filter(c => c.revenue > 0).map(c => c.company),
236
+ datasets: [{
237
+ data: customers.filter(c => c.revenue > 0).map(c => c.revenue),
238
+ backgroundColor: [
239
+ '#6366F1', '#10B981', '#F59E0B', '#EF4444', '#8B5CF6',
240
+ '#EC4899', '#14B8A6', '#F97316', '#8B5CF6', '#EC4899',
241
+ '#14B8A6', '#F97316', '#8B5CF6', '#EC4899', '#14B8A6',
242
+ '#F97316', '#8B5CF6', '#EC4899', '#14B8A6'
243
+ ],
244
+ borderWidth: 0
245
+ }]
246
+ },
247
+ options: {
248
+ responsive: true,
249
+ maintainAspectRatio: false,
250
+ plugins: {
251
+ legend: {
252
+ display: false
253
+ },
254
+ tooltip: {
255
+ callbacks: {
256
+ label: function(context) {
257
+ return context.label + ': $' + context.raw.toLocaleString();
258
+ }
259
+ }
260
+ }
261
+ }
262
+ }
263
+ });
264
+ </script>
265
+ </body>
266
+ </html>
index.html CHANGED
@@ -1,19 +1,254 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
19
  </html>
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Computer Components Visualization</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
9
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <style>
13
+ .chart-container {
14
+ position: relative;
15
+ height: 400px;
16
+ width: 100%;
17
+ }
18
+ .grid-item:hover {
19
+ transform: translateY(-5px);
20
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
21
+ }
22
+ </style>
23
+ </head>
24
+ <body class="bg-gray-50">
25
+ <header class="bg-indigo-600 text-white shadow-lg">
26
+ <div class="container mx-auto px-4 py-6">
27
+ <div class="flex justify-between items-center">
28
+ <h1 class="text-3xl font-bold flex items-center">
29
+ <i data-feather="cpu" class="mr-2"></i> PC Components Dashboard
30
+ </h1>
31
+ <nav>
32
+ <ul class="flex space-x-6">
33
+ <li><a href="index.html" class="hover:text-indigo-200 transition font-bold">Components</a></li>
34
+ <li><a href="sales.html" class="hover:text-indigo-200 transition">Sales</a></li>
35
+ <li><a href="customers.html" class="hover:text-indigo-200 transition">Customers</a></li>
36
+ </ul>
37
+ </nav>
38
+ </div>
39
+ </div>
40
+ </header>
41
+
42
+ <main class="container mx-auto px-4 py-8">
43
+ <section class="mb-12" data-aos="fade-up">
44
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Component Distribution</h2>
45
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
46
+ <div class="bg-white rounded-xl shadow-md p-6">
47
+ <h3 class="text-lg font-medium mb-4 text-gray-700">By Category</h3>
48
+ <div class="chart-container">
49
+ <canvas id="categoryChart"></canvas>
50
+ </div>
51
+ </div>
52
+ <div class="bg-white rounded-xl shadow-md p-6">
53
+ <h3 class="text-lg font-medium mb-4 text-gray-700">Stock Levels</h3>
54
+ <div class="chart-container">
55
+ <canvas id="stockChart"></canvas>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </section>
60
+
61
+ <section class="mb-12" data-aos="fade-up">
62
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Performance Metrics</h2>
63
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
64
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
65
+ <div class="text-indigo-500 mb-3">
66
+ <i data-feather="trending-up" class="w-12 h-12 mx-auto"></i>
67
+ </div>
68
+ <h3 class="text-xl font-semibold mb-2">Highest Margin</h3>
69
+ <p class="text-3xl font-bold text-gray-800">$444</p>
70
+ <p class="text-gray-500">AMD Radeon RX 580</p>
71
+ </div>
72
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
73
+ <div class="text-green-500 mb-3">
74
+ <i data-feather="dollar-sign" class="w-12 h-12 mx-auto"></i>
75
+ </div>
76
+ <h3 class="text-xl font-semibold mb-2">Highest Price</h3>
77
+ <p class="text-3xl font-bold text-gray-800">$702</p>
78
+ <p class="text-gray-500">Intel Core i5-9600K</p>
79
+ </div>
80
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
81
+ <div class="text-red-500 mb-3">
82
+ <i data-feather="alert-circle" class="w-12 h-12 mx-auto"></i>
83
+ </div>
84
+ <h3 class="text-xl font-semibold mb-2">Low Stock</h3>
85
+ <p class="text-3xl font-bold text-gray-800">5</p>
86
+ <p class="text-gray-500">NVIDIA GTX 16GB</p>
87
+ </div>
88
+ </div>
89
+ </section>
90
+
91
+ <section data-aos="fade-up">
92
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Component Details</h2>
93
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
94
+ <div class="overflow-x-auto">
95
+ <table class="min-w-full divide-y divide-gray-200">
96
+ <thead class="bg-gray-50">
97
+ <tr>
98
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">ID</th>
99
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Category</th>
100
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Brand</th>
101
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Specs</th>
102
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Price</th>
103
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Cost</th>
104
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Margin</th>
105
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Stock</th>
106
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Warranty</th>
107
+ </tr>
108
+ </thead>
109
+ <tbody class="bg-white divide-y divide-gray-200">
110
+ <!-- Data rows will be inserted here by JavaScript -->
111
+ </tbody>
112
+ </table>
113
+ </div>
114
+ </div>
115
+ </section>
116
+ </main>
117
+
118
+ <footer class="bg-gray-800 text-white py-8">
119
+ <div class="container mx-auto px-4">
120
+ <div class="flex flex-col md:flex-row justify-between items-center">
121
+ <div class="mb-4 md:mb-0">
122
+ <h2 class="text-xl font-bold flex items-center">
123
+ <i data-feather="database" class="mr-2"></i> PC Components Dashboard
124
+ </h2>
125
+ <p class="text-gray-400 mt-2">Visualizing computer hardware data</p>
126
+ </div>
127
+ <div class="flex space-x-4">
128
+ <a href="#" class="text-gray-400 hover:text-white transition">
129
+ <i data-feather="github"></i>
130
+ </a>
131
+ <a href="#" class="text-gray-400 hover:text-white transition">
132
+ <i data-feather="twitter"></i>
133
+ </a>
134
+ <a href="#" class="text-gray-400 hover:text-white transition">
135
+ <i data-feather="linkedin"></i>
136
+ </a>
137
+ </div>
138
+ </div>
139
+ <div class="border-t border-gray-700 mt-6 pt-6 text-center text-gray-400 text-sm">
140
+ <p>© 2023 PC Components Dashboard. All rights reserved.</p>
141
+ </div>
142
+ </div>
143
+ </footer>
144
+
145
+ <script>
146
+ // Initialize AOS and Feather Icons
147
+ AOS.init();
148
+ feather.replace();
149
+
150
+ // Data for visualization
151
+ const components = [
152
+ {id: "P56494", category: "Graphic Cards", brand: "NVIDIA GTX", specs: "16 GB", price: 555, cost: 208, margin: 347, stock: 5, warranty: "No"},
153
+ {id: "P56495", category: "Processors", brand: "Core i7", specs: "10th Gen", price: 702, cost: 261, margin: 441, stock: 52, warranty: "No"},
154
+ {id: "P56496", category: "Processors", brand: "Core i7", specs: "10th Gen", price: 507, cost: 274, margin: 233, stock: 50, warranty: "No"},
155
+ {id: "P56497", category: "Processors", brand: "Core i7", specs: "11th Gen", price: 525, cost: 338, margin: 187, stock: 50, warranty: "No"},
156
+ {id: "P56498", category: "Memory Chips", brand: "DDR4", specs: "4GB", price: 505, cost: 334, margin: 171, stock: 50, warranty: "No"},
157
+ {id: "P56499", category: "Processors", brand: "Core i7", specs: "10th Gen", price: 469, cost: 204, margin: 265, stock: 50, warranty: "No"},
158
+ {id: "P56500", category: "Memory Chips", brand: "DDR5", specs: "8GB", price: 382, cost: 302, margin: 80, stock: 50, warranty: "No"},
159
+ {id: "P56501", category: "Memory Chips", brand: "DDR5", specs: "16GB", price: 512, cost: 319, margin: 193, stock: 50, warranty: "No"},
160
+ {id: "P56502", category: "Graphic Cards", brand: "NVIDIA GTX", specs: "4GB", price: 333, cost: 270, margin: 63, stock: 50, warranty: "No"},
161
+ {id: "P56503", category: "Graphic Cards", brand: "NVIDIA GTX", specs: "8GB", price: 429, cost: 383, margin: 46, stock: 50, warranty: "Yes"},
162
+ {id: "P56504", category: "Graphic Cards", brand: "AMD RADEON RX", specs: "8GB", price: 705, cost: 261, margin: 444, stock: 50, warranty: "No"},
163
+ {id: "P56505", category: "Graphic Cards", brand: "Core i7", specs: "10th Gen", price: 368, cost: 319, margin: 49, stock: 50, warranty: "Yes"},
164
+ {id: "P56506", category: "Motherboards", brand: "ASUS ROG", specs: "ATX", price: 508, cost: 298, margin: 210, stock: 50, warranty: "No"},
165
+ {id: "P56507", category: "Motherboards", brand: "ASUS ROG", specs: "Micro ATX", price: 404, cost: 257, margin: 147, stock: 50, warranty: "No"},
166
+ {id: "P56508", category: "Motherboards", brand: "ASUS PRIME", specs: "ATX", price: 514, cost: 282, margin: 232, stock: 50, warranty: "No"},
167
+ {id: "P56509", category: "Motherboards", brand: "ASUS PRIME", specs: "Micro ATX", price: 456, cost: 288, margin: 168, stock: 50, warranty: "No"}
168
+ ];
169
+
170
+ // Populate table
171
+ const tableBody = document.querySelector('tbody');
172
+ components.forEach(comp => {
173
+ const row = document.createElement('tr');
174
+ row.className = 'hover:bg-gray-50 transition';
175
+ row.innerHTML = `
176
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">${comp.id}</td>
177
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${comp.category}</td>
178
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${comp.brand}</td>
179
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${comp.specs}</td>
180
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${comp.price}</td>
181
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${comp.cost}</td>
182
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${comp.margin}</td>
183
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${comp.stock}</td>
184
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${comp.warranty}</td>
185
+ `;
186
+ tableBody.appendChild(row);
187
+ });
188
+
189
+ // Category Distribution Chart
190
+ const categoryCounts = components.reduce((acc, comp) => {
191
+ acc[comp.category] = (acc[comp.category] || 0) + 1;
192
+ return acc;
193
+ }, {});
194
+
195
+ const categoryCtx = document.getElementById('categoryChart').getContext('2d');
196
+ new Chart(categoryCtx, {
197
+ type: 'doughnut',
198
+ data: {
199
+ labels: Object.keys(categoryCounts),
200
+ datasets: [{
201
+ data: Object.values(categoryCounts),
202
+ backgroundColor: [
203
+ '#6366F1',
204
+ '#10B981',
205
+ '#F59E0B',
206
+ '#EF4444',
207
+ '#8B5CF6'
208
+ ],
209
+ borderWidth: 0
210
+ }]
211
+ },
212
+ options: {
213
+ responsive: true,
214
+ maintainAspectRatio: false,
215
+ plugins: {
216
+ legend: {
217
+ position: 'right',
218
+ }
219
+ }
220
+ }
221
+ });
222
+
223
+ // Stock Levels Chart
224
+ const stockCtx = document.getElementById('stockChart').getContext('2d');
225
+ new Chart(stockCtx, {
226
+ type: 'bar',
227
+ data: {
228
+ labels: components.map(comp => comp.id),
229
+ datasets: [{
230
+ label: 'Stock Levels',
231
+ data: components.map(comp => comp.stock),
232
+ backgroundColor: '#6366F1',
233
+ borderWidth: 0,
234
+ borderRadius: 4
235
+ }]
236
+ },
237
+ options: {
238
+ responsive: true,
239
+ maintainAspectRatio: false,
240
+ scales: {
241
+ y: {
242
+ beginAtZero: true
243
+ }
244
+ },
245
+ plugins: {
246
+ legend: {
247
+ display: false
248
+ }
249
+ }
250
+ }
251
+ });
252
+ </script>
253
+ </body>
254
  </html>
prompts.txt ADDED
The diff for this file is too large to render. See raw diff
 
sales.html ADDED
@@ -0,0 +1,268 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Sales Data Visualization</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://unpkg.com/aos@2.3.1/dist/aos.css" rel="stylesheet">
9
+ <script src="https://unpkg.com/aos@2.3.1/dist/aos.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
11
+ <script src="https://unpkg.com/feather-icons"></script>
12
+ <style>
13
+ .chart-container {
14
+ position: relative;
15
+ height: 400px;
16
+ width: 100%;
17
+ }
18
+ .grid-item:hover {
19
+ transform: translateY(-5px);
20
+ box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
21
+ }
22
+ </style>
23
+ </head>
24
+ <body class="bg-gray-50">
25
+ <header class="bg-indigo-600 text-white shadow-lg">
26
+ <div class="container mx-auto px-4 py-6">
27
+ <div class="flex justify-between items-center">
28
+ <h1 class="text-3xl font-bold flex items-center">
29
+ <i data-feather="dollar-sign" class="mr-2"></i> Sales Dashboard
30
+ </h1>
31
+ <nav>
32
+ <ul class="flex space-x-6">
33
+ <li><a href="index.html" class="hover:text-indigo-200 transition">Components</a></li>
34
+ <li><a href="sales.html" class="hover:text-indigo-200 transition font-bold">Sales</a></li>
35
+ <li><a href="customers.html" class="hover:text-indigo-200 transition">Customers</a></li>
36
+ </ul>
37
+ </nav>
38
+ </div>
39
+ </div>
40
+ </header>
41
+
42
+ <main class="container mx-auto px-4 py-8">
43
+ <section class="mb-12" data-aos="fade-up">
44
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Sales Performance</h2>
45
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-8">
46
+ <div class="bg-white rounded-xl shadow-md p-6">
47
+ <h3 class="text-lg font-medium mb-4 text-gray-700">Revenue by State</h3>
48
+ <div class="chart-container">
49
+ <canvas id="stateRevenueChart"></canvas>
50
+ </div>
51
+ </div>
52
+ <div class="bg-white rounded-xl shadow-md p-6">
53
+ <h3 class="text-lg font-medium mb-4 text-gray-700">Profit Distribution</h3>
54
+ <div class="chart-container">
55
+ <canvas id="profitChart"></canvas>
56
+ </div>
57
+ </div>
58
+ </div>
59
+ </section>
60
+
61
+ <section class="mb-12" data-aos="fade-up">
62
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Key Metrics</h2>
63
+ <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
64
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
65
+ <div class="text-indigo-500 mb-3">
66
+ <i data-feather="trending-up" class="w-12 h-12 mx-auto"></i>
67
+ </div>
68
+ <h3 class="text-xl font-semibold mb-2">Highest Revenue</h3>
69
+ <p class="text-3xl font-bold text-gray-800">$988,971</p>
70
+ <p class="text-gray-500">Lone Star Gaming Hardware</p>
71
+ </div>
72
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
73
+ <div class="text-green-500 mb-3">
74
+ <i data-feather="dollar-sign" class="w-12 h-12 mx-auto"></i>
75
+ </div>
76
+ <h3 class="text-xl font-semibold mb-2">Highest Profit</h3>
77
+ <p class="text-3xl font-bold text-gray-800">$961,487</p>
78
+ <p class="text-gray-500">Lone Star Gaming Hardware</p>
79
+ </div>
80
+ <div class="bg-white rounded-xl shadow-md p-6 text-center">
81
+ <div class="text-red-500 mb-3">
82
+ <i data-feather="alert-circle" class="w-12 h-12 mx-auto"></i>
83
+ </div>
84
+ <h3 class="text-xl font-semibold mb-2">Lowest Profit</h3>
85
+ <p class="text-3xl font-bold text-gray-800">-$2,894</p>
86
+ <p class="text-gray-500">DDR Dynamo LLC</p>
87
+ </div>
88
+ </div>
89
+ </section>
90
+
91
+ <section data-aos="fade-up">
92
+ <h2 class="text-2xl font-semibold mb-6 text-gray-800 border-b pb-2">Sales Details</h2>
93
+ <div class="bg-white rounded-xl shadow-md overflow-hidden">
94
+ <div class="overflow-x-auto">
95
+ <table class="min-w-full divide-y divide-gray-200">
96
+ <thead class="bg-gray-50">
97
+ <tr>
98
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">ID</th>
99
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Company</th>
100
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Phone</th>
101
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Email</th>
102
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">State</th>
103
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">City</th>
104
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Revenue</th>
105
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Cost</th>
106
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Profit</th>
107
+ </tr>
108
+ </thead>
109
+ <tbody class="bg-white divide-y divide-gray-200">
110
+ <!-- Data rows will be inserted here by JavaScript -->
111
+ </tbody>
112
+ </table>
113
+ </div>
114
+ </div>
115
+ </section>
116
+ </main>
117
+
118
+ <footer class="bg-gray-800 text-white py-8">
119
+ <div class="container mx-auto px-4">
120
+ <div class="flex flex-col md:flex-row justify-between items-center">
121
+ <div class="mb-4 md:mb-0">
122
+ <h2 class="text-xl font-bold flex items-center">
123
+ <i data-feather="database" class="mr-2"></i> Sales Dashboard
124
+ </h2>
125
+ <p class="text-gray-400 mt-2">Visualizing sales performance data</p>
126
+ </div>
127
+ <div class="flex space-x-4">
128
+ <a href="#" class="text-gray-400 hover:text-white transition">
129
+ <i data-feather="github"></i>
130
+ </a>
131
+ <a href="#" class="text-gray-400 hover:text-white transition">
132
+ <i data-feather="twitter"></i>
133
+ </a>
134
+ <a href="#" class="text-gray-400 hover:text-white transition">
135
+ <i data-feather="linkedin"></i>
136
+ </a>
137
+ </div>
138
+ </div>
139
+ <div class="border-t border-gray-700 mt-6 pt-6 text-center text-gray-400 text-sm">
140
+ <p>© 2023 Sales Dashboard. All rights reserved.</p>
141
+ </div>
142
+ </div>
143
+ </footer>
144
+
145
+ <script>
146
+ // Initialize AOS and Feather Icons
147
+ AOS.init();
148
+ feather.replace();
149
+
150
+ // Sales data
151
+ const salesData = [
152
+ {id: "S28563", company: "Suncoast CPU Solutions", phone: "(813) 555-0143", email: "jessica@suncoastcpu.com", state: "Florida", city: "Tampa", revenue: 48537.30, cost: 29779.00, profit: 18758.30},
153
+ {id: "S28564", company: "Silicon Beach Tech Distributors", phone: "(310) 555-0189", email: "mike.chen@siliconbeachdist.com", state: "California", city: "Santa Monica", revenue: 371316.40, cost: 55280.00, profit: 316036.40},
154
+ {id: "S28565", company: "Lone Star Gaming Hardware", phone: "(214) 555-0211", email: "carlos@lonestargaming.com", state: "Texas", city: "Dallas", revenue: 988971.40, cost: 27484.01, profit: 961487.39},
155
+ {id: "S28566", company: "Desert Valley Parts", phone: "(602) 555-0083", email: "aisha@desertvalleyparts.com", state: "Arizona", city: "Phoenix", revenue: 64985.96, cost: 25597.00, profit: 39388.96},
156
+ {id: "S28568", company: "Memory Masters Corp.", phone: "(512) 555-0317", email: "emily@memorymasters.com", state: "Texas", city: "Austin", revenue: 85029.29, cost: 61902.00, profit: 23127.29},
157
+ {id: "S28569", company: "ROG Enthusiasts Outlet", phone: "(520) 555-0129", email: "victor@rogoutlet.com", state: "Arizona", city: "Tucson", revenue: 86354.36, cost: 27615.00, profit: 58739.36},
158
+ {id: "S28570", company: "PrimeBoard Direct", phone: "(407) 555-0456", email: "olivia.green@primeboard.com", state: "Florida", city: "Orlando", revenue: 55403.18, cost: 37028.00, profit: 18375.18},
159
+ {id: "S28571", company: "GPU Central USA", phone: "(713) 555-0633", email: "brandon.lee@gpucentralusa.com", state: "Texas", city: "Houston", revenue: 81320.09, cost: 44350.00, profit: 36970.09},
160
+ {id: "S28572", company: "DDR Dynamo LLC", phone: "(408) 555-0592", email: "samantha@ddrdynamo.com", state: "California", city: "San Jose", revenue: 45196.51, cost: 48091.00, profit: -2894.49},
161
+ {id: "S28573", company: "AZ Tech Distributors", phone: "(480) 555-0741", email: "rajiv@aztechdist.com", state: "Arizona", city: "Mesa", revenue: 65456.65, cost: 44707.11, profit: 20749.54},
162
+ {id: "S28574", company: "FL Component Supply", phone: "(904) 555-0902", email: "marisol@flcomponentsupply.com", state: "Florida", city: "Jacksonville", revenue: 66859.44, cost: 65507.00, profit: 1352.44},
163
+ {id: "S28575", company: "West Coast PC Imports", phone: "(510) 555-0811", email: "daniel@wcpcimports.com", state: "California", city: "Oakland", revenue: 71516.30, cost: 20299.00, profit: 51217.30},
164
+ {id: "S28576", company: "TX Tech Traders", phone: "(210) 555-0957", email: "andrea.j@txtechtraders.com", state: "Texas", city: "San Antonio", revenue: 67847.88, cost: 36613.00, profit: 31234.88},
165
+ {id: "S28577", company: "Phoenix CPU & GPU Solutions", phone: "(602) 555-0778", email: "chris.oneil@phxcpu-gpu.com", state: "Arizona", city: "Phoenix", revenue: 80530.95, cost: 33444.00, profit: 47086.95}
166
+ ];
167
+
168
+ // Populate table
169
+ const tableBody = document.querySelector('tbody');
170
+ salesData.forEach(sale => {
171
+ const row = document.createElement('tr');
172
+ row.className = 'hover:bg-gray-50 transition';
173
+ row.innerHTML = `
174
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">${sale.id}</td>
175
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${sale.company}</td>
176
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${sale.phone}</td>
177
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${sale.email}</td>
178
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${sale.state}</td>
179
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">${sale.city}</td>
180
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${sale.revenue.toLocaleString()}</td>
181
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${sale.cost.toLocaleString()}</td>
182
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">$${sale.profit.toLocaleString()}</td>
183
+ `;
184
+ tableBody.appendChild(row);
185
+ });
186
+
187
+ // State Revenue Chart
188
+ const stateRevenue = salesData.reduce((acc, sale) => {
189
+ acc[sale.state] = (acc[sale.state] || 0) + sale.revenue;
190
+ return acc;
191
+ }, {});
192
+
193
+ const stateRevenueCtx = document.getElementById('stateRevenueChart').getContext('2d');
194
+ new Chart(stateRevenueCtx, {
195
+ type: 'bar',
196
+ data: {
197
+ labels: Object.keys(stateRevenue),
198
+ datasets: [{
199
+ label: 'Revenue by State',
200
+ data: Object.values(stateRevenue),
201
+ backgroundColor: [
202
+ '#6366F1',
203
+ '#10B981',
204
+ '#F59E0B',
205
+ '#EF4444',
206
+ '#8B5CF6'
207
+ ],
208
+ borderWidth: 0,
209
+ borderRadius: 4
210
+ }]
211
+ },
212
+ options: {
213
+ responsive: true,
214
+ maintainAspectRatio: false,
215
+ plugins: {
216
+ legend: {
217
+ display: false
218
+ }
219
+ },
220
+ scales: {
221
+ y: {
222
+ beginAtZero: true,
223
+ ticks: {
224
+ callback: function(value) {
225
+ return '$' + (value / 1000).toFixed(0) + 'K';
226
+ }
227
+ }
228
+ }
229
+ }
230
+ }
231
+ });
232
+
233
+ // Profit Distribution Chart
234
+ const profitCtx = document.getElementById('profitChart').getContext('2d');
235
+ new Chart(profitCtx, {
236
+ type: 'pie',
237
+ data: {
238
+ labels: salesData.map(sale => sale.company),
239
+ datasets: [{
240
+ data: salesData.map(sale => sale.profit),
241
+ backgroundColor: [
242
+ '#6366F1', '#10B981', '#F59E0B', '#EF4444', '#8B5CF6',
243
+ '#EC4899', '#14B8A6', '#F97316', '#8B5CF6', '#EC4899',
244
+ '#14B8A6', '#F97316', '#8B5CF6', '#EC4899'
245
+ ],
246
+ borderWidth: 0
247
+ }]
248
+ },
249
+ options: {
250
+ responsive: true,
251
+ maintainAspectRatio: false,
252
+ plugins: {
253
+ legend: {
254
+ display: false
255
+ },
256
+ tooltip: {
257
+ callbacks: {
258
+ label: function(context) {
259
+ return context.label + ': $' + context.raw.toLocaleString();
260
+ }
261
+ }
262
+ }
263
+ }
264
+ }
265
+ });
266
+ </script>
267
+ </body>
268
+ </html>