Skip to content

sblrm/travo_mate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

126 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ›οΈ TravoMate - Indonesia Cultural Heritage Explorer (Group Project w/ Ryan Hanif Dwihandoyo)

TravoMate Banner

React TypeScript Vite Tailwind CSS Supabase Capacitor Android iOS

🌟 Overview

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


✨ Key Features

πŸ›οΈ Comprehensive Cultural Database

  • 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

πŸ—ΊοΈ Interactive Mapping System

  • 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

πŸ€– AI-Powered Trip Assistant

  • 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

πŸ’° Transparent Pricing System

  • 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

πŸ›‘οΈ Admin Dashboard (NEW!)

  • 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

🌐 Modern User Experience

  • Bilingual Support (Indonesian interface)
  • Responsive Design optimized for all devices
  • Intuitive Navigation with clean, modern UI
  • Fast Loading Times with optimized images and caching

πŸ› οΈ Tech Stack

Frontend Backend & Database AI & APIs Mobile Development
React Supabase Google AI Capacitor Vite
TypeScript PostgreSQL Leaflet Android ESLint
Tailwind PostGIS OpenStreetMap iOS Bun

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ or Bun
  • Supabase account
  • Google AI Studio API key

Installation

# 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)

Environment Setup

# 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_key

πŸ“± Screenshots

🏠 Homepage - Jelajahi Keindahan Budaya Indonesia

Interactive cultural heritage map with stunning Indonesian landscapes Homepage

πŸ—ΊοΈ Destinasi Budaya - Explore Cultural Sites

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

πŸ€– AI Trip Planner - Rencanakan Rute Wisata Budaya

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


πŸ—οΈ Architecture

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
Loading

🎯 Project Highlights

πŸ’‘ Innovation

  • 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

πŸ”§ Technical Achievements

  • Performance: 95+ Lighthouse score
  • Scalability: Microservices architecture with Supabase
  • Security: JWT-based authentication with RLS policies
  • Accessibility: WCAG 2.1 AA compliance

πŸ“ˆ Business Impact

  • Promotes Indonesian cultural tourism
  • Supports local heritage conservation efforts
  • Educational tool for cultural awareness

🚧 Roadmap

  • 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

πŸ“ Managing Destinations Data

TravoMate provides 4 efficient methods to add and manage cultural heritage destinations without modifying the codebase:

Quick Start

# 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

Available Methods

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

Admin Dashboard Features

  • βœ… 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)

Template Files

  • scripts/destinations-template.json - JSON format
  • scripts/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.


πŸ“± Mobile Development

TravoMate now supports native mobile deployment with Capacitor!

Quick Mobile Commands

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

Features on Mobile

  • βœ… 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.


🀝 Contributing

Contributions are welcome! This project follows industry best practices:

  1. Code Quality: ESLint, Prettier, TypeScript strict mode
  2. Testing: Unit tests with Vitest, E2E with Playwright
  3. Documentation: Comprehensive README and code comments
  4. 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-feature

πŸ“ž Connect With Me

Portfolio LinkedIn Email


πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.


⭐ If you find this project interesting, please give it a star!

Made by Sabilillah Ramaniya Widodo & Ryan Hanif Dwihandoyo

Profile Views

About

Platform digital yang berfokus pada pemesanan tiket wisata budaya secara online. Pengguna dapat menemukan, merencanakan, dan memesan tiket destinasi wisata budaya dengan mudah, lengkap dengan fitur perencanaan perjalanan dan estimasi biaya. Kami berkomitmen menghadirkan pengalaman pemesanan yang aman, transparan, dan nyaman bagi pengguna.

Topics

Resources

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors