The problem
Planning a group trip usually happens across scattered notes, screenshots and spreadsheet rows — timings drift, costs are forgotten, and nobody knows the real total until the money is gone. The honest problem this project solves is modest but real: give a traveller one place where each day of a trip is a timed, costed timeline, and the budget adds itself up. Most student-built planners stop at a static list of places; this one makes every activity carry a time, a category and a cost, so the day view, the budget charts and the packing checklist all derive from a single data model. That single-source design is the interesting engineering: add an activity once and it appears on the timeline, in the per-day totals, in the category charts and (where relevant) in the packing list. The demo ships with a complete 5-day Goa itinerary so every screen is demonstrably working, plus a trip creator so the flow can be exercised end to end.
Builds trips, adds activities and checks the budget.
Follow the working sequence
How it works
- A trip is a JSON object: metadata plus an array of days, each holding timed activities with cost and category fields.
- The day-by-day view renders one day at a time from this model; adding an activity inserts it into the day's array, sorts by time, and re-renders.
- The budget engine reduces the same arrays twice — once grouped by category, once by day — and draws canvas bar charts plus the line-item table.
- Custom trips created in the trip creator are serialized to localStorage and reloaded on every visit, alongside the bundled demo trip.
- The packing checklist reads the itinerary to seed relevant items (boat day → dry bag) and persists tick state per trip.
- Hash routing (#/overview, #/itinerary, #/budget, #/checklist) switches views without reloads; deep links open any screen directly.
- The full project extends this core with a backend (user accounts, shareable read-only trip links, PDF export).
Tech stack:
- HTML5, CSS3 (custom design system, no framework)
- Vanilla JavaScript (ES6 modules pattern in one file)
- Canvas API for budget charts
- localStorage for persistence
- Hash-based SPA routing
| Parameter | Value |
|---|---|
| App type | Single-file web app (approximately 22 KB HTML) |
| Views | 4 (My Trips, Day-by-Day, Budget, Packing) |
| Demo data | Complete 5-day, 21-activity Goa itinerary with costs |
| Charts | Canvas bar charts, recomputed live from itinerary data |
| Persistence | Browser localStorage, no server required |
| Routing | Hash-based, deep-linkable views |
| Browsers | Any modern evergreen browser (expected) |
| Deployment | Static file — any static host or opened directly |
Project features
- [Day-by-day timeline] Each trip day is a timed activity list with per-day totals; activities sort by time automatically and can be added or deleted live.
- [Costed activities with categories] Every activity carries a cost and a category (stay, food, transport, fun, shopping), so budgeting is a side effect of planning, not a separate chore.
- [Live budget dashboard] Spending is aggregated by category and by day into canvas bar charts, with a full line-item table — all recomputed from the itinerary data.
- [Multi-trip dashboard] Trips carry status (upcoming, planning, completed), traveller counts and budget-vs-spend progress bars.
- [Trip creator] Name, dates and traveller count generate a new trip entry with its day skeleton; stored in localStorage.
- [Packing checklist] Category-grouped checklist with persistent tick state, seeded from the trip's activities.
- [Hash-routed SPA] Four views (My Trips, Day-by-Day, Budget, Packing) with clean routing and no page reloads, in a single deployable file.
What is included
- Complete single-file travel itinerary planner web app
- Bundled demo trip (5-day Goa itinerary, 21 costed activities)
- Budget engine with category/day aggregation and charts
- Trip creator and packing checklist modules
- Project report PDF (requirements, data model, architecture, screenshots)
- PPT presentation for final review
- Viva Q&A preparation document (SPA routing, state management, charting)
Limitations & prerequisites
- Demo build stores data in the browser only — multi-device sync needs the backend extension in future scope.
- No user accounts or sharing in the demo build; trips are per-browser.
- Costs are in INR and entered manually — no live price feeds.
- The itinerary model covers one trip in full detail at a time in the demo data; the structure supports more.
- Packing suggestions are seeded from a fixed list, not generated per activity type.
Frequently Asked Questions
What makes this more than a static trip list?
Every activity is timed and costed, and the budget charts, per-day totals and packing list all derive from one data model — change the itinerary and every view updates. That single-source design is the project's core engineering.
Does it need a server or database?
No. The demo runs entirely in the browser with localStorage persistence, and deploys as one static file. The report documents how a backend (accounts, sharing, PDF export) would extend it.
Can I add my own trips and activities?
Yes — the trip creator adds trips, and the day view has a full add/delete form for activities with time, cost and notes.
How are the budget charts drawn?
With the Canvas API, aggregated live from the itinerary arrays — no chart library, which keeps the single-file build small and dependency-free.
What would the viva focus on?
The data model design, how the budget engine aggregates without duplication, hash routing, and how you'd add authentication and a real backend.
Is this project suitable for a final-year project?
Yes — for Computer Science, IT and Software Engineering. It demonstrates data modelling, state management, client-side charting and a complete working product. Suitable for B.E./B.Tech final-year projects in Computer Science, IT and Software Engineering.
Components & software requirements
- HTML5, CSS3 (custom design system, no framework)
- Vanilla JavaScript (ES6 modules pattern in one file)
- Canvas API for budget charts
- localStorage for persistence
- Hash-based SPA routing
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.