Apexio adalah aplikasi manajemen proyek berbasis web yang dirancang untuk memfasilitasi kolaborasi tim yang efisien. Aplikasi ini dibangun menggunakan Laravel 11 dan Livewire 3, mengadopsi pendekatan Modern Monolith untuk memberikan pengalaman pengguna yang reaktif dan mulus tanpa kompleksitas SPA terpisah.
Berikut adalah tampilan utama Apexio, menampilkan Sidebar dan Kanban Board:
- Drag & Drop Kanban: Papan interaktif yang memungkinkan pengguna memindahkan tugas antar status (To-Do, In-Progress, Done) dengan mulus menggunakan SortableJS.
- Tenggat Waktu Real-time: Sistem deadline pintar dengan badge yang diperbarui otomatis ("Segera" atau "Terlambat") berdasarkan waktu lokal pengguna.
- Detail Tugas: Tampilan kartu komprehensif dengan tingkat prioritas, assignee, dan diskusi berulir (komentar).
- Halaman "Tugas Saya": Tampilan agregasi khusus yang menampilkan semua tugas yang diberikan kepada pengguna saat ini di berbagai proyek, diurutkan berdasarkan urgensi.
- Sidebar Navigasi: Sidebar tetap dan responsif dengan indikator status aktif dan akses cepat ke proyek terbaru.
- Dashboard Super Admin: Panel eksklusif untuk pengawasan sistem, menampilkan statistik real-time (Total Pengguna, Proyek, Tugas Aktif).
- Manajemen Pengguna: Alat admin untuk memantau daftar pengguna, melihat Status Online Real-time, mereset password, dan mengelola peran akses.
- Kontrol Akses Berbasis Peran (RBAC): Logika otorisasi ketat yang memastikan pengguna hanya dapat memodifikasi tugas mereka sendiri, sementara Admin memiliki pengawasan penuh.
- Manajemen Profil: Pengguna dapat memperbarui detail mereka dan mengunggah foto profil dengan preview instan.
- Avatar Pintar: Sistem secara otomatis menghasilkan avatar berbasis inisial untuk pengguna tanpa foto profil.
- Keamanan Akun: Pengaturan terpusat untuk pembaruan password dan penghapusan akun yang aman.
- Layout Responsif: Dibangun dengan Flexbox dan Bootstrap 5 + SCSS untuk pengalaman pixel-perfect di berbagai ukuran layar.
- Umpan Balik Interaktif: Notifikasi toast dan isyarat visual (perubahan kursor, status loading) untuk pengalaman pengguna yang mulus.
- Backend: Laravel 11 Framework
- Logika Frontend: Livewire 3 (Reaktivitas full-stack)
- Styling: Bootstrap 5 + SCSS Custom (Arsitektur berbasis komponen)
- Database: MySQL / MariaDB
- Scripting: Alpine.js (Mikro-interaksi) + SortableJS (Drag & Drop)
Pastikan Anda telah menginstal PHP 8.2+, Composer, dan Node.js sebelum memulai.
Jalankan perintah berikut di terminal Anda:
# Clone repository
git clone https://github.com/noireveil/Apexio.git
cd Apexio
# Install dependensi Backend & Frontend
composer install
npm install
# Duplikat konfigurasi environment
cp .env.example .env
# Generate Application Key
php artisan key:generateBuka file .env dan sesuaikan konfigurasi database (DB_DATABASE=apexio). Kemudian ikuti langkah-langkah sesuai sistem operasi Anda:
- Pastikan Laragon/XAMPP berjalan (Start All).
- Buka HeidiSQL (Laragon) atau phpMyAdmin.
- Buat database baru dengan nama:
apexio. - Pastikan file
.envsesuai dengan kredensial Anda (default Laragon biasanya user:root, password: kosong).
-
Pastikan layanan database berjalan:
sudo systemctl start mariadb # atau mysql -
Login ke MySQL dan buat database:
mysql -u root -p -e "CREATE DATABASE apexio;" -
Sesuaikan username dan password database di file
.envjika Anda menggunakan kredensial custom.
Setelah database siap, jalankan perintah berikut di terminal proyek untuk membuat tabel dan seed data demo masif:
# Buat tabel dan seed data demo masif (50 Proyek, ~600 Tugas)
php artisan migrate:fresh --seed
# Buat symbolic link agar foto profil dapat diakses secara publik (WAJIB)
php artisan storage:linkUntuk menguji fungsionalitas "Lupa Password" (mengirim link reset via email), Anda harus mengkonfigurasi server SMTP. Cara termudah adalah menggunakan Gmail App Password:
- Buka Google Account Anda > Security.
- Aktifkan 2-Step Verification (jika belum aktif).
- Cari "App Passwords".
- Buat app password baru (misalnya, beri nama "Apexio Local").
- Salin password 16 karakter yang dihasilkan.
- Buka file
.envAnda dan perbarui bagian MAIL:
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=email_anda@gmail.com # Alamat Gmail asli Anda
MAIL_PASSWORD=xxxx xxxx xxxx xxxx # App Password yang baru saja dibuat
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="no-reply@apexio.com"
MAIL_FROM_NAME="${APP_NAME}"Catatan: Tanpa langkah ini, mencoba mereset password akan menghasilkan error koneksi.
Aplikasi ini memerlukan dua proses terminal yang berjalan secara bersamaan.
Terminal 1 (Jalankan Laravel Server):
php artisan serveTerminal 2 (Jalankan Kompilasi Asset / Vite):
npm run devAkses aplikasi melalui browser di: http://localhost:8000
Database seeder menghasilkan dataset masif (50 Proyek, ~600 Tugas, ~8.000 Komentar) untuk mensimulasikan lingkungan yang sibuk dan aktif.
Gunakan akun ini untuk menjelajahi dashboard, mengelola pengguna, dan melihat aplikasi dengan data lengkap.
| Peran | Password | Deskripsi | |
|---|---|---|---|
| Super Admin | admin@apexio.com | password | Akses Sistem Penuh & Tampilan Data Lengkap |
Seeder membuat 50 "pengguna dummy" acak untuk mengisi proyek, tetapi tidak membuat akun demo pengguna khusus untuk Anda.
- Untuk Menguji Registrasi: Silakan gunakan fitur Register dengan alamat email pribadi Anda sendiri.
- Untuk Menguji Lupa Password: Setelah mendaftar, logout dan gunakan link "Lupa password?". Pastikan Anda telah mengkonfigurasi file
.envseperti yang dijelaskan di bagian "Pengaturan Email" di atas.
Mengapa? Ini memungkinkan Anda mengalami alur onboarding lengkap dan memverifikasi bahwa pengiriman email berfungsi dengan konfigurasi SMTP spesifik Anda.
Source code proyek ini telah dilengkapi dengan komentar dokumentasi standar (DocBlocks). Dokumentasi API lengkap telah di-generate menggunakan PHPDocumentor dan tersedia dalam format HTML yang dapat diakses langsung melalui browser.
- Navigasi ke folder
docs/apidi dalam direktori proyek Apexio - Cari file
index.html - Klik kanan pada file
index.html> Open With > Pilih browser favorit Anda (Chrome, Firefox, Edge, dll) - Dokumentasi akan terbuka langsung di browser
Path lengkap: Apexio/docs/api/index.html
Jika Anda menggunakan Visual Studio Code, Anda dapat menggunakan ekstensi Live Server untuk pengalaman yang lebih baik:
- Install ekstensi Live Server dari Extensions Marketplace (jika belum terinstall)
- Buka folder
docs/apidi VS Code - Klik kanan pada file
index.html - Pilih "Open with Live Server"
- Dokumentasi akan terbuka di browser dengan fitur auto-refresh
Keuntungan Live Server:
- Auto-reload saat ada perubahan
- Local server dengan HTTP protocol proper
- Lebih cepat untuk navigasi antar halaman
Anda juga bisa menggunakan built-in HTTP server dari PHP atau Python:
Menggunakan PHP:
cd docs/api
php -S localhost:8080Kemudian buka browser dan akses: http://localhost:8080
Menggunakan Python:
cd docs/api
# Python 3
python -m http.server 8080
# atau Python 2
python -m SimpleHTTPServer 8080Kemudian buka browser dan akses: http://localhost:8080
Dokumentasi API mencakup:
- Struktur Kelas Lengkap: Semua Model, Controller, Livewire Component, Middleware, dan Service Class
- Detail Method: Parameter, return type, dan deskripsi fungsi untuk setiap method
- Relasi Database: Dokumentasi relasi Eloquent (hasMany, belongsTo, dll)
- Namespace & Dependencies: Struktur organisasi kode dan dependensinya
- Property & Attributes: Dokumentasi lengkap untuk setiap property class
Setelah membuka dokumentasi, Anda akan menemukan:
- Sidebar Kiri: Daftar namespace dan class yang terorganisir
- Panel Utama: Detail dokumentasi untuk class/method yang dipilih
- Search Box: Fitur pencarian cepat untuk menemukan class atau method tertentu
- Index: Daftar alfabetis dari semua elemen yang terdokumentasi
Catatan: Dokumentasi ini bersifat statis (HTML/CSS/JS), sehingga dapat dibuka dan digunakan tanpa memerlukan server web aktif. Semua file berada di folder docs/api dan siap digunakan kapan saja.
- Pastikan kedua terminal (Laravel server dan Vite) tetap berjalan selama development
- Jangan lupa menjalankan
php artisan storage:linkuntuk akses foto profil - Untuk production, compile assets dengan
npm run build - Database seeder akan mereset semua data yang ada, gunakan dengan hati-hati
