Alghifari888/website-manajemen-perpustakaan
sebuah sistem yang membantu mengelola berbagai aspek operasional perpustakaan, termasuk pengelolaan koleksi, pelayanan anggota, dan administrasi perpustakaan secara efisien dan efektif.
π Sistem Manajemen Perpustakaan Digital v1.0
Sistem Manajemen Perpustakaan Digital adalah perangkat lunak yang dirancang untuk mengelola
semua fungsi perpustakaan secara digital, mulai dari mengelola koleksi hingga transaksi anggota.
β¨ Kutipan
"Aku tidak berilmu; yang berilmu hanyalah DIA. Jika tampak ilmu dariku, itu hanyalah pantulan dari Cahaya-Nya."
π Daftar Isi
- Deskripsi Proyek
- Fitur Utama
- Teknologi Digunakan
- Struktur Database
- Panduan Instalasi
- Panduan Penggunaan
- Testing
- Roadmap
- Kontribusi
π₯ Demo
π Deskripsi Proyek
Sistem Manajemen Perpustakaan Digital adalah aplikasi web berbasis Laravel yang dirancang untuk:
- Mengelola koleksi buku digital
- Memproses transaksi peminjaman
- Mengelola keanggotaan perpustakaan
- Menghasilkan laporan statistik
β¨ Fitur Utama
π οΈ Fitur Administrasi
- Manajemen Buku (CRUD lengkap dengan upload cover)
- Manajemen Kategori dengan sistem relasi
- Manajemen Anggota dengan verifikasi data
- Sistem Peminjaman dengan tracking status
- Perhitungan Denda otomatis
π€ Fitur Petugas
- Bisa melihat seluruh daftar riwayat peminjaman dan pengembalian.
- Bisa mencatat peminjaman baru untuk anggota (+ Catat Peminjaman).
- Bisa memproses pengembalian buku (Kembalikan), yang juga secara otomatis akan membuat denda jika terlambat.
- Mengelola Modul Denda:
- Bisa melihat daftar semua denda yang belum dibayar.
- Bisa menandai denda sebagai "Lunas" setelah anggota membayarnya.
π€ Fitur Member (User)
- Profil lengkap + statistik peminjaman & denda
- Riwayat Peminjaman Anggota
- Daftar Denda Pribadi
π Fitur Laporan
- Statistik peminjaman
- Ekspor data ke PDF
- Riwayat transaksi
π€ Manajemen Pengguna
- Sistem role-based (Admin, Petugas, Anggota)
- Autentikasi aman dengan Laravel Breeze
- Profil pengguna yang dapat dikustomisasi
π οΈ Teknologi Digunakan
| Komponen | Teknologi |
|---|---|
| Backend | Laravel 12, PHP 8.2+ |
| Frontend | Blade, Tailwind CSS, Alpine.js |
| Database | MySQL |
| Lainnya | Laravel Breeze, DomPDF |
ποΈ Struktur Database
erDiagram
USERS ||--o{ USER_PROFILES : "has"
USERS ||--o{ BORROWINGS : "makes"
BOOKS ||--o{ BORROWINGS : "included_in"
BORROWINGS ||--o{ FINES : "generates"
π Panduan Instalasi
Bagian ini memuat tiga skenario instalasi: untuk pengembangan lokal, deployment ke server VPS (atau shared hosting dengan SSH), dan deployment ke shared hosting tanpa SSH (via cPanel).
A. Instalasi di Komputer Lokal (Untuk Pengembangan)
Langkah-langkah ini ditujukan untuk menyiapkan lingkungan pengembangan di mesin Anda sendiri (misalnya, laptop atau PC).
Prasyarat
- PHP 8.2+, Composer, Node.js 16+, Server Database (MySQL/MariaDB), Git.
Langkah-langkah Instalasi
- Clone Repositori:
git clone https://github.com/Alghifari888/website-manajemen-perpustakaan.gitdancd website-manajemen-perpustakaan - Install Dependensi: Jalankan
composer installdannpm install. - Konfigurasi .env: Salin
.env.exampleke.env(cp .env.example .env). - Generate Kunci: Jalankan
php artisan key:generate. - Setup Database: Buat database
db_perpustakaandan sesuaikan kredensial di file.env. - Migrasi & Seeder: Jalankan
php artisan migrate --seed. - Symbolic Link: Jalankan
php artisan storage:link. - Jalankan Server: Buka dua terminal. Di satu terminal, jalankan
npm run dev. Di terminal lain, jalankanphp artisan serve. - Akses Aplikasi: Buka
http://127.0.0.1:8000di browser Anda.
B. Deployment ke Server VPS / Shared Hosting (Dengan Akses SSH)
Panduan ini untuk server yang memberikan Anda akses terminal/SSH.
Prasyarat Server
- Akses SSH, Git, PHP 8.2+, Composer, Node.js, Nginx/Apache, MySQL/MariaDB.
Langkah-langkah Deployment
- Clone Repositori: Hubungkan via SSH,
cdke direktori web Anda, lalugit clone .... - Konfigurasi .env Produksi:
cp .env.example .env- Edit file
.env: setAPP_ENV=production,APP_DEBUG=false, dan isi detail database produksi. - Jalankan
php artisan key:generate.
- Install Dependensi Produksi:
composer install --optimize-autoloader --no-devnpm installnpm run build
- Migrasi & Optimasi:
php artisan migrate --forcephp artisan config:cachephp artisan route:cachephp artisan view:cache
- Konfigurasi Web Server: Arahkan Document Root ke folder
/publicproyek Anda. - Atur Hak Akses:
sudo chown -R www-data:www-data storage bootstrap/cachedansudo chmod -R 775 storage bootstrap/cache. - Symbolic Link:
php artisan storage:link.
C. Deployment ke Shared Hosting (via cPanel / Tanpa SSH)
Metode ini bersifat manual dan cocok untuk hosting yang tidak menyediakan akses terminal.
1. Persiapan di Komputer Lokal
Sebelum mengunggah, siapkan proyek Anda di lokal terlebih dahulu.
- Install Dependensi: Pastikan Anda sudah menjalankan
composer install --optimize-autoloader --no-devdannpm run builddi lokal. Ini penting karena Anda tidak bisa menjalankannya di server. - Hapus Folder
node_modules: Folder ini sangat besar dan tidak diperlukan di server. Hapus saja. - Buat File ZIP: Kompres semua file dan folder proyek Anda (termasuk folder
vendor) ke dalam satu file.zip.
2. Unggah dan Ekstrak di cPanel
- Login ke cPanel: Buka
File Manager. - Navigasi: Masuk ke direktori
public_html. - Unggah: Gunakan tombol
Uploaduntuk mengunggah file.zipyang sudah Anda buat. - Ekstrak: Setelah selesai, klik kanan pada file
.zipdan pilihExtract.
3. Atur Struktur Folder
Struktur default Laravel tidak cocok untuk public_html. Lakukan langkah berikut:
- Pindahkan Isi Folder
public: Masuk ke folder proyek hasil ekstrak, lalu masuk ke folderpublic. Pilih semua file di dalamnya (index.php,.htaccess,assets, dll.) dan pindahkan (Move) ke direktoripublic_html. - Edit
index.php:- Di dalam
public_html, cari dan edit fileindex.php. - Ubah dua baris path berikut untuk menunjuk ke lokasi folder proyek Anda yang sebenarnya. Ganti
nama-folder-proyekdengan nama folder tempat Anda mengekstrak file.// Sebelum diubah require __DIR__.'/../vendor/autoload.php'; $app = require_once __DIR__.'/../bootstrap/app.php'; // Setelah diubah require __DIR__.'/nama-folder-proyek/vendor/autoload.php'; $app = require_once __DIR__.'/nama-folder-proyek/bootstrap/app.php';
- Di dalam
4. Setup Database
- Buat Database: Di cPanel, cari
MySQL Database Wizard. Ikuti langkah-langkah untuk membuat database baru, user database, dan password. Catat ketiga informasi ini. Berikan semua hak akses (All Privileges) kepada user tersebut. - Ekspor Database Lokal: Di komputer lokal Anda, buka
phpMyAdmin, pilih databasedb_perpustakaan, lalu ekspor (Export) menjadi file.sql. - Impor Database: Kembali ke cPanel, buka
phpMyAdmin, pilih database yang baru Anda buat, lalu impor (Import) file.sqltadi.
5. Konfigurasi Final
- Edit File
.env:- Di
File Manager, navigasikan ke dalamnama-folder-proyek. - Edit file
.env. Jika tidak terlihat, pastikan Anda menampilkan file tersembunyi (Show Hidden Files). - Atur
APP_ENV=productiondanAPP_DEBUG=false. - Masukkan detail database (nama database, user, password) yang Anda catat dari
MySQL Database Wizard. - Atur
APP_URLmenjadi nama domain Anda (misal:APP_URL=https://www.domainanda.com).
- Di
- Symbolic Link: cPanel biasanya tidak memiliki fitur untuk membuat symbolic link secara langsung. Anda mungkin perlu meminta bantuan teknis dari penyedia hosting atau jika mereka menyediakan fitur
Terminal, Anda bisa jalankanphp artisan storage:linkdari sana. Jika tidak, upload manual kepublic_html/storagemungkin diperlukan, namun ini kurang ideal.
π Panduan Penggunaan
Setelah instalasi berhasil, Anda dapat login menggunakan akun default yang telah dibuat oleh seeder:
- Akun Admin:
- Email:
admin@perpus.com - Password:
password
- Email:
- Akun Petugas:
- Email:
petugas@perpus.com - Password:
password
- Email:
- Akun Anggota:
- Email:
anggota@perpus.com - Password:
password
- Email:
π§ͺ Testing
Untuk menjalankan test suite, gunakan perintah berikut:
php artisan testπΊοΈ Roadmap
- Implementasi fitur pencarian buku lanjutan (filter, sort).
- Integrasi notifikasi email untuk pengingat pengembalian.
- Pengembangan API untuk aplikasi mobile.
- Fitur booking buku online.
π€ Berkontribusi
Kontribusi Anda sangat kami harapkan! Silakan ikuti langkah-langkah berikut:
- Fork project ini.
- Buat branch fitur baru (
git checkout -b fitur-keren-baru). - Commit perubahan Anda (
git commit -m 'Menambahkan fitur keren baru'). - Push ke branch (
git push origin fitur-keren-baru). - Buat Pull Request baru.
β Jika project ini membantu, mohon beri star di GitHub!
π Pantau update terbaru untuk fitur-fitur baru!
π License (English)
This project is licensed under the MIT License.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
π Lisensi (Indonesia)
Proyek ini dilisensikan di bawah Lisensi MIT.
Hak Cipta (c) 2025 Alghifari888
Proyek ini menggunakan Lisensi MIT, yang berarti Anda bebas menggunakan, menyalin, mengubah, dan mendistribusikan perangkat lunak ini, termasuk untuk keperluan komersial, selama menyertakan pemberitahuan hak cipta dan lisensi asli.
Perangkat lunak ini disediakan apa adanya tanpa jaminan apa pun. Pengembang tidak bertanggung jawab atas kerusakan atau masalah yang timbul dari penggunaan perangkat lunak ini.

