A modern, fully responsive website for an automobile service center built with React, TypeScript, Tailwind CSS, Express.js, and Supabase.
- Hero Section - Eye-catching landing with call-to-action
- About Section - Company story and key features
- Services Section - 6 service offerings with icons and descriptions
- Pricing Section - 3 service packages with detailed features
- Gallery Section - Photo showcase of the facility
- Testimonials - Customer reviews and ratings
- Contact Section - Booking form with Google Maps integration
- Footer - Social links, hours, and contact information
- React 18
- TypeScript
- Tailwind CSS
- Lucide React (icons)
- Vite (build tool)
- Node.js
- Express.js
- Supabase (database)
- CORS enabled
autocare-garage/
├── src/
│ ├── components/
│ │ ├── Header.tsx
│ │ ├── Hero.tsx
│ │ ├── About.tsx
│ │ ├── Services.tsx
│ │ ├── Pricing.tsx
│ │ ├── Gallery.tsx
│ │ ├── Testimonials.tsx
│ │ ├── Contact.tsx
│ │ └── Footer.tsx
│ ├── lib/
│ │ └── supabase.ts
│ ├── App.tsx
│ ├── main.tsx
│ └── index.css
├── server/
│ └── index.js
└── package.json
- Node.js (v18 or higher)
- npm or yarn
- Install dependencies:
npm install- Set up environment variables:
Create a
.envfile in the root directory with your Supabase credentials:
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
npm run devThe frontend will run on http://localhost:5173
npm run serverThe backend API will run on http://localhost:3000
For development with auto-reload:
npm run server:devnpm run buildThe application uses Supabase with the following table:
id(uuid, primary key)name(text)phone(text)email(text)car_model(text)service_type(text)preferred_date(date)status(text, default: 'pending')created_at(timestamptz)updated_at(timestamptz)
POST /api/bookings- Create a new bookingGET /api/bookings- Get all bookingsGET /api/bookings/:id- Get a specific bookingPUT /api/bookings/:id- Update booking statusDELETE /api/bookings/:id- Delete a booking
- Mobile-first approach
- Breakpoints for tablet and desktop
- Hamburger menu for mobile navigation
- Navigation links scroll smoothly to sections
- Call-to-action buttons navigate to contact form
- Real-time form validation
- Success/error messages
- Data saved to Supabase database
- Clean, professional design
- Hover effects and transitions
- Card-based layouts
- Icon integration with Lucide React
- Meta tags for search engines
- Open Graph tags for social sharing
- Semantic HTML structure
The default color scheme uses blue as the primary color. To change:
- Update Tailwind classes in components (e.g.,
bg-blue-600tobg-green-600) - Modify the
tailwind.config.jsfor custom colors
- Hero background: Update the
backgroundImageURL inHero.tsx - Gallery images: Update the
imagesarray inGallery.tsx - All images currently use Pexels stock photos
- Update text content in each component file
- Modify service offerings in
Services.tsx - Change pricing plans in
Pricing.tsx - Update testimonials in
Testimonials.tsx
Deploy to Vercel, Netlify, or any static hosting service:
npm run buildUpload the dist folder.
Deploy to:
- Heroku
- Railway
- Render
- DigitalOcean App Platform
Set environment variables on your hosting platform.
MIT
For issues or questions, contact: info@autocaregarage.com