Sewa motor, mobil, travel, hingga bus β tersedia dengan harga transparan.
Booking mudah, berangkat nyaman.
- π 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
- π 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
- π Autentikasi JWT β login aman untuk User dan Provider
- π Supir Wajib β Travel & Bus otomatis dengan supir
- π± Responsive β tampilan optimal di desktop dan mobile
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
| 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) |
| 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) |
| Layer | Teknologi |
|---|---|
| Deploy Frontend | Vercel |
| Deploy Backend | Railway |
| Database Host | Supabase (PostgreSQL) |
Pastikan tools berikut sudah terinstall:
- Node.js >= 18 β Download
- npm >= 9 (sudah termasuk dalam Node.js)
- Akun Supabase β Daftar gratis untuk mendapatkan
DATABASE_URL
git clone https://github.com/GirindraSW/RideNest.git
cd RideNestcd backend
npm install
cp .env.example .envBuka 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_URLbisa 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:5000Buka terminal baru, lalu:
cd frontend
npm install
cp .env.example .envBuka file .env dan isi:
VITE_API_URL=http://localhost:5000/apiJalankan dev server:
npm run dev # App berjalan di http://localhost:5173Setelah kedua server berjalan:
| Service | URL |
|---|---|
| Frontend | http://localhost:5173 |
| Backend API | http://localhost:5000/api |
| 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 |
![]() Girindra Sulistiyo W. β‘ Frontend Developer React Β· TypeScript Β· Tailwind |
![]() Rayyan Aby Yazid π§ Backend Developer Express Β· Prisma Β· PostgreSQL |
Project ini dibuat untuk keperluan pembelajaran. Β© 2025 RideNest Team.










