BookIt is a full-stack web application that allows users to explore and book travel experiences. Users can view details, select available time slots, apply promo codes, and complete bookings — all in a smooth, single-flow interface.
🔗 Live Website: https://bookit-chi-orcin.vercel.app/
- View a list of all available experiences.
- Check detailed information about each experience.
- Select available time slots.
- Apply promo codes during checkout.
- Confirm bookings with a success or failure message.
- Responsive and mobile-friendly interface.
- Fully connected backend with MongoDB.
- React (Vite)
- Tailwind CSS
- React Router
- Fetch API
- Node.js
- Express
- MongoDB + Mongoose
- dotenv
- CORS
bookit/
│
├── frontend/ # React Frontend
│ ├── src/
│ │ ├── components/ # Reusable UI components and pages both
│ │ └── App.jsx
│ └── package.json
│
├── backend/ # Node.js Backend
│ ├── models/ # Mongoose Schemas
│ ├── routes/ # API Routes
│ ├── index.js
│ └── package.json
│
└── README.md
git clone <your-repo-link>
cd bookitcd backend
npm installCreate a .env file inside the backend directory:
PORT=3000
MongoDB_Url=your_mongodb_connection_string
Run the backend:
node index.jscd ../frontend
npm installCreate a .env file inside the frontend directory:
VITE_API_URL=http://localhost:3000
Run the frontend:
npm run devThe app will start on:
- Frontend: http://localhost:5173
- Backend: http://localhost:3000
| Method | Endpoint | Description |
|---|---|---|
| GET | /experiences | Get all experiences |
| GET | /experiences/:id | Get single experience details |
| POST | /bookings | Create a new booking |
| POST | /promo/validate | Validate promo code |
- Home Page showing all experiences
- Detail Page for each experience
- Checkout Page with promo and booking confirmation
- Result Page showing success or failure
- Fully responsive frontend
- MongoDB connected backend
- Matches the given Figma design
- Frontend: Vercel
- Backend: Render
- Database: MongoDB Atlas
Mahipal Kumawat
B.Tech Physics, IIT Mandi
This project is created for educational purposes only.