For Travellers
- Explore trekking packages, travel packages and hotel stays
- Personal recommendations based on what they view and book
- An AI trip planner grounded in real listings
- Bookings, messages, reviews and a trip-progress tracker
13Case study · Travel booking platform
HamroYatra is a travel platform that connects travellers with verified agencies, guides and hotels in Nepal. I built it as my second-year university project for the BSc (Hons) Computing, with a React front end, an Express and PostgreSQL backend, and an AI trip planner on Gemini. The front end is live.
01The problem
Travellers in Nepal struggle to tell a licensed agency or guide from an unregistered one. Trekking agencies, travel agencies, hotels and homestays sell through social media and word of mouth.
A traveller has no easy way to check that a company is registered or that its guides hold valid licences, and an agency has no easy way to prove it.
HamroYatra puts verification first: agencies prove who they are before they can list, and guide licences are checked automatically.
02The solution
HamroYatra has three kinds of users. Travellers explore trekking packages, tours and hotel stays, book them, message agents and track their trips. Agents run their business from a dashboard with bookings, listings, customers, reviews and staff. A super admin verifies agencies and oversees the platform.
I built the home page and the explore page, the Express server and its database connection, the backend API routes every screen depends on, the dashboard integration and the AI trip planner. For a live marketplace in the same industry, see HeliGo Nepal.

03Features
Discovery and booking for travellers, a full back office for agents, and a trust layer that runs on its own.

04Architecture
The React front end talks to an Express API split into auth, dashboard, public, agent and planning route groups. PostgreSQL holds agents, travellers, listings, bookings, reviews, guides, messages, notifications, activity logs, followers, listing views and user preferences.
A background job runs at start-up and then every 24 hours to check guide licences, so compliance does not depend on anyone remembering to look. The API design behind it is the same work I do in API development.
05Engineering
The three decisions that shaped HamroYatra, and why I made them. Each one solves a problem a real user would hit.
01
Each listing starts at a base score and moves up or down with the season, the traveller’s past interest in its type, location and difficulty, its price compared with what they usually view, its rating, its review count and whether the agent is verified. The scoring is plain arithmetic, so every recommendation can be explained to a traveller or an agent.
02
Before the planner answers, it searches the platform’s active listings and passes the closest matches to Gemini, so its suggestions are trips that can actually be booked. Each user can send 20 planner messages a day and 5 a minute. RecruitFlow uses Gemini with the same discipline.
03
The licence watcher warns an agent 30 days before a guide’s certificate expires, at most once a week per guide, and removes the verified badge when a licence lapses.
A React app shows an empty page to crawlers unless it is set up with care, as my technical SEO checklist explains. HamroYatra was built so each category could rank for its own search.
06Screens
Verification and safety pages are written for travellers checking an agency on their phone before they pay.

07Status
HamroYatra was my second-year university project for the BSc (Hons) Computing. The front end is live at hamroyatra.ujjwalrupakheti.com.np. The backend is paused on its free hosting plan, so listings and sign-in do not load at the moment.
Front end live, backend paused
It taught me as much as the code did: designing an API that every screen depends on, and bringing the backend, dashboards and AI trip planner together as one product. The full source is public on GitHub.
Related services
These are the services behind this case study. Each page lists prices, timelines and how I work, and every starting price is on my services page.
Every project, with its stack and status side by side, are in my web development portfolio, and the person behind them is on my about page.
What HamroYatra does, how it verifies agencies and where it stands.
Ask me on WhatsAppHamroYatra is a travel platform for Nepal that connects travellers with verified trekking agencies, travel agencies, guides and hotels. Travellers explore and book packages and stays, agents run their business from a dashboard, and a super admin verifies agencies before they can list.
Agencies pass a 3-step verification with their PAN, citizenship and company details before they can list. A background job checks guide licences at start-up and every 24 hours, warns the agent 30 days before a licence expires, and removes the verified badge when it lapses.
Before it answers, the planner searches HamroYatra’s active listings and passes the closest matches to Google Gemini 2.5 Flash, so its suggestions are trips that can actually be booked. Each user can send 20 planner messages a day and 5 a minute, which keeps costs predictable.
The front end is React 18 with Vite, Tailwind CSS, Framer Motion, Chart.js and React Router, hosted on Vercel. The backend is Node and Express on Render, with PostgreSQL and Prisma 7. Sign-in uses a JWT in an HttpOnly cookie, bcrypt, Google OAuth and email one-time codes.
The front end is live at hamroyatra.ujjwalrupakheti.com.np. The backend is paused on its free hosting plan, so listings and sign-in do not load at the moment. The full source code is public on GitHub, and the screens on this page show the platform working.
Yes. I build travel websites and booking platforms for agencies, hotels and operators in Nepal, with listings, enquiries or bookings, and pages built for the searches travellers make. A business website starts from NPR 35,000; see web development in Nepal for more.
Send a short note about your project and budget. I reply within one working day with questions or a first estimate.
Ujjwal RupakhetiReplies within one working day
What are you planning?
Opens WhatsApp with your message started.