Skip to content

GirindraSW/RideNest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

15 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸš— RideNest

Platform Rental Kendaraan Terpercaya di Indonesia

Sewa motor, mobil, travel, hingga bus β€” tersedia dengan harga transparan.
Booking mudah, berangkat nyaman.

React TypeScript Vite TailwindCSS Express Prisma PostgreSQL


πŸ“Έ Tampilan Aplikasi

Landing Page

Landing Page Hero

Hero section dengan CTA dan informasi platform

Kategori Kendaraan

Pilihan kategori kendaraan: Motor, Mobil, Travel, Bus

Cara Kerja & Footer

Panduan 3 langkah & footer

Autentikasi

Register

Registrasi sebagai Pengguna atau Penyedia Layanan

Login & Browse

Login dan halaman pencarian kendaraan dengan filter kategori

Booking Kendaraan

Detail & Booking

Detail layanan dengan kalender booking dan konfirmasi

Riwayat Booking & Profil

Riwayat booking dengan status dan halaman edit profil user

Dashboard Penyedia Layanan

Provider Dashboard

Dashboard provider β€” statistik, daftar booking masuk, dan kelola layanan

Edit Layanan & Jadwal

Edit detail layanan dan kelola jadwal ketersediaan kendaraan


✨ Fitur Utama

Untuk Pengguna

  • πŸ” Browse & Filter kendaraan berdasarkan kategori (Motor, Mobil, Travel, Bus)
  • πŸ“… Booking dengan Kalender β€” pilih tanggal check-in & check-out
  • πŸ“‹ Riwayat Booking β€” pantau status pemesanan (Menunggu, Dikonfirmasi, Selesai, Dibatalkan)
  • πŸ‘€ Profil β€” edit informasi pribadi

Untuk Penyedia Layanan

  • πŸ“Š Dashboard β€” statistik total booking, pendapatan, layanan aktif
  • βž• Kelola Layanan β€” tambah, edit, hapus kendaraan yang disewakan
  • πŸ—“οΈ Kelola Jadwal β€” atur hari aktif dan blokir tanggal tertentu
  • βœ… Konfirmasi Booking β€” terima atau tolak pesanan masuk
  • 🏒 Profil Penyedia β€” edit informasi perusahaan

Umum

  • πŸ” Autentikasi JWT β€” login aman untuk User dan Provider
  • 🚌 Supir Wajib β€” Travel & Bus otomatis dengan supir
  • πŸ“± Responsive β€” tampilan optimal di desktop dan mobile

πŸ—οΈ Struktur Repo (Monorepo)

RideNest/
β”œβ”€β”€ backend/
β”‚   β”œβ”€β”€ prisma/
β”‚   β”‚   └── schema.prisma        # Definisi semua tabel DB
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ app.ts               # Entry point β€” inisialisasi server
β”‚   β”‚   β”œβ”€β”€ lib/
β”‚   β”‚   β”‚   └── prisma.ts        # Instance Prisma (koneksi DB)
β”‚   β”‚   β”œβ”€β”€ middleware/
β”‚   β”‚   β”‚   └── auth.ts          # Verifikasi JWT token
β”‚   β”‚   β”œβ”€β”€ controllers/         # Logika bisnis per fitur
β”‚   β”‚   β”‚   β”œβ”€β”€ auth.ts          # Register & Login
β”‚   β”‚   β”‚   β”œβ”€β”€ service.ts       # CRUD layanan kendaraan
β”‚   β”‚   β”‚   β”œβ”€β”€ availability.ts  # Jadwal & blokir tanggal
β”‚   β”‚   β”‚   β”œβ”€β”€ booking.ts       # Buat & kelola booking
β”‚   β”‚   β”‚   └── profile.ts       # Edit profil
β”‚   β”‚   └── routes/              # Daftar URL endpoint
β”‚   β”‚       β”œβ”€β”€ auth.ts
β”‚   β”‚       β”œβ”€β”€ service.ts
β”‚   β”‚       β”œβ”€β”€ availability.ts
β”‚   β”‚       β”œβ”€β”€ booking.ts
β”‚   β”‚       └── profile.ts
β”‚   β”œβ”€β”€ .env                     # Konfigurasi (DB, JWT, PORT)
β”‚   └── package.json
β”‚
β”œβ”€β”€ frontend/
β”‚   β”œβ”€β”€ src/
β”‚   β”‚   β”œβ”€β”€ App.tsx              # Daftar semua route halaman
β”‚   β”‚   β”œβ”€β”€ main.tsx             # Entry point React
β”‚   β”‚   β”œβ”€β”€ api/
β”‚   β”‚   β”‚   └── axiosInstance.ts # Setup HTTP client + auto sisip token
β”‚   β”‚   β”œβ”€β”€ store/
β”‚   β”‚   β”‚   └── authStore.ts     # State global login (Zustand)
β”‚   β”‚   β”œβ”€β”€ types/
β”‚   β”‚   β”‚   └── index.ts         # TypeScript types/interfaces
β”‚   β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”‚   β”œβ”€β”€ layout/
β”‚   β”‚   β”‚   β”‚   β”œβ”€β”€ UserNavbar.tsx     # Navbar user (browse, profil)
β”‚   β”‚   β”‚   β”‚   └── ProtectedRoute.tsx # Guard halaman yang butuh login
β”‚   β”‚   β”‚   └── ui/              # Komponen UI shadcn (Button, Input, dll)
β”‚   β”‚   └── pages/
β”‚   β”‚       β”œβ”€β”€ LandingPage.tsx        # Halaman utama (/)
β”‚   β”‚       β”œβ”€β”€ BrowsePage.tsx         # Cari kendaraan (/browse)
β”‚   β”‚       β”œβ”€β”€ ServiceDetailPage.tsx  # Detail + booking (/services/:id)
β”‚   β”‚       β”œβ”€β”€ BookingsPage.tsx       # Riwayat booking user (/bookings)
β”‚   β”‚       β”œβ”€β”€ ProfilePage.tsx        # Edit profil (/profile)
β”‚   β”‚       β”œβ”€β”€ auth/
β”‚   β”‚       β”‚   β”œβ”€β”€ LoginPage.tsx      # (/login)
β”‚   β”‚       β”‚   └── RegisterPage.tsx   # (/register)
β”‚   β”‚       └── provider/
β”‚   β”‚           β”œβ”€β”€ ProviderDashboardPage.tsx  # Dashboard (/provider/dashboard)
β”‚   β”‚           β”œβ”€β”€ AddServicePage.tsx         # Kelola layanan (/provider/services)
β”‚   β”‚           β”œβ”€β”€ EditServicePage.tsx        # Edit layanan (/provider/services/:id/edit)
β”‚   β”‚           └── SchedulePage.tsx           # Jadwal (/provider/services/:id/schedule)
β”‚   β”œβ”€β”€ .env                     # VITE_API_URL
β”‚   └── package.json
β”‚
β”œβ”€β”€ docs/                        # Screenshot & dokumentasi visual
└── README.md

πŸ› οΈ Tech Stack

Backend

Teknologi Versi Kegunaan
Express.js v5 Web framework β€” handle HTTP request/response
TypeScript v6 Typing statis agar kode lebih aman
Prisma ORM v6 Query database, migrasi, generate client
PostgreSQL β€” Database relasional
bcrypt v6 Hash password sebelum disimpan ke DB
jsonwebtoken v9 Generate & verifikasi JWT token autentikasi
cors v2 Izinkan request dari frontend (cross-origin)
dotenv v17 Load variabel dari file .env
tsx v4 Jalankan TypeScript langsung tanpa compile (dev mode)

Frontend

Teknologi Versi Kegunaan
React v19 UI framework berbasis komponen
TypeScript v6 Typing statis
Vite v8 Build tool & dev server (sangat cepat)
React Router DOM v7 Routing SPA (/browse, /login, dll)
Axios v1 HTTP client untuk komunikasi ke backend
Zustand v5 State management global (auth store)
Tailwind CSS v4 Utility-first CSS framework
shadcn/ui v4 Komponen UI siap pakai (Button, Input, Card, dll)
Radix UI v1 Komponen primitif headless (dasar shadcn)
Lucide React v1 Library ikon SVG
tw-animate-css β€” Animasi Tailwind (animate-pulse, dll)
Geist Variable β€” Font yang dipakai (@fontsource-variable/geist)

Infrastruktur & Deploy

Layer Teknologi
Deploy Frontend Vercel
Deploy Backend Railway
Database Host Supabase (PostgreSQL)

πŸš€ Cara Menjalankan Lokal

Prasyarat

Pastikan tools berikut sudah terinstall:

  • Node.js >= 18 β€” Download
  • npm >= 9 (sudah termasuk dalam Node.js)
  • Akun Supabase β€” Daftar gratis untuk mendapatkan DATABASE_URL

1. Clone Repository

git clone https://github.com/GirindraSW/RideNest.git
cd RideNest

2. Setup Backend

cd backend
npm install
cp .env.example .env

Buka file .env dan isi variabel berikut:

DATABASE_URL="postgresql://user:password@host:port/dbname"
JWT_SECRET="isi-dengan-string-acak-yang-kuat"
JWT_EXPIRES_IN="7d"
PORT=5000
FRONTEND_URL=http://localhost:5173

πŸ’‘ DATABASE_URL bisa didapat dari dashboard Supabase β†’ Project Settings β†’ Database β†’ Connection String (URI mode)

Jalankan migrasi database dan start server:

npx prisma db push     # Sinkronkan schema ke database
npm run dev            # Server berjalan di http://localhost:5000

3. Setup Frontend

Buka terminal baru, lalu:

cd frontend
npm install
cp .env.example .env

Buka file .env dan isi:

VITE_API_URL=http://localhost:5000/api

Jalankan dev server:

npm run dev            # App berjalan di http://localhost:5173

βœ… Verifikasi

Setelah kedua server berjalan:

Service URL
Frontend http://localhost:5173
Backend API http://localhost:5000/api

πŸ”— API Endpoints

Method Endpoint Auth Deskripsi
POST /api/auth/register/user ❌ Daftar akun pengguna
POST /api/auth/register/provider ❌ Daftar akun penyedia
POST /api/auth/login ❌ Login semua role
GET /api/auth/me βœ… Info user aktif
GET /api/services ❌ Daftar semua layanan
GET /api/services?category=MOBIL ❌ Filter by kategori
GET /api/services/:id ❌ Detail layanan
POST /api/services βœ… Provider Tambah layanan
PUT /api/services/:id βœ… Provider Edit layanan
DELETE /api/services/:id βœ… Provider Hapus layanan
GET /api/provider/profile βœ… Provider Profil penyedia
PUT /api/provider/profile βœ… Provider Update profil penyedia

πŸ‘₯ Tim Pengembang

Girindra
Girindra Sulistiyo W.

⚑ Frontend Developer
React Β· TypeScript Β· Tailwind
Rayyan
Rayyan Aby Yazid

πŸ”§ Backend Developer
Express Β· Prisma Β· PostgreSQL

πŸ“„ Lisensi

Project ini dibuat untuk keperluan pembelajaran. Β© 2025 RideNest Team.

About

Vehicle rental booking web application built as a group project with frontend and backend collaboration.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors