VirtualTourGuide
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in miliseconds.
index.ts
https://Onesidededdimple--8aae46103fb711f09a0d76b3cceeab13.web.val.run
A comprehensive virtual tour application that takes users on immersive journeys through cities worldwide, complete with cultural facts, food recommendations, useful phrases, and detailed analytics tracking.
- Interactive City Tours: Explore multiple cities with rich content
- Cultural Facts: Learn interesting historical and cultural information
- Food Recommendations: Discover local cuisine and dining tips
- Language Phrases: Essential phrases for travelers
- User Analytics: Track engagement, popular content, and tour completion rates
- Admin Dashboard: Monitor user activity and content performance
├── backend/
│ ├── database/
│ │ ├── migrations.ts # Database schema setup
│ │ └── queries.ts # Database query functions
│ ├── routes/
│ │ ├── tours.ts # Tour-related API endpoints
│ │ ├── analytics.ts # Analytics and tracking endpoints
│ │ └── static.ts # Static file serving
│ └── index.ts # Main Hono server
├── frontend/
│ ├── components/
│ │ ├── App.tsx # Main application component
│ │ ├── TourViewer.tsx # Tour display component
│ │ ├── CitySelector.tsx # City selection interface
│ │ └── Analytics.tsx # Analytics dashboard
│ ├── index.html # Main HTML template
│ ├── index.tsx # Frontend entry point
│ └── style.css # Custom styles
├── shared/
│ └── types.ts # Shared TypeScript types
└── data/
└── cities.ts # City tour data
- The backend serves the API and static files
- Frontend provides an interactive tour experience
- Analytics track user engagement automatically
- Admin can view detailed usage statistics
GET /api/cities
- List available citiesGET /api/tours/:cityId
- Get tour data for a cityPOST /api/analytics/track
- Track user interactionsGET /api/analytics/dashboard
- Get analytics dataGET /api/analytics/export
- Export analytics data
- Backend: Hono (TypeScript API framework)
- Frontend: React with TypeScript
- Database: SQLite for analytics and user data
- Styling: TailwindCSS
- Icons: Unicode emojis and symbols