Proyek ini adalah sistem manajemen perpustakaan sederhana yang dibangun menggunakan ExpressJS dan PostgreSQL. Sistem ini memungkinkan anggota untuk meminjam dan mengembalikan buku sesuai dengan kondisi tertentu serta menyediakan API untuk mengelola buku dan anggota perpustakaan.
Peran:
Backend Developer
Fitur:
- Manajemen Anggota: Tambah, update, hapus, dan daftar anggota.
- Manajemen Buku: Tambah, update, hapus, dan daftar buku.
- Sistem Peminjaman:
- Anggota dapat meminjam buku jika memenuhi syarat peminjaman.
- Anggota tidak dapat meminjam lebih dari 2 buku sekaligus.
- Buku yang sedang dipinjam tidak dapat dipinjam oleh anggota lain.
- Anggota yang dikenai penalti tidak dapat meminjam buku.
- Sistem Pengembalian:
- Anggota dapat mengembalikan buku yang telah mereka pinjam.
- Pengembalian terlambat akan dikenai penalti, sehingga anggota tidak dapat meminjam selama 3 hari.
Teknologi:
- Backend: ExpressJS
- Database: PostgreSQL
- Dokumentasi API: Swagger
- Testing: Mocha, Chai (Unit Testing)
- Pola Desain: Domain-Driven Design (DDD)
Penggunaan:
- Clone repositori ini:
git clone https://github.com/gesarizky/backend-library-management.git
- Pindah ke direktori proyek:
cd library-management-system
- Install dependensi:
npm install
- Siapkan database PostgreSQL:
- Buat database PostgreSQL.
- Perbarui file
.env
dengan detail koneksi database Anda.
.env
:DATABASE = 'library_management' DATABASE_USERNAME = 'your_username' DATABASE_PASSWORD = 'your_password' DATABASE_HOST = 'localhost' DATABASE_PORT = 5432 DATABASE_TYPE = 'postgres' DATABASE_LOGGING = false
- Jalankan server:
Server akan berjalan di http://localhost:3000.npm run start
Menjalankan Tes:
Untuk menjalankan unit tests:
npm run test
Dokumentasi API:
Dokumentasi API tersedia melalui Swagger:
Kunjungi http://localhost:3000/api-docs untuk melihat Swagger UI.
Import Koleksi Postman:
Sebuah koleksi Postman disediakan untuk pengujian API:
- Buka Postman.
- Klik Import dan pilih file JSON mentah yang disediakan di file
postman_collection.json
. - Anda sekarang dapat menggunakan koleksi tersebut untuk menguji endpoint API.
Struktur Proyek:
- controllers/: Berisi logika penanganan rute.
- services/: Berisi logika bisnis.
- models/: Mendefinisikan model database.
- repositories/: Menangani logika akses data.
- routes/: Mendefinisikan rute API.
- tests/: Berisi unit tests.
Source Code :
Untuk informasi lebih lanjut tentang proyek ini atau untuk berdiskusi tentang kolaborasi proyek, silakan hubungi saya atau kunjungi website saya.
: