Reviewed-on: #1
TitipIn - Sistem Titip Pesanan
Aplikasi web modern berbasis Next.js untuk mempermudah sistem "jasa titip" (jastip) atau pesanan bersama. Aplikasi ini berjalan dengan arsitektur serverless (Server Actions) dan menggunakan sistem autentikasi stateless berbasis JWT yang disimpan secara aman di HTTP-only Cookies. Dilengkapi dengan Role-Based Access Control (RBAC) untuk manajemen akses pengguna dan Superadmin.
Kebutuhan Sistem (Prerequisites)
Sebelum menjalankan aplikasi ini, pastikan Anda telah menginstal perangkat lunak berikut:
- Node.js: Versi 18.x atau lebih baru (direkomendasikan versi LTS terbaru).
- Yarn / npm: (Disarankan menggunakan Yarn).
- PostgreSQL: Database server berjalan (versi 13 atau lebih baru direkomendasikan).
Instalasi
- Lakukan clone repositori ini atau pastikan Anda berada di root folder aplikasi.
- Buka terminal/command prompt.
- Jalankan perintah instalasi dependensi:
(atau
yarn installnpm installjika tidak menggunakan yarn).
Pengaturan Environment
Buat sebuah file bernama .env di root folder proyek Anda. Konfigurasi kredensial database PostgreSQL Anda beserta kunci rahasia JWT seperti format berikut:
DATABASE_HOST="127.0.0.1"
DATABASE_PORT="5432"
DATABASE_USER="your_db_user"
DATABASE_PASSWORD="your_secure_password"
DATABASE_NAME="your_db_name"
DATABASE_URL="postgresql://${DATABASE_USER}:${DATABASE_PASSWORD}@${DATABASE_HOST}:${DATABASE_PORT}/${DATABASE_NAME}?schema=public"
# Kunci rahasia untuk enkripsi sesi JWT
JWT_SECRET="isi-dengan-kunci-rahasia-acak-disini"
(Sesuaikan IP, port, dan kredensial database jika server database Anda berbeda).
Eksekusi Migrasi Database
Aplikasi menggunakan Prisma ORM untuk berinteraksi dengan database. Jalankan perintah terminal berikut secara berurutan untuk menyinkronkan skema dan mengisi (seed) data awal:
- Generate Prisma Client: Membangun tipe TypeScript dan library client.
npx prisma generate - Push Skema ke Database: Membuat struktur tabel-tabel di database sesuai dengan
prisma/schema.prisma.npx prisma db push - Seed Database: Mengisi database dengan akun Superadmin bawaan.
npx prisma db seed
Menjalankan Aplikasi
Setelah database siap, Anda bisa menjalankan aplikasi di tahap pengembangan lokal (development mode):
yarn dev
Aplikasi secara bawaan dapat diakses melalui browser dengan URL: 👉 http://localhost:3000
Alur Singkat Aplikasi:
- Autentikasi: Akses aplikasi harus melalui halaman login. Jika belum memiliki akun, pengguna dapat mendaftar (register) yang otomatis akan memberikan role sebagai
user. - Akun Superadmin: Secara default, sistem telah menyiapkan akun Superadmin (Username:
superadmin, Password:titipin123!). Superadmin memiliki akses eksklusif ke halaman User Management untuk mengelola, menonaktifkan, atau menghapus pengguna lain. - Anda dapat mulai:
- Membuat Jasa Titip di menu Jasa Order Saya.
- Mengikuti Jasa Titip teman di menu Open Order.
- Mengelola pembayaran & melihat rincian di halaman detail.
- Memantau laporan omzet & pengeluaran di menu Laporan.