Portal pengolahan dokumen modern untuk convert, comment, signature, compression, dan merge dokumen dalam satu workspace.
Document Converter Workspace adalah aplikasi berbasis Laravel 12 yang dirancang untuk memusatkan berbagai proses pengolahan dokumen ke dalam satu dashboard yang konsisten, cepat, dan nyaman dipakai.
Di dalam satu portal, user bisa:
- convert dokumen lintas format
- memberi komentar pada PDF
- menambahkan tanda tangan ke PDF atau Word
- mengompres ukuran file
- menggabungkan beberapa dokumen menjadi satu file
- menggunakan mode terang / gelap sesuai preferensi
| Layer | Teknologi | Versi |
|---|---|---|
| Framework | Laravel | 12.64.0 |
| Runtime | PHP | 8.2+ |
| Auth | Laravel Sanctum | 4.3.3 |
| Dev Utility | Laravel Tinker | 2.11.1 |
| Layer | Teknologi | Versi |
|---|---|---|
| Bundler | Vite | 6.0.11 |
| Styling | Tailwind CSS | 4.3.3 |
| UI State | Alpine.js | 3.15.12 |
| HTTP Client | Axios | 1.7.4 |
| Table | DataTables | 3.0.0 |
| Modal / Alert | SweetAlert2 | 11.26.25 |
| Word Preview | docx-preview | 0.4.0 |
| PDF Viewer | pdfjs-dist | 6.1.200 |
| Spreadsheet Preview | xlsx | 0.18.5 |
| Layer | Teknologi | Versi |
|---|---|---|
| Runtime | Python | 3.10+ |
| PDF Merge / Annotation | pypdf | sesuai environment |
| DOCX Processing | python-docx | sesuai environment |
| PDF to DOCX | pdf2docx | sesuai environment |
| PDF Rendering | reportlab | sesuai environment |
| PDF Compression | PyMuPDF / fitz | sesuai environment |
| Image Processing | Pillow | sesuai environment |
| Spreadsheet Processing | openpyxl | sesuai environment |
Catatan Versi Laravel, Sanctum, Vite, Tailwind, Alpine, dan library frontend di atas diambil dari dependency project saat dokumentasi ini ditulis. Package Python mengikuti environment lokal saat proses instalasi.
Pastikan environment lokal sudah menyiapkan:
- PHP
8.2+ - Composer
- Node.js dan npm
- Python
3.10+ - MySQL / MariaDB
- Laragon / XAMPP / web server lokal lain
Salin dan jalankan perintah berikut:
git clone <repo-url>
cd document-converter
composer install
npm install
cp .env.example .env
php artisan key:generateLalu atur koneksi database di file .env.
Jika binary Python kamu bukan python, tambahkan juga:
PYTHON_BINARY=pythonContoh custom path:
PYTHON_BINARY=C:\Python311\python.exeSalin dan jalankan:
pip install pillow pypdf python-docx pdf2docx reportlab pymupdf openpyxlUntuk membuat struktur database dan user default:
php artisan migrate --seedSeeder utama ada di database/seeders/MasterUserSeeder.php.
Kalau ingin mengganti user default sesuai kebutuhan tim atau environment sendiri, ubah nilai:
usernameemailnamepassword
Lalu jalankan ulang:
php artisan migrate:fresh --seedUntuk development:
php artisan serve
npm run devUntuk build asset production:
npm run buildSetelah menjalankan php artisan migrate --seed, akun bawaan yang tersedia adalah:
| Field | Value |
|---|---|
| Username | admin |
admin123@mail.com |
|
| Password | password |
| Menu | Fungsi Utama | Format |
|---|---|---|
| Dashboard | Ringkasan total data tiap modul | Summary |
| Document Convert | Konversi dokumen lintas format | PDF, DOCX, CSV, XLSX |
| Document Comment | Tambah komentar pada dokumen | |
| Document Signature | Tambah tanda tangan ke dokumen | PDF, DOCX |
| Document Compression | Kompres ukuran file | PDF, DOCX, CSV, XLSX, PNG, JPG, JPEG |
| Document Merge | Gabungkan beberapa dokumen jadi satu | PDF, DOCX |
| Dark Mode | Ganti tema portal terang / gelap | Seluruh portal |
Dashboard menampilkan ringkasan total data per modul agar user bisa langsung melihat aktivitas dokumen dalam satu tampilan.
Highlight
- summary card per menu
- sidebar navigation yang konsisten
- dark mode toggle di sidebar
GIF proses
Screenshot
Dark Mode membantu user tetap nyaman saat memakai portal dalam waktu lama, terutama saat review dokumen, preview hasil, atau bekerja di ruangan minim cahaya.
Highlight
- toggle tema tersedia langsung di sidebar
- mode tema berlaku ke seluruh portal
- preferensi user disimpan agar tema tetap konsisten saat pindah halaman
- mendukung workflow dashboard, list data, modal, dan editor dokumen
Catatan
Dark mode sudah diterapkan pada area utama seperti Dashboard, Document Convert, Document Comment, Document Signature, Document Compression, dan Document Merge.
Screenshot dark mode
Document Convert dipakai untuk mengubah dokumen ke format target tertentu dengan alur upload cepat dan hasil yang bisa langsung dipreview dari modal.
Flow yang didukung
- PDF -> Word
- Word (.docx) -> PDF
- CSV -> XLSX
- XLSX -> CSV
Aksi yang tersedia
- upload file sumber
- pilih target convert
- preview hasil
- download hasil
- hapus riwayat convert
GIF proses
Screenshot
Document Comment dipakai untuk upload draft PDF, menambahkan komentar di posisi tertentu, lalu menghasilkan file PDF yang sudah berisi anotasi.
Fungsi utama
- upload draft PDF
- editor komentar berbasis halaman dan posisi
- preview hasil anotasi
- finish dokumen bila proses komentar selesai
- download PDF berkomentar
Aksi list
- comment
- preview
- download
- hapus
Screenshot list
Screenshot upload draft
Alur singkat
- user upload PDF draft
- sistem membaca metadata halaman
- user masuk ke editor komentar
- komentar ditempel berdasarkan halaman dan posisi
- hasil akhir bisa preview, finish, lalu download
Document Signature dipakai untuk memberi tanda tangan pada dokumen PDF atau Word. Sistem mendukung tanda tangan berupa upload image maupun manual signature.
Fungsi utama
- upload dokumen PDF atau DOCX
- tambah tanda tangan manual atau file image
- atur posisi tanda tangan
- preview hasil editor
- finish dokumen saat final
Output
- sumber PDF tetap diunduh sebagai PDF
- sumber Word memakai preview PDF dan hasil final DOCX
Screenshot list
Mode ini dipakai saat user sudah punya file tanda tangan dan ingin langsung menempelkannya ke dokumen.
Screenshot upload draft
Alur singkat
- upload dokumen PDF atau DOCX
- pilih tipe signature Upload File
- masuk ke editor signature
- tempel signature image ke halaman dan posisi yang diinginkan
- preview, finish, lalu download hasil final
Mode ini dipakai saat user ingin menggambar tanda tangan langsung dari editor tanpa upload file signature dari luar.
Screenshot editor manual
Alur singkat
- upload dokumen PDF atau DOCX
- pilih tipe signature Manual
- gambar tanda tangan di canvas editor
- tempatkan tanda tangan ke halaman yang dipilih
- preview, finish, lalu download hasil final
Document Compression dipakai untuk mengecilkan ukuran file tanpa memindahkan user ke halaman lain. Proses berjalan dari modal dan hasilnya tercatat di tabel history.
Tipe yang didukung
- Word (.docx)
- CSV
- XLSX
- PNG / JPG / JPEG
Fungsi utama
- pilih level compress Low, Medium, atau High
- lihat ukuran asli dan ukuran hasil
- lihat persentase reduction
- preview hasil bila tersedia
- download file hasil compression
GIF proses
Screenshot
Document Merge dipakai untuk menggabungkan beberapa dokumen menjadi satu file final. Fitur ini sekarang mendukung PDF dan Word dengan engine serta service yang dipisah agar alur masing-masing tipe tetap aman.
Aturan utama
- tipe dokumen wajib dipilih
- minimal upload 2 file
- nama file hasil merge wajib diisi
- semua field bersifat mandatory
Informasi yang tampil di tabel
- nama file hasil merge
- jumlah file yang digabung
- ukuran file hasil merge
- total halaman
- tipe dokumen merge
Aksi list
- preview
- download
- hapus
GIF proses
Screenshot
Dashboard
Document Convert
Document Comment
Document Signature
Document Compression
Document Merge
- Frontend dibangun dengan Blade + Tailwind CSS + Alpine.js + Vite.
- Data list memakai server-side DataTables AJAX.
- Backend memakai pola controller + service agar logic per fitur tetap terpisah.
- Engine Python dipakai untuk proses dokumen berat seperti convert, merge, compression, comment rendering, dan signature rendering.
- Theme preference disimpan agar mode terang / gelap konsisten saat user berpindah halaman.
Project ini dibuat oleh Stephen Wau.
- GitHub Profile: Stephen-Wau
- Repository: document-converter
Project ini mengikuti lisensi yang dipakai di repository ini. Jika project akan digunakan ulang untuk kebutuhan internal maupun komersial, sebaiknya lakukan pengecekan lisensi terlebih dahulu sebelum distribusi.













