UJJWAL
Case study 07 · Travel booking platform

HamroYatra

A travel platform that connects travellers with verified agencies, guides and hotels in Nepal.

Travellers in Nepal struggle to tell a licensed agency or guide from an unregistered one. HamroYatra puts verification first: agencies prove who they are before they can list, and guide licences are checked automatically.

Visit live site Source code
HamroYatra shown on desktop and mobile
01 / Overview

The problem

Trekking agencies, travel agencies, hotels and homestays in Nepal 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.

What I built

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 their team. A super admin verifies agencies and oversees the platform.

I led the team of five. My part was the home page, server setup, the database connection, the backend API routes, dashboard integration, the AI trip planner and the explore page. Teammates built the agent and traveller dashboard fronts, authentication and verification pages, and the database models.

HamroYatra: Exploring trekking packages.
Exploring trekking packages.
02 / Features

What it does

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

For agents

  • Dashboard with overview, calendar, bookings, listings, messages, team, customers, reviews and history
  • Sub-agents and guides managed as a team
  • Room types and prices split by AC, non-AC, family and couple

Trust

  • A 3-step verification with PAN, citizenship and company details
  • Guide licences checked every 24 hours, with alerts 30 days before expiry
  • Verified badges removed when a licence expires

Platform

  • Super admin for stats, agents, travellers and verification
  • Sign-in by email with a one-time code or with Google
  • Per-route meta tags, a sitemap and robots file
HamroYatra: The agency verification process.
The agency verification process.
03 / Architecture

How it's built

HamroYatra technology stack
Front endReact 18, Vite, Tailwind CSS, Framer Motion, Chart.js, React Router
Back endNode, Express, 67 route handlers in 6 groups
DataPostgreSQL with Prisma 7: 12 models and 5 enums
AuthJWT in an HttpOnly cookie, bcrypt (cost 12), Google OAuth 2.0, email one-time codes
AIGoogle Gemini 2.5 Flash
Files and emailCloudinary uploads, Resend for one-time codes
DeployVercel (front end), Render (back end)

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.

04 / Engineering

Engineering highlights

01

Recommendations you can explain

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

An AI planner that does not make things up

Before the planner answers, it searches the platform's active listings and passes the closest matches to Gemini. Its suggestions are grounded in trips that can actually be booked. Each user can send 20 planner messages a day and 5 a minute.

03

Compliance that runs itself

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.

05 / Search

SEO & performance

Every public route sets its own title and description with react-helmet-async, and the site ships a sitemap of 16 URLs and a robots file. Category pages such as trekking agencies, travel agencies and hotels in Nepal each target their own search.

07 / Status

Where it stands

HamroYatra was built as our second-year project for the BSc (Hons) in 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.

Leading the team taught me as much as the code did: splitting the work, owning the API that everyone else depended on, and integrating five people's work into one product.

Planning a product like HamroYatra? I design, build and launch web apps for businesses in Nepal and abroad.

All work