BookIt is a comprehensive experience booking platform designed for Highway Delite. Users can browse travel experiences, book time slots, apply promo codes, complete secure Razorpay payments, and track their bookings.
- 🎯 Browse & search experiences
- 📅 Real-time slot booking with availability
- 🛒 Smart cart with live price calculations
- 🎟️ Promo code validation & discounts
- 💳 Secure Razorpay payment integration
- 📦 Booking tracking via email or booking ID
- 📱 Fully responsive mobile-first design
- ⚡ Fast performance with Next.js SSR
Frontend: Next.js 15, React 19, Tailwind CSS v4, Zustand, Axios, Razorpay SDK
Backend: Node.js/Bun, Express v5, MongoDB, Mongoose, Razorpay, Winston
- Node.js v18+ or Bun
- MongoDB (local or cloud)
- Razorpay account
# Clone repository
git clone https://github.com/rishiyaduwanshi/bookit.git
cd bookit
# Frontend setup
npm install
npm run dev # http://localhost:3000
# Backend setup (in new terminal)
cd server
bun install
bun dev # http://localhost:5000Frontend - Create .env.local:
NEXT_PUBLIC_API_URL=http://localhost:5000Backend - Create .env.dev:
PORT=5000
NODE_ENV=development
MONGODB_URI=mongodb://localhost:27017/bookit
RAZORPAY_KEY_ID=rzp_test_xxxxx
RAZORPAY_KEY_SECRET=xxxxx
ALLOWED_ORIGINS=http://localhost:3000cd server
bun run seed:experiences
bun run seed:slots
bun run seed:promocodes📚 Full documentation: API_DOCS.md
Base URL: http://localhost:5000/api/v1
| Method | Endpoint | Description |
|---|---|---|
GET |
/experiences |
List all experiences (+ search) |
GET |
/experiences/:id |
Get experience with slots |
POST |
/bookings |
Create booking & initiate payment |
POST |
/bookings/verifypayment |
Verify Razorpay payment |
GET |
/bookings/details |
Track booking by email/ID |
POST |
/promo/validate |
Validate promo code |
GET |
/health |
Health check |
GET |
/ |
API info & all endpoints |
- Browse experiences →
GET /experiences - View details & slots →
GET /experiences/:id - Add to cart & apply promo →
POST /promo/validate - Create booking →
POST /bookings(returns Razorpay order) - Complete payment → Razorpay checkout
- Verify payment →
POST /bookings/verifypayment - Booking confirmed → Seats updated
- Track anytime →
GET /bookings/details
Frontend: Vercel (auto-deploy from main branch)
Backend: DigitalOcean App Platform (auto-deploy from main branch)
npm run dev # Development server
npm run build # Production build
npm start # Start production
npm run lint # Run Biome linterbun dev # Development with hot reload
bun run pro # Production server
bun run seed:experiences # Seed experiences
bun run seed:slots # Seed time slots
bun run seed:promocodes # Seed promo codesAbhinav Prakash
🌐 Portfolio • 📝 Blog • 💼 LinkedIn • 🐙 GitHub
⭐ Star this repo if you find it helpful!
Made with ❤️ by Abhinav Prakash