Ini adalah repositori versi refaktor dari aplikasi DigiSign Pro menggunakan Laravel 11, Inertia.js, dan ReactJS (Tailwind CSS). Struktur kode ini dirancang agar memiliki tampilan yang sangat mirip dengan versi PHP Native saat ini, serta memuat seluruh fitur database dan penandatanganan berkas secara lengkap.
- PHP:
>= 8.2 - Composer:
>= 2.0 - Node.js:
>= 18.0& NPM - Database: MySQL
>= 5.7atau MariaDB>= 10.3
Ikuti langkah-langkah berikut untuk memasang aplikasi di lingkungan lokal atau server Anda:
composer installGunakan opsi --legacy-peer-deps untuk menghindari konflik versi Vite & React:
npm install --legacy-peer-depsSalin file .env.example menjadi .env:
cp .env.example .envSetelah disalin, buka file .env dan konfigurasikan koneksi database Anda:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=nama_database_anda
DB_USERNAME=username_database
DB_PASSWORD=password_databasephp artisan key:generateJalankan migrasi untuk membuat tabel users, app_settings, dan signatures yang sesuai dengan skema versi PHP Native:
php artisan migrateMigrasi bersifat idempotent dan mendukung DB DigiSign lama:
- Jika tabel sudah ada, hanya menambahkan kolom Laravel yang kurang (bukan drop data).
- Bisa dijalankan ulang lewat Admin → Migrasi Database (wajib isi ulang password admin).
- Adapter legacy juga mengisi
document_namekosong dan membuat tabel support (sessions,password_reset_tokens, cache, jobs).
Import data lama (ringkas):
- Arahkan
.envke database MySQL lama, atau import dumpusers/app_settings/signatures. - Jalankan
php artisan migrate(atau tombol migrasi di panel admin + password). - Pastikan file upload/S3 path masih valid.
Deploy kode aplikasi: via CI/CD (git pull / build / deploy). Unggah paket update ZIP sudah dihapus / deprecated.
Laravel mencoba Vite dev server jika file public/hot ada. Di production:
rm -f public/hot
# pastikan asset build ada:
ls public/build/manifest.json
# jika belum ada:
npm ci && npm run build
php artisan optimize:clear
# .env production:
# APP_ENV=production
# APP_DEBUG=false
# APP_URL=https://sign.ppti.meRepo menyertakan public/build agar git pull cukup untuk CSS/JS (tanpa npm run dev di server).
Pindah dari DigiSign PHP native (sekali saja):
php artisan digisign:legacy-cutoverDetail: docs/LEGACY_CUTOVER.md. Session lama tidak dipindah — user login ulang. Setelah cutover, update harian hanya CI/CD + Migrasi Database (password admin).
php artisan db:seedAkun default setelah seed:
| Role | Password | |
|---|---|---|
| Admin | admin@example.com |
password |
| User | user@example.com |
password |
php artisan storage:linkCatatan: Install wizard multi-step PHP native diganti alur standar Laravel di atas (lebih aman & portabel). Versi aplikasi tercatat di file
version.lock(default2.0.0).
Jalankan dua perintah berikut di terminal terpisah:
-
Menjalankan Server Backend PHP:
php artisan serve
Aplikasi akan berjalan di
http://127.0.0.1:8000. -
Menjalankan Compiling Asset Frontend (Vite):
npm run dev
Untuk production build frontend:
npm run buildBerikut adalah tabel pemetaan halaman antarmuka versi PHP Native lama ke versi Laravel + React baru:
| Fitur / Halaman Native | File Native Lama | File Halaman React (Inertia) Baru |
|---|---|---|
| Login & Register | views/auth/login.php / register.php |
resources/js/Pages/Auth/Login.jsx / Register.jsx |
| Dashboard | views/dashboard.php |
resources/js/Pages/Dashboard.jsx |
| Single Sign | views/sign/single.php & process_single.php |
resources/js/Pages/Sign/Single.jsx |
| Bulk Sign | views/sign/bulk.php & process_bulk.php |
resources/js/Pages/Sign/Bulk.jsx |
| Layanan TTE QR (Manual) | views/sign/qr_list.php & qr_create.php |
resources/js/Pages/Sign/QrList.jsx & QrCreate.jsx |
| Riwayat | views/history.php |
resources/js/Pages/History.jsx |
| Profil | views/profile.php |
resources/js/Pages/Profile/Edit.jsx |
| Manajemen Pengguna | views/admin/users.php |
resources/js/Pages/Admin/Users.jsx |
| Pengaturan Aplikasi | views/admin/settings.php |
resources/js/Pages/Admin/Settings.jsx |
| Manajemen Storage | views/admin/storage.php |
resources/js/Pages/Admin/Storage.jsx |
| Migrasi Database | views/admin/updater.php (ZIP deprecated) |
resources/js/Pages/Admin/Updater.jsx |
| Backup & Restore | views/admin/backup.php |
resources/js/Pages/Admin/Backup.jsx |
| Verifikasi Publik | views/verify/index.php |
resources/js/Pages/Verify.jsx |
| Cookie Consent | includes/cookie_consent.php |
resources/js/Components/CookieConsent.jsx |
Base path: /api/v1
| Auth | Header |
|---|---|
| Per-user API key | Authorization: Bearer digi_... atau X-API-Key: digi_... |
Setiap user memiliki API key di Profil Saya (lihat / regenerate / unduh quickapi.md).
| Method | Endpoint | Auth | Keterangan |
|---|---|---|---|
| GET | /api/v1/health |
— | Health check |
| GET | /api/v1/verify/{code} |
— | Verifikasi publik |
| GET | /api/v1/docs/quickapi.md |
— | Docs ringkas (AI agent) |
| GET | /api/v1/me |
key | Profil user |
| GET | /api/v1/signatures |
key | List riwayat |
| GET | /api/v1/signatures/{id} |
key | Detail |
| DELETE | /api/v1/signatures/{id} |
key | Hapus |
| POST | /api/v1/sign/single |
key | Tanda tangan PDF (multipart) |
| POST | /api/v1/sign/qr-manual |
key | Buat TTE QR manual |
File lengkap untuk AI agent: docs/quickapi.md (juga diunduh dari Profil).
- Menu: Admin → Migrasi Database
- Route:
POST /admin/database/migrate(admin only) - Keamanan: wajib mengisi ulang password admin
- Fungsi: adaptasi skema DigiSign legacy +
Artisan::call('migrate', ['--force' => true])tanpa SSH - Deploy kode: gunakan CI/CD (bukan unggah ZIP)