A modern, full-stack web application for a mobile car wash service built with React, TypeScript, Express, and Vite.
- Frontend: React 18, TypeScript, Tailwind CSS, Vite
- Backend: Express.js, TypeScript
- Database: PostgreSQL with Drizzle ORM
- UI Components: Radix UI, Lucide React
- State Management: TanStack Query
- Authentication: Passport.js
- Styling: Tailwind CSS with custom animations
- Node.js (v18 or higher)
- npm or yarn
- PostgreSQL database
-
Clone the repository
git clone <repository-url> cd Scruba_Website
-
Install dependencies
npm install
-
Set up environment variables
cp .env.example .env
Edit
.envand fill in your database URL and other configuration. -
Run database migrations
npm run db:push
-
Start development server
npm run dev
npm run dev- Start the full-stack development server (recommended)npm run dev:concurrent- Start client and server separately with hot reloadnpm run client:dev- Start only the Vite dev server (frontend on port 3000)npm run server:dev- Start only the Express server (backend on port 5000)npm run build- Build for productionnpm run start- Start production servernpm run check- Run TypeScript type checkingnpm run db:push- Push database schema changes
For most development work, use:
npm run devThis will start the full-stack application on port 5000 with hot reload for both client and server code.
If you need separate development servers:
npm run dev:concurrentThis will start the client on port 3000 and server on port 5000 separately.
├── client/ # Frontend React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── hooks/ # Custom React hooks
│ │ ├── lib/ # Utility libraries
│ │ └── pages/ # Page components
│ └── index.html
├── server/ # Backend Express application
│ ├── index.ts # Server entry point
│ ├── routes.ts # API routes
│ ├── storage.ts # Database configuration
│ └── vite.ts # Vite SSR setup
├── shared/ # Shared types and schemas
└── attached_assets/ # Static assets
- Mobile-responsive design
- Car wash service booking
- Pricing plans and packages
- How it works section
- About section
- Contact forms
- Modern UI with animations
- The application uses a single port for both frontend and backend in development
- Hot reload is enabled for both client and server code
- Environment variables are required for database and session configuration
- TypeScript is used throughout the project for type safety
-
Build the application:
npm run build
-
Set production environment variables
-
Start the production server:
npm start
- Fork the repository
- Create a feature branch
- Make your changes
- Run type checking:
npm run check - Submit a pull request
Made with ❤️ By QuirkLabs, for the community!