TravoMate is a modern web and mobile application that helps users explore and plan trips to Indonesia's rich cultural heritage sites. Built with cutting-edge technologies, this platform combines interactive mapping, AI-powered trip planning, and comprehensive cultural information to create an immersive travel planning experience.
π± Now available as native mobile app! Built with Capacitor for iOS and Android.
π― Built by: Sabilillah Ramaniya Widodo (sblrm) & Ryan Hanif Dwihandoyo (Rayen142) π Project Timeline: 2024 - Present
ποΈ Status: Active Development
- 14+ Cultural Heritage Sites including Candi Prambanan, Borobudur, Tana Toraja
- Detailed Information with ratings, pricing, and operating hours
- High-quality Images showcasing Indonesia's cultural beauty
- Location-based Search with province and type filters
- Real-time Location Tracking with GPS integration
- OpenStreetMap Integration for accurate geographical data
- Custom Cultural Markers with detailed site information
- Route Visualization with distance and time calculations
- Gemini AI Integration for intelligent conversation
- Personalized Recommendations based on preferences and location
- Smart Itinerary Planning with 3-day trip suggestions
- Real-time Chat Support for trip planning assistance
- Budget and Time Optimization for efficient travel planning
- Clear Pricing Display (Rp 25.000 - Rp 50.000 range)
- Operating Hours Information (06:00 - 17:00 typical)
- Detailed Cost Breakdown for trip planning
- Budget-friendly Options for various traveler types
- Full CRUD Operations for managing cultural destinations
- Image Upload with Supabase Storage integration
- Real-time Search across name, city, province, and type
- Smart Filters (Province, Type, Sort by name/price/date)
- Pagination System with configurable items per page (5-100)
- Role-based Access Control with RLS policies
- Form Validation with Zod schema
- Statistics Dashboard showing total destinations, reviews, bookings
- Responsive Design optimized for mobile and desktop
- See ADMIN_DASHBOARD.md for full documentation
- Bilingual Support (Indonesian interface)
- Responsive Design optimized for all devices
- Intuitive Navigation with clean, modern UI
- Fast Loading Times with optimized images and caching
- Node.js 18+ or Bun
- Supabase account
- Google AI Studio API key
# Clone the repository
git clone https://github.com/sblrm/travo-mate.git
cd travo-mate
# Install dependencies (using Bun for faster installation)
bun install
# Set up environment variables
cp .env.example .env.local
# Edit .env.local with your API keys
# Start development server
bun run dev
# For mobile development
npm run mobile:dev:android # Android
npm run mobile:dev:ios # iOS (Mac only)# Supabase Configuration
VITE_SUPABASE_URL=your_supabase_url
VITE_SUPABASE_ANON_KEY=your_supabase_anon_key
# AI Configuration
VITE_GEMINI_API_KEY=your_gemini_api_keyInteractive cultural heritage map with stunning Indonesian landscapes

Browse and discover Indonesia's rich cultural destinations with detailed information

AI-powered trip planning with real-time chat assistance and intelligent route optimization

graph TB
A[React Frontend] --> B[Vite Build Tool]
A --> C[Tailwind CSS]
A --> D[TypeScript]
E[Supabase Backend] --> F[PostgreSQL + PostGIS]
E --> G[Authentication]
E --> H[Real-time Subscriptions]
I[External APIs] --> J[Gemini AI]
I --> K[OpenStreetMap]
A --> E
A --> I
- First-of-its-kind Indonesian cultural heritage trip planner
- AI-powered recommendations using Gemini for personalized travel planning
- Comprehensive cultural database featuring iconic sites like:
- ποΈ Candi Prambanan (Sleman, Yogyakarta) - 4.7β rating
- ποΈ Desa Adat Penglipuran (Bangli, Bali) - 4.5β rating
- ποΈ Tana Toraja (Sulawesi Selatan) - 4.8β rating
- Real-time geolocation integration with interactive mapping
- Modern PWA capabilities with offline-first architecture
- Performance: 95+ Lighthouse score
- Scalability: Microservices architecture with Supabase
- Security: JWT-based authentication with RLS policies
- Accessibility: WCAG 2.1 AA compliance
- Promotes Indonesian cultural tourism
- Supports local heritage conservation efforts
- Educational tool for cultural awareness
- Mobile App - React Native implementation
- Offline Mode - PWA with cached cultural data
- Social Features - Trip sharing and community reviews
- AR Integration - Augmented reality for historical sites
- Multi-language - Support for international visitors
TravoMate provides 4 efficient methods to add and manage cultural heritage destinations without modifying the codebase:
# Import destinations from JSON
npm run import:destinations scripts/destinations-template.json
# Import from CSV (can edit in Excel)
npm run import:destinations scripts/destinations-template.csv| Method | Best For | Documentation |
|---|---|---|
| π₯οΈ Supabase Dashboard | Adding 1-5 destinations | Quick Guide |
| π¦ JSON/CSV Import | Bulk import (5-50 items) | Full Guide |
| πΎ SQL Scripts | Large migrations (>50) | scripts/add-destinations-from-csv.sql |
| π¨ Admin Dashboard | Non-technical users | Admin Guide β¨ NEW |
- β Full CRUD - Create, Read, Update, Delete destinasi
- β Image Upload - Upload gambar langsung ke Supabase Storage
- β Form Validation - Real-time validation dengan Zod schema
- β Statistics - Dashboard dengan metrics (total destinasi, reviews, bookings)
- β Role-Based Access - Secure admin-only access dengan RLS policies
- β Production-Ready - Security & UX optimized
Access: /admin (admin role required)
scripts/destinations-template.json- JSON formatscripts/destinations-template.csv- CSV format (Excel compatible)scripts/add-destinations-from-csv.sql- SQL template
π Full Documentation: See docs/ADD_DESTINATIONS.md for complete guide with examples and troubleshooting.
TravoMate now supports native mobile deployment with Capacitor!
npm run mobile:build # Build web + sync to native platforms
npm run mobile:dev:android # Build & run on Android
npm run mobile:dev:ios # Build & run on iOS (Mac only)
npm run cap:open:android # Open in Android Studio
npm run cap:open:ios # Open in Xcode- β Native GPS tracking
- β Camera integration
- β Push notifications
- β Offline support
- β Native splash screen & status bar
- β Works on Android 7.0+ and iOS 13.0+
π± Mobile Guide: See MOBILE_README.md and docs/CAPACITOR_MOBILE_SETUP.md for complete setup.
Contributions are welcome! This project follows industry best practices:
- Code Quality: ESLint, Prettier, TypeScript strict mode
- Testing: Unit tests with Vitest, E2E with Playwright
- Documentation: Comprehensive README and code comments
- Git Workflow: Feature branches, conventional commits
# Development workflow
git checkout -b feature/your-feature
# Make changes
bun run lint
bun run test
git commit -m "feat: add your feature"
git push origin feature/your-featureThis project is licensed under the MIT License - see the LICENSE file for details.
β If you find this project interesting, please give it a star!
