A production-ready, full-stack hotel booking platform built with the MERN stack. Features luxury travel aesthetic, full user authentication, hotel search & filtering, room selection, and complete booking management.
Project Overview
Roamio is a full-stack hotel booking application that simulates a real-world luxury travel platform. It demonstrates production-level patterns like JWT authentication, protected routes, admin roles, MongoDB relational modelling, and a polished mobile-first UI.
The database is pre-seeded with 8 world-class hotels across destinations like the Maldives, Santorini, Tokyo, Tuscany, NYC, Bali, Dubai, and Paris, each with 3 room types (Deluxe, Superior Suite, Presidential Suite).
This project was built to demonstrate full-stack ownership from MongoDB schema design to animated React UI to secure Express APIs.
| Layer | Technology |
|---|---|
| Frontend | React 18, React Router v6, Axios, date-fns |
| Backend | Node.js, Express.js, JWT, bcryptjs |
| Database | MongoDB, Mongoose |
| Styling | Vanilla CSS with CSS variables |
| State | React Context API + useReducer |
Feature Deep Dive
Backend Architecture
| Method | Endpoint | Description |
|---|---|---|
| POST | /api/auth/register | Register new user |
| POST | /api/auth/login | Login & get JWT |
| GET | /api/auth/me | Get current user |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/hotels | Get all (with filters) |
| GET | /api/hotels/:id | Get single hotel |
| POST | /api/hotels | Create (admin only) |
| PUT | /api/hotels/:id | Update (admin only) |
| Method | Endpoint | Description |
|---|---|---|
| GET | /api/bookings/my | Get my bookings |
| POST | /api/bookings | Create booking |
| PUT | /api/bookings/:id/cancel | Cancel booking |
Authorization: Bearer tokenGet It Running
backend/.env with:admin@roamio.com / admin123http://localhost:3000 · Backend on http://localhost:5000