Files
titipin/README.md
T

72 lines
3.2 KiB
Markdown

# 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
1. Lakukan _clone_ repositori ini atau pastikan Anda berada di root folder aplikasi.
2. Buka terminal/command prompt.
3. Jalankan perintah instalasi dependensi:
```bash
yarn install
```
*(atau `npm install` jika 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:
```env
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:
1. **Generate Prisma Client**: Membangun tipe TypeScript dan library client.
```bash
npx prisma generate
```
2. **Push Skema ke Database**: Membuat struktur tabel-tabel di database sesuai dengan `prisma/schema.prisma`.
```bash
npx prisma db push
```
3. **Seed Database**: Mengisi database dengan akun Superadmin bawaan.
```bash
npx prisma db seed
```
## Menjalankan Aplikasi
Setelah database siap, Anda bisa menjalankan aplikasi di tahap pengembangan lokal (development mode):
```bash
yarn dev
```
Aplikasi secara bawaan dapat diakses melalui browser dengan URL:
👉 **[http://localhost:3000](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**.