🔖 Introduction
About the project
Horizone is an AI-powered hotel booking platform designed to redefine the accommodation search experience using natural language. Built as a personal showcase project, it demonstrates how semantic AI, clean architecture, and full-stack engineering can be integrated to deliver a modern, intuitive travel platform. Users can search for hotels using natural language (e.g., “peaceful beachfront with ocean views”), book stays securely with Stripe, and manage bookings via their account. Admins (hotel owners) can add hotels to the platform. The platform prioritizes both technical sophistication and user-friendly design.

🤔 Problem Space
Problems to Solve / Requirements to Create
Traditional booking platforms rely on rigid keyword matching and filters, forcing users to adapt their input to the system’s constraints. Hotel owners lack intelligent visibility to the right guests, and travelers often struggle to find accommodations that match their true preferences.
👉 Rigid Keyword-Based Hotel Search
Most existing platforms use exact keyword matching, which fails to capture the real intent behind user searches.
Previous Approach
Users often had to repeatedly modify search keywords or filter options to get relevant results, which was time-consuming and inefficient.
How do we know it is a problem
👉 Lack of Intent-Based Hotel Discovery
Users want to describe their preferences in plain English (e.g., "eco-friendly mountain hotel near a waterfall") but can't with traditional platforms.
Previous Approach
Users are forced to use generic filters (location, price, etc.) and browse through hundreds of listings manually.
How do we know it is a problem
Why solve these problems?
Provide travelers with faster, smarter, and more intuitive hotel discovery.
Increase booking conversion rates by reducing friction in the search process.
Offer hotel owners better visibility by matching their listings with high-intent users.
Goals
Project Objective 🎯
To create a modern, AI-integrated hotel booking platform that understands user intent and delivers relevant hotel matches while offering a secure, scalable experience for both guests and hotel owners.
Project Goals
Built a clean-architecture backend to ensure long-term maintainability and scalability.
Developed AI-powered semantic search using OpenAI and MongoDB Atlas Vector Search.
Designed a responsive, accessible UI with Shadcn and TailwindCSS.
Implemented full authentication and RBAC using Clerk.
Created a secure end-to-end booking and payment flow via Stripe.
Integrated dynamic booking state visuals and account-level history views.
User Stories
👤 Guest (Traveler)
The traveler visits the platform to discover hotels that match their specific preferences, makes bookings, and manages their stays.
Goals: Find hotels easily using plain language, book seamlessly, track bookings.
Needs: Smart search, visual booking status, clear filters, mobile-friendly design.
Other characteristics: May be first-time users; expects intuitive and fast experiences.
🧑💼 Admin / Hotel Owner
Hotel owners sign up and are assigned admin roles to list their properties and manage visibility to potential guests.
Goals: Add hotels easily, showcase them with rich descriptions and pricing.
Needs: Secure login, easy-to-use form system, role-based access.
Other characteristics: Varying tech familiarity; system must be accessible and secure.
🌟 Design Space
UI Design
The UI is clean, consistent, and mobile-responsive, designed using Shadcn UI with Tailwind. Booking statuses are color-coded for clarity. Layouts are modular, with role-protected sections and clearly defined CTAs. Toast feedback is provided via Sonner, enhancing the interaction experience.
Low-fidelity Wireframe
Early wireframes were created using Figma to visualize the landing page with the AI search interface, the my account page, and create hotel page.




High-fidelity design
Final designs reflect a high-end booking platform, with gradient backgrounds, interactive filtering, and semantic search bar.







Design system 🎨
Horizone uses:
🛠 Development Phase
Technology Stack Selection
Frontend – React + Vite + Redux Toolkit + RTK Query
Modular component-based UI for fast, interactive booking experiences.
RTK Query for powerful and efficient API interaction.
Backend – Node.js + Express + TypeScript
Database – MongoDB + Mongoose + Atlas Vector Search
Authentication – Clerk
Payments – Stripe
AI Integration – OpenAI + LangChain + MongoDB Vectors
High-Level Architecture Diagram
Follows a Client–Server Architecture with a React frontend and Express/NodeJS backend.
Client (Frontend): The ReactJS web application acts as the client, initiating requests (e.g., search queries, bookings) and rendering UI based on responses.
Server (Backend): The NodeJS + Express backend handles those requests, processes logic, communicates with OpenAI (for semantic search), and interacts with the database.
Database Layer: MongoDB stores all persistent data, mediated via Mongoose (ODM) — part of the server's infrastructure.
Third-party Services: Stripe and OpenAI are integrated as external services the server interacts with.

Entity Relationship Diagram / Class Diagram

Key Features of the Software
1. 🧠 AI-Powered Semantic Search
2. 💳 Booking & Stripe Payment Integration
Functional booking system with real-time availability, checkout, and payment handling.
Post-payment confirmation screens with detailed breakdowns.
3. 🔐 Role-Based Access & Clerk Auth
4. 📘 Booking History & Status Tracking
Guests see all past/current bookings in My Account.
Color-coded booking statuses: Blue (Upcoming), Yellow (Active), Green (Completed), Red (Cancelled).
5. 📄 Clean Architecture with Type Safety
⚠️ Challenges Faced and Solutions
Implementing payment flow with Stripe was initially a challenge. During development, payments either failed outright or succeeded but returned incorrect post-payment status like “payment failed.” These bugs consumed considerable time and created confusion. After thoroughly reviewing Stripe’s documentation, watching targeted tutorials, and debugging with AI support, I identified and fixed the misconfigured response handlers. This experience deepened my understanding of payment gateway integration and state synchronization.
Additionally, working with embeddings and vector databases for the first time posed a steep learning curve. Concepts like semantic encoding, vector similarity, and real-time vector search using LangChain and MongoDB Atlas required focused learning. Despite the difficulty, I successfully integrated OpenAI's embedding API and built a functional semantic search experience — transforming how users discover hotels on the platform.
🔮 Future Vision / Next Steps
Horizone’s roadmap includes powerful admin tooling and booking availability features.
Planned enhancements:
MA comprehensive Hotel Owner Dashboard to view/edit/delete hotels and track analytics.
A Booking Slot Availability System to ensure each hotel has fixed daily capacity; dates will be disabled once daily limits are hit.
UI Revamp with smoother transitions, animations, and accessibility features.
Possible evolution into a hosted SaaS offering for small boutique hotels.