-
-
A cinematic landing page introducing Shodhak’s adventure discovery and AI itinerary planning experience.
-
Activity browsing for trekking, camping, water sports, wildlife safari, heritage walks, and cycling.
-
Destination discovery across Maharashtra, from the Sahyadri Ghats to the Konkan Coast and forest regions.
-
Detailed experience pages with pricing, itinerary, highlights, inclusions, exclusions, and operator information.
-
Structured booking flow where travellers enter trip details before moving to payment confirmation.
-
AI itinerary planner that builds personalized travel plans using group size, budget, time, pace, and interests.
-
User dashboard showing saved AI-generated itineraries and account-specific trip planning history.
Inspiration
Maharashtra has everything an explorer could ask for — Sahyadri treks, coastal escapes, heritage walks, forest trails, camping sites, water sports, forts, caves, and local travel operators who know these places better than anyone else.
But planning these experiences is still scattered. A traveller often has to jump between search results, operator pages, WhatsApp chats, unclear pricing, and separate itinerary planning tools.
We built Shodhak to bring that journey into one place.
The name “Shodhak” means “one who explores.” That became the core idea of the product: a clean platform where people can discover Maharashtra adventures, compare experiences, book them, and also generate a personalized AI itinerary based on their group, time, budget, starting point, destination preference, and interests.
What it does
Shodhak is a full-stack adventure discovery and booking platform focused on Maharashtra.
Users can:
- Explore adventure activities like trekking, camping, water sports, wildlife safari, heritage walks, and cycling
- Browse destinations across Maharashtra such as Sahyadri Ghats, Konkan Coast, Vidarbha Forests, Pune & Around, Tarkarli, and Marathwada Heritage
- View detailed experience pages with price, duration, difficulty, itinerary, highlights, inclusions, exclusions, and operator information
- Book experiences through a structured booking and payment flow
- Sign up, sign in, and access a personal dashboard
- Generate AI-powered itineraries using travel details like members, days, budget, pace, month, starting point, destination preference, and interests
- Save generated itineraries under the logged-in user account
The platform follows an operator-based model: Shodhak handles discovery, planning, booking, and payment flow, while local operators handle execution on-ground.
How we built it
We built Shodhak as a server-rendered full-stack web application.
The backend is built with Node.js and Express.js. Views are rendered using EJS, and the UI is styled with Tailwind CSS and custom CSS to create a dark, cinematic, Maharashtra-inspired visual identity.
For authentication, we implemented JWT-based auth using secure cookies. Passwords are hashed using bcrypt, and protected routes such as dashboard and saved itineraries require a valid logged-in session.
MongoDB with Mongoose is used for persistent storage. We store users, bookings, payment status, and generated itineraries in MongoDB. This gave us flexibility because every itinerary can have a slightly different structure depending on the user’s inputs and AI-generated plan.
The AI itinerary planner uses Gemini 2.5 Flash through the Google GenAI SDK. We designed the planner to collect structured travel inputs, send them to the AI model, and return a practical itinerary with daily plans, budget guidance, recommendations, and travel notes.
We also added a local fallback itinerary planner. If the AI API key is missing or the model call fails, the platform still generates a usable itinerary instead of breaking the user flow. This was an important reliability decision because the demo should not depend completely on one external API call.
The application is deployed on Vercel. Since the app is Express + EJS rather than a static frontend, we configured Vercel routing through an API entry point and rewrites so the server-rendered routes work correctly in production.
Challenges we ran into
One of the biggest challenges was keeping the project stable while adding full-stack functionality late in the build.
The frontend already had a strong visual direction, so we had to add authentication, AI itinerary generation, MongoDB persistence, protected pages, booking logic, and deployment changes without breaking the existing design.
Another challenge was deployment. A normal static deployment caused routing issues because the app is actually an Express server-rendered application. We solved this by adding the correct Vercel serverless entry structure and route rewrites.
We also had to handle AI reliability properly. Instead of assuming Gemini would always respond successfully, we added developer logs and a fallback itinerary generator so the product remains usable even if the AI call fails.
UI consistency was also a real challenge. Some pages had visibility issues where light text appeared on light cards or dropdowns looked disconnected from the theme. We polished those flows so the experience discovery, detail, booking, dashboard, and AI planner pages feel like one coherent product.
Accomplishments that we're proud of
We are proud that Shodhak is not just a landing page. It is a complete working product flow.
The final version includes:
- A live deployed website
- Adventure discovery pages
- Destination exploration
- Detailed listing pages
- Booking and payment flow
- User signup and signin
- Dashboard
- MongoDB-backed users, bookings, and itineraries
- Gemini-powered itinerary generation
- Local fallback planning logic
- Developer logging for AI and booking flows
- A consistent dark-gold visual identity across the product
The part we are especially proud of is the AI planner. It does not feel like a separate chatbot added on top. It is integrated into the travel flow: the user provides practical trip constraints, and Shodhak turns them into a usable itinerary.
We are also proud of the operator-based thinking behind the product. The goal is not to replace local operators, but to help travellers discover them more easily while keeping operators responsible for real-world execution.
What we learned
We learned how important architecture decisions become once a project moves from UI to a real product.
Adding auth taught us why session handling, protected routes, password hashing, and cookie security matter even in a fast-moving build.
Adding MongoDB taught us how flexible schemas are useful when user-generated AI outputs can vary from person to person.
Adding Gemini taught us that AI features need fallback behavior, logging, and clear user flows. A working AI feature is not just a model call; it needs input design, response handling, persistence, and graceful failure handling.
Deploying taught us the difference between deploying a static frontend and deploying an Express server-rendered application on Vercel.
Most importantly, we learned that product polish matters. Small things like readable dropdowns, consistent cards, clearer booking pages, and better navigation can make the difference between a prototype and something that feels genuinely usable.
What's next for Shodhak
Shodhak is live and working as a complete adventure discovery, booking, and AI itinerary planning platform.
The next focus is to use this version as the product foundation: collect real user and operator feedback, validate the flow with actual travel use cases, and keep improving the experience based on how people interact with it.
Built With
- bcrypt
- css
- ejs
- express.js
- gemini-2.5-flash
- google-genai-sdk
- html
- javascript
- jwt
- mongodb
- mongoose
- node.js
- tailwind-css
- vercel
Log in or sign up for Devpost to join the conversation.