đŽđŠ NusaVarta - Cultural Tourism Guide App

NusaVarta adalah aplikasi mobile yang memadukan teknologi AI dan peta interaktif untuk membantu wisatawan menjelajahi kekayaan budaya Indonesia. Dengan fitur Cultural Route Explorer yang canggih, NusaVarta menawarkan pengalaman wisata budaya yang personal dan edukatif.
đą Fitur Utama
đēī¸ Cultural Route Explorer
- Perencanaan Rute Budaya: Otomatis merencanakan rute perjalanan dengan memasukkan destinasi budaya
- Penemuan Situs Bersejarah: Menemukan museum, candi, istana, dan situs bersejarah di sepanjang rute (radius 5km)
- Visualisasi Rute Interaktif: Peta interaktif dengan marker khusus untuk setiap kategori budaya
- Estimasi Waktu dan Jarak: Perhitungan akurat untuk perencanaan perjalanan
đ¤ AI Chat Assistant
- Nusa AI: Asisten AI cerdas yang membantu merencanakan perjalanan budaya
- Rekomendasi Personal: Saran destinasi berdasarkan preferensi pengguna
- Informasi Budaya: Penjelasan detail tentang sejarah dan budaya setiap lokasi
đ Authentication System
- Email & Password: Registrasi dan login tradisional dengan validasi lengkap
- Google Sign-In: Login cepat menggunakan akun Google
- Profile Management: Pengelolaan profil pengguna yang terintegrasi
đ Interactive Maps
- MapTiler Integration: Peta berkualitas tinggi dengan berbagai style
- Custom Markers: Penanda khusus untuk berbagai kategori budaya
- Real-time Navigation: Navigasi real-time ke destinasi terpilih
- Location Search: Pencarian lokasi dengan preset destinasi wisata Indonesia
đą Modern Mobile Experience
- Cross-Platform: Berjalan di iOS dan Android menggunakan React Native
- Animated UI: Splash screen dan transisi yang halus
- Dark/Light Mode: Tema adaptif sesuai preferensi sistem
- Offline Capability: Beberapa fitur dapat diakses offline
đ ī¸ Tech Stack
Frontend (Mobile App)
- React Native - Framework mobile development
- Expo - Platform development dan deployment
- TypeScript - Bahasa pemrograman dengan type safety
- React Navigation - Routing dan navigasi
- React Native Reanimated - Animasi yang performant
- Expo Router - File-based routing system
Backend & Services
- Node.js - Runtime JavaScript server-side
- Express.js - Web framework untuk API
- Firebase - Platform backend (Authentication, Firestore)
- Google Maps API - Layanan peta dan routing
- MapTiler - Penyedia layanan peta interaktif
- Gemini AI - Model AI untuk chat assistant
Database & Storage
- Firestore - NoSQL database untuk data real-time
- Firebase Storage - Penyimpanan file dan gambar
- AsyncStorage - Local storage untuk mobile
Maps & Location
- MapTiler SDK - Rendering peta interaktif
- Google Maps Services - Geocoding dan directions
- Expo Location - Akses lokasi pengguna
- React Native Maps - Komponen peta native
Development Tools
- Expo CLI - Command line interface
- Metro - JavaScript bundler
- Babel - JavaScript transpiler
- Jest - Testing framework
đ Cara Menggunakan
Prerequisites
Pastikan Anda telah menginstall:
- Node.js (v16 atau lebih baru)
- npm atau yarn
- Expo CLI
- Android Studio (untuk Android) atau Xcode (untuk iOS)
Instalasi
Clone repository
git clone https://github.com/RelaxXYy/nusavarta.git cd nusavartaInstall dependencies
npm installSetup environment variables
Buat file .env di root directory:
# Firebase Configuration
EXPO_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
EXPO_PUBLIC_FIREBASE_AUTH_DOMAIN=your_auth_domain
EXPO_PUBLIC_FIREBASE_PROJECT_ID=your_project_id
EXPO_PUBLIC_FIREBASE_STORAGE_BUCKET=your_storage_bucket
EXPO_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
EXPO_PUBLIC_FIREBASE_APP_ID=your_app_id
# Google Maps API
GOOGLE_MAPS_API_KEY=your_google_maps_api_key
# MapTiler API
EXPO_PUBLIC_MAPTILER_API_KEY=your_maptiler_api_key
# Google Sign-In (Optional)
GOOGLE_WEB_CLIENT_ID=your_web_client_id
GOOGLE_IOS_CLIENT_ID=your_ios_client_id
GOOGLE_ANDROID_CLIENT_ID=your_android_client_id
Setup Server
cd nusavarta-server npm installJalankan aplikasi
# Jalankan server backend cd nusavarta-server npm run dev
# Jalankan mobile app (terminal baru) cd .. npm start
### Menjalankan di Device
**Android:**
```bash
npm run android
iOS:
npm run ios
Web:
npm run web
đ Panduan Penggunaan
1. Registrasi & Login
- Buka aplikasi dan akan muncul splash screen NusaVarta
- Pilih "Sign Up" untuk registrasi baru atau "Login" jika sudah memiliki akun
- Isi data yang diperlukan atau gunakan Google Sign-In untuk login cepat
2. Merencanakan Perjalanan Budaya
- Buka tab Chat untuk berinteraksi dengan Nusa AI
- Ketik permintaan seperti "Saya ingin wisata dari Bundaran HI ke Kota Tua Jakarta"
- AI akan menanyakan apakah Anda tertarik mengunjungi tempat budaya di sepanjang rute
- Jawab "ya" untuk mendapatkan rute dengan destinasi budaya
3. Menjelajahi Peta
- Hasil rute akan otomatis muncul di tab Maps
- Lihat marker berbeda untuk:
- đĸ Titik Awal (A)
- đ´ Tujuan (B)
- â Waypoint Budaya (tempat yang akan dikunjungi)
- đĩ Tempat Bercerita (tempat menarik di sekitar rute)
4. Informasi Detail
- Tap pada marker untuk melihat informasi detail
- Gunakan tombol info (âšī¸) untuk melihat detail lengkap rute
- Akses informasi jarak, estimasi waktu, dan daftar tempat yang akan dikunjungi
5. Navigasi
- Tap "Mulai Navigasi" untuk memulai perjalanan
- Aplikasi akan membuka aplikasi navigasi default device Anda
đī¸ Struktur Project
nusavarta/
âââ đ app/ # Expo Router screens
â âââ đ index.tsx # Splash screen
â âââ đ login.tsx # Login screen
â âââ đ register.tsx # Register screen
â âââ đ (tabs)/ # Tab navigation
â âââ đ home.tsx # Dashboard
â âââ đ chat.tsx # AI Chat
â âââ đ maps.tsx # Interactive maps
â âââ đ history.tsx # Chat history
â âââ đ profile.tsx # User profile
â
âââ đ components/ # Reusable components
â âââ đ ui/ # UI components
â âââ đ CulturalRouteMap.tsx
â âââ đ GoogleMapsComponent.tsx
â
âââ đ services/ # API services
â âââ đ backendService.ts # Backend communication
â âââ đ googleMapsService.ts
â âââ đ mapTilerService.ts
â âââ đ googleSignInService.ts
â
âââ đ context/ # React contexts
â âââ đ AuthContext.tsx # Authentication state
â
âââ đ lib/ # Utility libraries
â âââ đ auth.ts # Authentication functions
â
âââ đ nusavarta-server/ # Backend server
â âââ đ src/
â â âââ đ routes/ # API routes
â â âââ đ services/ # Business logic
â â âââ đ index.ts # Server entry point
â âââ đ package.json
â
âââ đ assets/ # Static assets
â âââ đ images/ # Images and logos
â âââ đ fonts/ # Custom fonts
â
âââ đ firebaseConfig.ts # Firebase configuration
âââ đ package.json # Dependencies
âââ đ app.json # Expo configuration
đ Fitur Mendatang
- Offline Maps: Peta yang dapat diakses tanpa internet
- Social Sharing: Berbagi rute dan pengalaman dengan teman
- Audio Guide: Panduan audio untuk setiap destinasi budaya
- AR Experience: Augmented Reality untuk pengalaman immersive
- Gamification: Sistem poin dan achievement untuk pengguna
- Multi-language: Dukungan berbagai bahasa
đ¤ Kontribusi
Kami welcome kontribusi dari developer untuk membuat NusaVarta semakin baik:
- Fork repository ini
- Buat branch fitur baru (
git checkout -b feature/amazing-feature) - Commit perubahan (
git commit -m 'Add amazing feature') - Push ke branch (
git push origin feature/amazing-feature) - Buat Pull Request
đ Lisensi
Distributed under the MIT License. See LICENSE for more information.
đ¨âđģ Developer
- RelaxXYy - Lead Developer - GitHub
đ Support
Jika Anda mengalami masalah atau memiliki pertanyaan:
- Buat issue di GitHub repository
- Email: [email protected]
- Website: https://nusavarta.com
NusaVarta - Menjelajahi Kekayaan Budaya Nusantara dengan Teknologi Modern đŽđŠâ¨
Built With
- expo.io
- express.js
- firebase
- firebase-authentication
- firebase-storage
- firestore
- gemini-ai
- google-maps
- maptiler
- node.js
- react-native
- react-navigation
- typescript
Log in or sign up for Devpost to join the conversation.