Skip to content

Claude/self drive car website q1792t - #17284

Open
niteeshkanna-sh wants to merge 15 commits into
react:mainfrom
niteeshkanna-sh:claude/self-drive-car-website-q1792t
Open

Claude/self drive car website q1792t#17284
niteeshkanna-sh wants to merge 15 commits into
react:mainfrom
niteeshkanna-sh:claude/self-drive-car-website-q1792t

Conversation

@niteeshkanna-sh

Copy link
Copy Markdown

No description provided.

niteeshkanna-sh and others added 15 commits March 28, 2026 11:09
Static single-page marketing site (Nova Drive) with hero, features,
how-it-works, tech specs, safety stats, testimonials, and a demo
request form. Plain HTML/CSS/JS, no build step.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Static single-page site restructured to match rentify360.in's format:
sticky header with topbar, hero booking search widget, popular cars
grid, why-choose-us section, how-it-works steps, FAQ accordion, CTA
contact form, footer with WhatsApp float button and mobile bottom nav.

Uses placeholder phone/email/address and car listings pending real
business details.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Date/time inputs in the hero booking widget had no min-width:0 on
their flex/grid containers, so native date/time picker minimum
content widths pushed the card past the viewport on phones <480px,
cutting off the drop-off field and search button.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
New admin.html/css/js gives a password-gated dashboard to add, edit,
and delete car listings, and to view booking-inquiry submissions from
the public site's contact form. Car data now lives in a shared
car-data.js module (localStorage-backed) that both index.html and
admin.html read from, so admin edits reflect on the public grid.

This is a client-side-only demo: data persists per-browser via
localStorage, and the login is a hardcoded password with no real
security. Going live with multi-visitor admin edits needs a real
backend (e.g. PHP + MySQL on Hostinger).

Fixed a bug where the add/edit car modal rendered on top of the login
screen: [hidden] and the .modal-overlay class rule had equal CSS
specificity, so the modal's `display: flex` won over the browser's
default `[hidden] { display: none }`. Added an explicit
`[hidden] { display: none !important; }` rule.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Dashboard tab (now the default landing view) shows fleet size, inquiry
count, and income/expense/balance stats at a glance, plus the 5 most
recent inquiries and transactions.

Finance tab lets the admin log income (e.g. booking payments) and
expenses (fuel, maintenance, insurance, salary, other) with a note,
see running totals, and delete entries. Data persists in the same
localStorage-backed pattern as cars/inquiries.

Fixed a mobile overflow bug: the 4-pill admin-tabs row had no wrap or
scroll handling, so it forced the whole page wider than the viewport
on narrow screens. Tabs now scroll horizontally within their own bar.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
…, reports) to admin dashboard

Extends the existing admin dashboard in place — same tab-based layout,
password gate, localStorage-backed data pattern, and visual design.
Nothing existing was removed or replaced.

New Bookings tab:
- Manual booking creation (auto-generated NSC-{year}-{seq} numbers),
  edit, cancel, complete
- Double-booking protection: overlapping date/time ranges for the same
  vehicle are blocked with an inline error before save
- Booking detail view aggregating customer/vehicle/rental info,
  payments, security deposit, deposit refund, pickup KM, return KM,
  extra-KM calculation, uploaded proofs, and a full activity timeline

Payments, deposits, KM (booking-data.js, new file, mirrors the
existing car-data.js pattern):
- Multiple payments per booking (advance/balance/additional/extra KM),
  auto balance = rental amount + extra KM charge − payments
- Security deposit tracked completely separately from rental revenue,
  with its own refund flow (refund = deposit − deduction)
- Pickup/return KM capture with photo uploads (client-side compressed
  to keep localStorage usage down); extra KM = max(0, total − rental
  days × per-day limit), charged at the vehicle's extra-KM rate

Vehicle Management (extends the existing Cars tab): registration
number, 7/15/30-day rate card, KM limit/day, extra-KM rate, security
deposit, current odometer, and status (Available/Booked/On
Rental/Maintenance/Inactive). The public site's car grid now only
lists Available vehicles.

Dashboard: appends a new "Rental Overview" section (today's bookings,
active rentals, upcoming bookings, rental revenue, advance received,
pending balance, deposit held/refunded, extra-KM revenue, total KM,
expenses, net revenue) below the existing cards — nothing existing
was replaced.

Reports tab: Booking, Revenue, Vehicle (monthly, vehicle-wise per the
KM/revenue formulas above), KM, Deposit, and Payment reports, each
with CSV, Excel (.xls), and print-to-PDF export — no external
libraries added, consistent with the rest of the project.

Finance tab gained an optional per-transaction vehicle tag so expenses
can be attributed to a specific vehicle for the monthly vehicle report,
without changing its existing income/expense behavior.

Tested locally end-to-end (booking creation, double-booking rejection,
payments, deposit + refund math, pickup/return KM + extra-KM charge,
timeline, dashboard stats, vehicle report, CSV export) and confirmed
zero console errors and zero mobile layout overflow.

Same caveats as the rest of this admin panel: localStorage is
per-browser (no shared backend yet), and the login is a demo password,
not production auth.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
.transaction-delete referenced var(--bg-admin), which admin.css never
defines (only --bg exists in its :root). The undefined custom property
made the background declaration invalid at computed-value time, so the
button silently rendered with no background instead of the intended
light gray. Use the variable that's actually defined.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Swaps every emoji glyph across the public site and admin panel for
custom inline SVG — no external images/fonts, so nothing new to load.

Fleet cards: replaced the single car emoji (🚗🚙🚕) with three distinct
vector illustrations (Hatchback/Sedan/SUV), each rendered in the
vehicle's own paint color. Vehicle data model now stores bodyType +
color instead of a free-text emoji field; the admin Vehicle form gets
a Body Type dropdown and a real color picker in place of "Icon
(emoji)". Vehicle cards (public + admin) and text labels (booking
list, booking detail, vehicle <select> options) updated accordingly.

Everywhere else: logo mark is now a small gradient badge with a car
glyph (was 🚘); topbar/search/pin/how-it-works/footer/mobile-nav/
WhatsApp icons are minimal stroke-style SVGs; admin tab icons
(Dashboard/Bookings/Vehicles/Inquiries/Finance/Reports) and the
CSV/Excel/Print export buttons got matching line icons.

Verified locally: all 6 fleet illustrations render distinctly, admin
vehicle CRUD works with the new bodyType/color fields, booking
creation/detail/list still resolve vehicle names correctly post
data-model change, zero console errors, zero mobile layout overflow.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Split single-page site into 5 separate pages (index, cars, features,
services, contact) with NiteSha Cars & Bikes branding, dark header,
gold/orange hero gradient, floating social icons, and car SVG illustration.

Co-Authored-By: Claude <noreply@anthropic.com>
Uses the real business site as the design reference rather than the
placeholder theme:

- Header/footer navy #0A0E20 (was pure black)
- Circular gold-ringed logo badge with "Premium Rentals" eyebrow
- Hero copy, badge and CTAs matched to the live site
- Bright amber hero gradient with diagonal stripe texture
  (replaces the dark-to-orange fade)
- Circular brand-coloured floating social icons
- Raised hero text contrast for the brighter background

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Replaces the blue/teal default palette with the brand navy and gold used
on the public site, while keeping the admin flat and dense rather than
marketing-styled (spec Part 43).

- Navy primary, gold accent, warm neutrals and borders
- Gold action buttons with near-black text (gold-on-white text would
  not have cleared contrast)
- Circular navy logo badge with gold ring, matching the public header
- Status badges, income/expense figures and vehicle thumbnails retuned
  to the warm palette
- Booking numbers and prices in deep gold so identifiers stand out

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
A booking whose start and return times had both passed still displayed as
a plain "Confirmed", giving no signal that it needed attention.

Adds bookingScheduleState(), which derives where a booking stands against
its dates, and renders it as a chip beside the recorded status in the
booking list, the dashboard rentals list, and the detail header:

  Upcoming · Starts Today · Awaiting Pickup · Not Collected
  On Rent · Due Back Today · Overdue Return · Awaiting Completion

The derived state is deliberately not written back to booking.status.
Auto-flipping a booking to Active without a recorded pickup would invent
a rental that never started and leave startKm unset, which silently
breaks every extra-KM calculation downstream. Status continues to move
only on real pickup/return events; the chip carries the time signal.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
Renames nitesha-cars-website/ to nitesha-final/ so the project has one
folder as its single source of truth, and adds a README describing the
files, how to run it, and the brand tokens.

Renamed rather than copied: a second folder would have left two versions
of every file free to drift apart.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017kAbk8SJJGZUsxVbYf8mSM
@meta-cla

meta-cla Bot commented Sep 1, 2026

Copy link
Copy Markdown

Hi @niteeshkanna-sh!

Thank you for your pull request and welcome to our community.

Action Required

In order to merge any pull request (code, docs, etc.), we require contributors to sign our Contributor License Agreement, and we don't seem to have one on file for you.

Process

In order for us to review and merge your suggested changes, please sign at https://code.facebook.com/cla. If you are contributing on behalf of someone else (eg your employer), the individual CLA may not be sufficient and your employer may need to sign the corporate CLA.

Once the CLA is signed, our tooling will perform checks and validations. Afterwards, the pull request will be tagged with CLA signed. The tagging process may take up to 1 hour after signing. Please give it that time before contacting us about it.

If you have received this in error or have any questions, please contact us at cla@meta.com. Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants