Jogja Smart Tour adalah aplikasi web yang membantu wisatawan merencanakan perjalanan mereka di Yogyakarta dengan mudah, cerdas, dan personal melalui bantuan AI. Platform ini menggabungkan data destinasi wisata di Yogyakarta dengan teknologi AI untuk menghasilkan rekomendasi perjalanan yang sesuai dengan preferensi pengguna.
- Ketua Kelompok: Muhammad Grandiv Lava Putra - 22/493242/TK/54023 (Project Manager, AI Engineer)
- Anggota 1: Syaifullah Hilmi Ma'arij - 22/497775/TK/54568 (UI/UX Designer, Software Engineer)
- Anggota 2: Muhammad Farrel Akbar - 22/492806/TK/53947 (AI Engineer, Cloud Engineer)
- π§ Pembuatan Itinerary dengan AI: Buat rencana perjalanan secara otomatis berdasarkan preferensi, budget, dan durasi perjalanan
- πΊοΈ Peta Interaktif: Visualisasi rute perjalanan dengan peta interaktif
- π Estimasi Biaya: Perhitungan estimasi biaya transportasi, akomodasi, makanan, dan tiket masuk
- π Pencarian & Filter Destinasi: Cari dan filter destinasi berdasarkan kategori, harga, dan rating
- π¬ Chatbot Asisten: Asisten virtual yang membantu menjawab pertanyaan tentang wisata di Jogja
- π Autentikasi Google: Masuk dengan akun Google untuk menyimpan itinerary
- Next.js 13+ (React)
- TypeScript
- Tailwind CSS
- Shadcn UI
- Leaflet (untuk peta interaktif)
- Axios
- Node.js
- Express.js
- TypeScript
- Prisma ORM
- PostgreSQL (Supabase)
- JWT Authentication
- Passport.js
- Azure OpenAI API
- DeepSeek-R1 Deployment
- Docker
- Docker Compose
Aplikasi menggunakan arsitektur client-server dengan:
- Frontend SPA dengan Next.js
- Backend REST API dengan Express
- Database PostgreSQL di Supabase
- Integrasi AI melalui Azure OpenAI
- Autentikasi berbasis token JWT
βββββββββββββββ βββββββββββββββ βββββββββββββββββββ
β β Request β β Query β β
β Next.js β ββββββββΊ β Express.js β ββββββββΊβ PostgreSQL β
β Frontend β β Backend β β (Supabase) β
β β ββββββββ β β ββββββββ β β
βββββββββββββββ Response βββββββββββββββ βββββββββββββββββββ
β β²
β β
βΌ β
ββββββββββββββββ
β Azure OpenAI β
β (DeepSeek-R1)β
ββββββββββββββββ
- Node.js v18+
- npm atau yarn
- Docker dan Docker Compose (untuk deployment)
- Akun Supabase
- Akun Azure dengan Azure OpenAI
-
Clone repository
git clone https://github.com/yourusername/jogja-smart-tour.git cd jogja-smart-tour -
Setup Backend
cd backend npm install # Setup environment variables cp .env.example .env # Edit .env file dengan credentials yang diperlukan # Jalankan migrasi database npx prisma migrate dev # Jalankan aplikasi dalam development mode npm run dev
-
Setup Frontend
cd frontend npm install # Setup environment variables cp .env.example .env # Edit .env file sesuai kebutuhan # Jalankan aplikasi npm run dev
-
Akses Aplikasi
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
-
Setup environment variables
cp .env.example .env # Edit file .env sesuai kebutuhan -
Build dan jalankan dengan Docker Compose
docker-compose up -d --build
-
Akses Aplikasi
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
# Server Configuration
PORT=5000
NODE_ENV=development
BACKEND_URL=http://localhost:5000
FRONTEND_URL=http://localhost:3000
# Database Configuration (Supabase)
DATABASE_URL=postgresql://...
DIRECT_URL=postgresql://...
# Azure AI Configuration
AZURE_AI_ENDPOINT=https://...
AZURE_AI_KEY=your_azure_ai_key
AZURE_OPENAI_DEPLOYMENT_NAME=DeepSeek-R1
# Authentication
JWT_SECRET=your_jwt_secret
JWT_EXPIRES_IN=24h
SESSION_SECRET=session_secret
# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:5000/api/auth/google/callback
NEXT_PUBLIC_SUPABASE_URL=your_supabase_url
NEXT_PUBLIC_SUPABASE_ANON_KEY=your_supabase_anon_key
NEXT_PUBLIC_BACKEND_URL=http://localhost:5000
NEXT_PUBLIC_API_URL=http://localhost:5000/api
backend/
βββ prisma/ # Prisma ORM schema & migrations
βββ src/
β βββ config/ # Konfigurasi (passport, dll)
β βββ controllers/ # Route controllers
β βββ middleware/ # Express middlewares
β βββ routes/ # API routes
β βββ services/ # Business logic & external services
β βββ app.ts # Express app setup
β βββ server.ts # Server entry point
βββ .env # Environment variables
βββ Dockerfile # Docker configuration
βββ package.json # Dependencies & scripts
frontend/
βββ public/ # Static assets
βββ src/
β βββ app/ # Next.js Pages & Routes
β βββ components/ # React components
β βββ contexts/ # React contexts (auth, etc)
β βββ hooks/ # Custom React hooks
β βββ lib/ # Utility functions
β βββ styles/ # Global CSS & styles
β βββ utils/ # Helper functions
βββ .env # Environment variables
βββ Dockerfile # Docker configuration
βββ package.json # Dependencies & scripts
GET /api/auth/google- Google OAuth loginGET /api/auth/google/callback- Google OAuth callbackGET /api/auth/status- Check login statusPOST /api/auth/logout- Logout
GET /api/destinations- Get all destinationsGET /api/destinations/:id- Get destination by IDGET /api/destinations/category/:category- Get destinations by category
GET /api/itinerary- Get user's itinerariesGET /api/itinerary/:id- Get itinerary by IDPOST /api/itinerary/ai- Create itinerary with AIDELETE /api/itinerary/:id- Delete itinerary
Kami sangat menghargai kontribusi dari semua pihak. Berikut langkah-langkah untuk berkontribusi:
- Fork repository
- Buat branch baru:
git checkout -b feature/nama-fitur - Commit perubahan:
git commit -m 'Menambahkan fitur baru' - Push ke branch:
git push origin feature/nama-fitur - Buat Pull Request
Β© 2024 Jogja Smart Tour. All rights reserved.
