StayFinder is a modern, full-stack web application for browsing and booking curated stays around the world. It features a clean design, availability-based listings, user accounts, and more.
- React + TypeScript + Vite
- Tailwind CSS with custom color tokens
- shadcn/ui components (button, input, toast, etc.)
- Zustand for state management
- Axios for API calls
- Node.js + Express
- TypeScript
- MongoDB with Mongoose
- JWT Authentication
- Cloudinary for image uploads (optional)
| Variable | Hex | Usage |
|---|---|---|
--color-pri |
#0d9488 |
Primary (CTA, Hero) |
--color-acc |
#f97316 |
Accent (Buttons) |
--color-txt |
#1e293b |
Main Text |
--color-sec |
#64748b |
Sub Text |
--color-bg |
#f8fafc |
Background |
Used as: bg-pri, text-txt, etc.
- components/
- features/ (Zustand slices)
- pages/
- api/ (Axios clients)
- ui/ (custom UI wrappers)
- App.tsx, main.tsx
- controllers/
- routes/
- models/
- middlewares/
- utils/
- index.ts
- JWT-based (Access & Refresh tokens)
GET /api/listings- get all listings (with filters)GET /api/listings/:id- get a single listingPOST /api/listings- create new listing (host only)PUT /api/listings/:id- update listingDELETE /api/listings/:id- delete listing
- Title, Description, Location, Price
- Availability (array of start & end dates)
- Images, Host (User ID)
- Landing Page (Hero, Highlights, Destinations, Testimonials, Newsletter)
- Listings Page (with infinite scroll)
- Listing Detail Page (date picker, book now)
- Host Dashboard (edit listings, upload images)
- Auth Pages (login/register)
- Wishlist Page
git clone https://github.com/GuptaShubham-11/StayFinder.git
cd StayFinderSet up .env.local file from .env.samplecd server
npm install
npm run devcd client
npm install
npm run dev- Integrate Cloudinary for image storage.
- Use Multer for local testing.
Made with ❤️ by Shubham Gupta
Portfolio: guptashubham.dev
GitHub: @guptashubham11




