insane7526 commited on
Commit
220c099
·
verified ·
1 Parent(s): 37c43b0

Role & Goal

Browse files

You are an expert full-stack web developer. Build a production-ready roadside assistance platform called “RoadResQ” (working name). It should allow customers to request on-demand roadside help (puncture, towing, battery, engine breakdown) and connect them with verified mechanics/tow partners.
Tech Stack (must use)
Frontend: React (with TailwindCSS for styling)
Backend: Node.js (Express) with REST APIs
Database: PostgreSQL
Authentication: JWT-based auth (email/phone login)
Maps & Location: Google Maps API for service request location + live tracking
Payments: Razorpay integration (test mode setup)
Deployment ready: Containerized with Docker, instructions for deploying to AWS
Core Features (MVP)
Homepage:
Hero section with tagline (“Help when you need it, where you need it.”)
Call-to-action button (“Request Help Now”)
Brief section on how the service works (3 steps: Request → Dispatch → Assistance arrives).
Testimonials placeholder.
Customer Portal:
Create account/login.
Request service by selecting problem type (puncture, tow, battery, engine).
Share live location (map picker + geolocation API).
Show estimated arrival time & price before confirmation.
Pay via Razorpay or select cash on delivery.
See mechanic’s live location (real-time tracking via WebSockets).
Service history page.
Mechanic/Partner Portal:
Login/signup for mechanics.
Accept/reject incoming requests.
Navigate to customer using map link.
Mark job as completed.
Earnings dashboard (jobs completed, payouts).
Admin Dashboard:
View active & past requests.
Assign/reassign mechanics if auto-match fails.
Monitor average response time, cancellations.
Manage mechanics (verify ID, enable/disable).
Basic analytics (daily jobs, revenue).
UI/UX Guidelines
Clean, modern UI using Tailwind.
Mobile-first responsive design.
Consistent brand colors (blue + yellow palette for urgency/trust).
Card-style UI for service types.
Minimal text, clear CTAs.
Deliverables
Full React frontend code (with routing, components, state management).
Node.js backend code with REST APIs (services: auth, requests, payments, mechanic matching).
SQL schema for PostgreSQL (users, mechanics, requests, payments).
Integration with Google Maps API (showing current & destination).
Dockerfile + instructions for deployment.
README with setup steps.
Extra Instructions
Write clean, modular, production-level code.
Include comments for all major functions.
Prioritize speed of development + clarity.
Assume this is version 1.0 MVP — no need for advanced features like subscriptions or surge pricing yet. - Initial Deployment

Files changed (7) hide show
  1. README.md +7 -5
  2. customer-dashboard.html +279 -0
  3. customer-login.html +124 -0
  4. index.html +477 -18
  5. mechanic-login.html +22 -0
  6. prompts.txt +54 -0
  7. request-help.html +445 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Roadresq
3
- emoji: 🏢
4
- colorFrom: purple
5
- colorTo: red
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: roadresq
3
+ emoji: 🐳
4
+ colorFrom: blue
5
+ colorTo: blue
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
customer-dashboard.html ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>Dashboard - RoadResQ</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <style>
11
+ body {
12
+ font-family: 'Inter', sans-serif;
13
+ }
14
+ .sidebar {
15
+ transition: all 0.3s ease;
16
+ }
17
+ .btn-primary {
18
+ background-color: #2563eb;
19
+ transition: all 0.3s ease;
20
+ }
21
+ .btn-primary:hover {
22
+ background-color: #1d4ed8;
23
+ transform: translateY(-1px);
24
+ }
25
+ .btn-emergency {
26
+ background-color: #dc2626;
27
+ transition: all 0.3s ease;
28
+ }
29
+ .btn-emergency:hover {
30
+ background-color: #b91c1c;
31
+ transform: translateY(-1px);
32
+ }
33
+ .active-nav-item {
34
+ background-color: #eff6ff;
35
+ color: #2563eb;
36
+ border-left: 4px solid #2563eb;
37
+ }
38
+ .active-nav-item i {
39
+ color: #2563eb;
40
+ }
41
+ </style>
42
+ </head>
43
+ <body class="bg-gray-50">
44
+ <div class="flex h-screen overflow-hidden">
45
+ <!-- Sidebar -->
46
+ <div class="hidden md:flex md:flex-shrink-0">
47
+ <div class="flex flex-col w-64 border-r border-gray-200 bg-white">
48
+ <div class="h-0 flex-1 flex flex-col pt-5 pb-4 overflow-y-auto">
49
+ <div class="flex items-center flex-shrink-0 px-4">
50
+ <i data-feather="tool" class="h-8 w-8 text-blue-600"></i>
51
+ <span class="ml-2 text-xl font-bold text-gray-900">RoadResQ</span>
52
+ </div>
53
+ <nav class="mt-5 flex-1 space-y-1 bg-white px-2">
54
+ <a href="#" class="active-nav-item group flex items-center px-2 py-2 text-sm font-medium rounded-md">
55
+ <i data-feather="home" class="mr-3 h-5 w-5 text-gray-400 group-hover:text-gray-500"></i>
56
+ Dashboard
57
+ </a>
58
+ <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md hover:bg-gray-50 hover:text-gray-900">
59
+ <i data-feather="map" class="mr-3 h-5 w-5 text-gray-400 group-hover:text-gray-500"></i>
60
+ Request Help
61
+ </a>
62
+ <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md hover:bg-gray-50 hover:text-gray-900">
63
+ <i data-feather="clock" class="mr-3 h-5 w-5 text-gray-400 group-hover:text-gray-500"></i>
64
+ Service History
65
+ </a>
66
+ <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md hover:bg-gray-50 hover:text-gray-900">
67
+ <i data-feather="credit-card" class="mr-3 h-5 w-5 text-gray-400 group-hover:text-gray-500"></i>
68
+ Payments
69
+ </a>
70
+ <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md hover:bg-gray-50 hover:text-gray-900">
71
+ <i data-feather="user" class="mr-3 h-5 w-5 text-gray-400 group-hover:text-gray-500"></i>
72
+ Profile
73
+ </a>
74
+ <a href="#" class="group flex items-center px-2 py-2 text-sm font-medium rounded-md hover:bg-gray-50 hover:text-gray-900">
75
+ <i data-feather="settings" class="mr-3 h-5 w-5 text-gray-400 group-hover:text-gray-500"></i>
76
+ Settings
77
+ </a>
78
+ </nav>
79
+ </div>
80
+ <div class="flex-shrink-0 flex border-t border-gray-200 p-4">
81
+ <a href="#" class="flex-shrink-0 w-full group block">
82
+ <div class="flex items-center">
83
+ <div>
84
+ <img class="inline-block h-9 w-9 rounded-full" src="http://static.photos/people/200x200/4" alt="">
85
+ </div>
86
+ <div class="ml-3">
87
+ <p class="text-sm font-medium text-gray-700 group-hover:text-gray-900">Rahul Sharma</p>
88
+ <p class="text-xs font-medium text-gray-500 group-hover:text-gray-700">View profile</p>
89
+ </div>
90
+ </div>
91
+ </a>
92
+ </div>
93
+ </div>
94
+ </div>
95
+
96
+ <!-- Main content -->
97
+ <div class="flex flex-col w-0 flex-1 overflow-hidden">
98
+ <!-- Mobile top navigation -->
99
+ <div class="md:hidden pl-1 pt-1 sm:pl-3 sm:pt-3">
100
+ <button class="-ml-0.5 -mt-0.5 h-12 w-12 inline-flex items-center justify-center rounded-md text-gray-500 hover:text-gray-900 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500">
101
+ <i data-feather="menu" class="h-6 w-6"></i>
102
+ </button>
103
+ </div>
104
+
105
+ <main class="flex-1 relative z-0 overflow-y-auto focus:outline-none">
106
+ <div class="py-6">
107
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
108
+ <h1 class="text-2xl font-semibold text-gray-900">Dashboard</h1>
109
+ </div>
110
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 md:px-8">
111
+ <!-- Emergency CTA -->
112
+ <div class="mt-6 bg-white shadow overflow-hidden sm:rounded-lg">
113
+ <div class="px-4 py-5 sm:px-6 bg-red-50 border-b border-red-100">
114
+ <div class="-ml-4 -mt-4 flex justify-between items-center flex-wrap sm:flex-nowrap">
115
+ <div class="ml-4 mt-4">
116
+ <div class="flex items-center">
117
+ <div class="flex-shrink-0 bg-red-100 p-3 rounded-full">
118
+ <i data-feather="alert-triangle" class="h-6 w-6 text-red-600"></i>
119
+ </div>
120
+ <div class="ml-4">
121
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Emergency Assistance</h3>
122
+ <p class="mt-1 text-sm text-gray-500">Need help immediately? Request roadside assistance now.</p>
123
+ </div>
124
+ </div>
125
+ </div>
126
+ <div class="ml-4 mt-4 flex-shrink-0">
127
+ <button type="button" class="relative inline-flex items-center px-4 py-2 border border-transparent shadow-sm text-sm font-medium rounded-md text-white btn-emergency focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500">
128
+ <i data-feather="alert-circle" class="-ml-1 mr-2 h-5 w-5"></i>
129
+ Request Help Now
130
+ </button>
131
+ </div>
132
+ </div>
133
+ </div>
134
+ </div>
135
+
136
+ <!-- Recent Requests -->
137
+ <div class="mt-8">
138
+ <h2 class="text-lg leading-6 font-medium text-gray-900">Recent Service Requests</h2>
139
+ <div class="mt-4 grid grid-cols-1 gap-5 sm:grid-cols-2 lg:grid-cols-3">
140
+ <!-- Request Card 1 -->
141
+ <div class="bg-white overflow-hidden shadow rounded-lg">
142
+ <div class="px-4 py-5 sm:p-6">
143
+ <div class="flex items-center">
144
+ <div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
145
+ <i data-feather="settings" class="h-6 w-6 text-blue-600"></i>
146
+ </div>
147
+ <div class="ml-4">
148
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Engine Trouble</h3>
149
+ <p class="mt-1 text-sm text-gray-500">Completed • 15 Oct 2023</p>
150
+ </div>
151
+ </div>
152
+ <div class="mt-4">
153
+ <div class="flex justify-between text-sm text-gray-500">
154
+ <span>Mechanic: Rajesh Kumar</span>
155
+ <span>₹799</span>
156
+ </div>
157
+ <div class="mt-2 flex items-center">
158
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
159
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
160
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
161
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
162
+ <i data-feather="star" class="h-4 w-4 text-gray-300"></i>
163
+ <span class="ml-2 text-sm text-gray-500">4.0</span>
164
+ </div>
165
+ </div>
166
+ </div>
167
+ </div>
168
+
169
+ <!-- Request Card 2 -->
170
+ <div class="bg-white overflow-hidden shadow rounded-lg">
171
+ <div class="px-4 py-5 sm:p-6">
172
+ <div class="flex items-center">
173
+ <div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
174
+ <i data-feather="alert-circle" class="h-6 w-6 text-blue-600"></i>
175
+ </div>
176
+ <div class="ml-4">
177
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Flat Tire</h3>
178
+ <p class="mt-1 text-sm text-gray-500">Completed • 10 Oct 2023</p>
179
+ </div>
180
+ </div>
181
+ <div class="mt-4">
182
+ <div class="flex justify-between text-sm text-gray-500">
183
+ <span>Mechanic: Vijay Singh</span>
184
+ <span>₹499</span>
185
+ </div>
186
+ <div class="mt-2 flex items-center">
187
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
188
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
189
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
190
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
191
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
192
+ <span class="ml-2 text-sm text-gray-500">5.0</span>
193
+ </div>
194
+ </div>
195
+ </div>
196
+ </div>
197
+
198
+ <!-- Request Card 3 -->
199
+ <div class="bg-white overflow-hidden shadow rounded-lg">
200
+ <div class="px-4 py-5 sm:p-6">
201
+ <div class="flex items-center">
202
+ <div class="flex-shrink-0 bg-blue-100 rounded-md p-3">
203
+ <i data-feather="battery" class="h-6 w-6 text-blue-600"></i>
204
+ </div>
205
+ <div class="ml-4">
206
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Battery Jumpstart</h3>
207
+ <p class="mt-1 text-sm text-gray-500">Completed • 5 Oct 2023</p>
208
+ </div>
209
+ </div>
210
+ <div class="mt-4">
211
+ <div class="flex justify-between text-sm text-gray-500">
212
+ <span>Mechanic: Amit Patel</span>
213
+ <span>₹399</span>
214
+ </div>
215
+ <div class="mt-2 flex items-center">
216
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
217
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
218
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
219
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
220
+ <i data-feather="star" class="h-4 w-4 text-gray-300"></i>
221
+ <span class="ml-2 text-sm text-gray-500">4.0</span>
222
+ </div>
223
+ </div>
224
+ </div>
225
+ </div>
226
+ </div>
227
+ </div>
228
+
229
+ <!-- Active Request -->
230
+ <div class="mt-8">
231
+ <h2 class="text-lg leading-6 font-medium text-gray-900">Active Service Request</h2>
232
+ <div class="mt-4 bg-white shadow overflow-hidden sm:rounded-lg">
233
+ <div class="px-4 py-5 sm:p-6">
234
+ <div class="flex items-center">
235
+ <div class="flex-shrink-0 bg-yellow-100 rounded-md p-3">
236
+ <i data-feather="clock" class="h-6 w-6 text-yellow-600"></i>
237
+ </div>
238
+ <div class="ml-4">
239
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Towing Service</h3>
240
+ <p class="mt-1 text-sm text-gray-500">In Progress • Requested 20 Oct 2023, 4:15 PM</p>
241
+ </div>
242
+ </div>
243
+ <div class="mt-4">
244
+ <div class="flex justify-between text-sm text-gray-500">
245
+ <span>Mechanic: Sanjay Verma</span>
246
+ <span>Estimated: ₹1,299</span>
247
+ </div>
248
+ <div class="mt-4">
249
+ <h4 class="text-sm font-medium text-gray-900">Mechanic is on the way</h4>
250
+ <div class="mt-2 w-full bg-gray-200 rounded-full h-2.5">
251
+ <div class="bg-blue-600 h-2.5 rounded-full" style="width: 75%"></div>
252
+ </div>
253
+ <p class="mt-2 text-sm text-gray-500">ETA: 15 minutes</p>
254
+ </div>
255
+ <div class="mt-4">
256
+ <button type="button" class="inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm leading-4 font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
257
+ <i data-feather="map" class="-ml-0.5 mr-2 h-4 w-4"></i>
258
+ Track Location
259
+ </button>
260
+ <button type="button" class="ml-3 inline-flex items-center px-3 py-2 border border-transparent text-sm leading-4 font-medium rounded-md text-white btn-primary focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
261
+ <i data-feather="message-circle" class="-ml-0.5 mr-2 h-4 w-4"></i>
262
+ Contact Mechanic
263
+ </button>
264
+ </div>
265
+ </div>
266
+ </div>
267
+ </div>
268
+ </div>
269
+ </div>
270
+ </div>
271
+ </main>
272
+ </div>
273
+ </div>
274
+
275
+ <script>
276
+ feather.replace();
277
+ </script>
278
+ </body>
279
+ </html>
customer-login.html ADDED
@@ -0,0 +1,124 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>Customer Login - RoadResQ</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <style>
11
+ body {
12
+ font-family: 'Inter', sans-serif;
13
+ background-color: #f8fafc;
14
+ }
15
+ .login-card {
16
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
17
+ }
18
+ .btn-primary {
19
+ background-color: #2563eb;
20
+ transition: all 0.3s ease;
21
+ }
22
+ .btn-primary:hover {
23
+ background-color: #1d4ed8;
24
+ transform: translateY(-1px);
25
+ }
26
+ </style>
27
+ </head>
28
+ <body class="bg-gray-50">
29
+ <div class="min-h-screen flex flex-col justify-center py-12 sm:px-6 lg:px-8">
30
+ <div class="sm:mx-auto sm:w-full sm:max-w-md">
31
+ <div class="flex justify-center">
32
+ <i data-feather="tool" class="h-10 w-10 text-blue-600"></i>
33
+ </div>
34
+ <h2 class="mt-6 text-center text-3xl font-extrabold text-gray-900">
35
+ Customer Login
36
+ </h2>
37
+ <p class="mt-2 text-center text-sm text-gray-600">
38
+ Or
39
+ <a href="customer-signup.html" class="font-medium text-blue-600 hover:text-blue-500">
40
+ create a new account
41
+ </a>
42
+ </p>
43
+ </div>
44
+
45
+ <div class="mt-8 sm:mx-auto sm:w-full sm:max-w-md">
46
+ <div class="bg-white py-8 px-4 login-card rounded-lg sm:px-10">
47
+ <form class="space-y-6" action="#" method="POST">
48
+ <div>
49
+ <label for="email" class="block text-sm font-medium text-gray-700">
50
+ Email address
51
+ </label>
52
+ <div class="mt-1">
53
+ <input id="email" name="email" type="email" autocomplete="email" required class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm">
54
+ </div>
55
+ </div>
56
+
57
+ <div>
58
+ <label for="password" class="block text-sm font-medium text-gray-700">
59
+ Password
60
+ </label>
61
+ <div class="mt-1">
62
+ <input id="password" name="password" type="password" autocomplete="current-password" required class="appearance-none block w-full px-3 py-2 border border-gray-300 rounded-md shadow-sm placeholder-gray-400 focus:outline-none focus:ring-blue-500 focus:border-blue-500 sm:text-sm">
63
+ </div>
64
+ </div>
65
+
66
+ <div class="flex items-center justify-between">
67
+ <div class="flex items-center">
68
+ <input id="remember-me" name="remember-me" type="checkbox" class="h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded">
69
+ <label for="remember-me" class="ml-2 block text-sm text-gray-900">
70
+ Remember me
71
+ </label>
72
+ </div>
73
+
74
+ <div class="text-sm">
75
+ <a href="#" class="font-medium text-blue-600 hover:text-blue-500">
76
+ Forgot your password?
77
+ </a>
78
+ </div>
79
+ </div>
80
+
81
+ <div>
82
+ <button type="submit" class="w-full flex justify-center py-2 px-4 border border-transparent rounded-md shadow-sm text-sm font-medium text-white btn-primary focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
83
+ Sign in
84
+ </button>
85
+ </div>
86
+ </form>
87
+
88
+ <div class="mt-6">
89
+ <div class="relative">
90
+ <div class="absolute inset-0 flex items-center">
91
+ <div class="w-full border-t border-gray-300"></div>
92
+ </div>
93
+ <div class="relative flex justify-center text-sm">
94
+ <span class="px-2 bg-white text-gray-500">
95
+ Or continue with
96
+ </span>
97
+ </div>
98
+ </div>
99
+
100
+ <div class="mt-6 grid grid-cols-2 gap-3">
101
+ <div>
102
+ <a href="#" class="w-full inline-flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm bg-white text-sm font-medium text-gray-500 hover:bg-gray-50">
103
+ <i data-feather="smartphone" class="h-5 w-5"></i>
104
+ <span class="ml-2">OTP</span>
105
+ </a>
106
+ </div>
107
+
108
+ <div>
109
+ <a href="#" class="w-full inline-flex justify-center py-2 px-4 border border-gray-300 rounded-md shadow-sm bg-white text-sm font-medium text-gray-500 hover:bg-gray-50">
110
+ <i data-feather="facebook" class="h-5 w-5 text-blue-600"></i>
111
+ <span class="ml-2">Facebook</span>
112
+ </a>
113
+ </div>
114
+ </div>
115
+ </div>
116
+ </div>
117
+ </div>
118
+ </div>
119
+
120
+ <script>
121
+ feather.replace();
122
+ </script>
123
+ </body>
124
+ </html>
index.html CHANGED
@@ -1,19 +1,478 @@
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>RoadResQ - On-Demand Roadside Assistance</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <style>
11
+ body {
12
+ font-family: 'Inter', sans-serif;
13
+ }
14
+ .hero-gradient {
15
+ background: linear-gradient(135deg, #1e3a8a 0%, #2563eb 100%);
16
+ }
17
+ .btn-primary {
18
+ background-color: #f59e0b;
19
+ transition: all 0.3s ease;
20
+ }
21
+ .btn-primary:hover {
22
+ background-color: #d97706;
23
+ transform: translateY(-2px);
24
+ }
25
+ </style>
26
+ </head>
27
+ <body class="bg-gray-50">
28
+ <!-- Navigation -->
29
+ <nav class="bg-white shadow-sm">
30
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
31
+ <div class="flex justify-between h-16">
32
+ <div class="flex items-center">
33
+ <div class="flex-shrink-0 flex items-center">
34
+ <i data-feather="tool" class="h-8 w-8 text-yellow-500"></i>
35
+ <span class="ml-2 text-xl font-bold text-gray-900">RoadResQ</span>
36
+ </div>
37
+ </div>
38
+ <div class="hidden sm:ml-6 sm:flex sm:items-center">
39
+ <a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-900 hover:bg-gray-100">Home</a>
40
+ <a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">How It Works</a>
41
+ <a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">Services</a>
42
+ <a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">About</a>
43
+ </div>
44
+ <div class="hidden sm:ml-6 sm:flex sm:items-center">
45
+ <a href="#" class="px-4 py-2 border border-transparent text-sm font-medium rounded-md text-white bg-yellow-500 hover:bg-yellow-600">Sign In</a>
46
+ <a href="#" class="ml-4 px-4 py-2 border border-transparent text-sm font-medium rounded-md text-blue-600 bg-white hover:bg-gray-50">Sign Up</a>
47
+ </div>
48
+ <div class="-mr-2 flex items-center sm:hidden">
49
+ <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-blue-500">
50
+ <i data-feather="menu" class="block h-6 w-6"></i>
51
+ </button>
52
+ </div>
53
+ </div>
54
+ </div>
55
+ </nav>
56
+
57
+ <!-- Hero Section -->
58
+ <div class="hero-gradient">
59
+ <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">
60
+ <div class="lg:w-1/2">
61
+ <h2 class="text-3xl font-extrabold tracking-tight text-white sm:text-4xl">
62
+ <span class="block">Help when you need it,</span>
63
+ <span class="block text-yellow-300">where you need it.</span>
64
+ </h2>
65
+ <p class="mt-3 max-w-3xl text-lg leading-6 text-blue-100">
66
+ Get instant roadside assistance for punctures, towing, battery jumpstarts, and engine breakdowns with our network of verified mechanics.
67
+ </p>
68
+ <div class="mt-8 flex">
69
+ <div class="inline-flex rounded-md shadow">
70
+ <a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-blue-600 bg-white hover:bg-gray-50">
71
+ Request Help Now
72
+ </a>
73
+ </div>
74
+ <div class="ml-3 inline-flex">
75
+ <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-blue-600 bg-opacity-60 hover:bg-opacity-70">
76
+ <i data-feather="play" class="h-5 w-5 mr-2"></i> Watch Demo
77
+ </a>
78
+ </div>
79
+ </div>
80
+ </div>
81
+ <div class="mt-8 lg:mt-0 lg:w-1/2">
82
+ <div class="relative">
83
+ <div class="relative rounded-lg bg-white shadow-xl overflow-hidden">
84
+ <img class="w-full h-auto" src="http://static.photos/automotive/1200x630/1" alt="Roadside assistance">
85
+ </div>
86
+ </div>
87
+ </div>
88
+ </div>
89
+ </div>
90
+
91
+ <!-- How It Works Section -->
92
+ <div class="py-12 bg-white">
93
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
94
+ <div class="lg:text-center">
95
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">Process</h2>
96
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
97
+ How RoadResQ Works
98
+ </p>
99
+ <p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto">
100
+ Get help in just three simple steps
101
+ </p>
102
+ </div>
103
+
104
+ <div class="mt-10">
105
+ <div class="space-y-10 md:space-y-0 md:grid md:grid-cols-3 md:gap-x-8 md:gap-y-10">
106
+ <div class="relative">
107
+ <div class="absolute flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white">
108
+ <span class="text-xl font-bold">1</span>
109
+ </div>
110
+ <div class="ml-16">
111
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Request Assistance</h3>
112
+ <p class="mt-2 text-base text-gray-500">
113
+ Select your issue type and share your location. Our system will find the nearest available mechanic.
114
+ </p>
115
+ </div>
116
+ </div>
117
+
118
+ <div class="relative">
119
+ <div class="absolute flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white">
120
+ <span class="text-xl font-bold">2</span>
121
+ </div>
122
+ <div class="ml-16">
123
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Mechanic Dispatched</h3>
124
+ <p class="mt-2 text-base text-gray-500">
125
+ A verified mechanic accepts your request and is on their way. Track their arrival in real-time.
126
+ </p>
127
+ </div>
128
+ </div>
129
+
130
+ <div class="relative">
131
+ <div class="absolute flex items-center justify-center h-12 w-12 rounded-md bg-blue-500 text-white">
132
+ <span class="text-xl font-bold">3</span>
133
+ </div>
134
+ <div class="ml-16">
135
+ <h3 class="text-lg leading-6 font-medium text-gray-900">Get Back on Road</h3>
136
+ <p class="mt-2 text-base text-gray-500">
137
+ The mechanic resolves your issue. Pay securely via app or cash. Rate your experience.
138
+ </p>
139
+ </div>
140
+ </div>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ </div>
145
+
146
+ <!-- Services Section -->
147
+ <div class="py-12 bg-gray-50">
148
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
149
+ <div class="lg:text-center">
150
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">Services</h2>
151
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
152
+ We've Got You Covered
153
+ </p>
154
+ <p class="mt-4 max-w-2xl text-xl text-gray-500 lg:mx-auto">
155
+ Fast, reliable assistance for all common roadside issues
156
+ </p>
157
+ </div>
158
+
159
+ <div class="mt-10">
160
+ <div class="space-y-10 md:space-y-0 md:grid md:grid-cols-2 lg:grid-cols-4 md:gap-x-8 md:gap-y-10">
161
+ <!-- Flat Tire -->
162
+ <div class="relative bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow duration-300">
163
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600">
164
+ <i data-feather="alert-circle" class="h-6 w-6"></i>
165
+ </div>
166
+ <h3 class="mt-4 text-lg font-medium text-gray-900">Flat Tire</h3>
167
+ <p class="mt-2 text-base text-gray-500">
168
+ Tire change or temporary repair to get you back on the road quickly.
169
+ </p>
170
+ <div class="mt-4">
171
+ <span class="text-sm font-semibold text-blue-600">Starting at ₹499</span>
172
+ </div>
173
+ </div>
174
+
175
+ <!-- Battery Jumpstart -->
176
+ <div class="relative bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow duration-300">
177
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600">
178
+ <i data-feather="battery" class="h-6 w-6"></i>
179
+ </div>
180
+ <h3 class="mt-4 text-lg font-medium text-gray-900">Battery Jumpstart</h3>
181
+ <p class="mt-2 text-base text-gray-500">
182
+ Get your car started when the battery dies. We'll come to you.
183
+ </p>
184
+ <div class="mt-4">
185
+ <span class="text-sm font-semibold text-blue-600">Starting at ₹399</span>
186
+ </div>
187
+ </div>
188
+
189
+ <!-- Towing Service -->
190
+ <div class="relative bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow duration-300">
191
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600">
192
+ <i data-feather="truck" class="h-6 w-6"></i>
193
+ </div>
194
+ <h3 class="mt-4 text-lg font-medium text-gray-900">Towing Service</h3>
195
+ <p class="mt-2 text-base text-gray-500">
196
+ Need a tow? We'll transport your vehicle safely to your preferred location.
197
+ </p>
198
+ <div class="mt-4">
199
+ <span class="text-sm font-semibold text-blue-600">Starting at ₹999</span>
200
+ </div>
201
+ </div>
202
+
203
+ <!-- Engine Trouble -->
204
+ <div class="relative bg-white p-6 rounded-lg shadow-md hover:shadow-lg transition-shadow duration-300">
205
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600">
206
+ <i data-feather="settings" class="h-6 w-6"></i>
207
+ </div>
208
+ <h3 class="mt-4 text-lg font-medium text-gray-900">Engine Trouble</h3>
209
+ <p class="mt-2 text-base text-gray-500">
210
+ Basic diagnostics and temporary fixes for engine-related issues.
211
+ </p>
212
+ <div class="mt-4">
213
+ <span class="text-sm font-semibold text-blue-600">Starting at ₹799</span>
214
+ </div>
215
+ </div>
216
+ </div>
217
+ </div>
218
+ </div>
219
+ </div>
220
+
221
+ <!-- Testimonials Section -->
222
+ <div class="py-12 bg-white">
223
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
224
+ <div class="lg:text-center">
225
+ <h2 class="text-base text-blue-600 font-semibold tracking-wide uppercase">Testimonials</h2>
226
+ <p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
227
+ What Our Customers Say
228
+ </p>
229
+ </div>
230
+
231
+ <div class="mt-10">
232
+ <div class="space-y-10 md:space-y-0 md:grid md:grid-cols-3 md:gap-x-8 md:gap-y-10">
233
+ <!-- Testimonial 1 -->
234
+ <div class="bg-gray-50 p-6 rounded-lg">
235
+ <div class="flex items-center">
236
+ <div class="flex-shrink-0">
237
+ <img class="h-10 w-10 rounded-full" src="http://static.photos/people/200x200/1" alt="">
238
+ </div>
239
+ <div class="ml-4">
240
+ <div class="text-sm font-medium text-gray-900">Rahul Sharma</div>
241
+ <div class="text-sm text-gray-500">Bangalore</div>
242
+ </div>
243
+ </div>
244
+ <div class="mt-4">
245
+ <div class="flex items-center">
246
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
247
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
248
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
249
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
250
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
251
+ </div>
252
+ <p class="mt-2 text-sm text-gray-600">
253
+ "Got a flat tire at midnight on the highway. RoadResQ sent help within 25 minutes. Lifesaver!"
254
+ </p>
255
+ </div>
256
+ </div>
257
+
258
+ <!-- Testimonial 2 -->
259
+ <div class="bg-gray-50 p-6 rounded-lg">
260
+ <div class="flex items-center">
261
+ <div class="flex-shrink-0">
262
+ <img class="h-10 w-10 rounded-full" src="http://static.photos/people/200x200/2" alt="">
263
+ </div>
264
+ <div class="ml-4">
265
+ <div class="text-sm font-medium text-gray-900">Priya Patel</div>
266
+ <div class="text-sm text-gray-500">Mumbai</div>
267
+ </div>
268
+ </div>
269
+ <div class="mt-4">
270
+ <div class="flex items-center">
271
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
272
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
273
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
274
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
275
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
276
+ </div>
277
+ <p class="mt-2 text-sm text-gray-600">
278
+ "Battery died during school pickup. The mechanic arrived in 15 minutes and had us going again."
279
+ </p>
280
+ </div>
281
+ </div>
282
+
283
+ <!-- Testimonial 3 -->
284
+ <div class="bg-gray-50 p-6 rounded-lg">
285
+ <div class="flex items-center">
286
+ <div class="flex-shrink-0">
287
+ <img class="h-10 w-10 rounded-full" src="http://static.photos/people/200x200/3" alt="">
288
+ </div>
289
+ <div class="ml-4">
290
+ <div class="text-sm font-medium text-gray-900">Arjun Mehta</div>
291
+ <div class="text-sm text-gray-500">Delhi</div>
292
+ </div>
293
+ </div>
294
+ <div class="mt-4">
295
+ <div class="flex items-center">
296
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
297
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
298
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
299
+ <i data-feather="star" class="h-4 w-4 text-yellow-500"></i>
300
+ <i data-feather="star" class="h-4 w-4 text-yellow-400"></i>
301
+ </div>
302
+ <p class="mt-2 text-sm text-gray-600">
303
+ "Engine overheated on a road trip. The mechanic diagnosed the issue quickly and got us back on our way."
304
+ </p>
305
+ </div>
306
+ </div>
307
+ </div>
308
+ </div>
309
+ </div>
310
+ </div>
311
+
312
+ <!-- CTA Section -->
313
+ <div class="bg-blue-700">
314
+ <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">
315
+ <h2 class="text-3xl font-extrabold tracking-tight text-white sm:text-4xl">
316
+ <span class="block">Ready to get help?</span>
317
+ <span class="block text-yellow-300">Download our app now.</span>
318
+ </h2>
319
+ <div class="mt-8 flex lg:mt-0 lg:flex-shrink-0">
320
+ <div class="inline-flex rounded-md shadow">
321
+ <a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-blue-600 bg-white hover:bg-gray-50">
322
+ <i data-feather="apple" class="h-6 w-6 mr-2"></i> App Store
323
+ </a>
324
+ </div>
325
+ <div class="ml-3 inline-flex rounded-md shadow">
326
+ <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-blue-600 hover:bg-blue-700">
327
+ <i data-feather="play" class="h-6 w-6 mr-2"></i> Google Play
328
+ </a>
329
+ </div>
330
+ </div>
331
+ </div>
332
+ </div>
333
+
334
+ <!-- Footer -->
335
+ <footer class="bg-gray-800">
336
+ <div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8">
337
+ <div class="xl:grid xl:grid-cols-3 xl:gap-8">
338
+ <div class="space-y-8 xl:col-span-1">
339
+ <div class="flex items-center">
340
+ <i data-feather="tool" class="h-8 w-8 text-yellow-500"></i>
341
+ <span class="ml-2 text-xl font-bold text-white">RoadResQ</span>
342
+ </div>
343
+ <p class="text-gray-300 text-base">
344
+ On-demand roadside assistance when you need it most.
345
+ </p>
346
+ <div class="flex space-x-6">
347
+ <a href="#" class="text-gray-400 hover:text-white">
348
+ <i data-feather="facebook" class="h-6 w-6"></i>
349
+ </a>
350
+ <a href="#" class="text-gray-400 hover:text-white">
351
+ <i data-feather="twitter" class="h-6 w-6"></i>
352
+ </a>
353
+ <a href="#" class="text-gray-400 hover:text-white">
354
+ <i data-feather="instagram" class="h-6 w-6"></i>
355
+ </a>
356
+ <a href="#" class="text-gray-400 hover:text-white">
357
+ <i data-feather="linkedin" class="h-6 w-6"></i>
358
+ </a>
359
+ </div>
360
+ </div>
361
+ <div class="mt-12 grid grid-cols-2 gap-8 xl:mt-0 xl:col-span-2">
362
+ <div class="md:grid md:grid-cols-2 md:gap-8">
363
+ <div>
364
+ <h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">
365
+ Services
366
+ </h3>
367
+ <ul class="mt-4 space-y-4">
368
+ <li>
369
+ <a href="#" class="text-base text-gray-400 hover:text-white">
370
+ Flat Tire
371
+ </a>
372
+ </li>
373
+ <li>
374
+ <a href="#" class="text-base text-gray-400 hover:text-white">
375
+ Battery Jumpstart
376
+ </a>
377
+ </li>
378
+ <li>
379
+ <a href="#" class="text-base text-gray-400 hover:text-white">
380
+ Towing Service
381
+ </a>
382
+ </li>
383
+ <li>
384
+ <a href="#" class="text-base text-gray-400 hover:text-white">
385
+ Engine Trouble
386
+ </a>
387
+ </li>
388
+ </ul>
389
+ </div>
390
+ <div class="mt-12 md:mt-0">
391
+ <h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">
392
+ Company
393
+ </h3>
394
+ <ul class="mt-4 space-y-4">
395
+ <li>
396
+ <a href="#" class="text-base text-gray-400 hover:text-white">
397
+ About
398
+ </a>
399
+ </li>
400
+ <li>
401
+ <a href="#" class="text-base text-gray-400 hover:text-white">
402
+ Careers
403
+ </a>
404
+ </li>
405
+ <li>
406
+ <a href="#" class="text-base text-gray-400 hover:text-white">
407
+ Partners
408
+ </a>
409
+ </li>
410
+ <li>
411
+ <a href="#" class="text-base text-gray-400 hover:text-white">
412
+ Contact
413
+ </a>
414
+ </li>
415
+ </ul>
416
+ </div>
417
+ </div>
418
+ <div class="md:grid md:grid-cols-2 md:gap-8">
419
+ <div>
420
+ <h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">
421
+ Legal
422
+ </h3>
423
+ <ul class="mt-4 space-y-4">
424
+ <li>
425
+ <a href="#" class="text-base text-gray-400 hover:text-white">
426
+ Privacy
427
+ </a>
428
+ </li>
429
+ <li>
430
+ <a href="#" class="text-base text-gray-400 hover:text-white">
431
+ Terms
432
+ </a>
433
+ </li>
434
+ <li>
435
+ <a href="#" class="text-base text-gray-400 hover:text-white">
436
+ Cookie Policy
437
+ </a>
438
+ </li>
439
+ </ul>
440
+ </div>
441
+ <div class="mt-12 md:mt-0">
442
+ <h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">
443
+ Support
444
+ </h3>
445
+ <ul class="mt-4 space-y-4">
446
+ <li>
447
+ <a href="#" class="text-base text-gray-400 hover:text-white">
448
+ Help Center
449
+ </a>
450
+ </li>
451
+ <li>
452
+ <a href="#" class="text-base text-gray-400 hover:text-white">
453
+ Safety
454
+ </a>
455
+ </li>
456
+ <li>
457
+ <a href="#" class="text-base text-gray-400 hover:text-white">
458
+ FAQs
459
+ </a>
460
+ </li>
461
+ </ul>
462
+ </div>
463
+ </div>
464
+ </div>
465
+ </div>
466
+ <div class="mt-12 border-t border-gray-700 pt-8">
467
+ <p class="text-base text-gray-400 text-center">
468
+ &copy; 2023 RoadResQ. All rights reserved.
469
+ </p>
470
+ </div>
471
+ </div>
472
+ </footer>
473
+
474
+ <script>
475
+ feather.replace();
476
+ </script>
477
+ </body>
478
  </html>
mechanic-login.html ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>Mechanic Login - RoadResQ</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <style>
11
+ body {
12
+ font-family: 'Inter', sans-serif;
13
+ background-color: #f8fafc;
14
+ }
15
+ .login-card {
16
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
17
+ }
18
+ .btn-primary {
19
+ background-color: #2563eb;
20
+ transition: all
21
+ </head>
22
+ </html>
prompts.txt ADDED
@@ -0,0 +1,54 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ Role & Goal
2
+ You are an expert full-stack web developer. Build a production-ready roadside assistance platform called “RoadResQ” (working name). It should allow customers to request on-demand roadside help (puncture, towing, battery, engine breakdown) and connect them with verified mechanics/tow partners.
3
+ Tech Stack (must use)
4
+ Frontend: React (with TailwindCSS for styling)
5
+ Backend: Node.js (Express) with REST APIs
6
+ Database: PostgreSQL
7
+ Authentication: JWT-based auth (email/phone login)
8
+ Maps & Location: Google Maps API for service request location + live tracking
9
+ Payments: Razorpay integration (test mode setup)
10
+ Deployment ready: Containerized with Docker, instructions for deploying to AWS
11
+ Core Features (MVP)
12
+ Homepage:
13
+ Hero section with tagline (“Help when you need it, where you need it.”)
14
+ Call-to-action button (“Request Help Now”)
15
+ Brief section on how the service works (3 steps: Request → Dispatch → Assistance arrives).
16
+ Testimonials placeholder.
17
+ Customer Portal:
18
+ Create account/login.
19
+ Request service by selecting problem type (puncture, tow, battery, engine).
20
+ Share live location (map picker + geolocation API).
21
+ Show estimated arrival time & price before confirmation.
22
+ Pay via Razorpay or select cash on delivery.
23
+ See mechanic’s live location (real-time tracking via WebSockets).
24
+ Service history page.
25
+ Mechanic/Partner Portal:
26
+ Login/signup for mechanics.
27
+ Accept/reject incoming requests.
28
+ Navigate to customer using map link.
29
+ Mark job as completed.
30
+ Earnings dashboard (jobs completed, payouts).
31
+ Admin Dashboard:
32
+ View active & past requests.
33
+ Assign/reassign mechanics if auto-match fails.
34
+ Monitor average response time, cancellations.
35
+ Manage mechanics (verify ID, enable/disable).
36
+ Basic analytics (daily jobs, revenue).
37
+ UI/UX Guidelines
38
+ Clean, modern UI using Tailwind.
39
+ Mobile-first responsive design.
40
+ Consistent brand colors (blue + yellow palette for urgency/trust).
41
+ Card-style UI for service types.
42
+ Minimal text, clear CTAs.
43
+ Deliverables
44
+ Full React frontend code (with routing, components, state management).
45
+ Node.js backend code with REST APIs (services: auth, requests, payments, mechanic matching).
46
+ SQL schema for PostgreSQL (users, mechanics, requests, payments).
47
+ Integration with Google Maps API (showing current & destination).
48
+ Dockerfile + instructions for deployment.
49
+ README with setup steps.
50
+ Extra Instructions
51
+ Write clean, modular, production-level code.
52
+ Include comments for all major functions.
53
+ Prioritize speed of development + clarity.
54
+ Assume this is version 1.0 MVP — no need for advanced features like subscriptions or surge pricing yet.
request-help.html ADDED
@@ -0,0 +1,445 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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>Request Help - RoadResQ</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link href="https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap" rel="stylesheet">
9
+ <script src="https://unpkg.com/feather-icons"></script>
10
+ <style>
11
+ body {
12
+ font-family: 'Inter', sans-serif;
13
+ }
14
+ .service-card {
15
+ transition: all 0.2s ease;
16
+ }
17
+ .service-card:hover {
18
+ transform: translateY(-3px);
19
+ box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04);
20
+ }
21
+ .service-card.selected {
22
+ border: 2px solid #2563eb;
23
+ background-color: #eff6ff;
24
+ }
25
+ .btn-primary {
26
+ background-color: #2563eb;
27
+ transition: all 0.3s ease;
28
+ }
29
+ .btn-primary:hover {
30
+ background-color: #1d4ed8;
31
+ transform: translateY(-1px);
32
+ }
33
+ .btn-emergency {
34
+ background-color: #dc2626;
35
+ transition: all 0.3s ease;
36
+ }
37
+ .btn-emergency:hover {
38
+ background-color: #b91c1c;
39
+ transform: translateY(-1px);
40
+ }
41
+ </style>
42
+ </head>
43
+ <body class="bg-gray-50">
44
+ <div class="min-h-screen">
45
+ <!-- Navigation -->
46
+ <nav class="bg-white shadow-sm">
47
+ <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
48
+ <div class="flex justify-between h-16">
49
+ <div class="flex items-center">
50
+ <div class="flex-shrink-0 flex items-center">
51
+ <i data-feather="tool" class="h-8 w-8 text-blue-600"></i>
52
+ <span class="ml-2 text-xl font-bold text-gray-900">RoadResQ</span>
53
+ </div>
54
+ </div>
55
+ <div class="hidden sm:ml-6 sm:flex sm:items-center">
56
+ <a href="index.html" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">Home</a>
57
+ <a href="#" class="px-3 py-2 rounded-md text-sm font-medium text-gray-900 hover:bg-gray-100">Request Help</a>
58
+ <a href="customer-login.html" class="px-3 py-2 rounded-md text-sm font-medium text-gray-500 hover:text-gray-900 hover:bg-gray-100">Sign In</a>
59
+ </div>
60
+ <div class="-mr-2 flex items-center sm:hidden">
61
+ <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-blue-500">
62
+ <i data-feather="menu" class="block h-6 w-6"></i>
63
+ </button>
64
+ </div>
65
+ </div>
66
+ </div>
67
+ </nav>
68
+
69
+ <!-- Main Content -->
70
+ <main>
71
+ <div class="max-w-7xl mx-auto py-6 sm:px-6 lg:px-8">
72
+ <div class="px-4 py-6 sm:px-0">
73
+ <div class="bg-white shadow overflow-hidden sm:rounded-lg">
74
+ <div class="px-4 py-5 sm:px-6 bg-blue-50 border-b border-blue-100">
75
+ <h3 class="text-lg leading-6 font-medium text-gray-900">
76
+ Request Roadside Assistance
77
+ </h3>
78
+ <p class="mt-1 max-w-2xl text-sm text-gray-500">
79
+ Select your issue type and location to get help quickly.
80
+ </p>
81
+ </div>
82
+ <div class="px-4 py-5 sm:p-6">
83
+ <div class="space-y-8 divide-y divide-gray-200">
84
+ <div>
85
+ <div>
86
+ <h3 class="text-lg font-medium leading-6 text-gray-900">1. Select Service Type</h3>
87
+ <p class="mt-1 text-sm text-gray-500">
88
+ What type of assistance do you need?
89
+ </p>
90
+ </div>
91
+
92
+ <div class="mt-6 grid grid-cols-1 gap-y-6 gap-x-4 sm:grid-cols-2 lg:grid-cols-4">
93
+ <!-- Flat Tire -->
94
+ <div class="service-card relative bg-white border border-gray-200 rounded-lg shadow-sm p-4 flex flex-col cursor-pointer">
95
+ <div class="flex-1">
96
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600 mx-auto">
97
+ <i data-feather="alert-circle" class="h-6 w-6"></i>
98
+ </div>
99
+ <h3 class="mt-4 text-sm font-medium text-gray-900 text-center">Flat Tire</h3>
100
+ <p class="mt-1 text-xs text-gray-500 text-center">
101
+ Tire change or temporary repair
102
+ </p>
103
+ </div>
104
+ <div class="mt-4">
105
+ <span class="text-xs font-semibold inline-block py-1 px-2 rounded-full text-blue-600 bg-blue-100">Starting at ₹499</span>
106
+ </div>
107
+ </div>
108
+
109
+ <!-- Battery Jumpstart -->
110
+ <div class="service-card relative bg-white border border-gray-200 rounded-lg shadow-sm p-4 flex flex-col cursor-pointer">
111
+ <div class="flex-1">
112
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600 mx-auto">
113
+ <i data-feather="battery" class="h-6 w-6"></i>
114
+ </div>
115
+ <h3 class="mt-4 text-sm font-medium text-gray-900 text-center">Battery Jumpstart</h3>
116
+ <p class="mt-1 text-xs text-gray-500 text-center">
117
+ Get your car started when battery dies
118
+ </p>
119
+ </div>
120
+ <div class="mt-4">
121
+ <span class="text-xs font-semibold inline-block py-1 px-2 rounded-full text-blue-600 bg-blue-100">Starting at ₹399</span>
122
+ </div>
123
+ </div>
124
+
125
+ <!-- Towing Service -->
126
+ <div class="service-card relative bg-white border border-gray-200 rounded-lg shadow-sm p-4 flex flex-col cursor-pointer">
127
+ <div class="flex-1">
128
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600 mx-auto">
129
+ <i data-feather="truck" class="h-6 w-6"></i>
130
+ </div>
131
+ <h3 class="mt-4 text-sm font-medium text-gray-900 text-center">Towing Service</h3>
132
+ <p class="mt-1 text-xs text-gray-500 text-center">
133
+ Transport your vehicle safely
134
+ </p>
135
+ </div>
136
+ <div class="mt-4">
137
+ <span class="text-xs font-semibold inline-block py-1 px-2 rounded-full text-blue-600 bg-blue-100">Starting at ₹999</span>
138
+ </div>
139
+ </div>
140
+
141
+ <!-- Engine Trouble -->
142
+ <div class="service-card relative bg-white border border-gray-200 rounded-lg shadow-sm p-4 flex flex-col cursor-pointer">
143
+ <div class="flex-1">
144
+ <div class="flex items-center justify-center h-12 w-12 rounded-md bg-blue-100 text-blue-600 mx-auto">
145
+ <i data-feather="settings" class="h-6 w-6"></i>
146
+ </div>
147
+ <h3 class="mt-4 text-sm font-medium text-gray-900 text-center">Engine Trouble</h3>
148
+ <p class="mt-1 text-xs text-gray-500 text-center">
149
+ Basic diagnostics and temporary fixes
150
+ </p>
151
+ </div>
152
+ <div class="mt-4">
153
+ <span class="text-xs font-semibold inline-block py-1 px-2 rounded-full text-blue-600 bg-blue-100">Starting at ₹799</span>
154
+ </div>
155
+ </div>
156
+ </div>
157
+ </div>
158
+
159
+ <div class="pt-8">
160
+ <div>
161
+ <h3 class="text-lg font-medium leading-6 text-gray-900">2. Your Location</h3>
162
+ <p class="mt-1 text-sm text-gray-500">
163
+ Where do you need assistance?
164
+ </p>
165
+ </div>
166
+
167
+ <div class="mt-6 grid grid-cols-1 gap-y-6 gap-x-4 sm:grid-cols-6">
168
+ <div class="sm:col-span-4">
169
+ <label for="address" class="block text-sm font-medium text-gray-700">
170
+ Address
171
+ </label>
172
+ <div class="mt-1">
173
+ <input type="text" name="address" id="address" autocomplete="address" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
174
+ </div>
175
+ </div>
176
+
177
+ <div class="sm:col-span-2">
178
+ <label for="landmark" class="block text-sm font-medium text-gray-700">
179
+ Landmark (Optional)
180
+ </label>
181
+ <div class="mt-1">
182
+ <input type="text" name="landmark" id="landmark" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
183
+ </div>
184
+ </div>
185
+
186
+ <div class="sm:col-span-3">
187
+ <label for="city" class="block text-sm font-medium text-gray-700">
188
+ City
189
+ </label>
190
+ <div class="mt-1">
191
+ <input type="text" name="city" id="city" autocomplete="address-level2" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
192
+ </div>
193
+ </div>
194
+
195
+ <div class="sm:col-span-3">
196
+ <label for="state" class="block text-sm font-medium text-gray-700">
197
+ State
198
+ </label>
199
+ <div class="mt-1">
200
+ <select id="state" name="state" autocomplete="state" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
201
+ <option>Select State</option>
202
+ <option>Delhi</option>
203
+ <option>Maharashtra</option>
204
+ <option>Karnataka</option>
205
+ <option>Tamil Nadu</option>
206
+ <option>Uttar Pradesh</option>
207
+ </select>
208
+ </div>
209
+ </div>
210
+
211
+ <div class="sm:col-span-3">
212
+ <label for="pincode" class="block text-sm font-medium text-gray-700">
213
+ ZIP / Postal code
214
+ </label>
215
+ <div class="mt-1">
216
+ <input type="text" name="pincode" id="pincode" autocomplete="postal-code" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
217
+ </div>
218
+ </div>
219
+
220
+ <div class="sm:col-span-3">
221
+ <label for="country" class="block text-sm font-medium text-gray-700">
222
+ Country
223
+ </label>
224
+ <div class="mt-1">
225
+ <select id="country" name="country" autocomplete="country" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
226
+ <option>India</option>
227
+ <option>United States</option>
228
+ <option>Canada</option>
229
+ <option>Mexico</option>
230
+ </select>
231
+ </div>
232
+ </div>
233
+
234
+ <div class="sm:col-span-6">
235
+ <div class="flex items-start">
236
+ <div class="flex-shrink-0">
237
+ <button type="button" class="relative inline-flex items-center px-3 py-2 border border-gray-300 shadow-sm text-sm leading-4 font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
238
+ <i data-feather="map-pin" class="-ml-0.5 mr-2 h-4 w-4"></i>
239
+ Use Current Location
240
+ </button>
241
+ </div>
242
+ <div class="ml-3">
243
+ <p class="text-sm text-gray-500">
244
+ Allow location access for faster service.
245
+ </p>
246
+ </div>
247
+ </div>
248
+ </div>
249
+ </div>
250
+ </div>
251
+
252
+ <div class="pt-8">
253
+ <div>
254
+ <h3 class="text-lg font-medium leading-6 text-gray-900">3. Vehicle Details</h3>
255
+ <p class="mt-1 text-sm text-gray-500">
256
+ Information about your vehicle.
257
+ </p>
258
+ </div>
259
+
260
+ <div class="mt-6 grid grid-cols-1 gap-y-6 gap-x-4 sm:grid-cols-6">
261
+ <div class="sm:col-span-3">
262
+ <label for="vehicle-make" class="block text-sm font-medium text-gray-700">
263
+ Make
264
+ </label>
265
+ <div class="mt-1">
266
+ <input type="text" name="vehicle-make" id="vehicle-make" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
267
+ </div>
268
+ </div>
269
+
270
+ <div class="sm:col-span-3">
271
+ <label for="vehicle-model" class="block text-sm font-medium text-gray-700">
272
+ Model
273
+ </label>
274
+ <div class="mt-1">
275
+ <input type="text" name="vehicle-model" id="vehicle-model" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
276
+ </div>
277
+ </div>
278
+
279
+ <div class="sm:col-span-2">
280
+ <label for="vehicle-year" class="block text-sm font-medium text-gray-700">
281
+ Year
282
+ </label>
283
+ <div class="mt-1">
284
+ <input type="text" name="vehicle-year" id="vehicle-year" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
285
+ </div>
286
+ </div>
287
+
288
+ <div class="sm:col-span-2">
289
+ <label for="vehicle-color" class="block text-sm font-medium text-gray-700">
290
+ Color
291
+ </label>
292
+ <div class="mt-1">
293
+ <input type="text" name="vehicle-color" id="vehicle-color" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
294
+ </div>
295
+ </div>
296
+
297
+ <div class="sm:col-span-2">
298
+ <label for="vehicle-plate" class="block text-sm font-medium text-gray-700">
299
+ License Plate
300
+ </label>
301
+ <div class="mt-1">
302
+ <input type="text" name="vehicle-plate" id="vehicle-plate" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
303
+ </div>
304
+ </div>
305
+
306
+ <div class="sm:col-span-6">
307
+ <label for="additional-notes" class="block text-sm font-medium text-gray-700">
308
+ Additional Notes
309
+ </label>
310
+ <div class="mt-1">
311
+ <textarea id="additional-notes" name="additional-notes" rows="3" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md"></textarea>
312
+ </div>
313
+ <p class="mt-2 text-sm text-gray-500">
314
+ Describe your issue in more detail if needed.
315
+ </p>
316
+ </div>
317
+ </div>
318
+ </div>
319
+
320
+ <div class="pt-8">
321
+ <div>
322
+ <h3 class="text-lg font-medium leading-6 text-gray-900">4. Contact Information</h3>
323
+ <p class="mt-1 text-sm text-gray-500">
324
+ How can we reach you?
325
+ </p>
326
+ </div>
327
+
328
+ <div class="mt-6 grid grid-cols-1 gap-y-6 gap-x-4 sm:grid-cols-6">
329
+ <div class="sm:col-span-3">
330
+ <label for="first-name" class="block text-sm font-medium text-gray-700">
331
+ First name
332
+ </label>
333
+ <div class="mt-1">
334
+ <input type="text" name="first-name" id="first-name" autocomplete="given-name" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
335
+ </div>
336
+ </div>
337
+
338
+ <div class="sm:col-span-3">
339
+ <label for="last-name" class="block text-sm font-medium text-gray-700">
340
+ Last name
341
+ </label>
342
+ <div class="mt-1">
343
+ <input type="text" name="last-name" id="last-name" autocomplete="family-name" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
344
+ </div>
345
+ </div>
346
+
347
+ <div class="sm:col-span-4">
348
+ <label for="email" class="block text-sm font-medium text-gray-700">
349
+ Email address
350
+ </label>
351
+ <div class="mt-1">
352
+ <input type="email" name="email" id="email" autocomplete="email" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
353
+ </div>
354
+ </div>
355
+
356
+ <div class="sm:col-span-4">
357
+ <label for="phone" class="block text-sm font-medium text-gray-700">
358
+ Phone number
359
+ </label>
360
+ <div class="mt-1">
361
+ <input type="text" name="phone" id="phone" autocomplete="tel" class="shadow-sm focus:ring-blue-500 focus:border-blue-500 block w-full sm:text-sm border-gray-300 rounded-md">
362
+ </div>
363
+ </div>
364
+
365
+ <div class="sm:col-span-6">
366
+ <div class="flex items-start">
367
+ <div class="flex items-center h-5">
368
+ <input id="terms" name="terms" type="checkbox" class="focus:ring-blue-500 h-4 w-4 text-blue-600 border-gray-300 rounded">
369
+ </div>
370
+ <div class="ml-3 text-sm">
371
+ <label for="terms" class="font-medium text-gray-700">
372
+ I agree to the <a href="#" class="text-blue-600 hover:text-blue-500">Terms of Service</a> and <a href="#" class="text-blue-600 hover:text-blue-500">Privacy Policy</a>
373
+ </label>
374
+ </div>
375
+ </div>
376
+ </div>
377
+ </div>
378
+ </div>
379
+ </div>
380
+
381
+ <div class="mt-8 border-t border-gray-200 pt-5">
382
+ <div class="flex justify-between">
383
+ <button type="button" class="inline-flex items-center px-4 py-2 border border-gray-300 shadow-sm text-sm font-medium rounded-md text-gray-700 bg-white hover:bg-gray-50 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
384
+ <i data-feather="arrow-left" class="-ml-1 mr-2 h-5 w-5"></i>
385
+ Back
386
+ </button>
387
+ <button type="submit" class="ml-3 inline-flex justify-center py-2 px-4 border border-transparent shadow-sm text-sm font-medium rounded-md text-white btn-primary focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-blue-500">
388
+ Continue to Payment
389
+ <i data-feather="arrow-right" class="ml-2 -mr-1 h-5 w-5"></i>
390
+ </button>
391
+ </div>
392
+ </div>
393
+ </div>
394
+ </div>
395
+ </div>
396
+ </div>
397
+ </main>
398
+
399
+ <!-- Footer -->
400
+ <footer class="bg-white border-t border-gray-200 mt-12">
401
+ <div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:px-8">
402
+ <div class="flex flex-col md:flex-row justify-between items-center">
403
+ <div class="flex items-center">
404
+ <i data-feather="tool" class="h-8 w-8 text-blue-600"></i>
405
+ <span class="ml-2 text-xl font-bold text-gray-900">RoadResQ</span>
406
+ </div>
407
+ <div class="mt-4 md:mt-0">
408
+ <p class="text-center text-base text-gray-500">
409
+ &copy; 2023 RoadResQ. All rights reserved.
410
+ </p>
411
+ </div>
412
+ <div class="mt-4 md:mt-0 flex space-x-6">
413
+ <a href="#" class="text-gray-400 hover:text-gray-500">
414
+ <i data-feather="facebook" class="h-6 w-6"></i>
415
+ </a>
416
+ <a href="#" class="text-gray-400 hover:text-gray-500">
417
+ <i data-feather="twitter" class="h-6 w-6"></i>
418
+ </a>
419
+ <a href="#" class="text-gray-400 hover:text-gray-500">
420
+ <i data-feather="instagram" class="h-6 w-6"></i>
421
+ </a>
422
+ </div>
423
+ </div>
424
+ </div>
425
+ </footer>
426
+ </div>
427
+
428
+ <script>
429
+ feather.replace();
430
+
431
+ // Service selection functionality
432
+ document.querySelectorAll('.service-card').forEach(card => {
433
+ card.addEventListener('click', function() {
434
+ // Remove selected class from all cards
435
+ document.querySelectorAll('.service-card').forEach(c => {
436
+ c.classList.remove('selected');
437
+ });
438
+
439
+ // Add selected class to clicked card
440
+ this.classList.add('selected');
441
+ });
442
+ });
443
+ </script>
444
+ </body>
445
+ </html>