From 7dec7188ba980024ac23df7d6852f95bf938aa63 Mon Sep 17 00:00:00 2001 From: fuadkleb Date: Sat, 9 Nov 2024 23:08:24 +0700 Subject: [PATCH 1/4] feat(docker): add docker support and docker compose for running development --- .dockerignore | 4 + .gitignore | 2 + Dockerfile | 34 + docker-compose.yml | 49 + entrypoint.sh | 47 + install/senayan_ddl.sql | 2122 +++++++++++++++++++++++++++++++++++++++ 6 files changed, 2258 insertions(+) create mode 100644 .dockerignore create mode 100644 Dockerfile create mode 100644 docker-compose.yml create mode 100644 entrypoint.sh create mode 100644 install/senayan_ddl.sql diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..22f546bb --- /dev/null +++ b/.dockerignore @@ -0,0 +1,4 @@ +.github +.gitignore +docker-compose.yml +Dockerfile diff --git a/.gitignore b/.gitignore index ebaad5c8..1296a7ea 100755 --- a/.gitignore +++ b/.gitignore @@ -53,3 +53,5 @@ config/database.php config/captcha.php config/env.php tarsius + +.env diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 00000000..25a9c672 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,34 @@ +FROM php:8.3.13-apache + +RUN apt-get update \ + && apt-get install -y libicu-dev libxml2-dev libzip-dev libpng-dev libonig-dev libjpeg62-turbo libjpeg62-turbo-dev libfreetype6-dev \ + && docker-php-ext-install intl xml xmlwriter gettext mbstring zip mysqli pdo_mysql \ + && docker-php-ext-enable intl xml xmlwriter gettext mbstring zip mysqli pdo_mysql \ + && docker-php-ext-install -j$(nproc) iconv \ + && docker-php-ext-configure gd --with-freetype --with-jpeg \ + && docker-php-ext-install -j$(nproc) gd \ + && docker-php-ext-enable gd + +RUN a2enmod rewrite + +RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer + +WORKDIR /var/www/html + +COPY . /var/www/html + +RUN composer install + +RUN chown -R www-data:www-data /var/www/html/files +RUN chown -R www-data:www-data /var/www/html/images +RUN chown -R www-data:www-data /var/www/html/repository + +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +EXPOSE 80 + +ENTRYPOINT ["/entrypoint.sh"] + +CMD ["apache2-foreground"] + diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 00000000..61dc0983 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,49 @@ +version: "3" + +services: + slims: + container_name: slims + build: + context: . + dockerfile: Dockerfile + environment: + - ENV=production + - DB_HOST=db + - DB_PORT=3306 + - DB_USER=root + - DB_PASS=Pass123 + - DB_NAME=senayan + volumes: + - appfiles:/var/www/html/files + - appimages:/var/www/html/images + - apprepo:/var/www/html/repository + ports: + - "8881:80" + networks: + - proxy + depends_on: + - db + + db: + image: mariadb:lts + container_name: db + ports: + - "3306:3306" + volumes: + - ./install/senayan_ddl.sql:/docker-entrypoint-initdb.d/init.sql + - dbdata:/var/lib/mysql + environment: + - MARIADB_ROOT_PASSWORD=Pass123 + - MARIADB_DATABASE=senayan + networks: + - proxy + +networks: + proxy: + driver: bridge + +volumes: + dbdata: + appfiles: + appimages: + apprepo: diff --git a/entrypoint.sh b/entrypoint.sh new file mode 100644 index 00000000..293c3f71 --- /dev/null +++ b/entrypoint.sh @@ -0,0 +1,47 @@ +#!/bin/sh + +# Write environment variables to env.php +cat </var/www/html/config/env.php +/var/www/html/config/database.php + 'SLiMS', + 'proxy' => false, + 'nodes' => [ + 'SLiMS' => [ + 'host' => '${DB_HOST}', + 'database' => '${DB_NAME}', + 'port' => '${DB_PORT}', + 'username' => '${DB_USER}', + 'password' => '${DB_PASS}', + 'options' => [ + 'storage_engine' => 'MyISAM' + ] + ] + ] +]; +EOF + +echo "PHP configuration file created: /var/www/html/config/database.php" +cat /var/www/html/config/database.php + +# Start the PHP application +exec "$@" diff --git a/install/senayan_ddl.sql b/install/senayan_ddl.sql new file mode 100644 index 00000000..c30a7baf --- /dev/null +++ b/install/senayan_ddl.sql @@ -0,0 +1,2122 @@ +-- SENAYAN Library Automation +-- Version 9.6.1 (Bulian) +-- Core database structure + + + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `ekatalogperpus_ppsdm` +-- + +-- -------------------------------------------------------- + +-- +-- Table structure for table `backup_log` +-- + +CREATE TABLE `backup_log` ( + `backup_log_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL DEFAULT 0, + `backup_time` datetime NOT NULL, + `backup_file` text DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio` +-- + +CREATE TABLE `biblio` ( + `biblio_id` int(11) NOT NULL, + `gmd_id` int(3) DEFAULT NULL, + `title` text NOT NULL, + `sor` varchar(200) DEFAULT NULL, + `edition` varchar(50) DEFAULT NULL, + `isbn_issn` varchar(32) DEFAULT NULL, + `publisher_id` int(11) DEFAULT NULL, + `publish_year` varchar(20) DEFAULT NULL, + `collation` varchar(100) DEFAULT NULL, + `series_title` varchar(200) DEFAULT NULL, + `call_number` varchar(50) DEFAULT NULL, + `language_id` char(5) DEFAULT 'en', + `source` varchar(3) DEFAULT NULL, + `publish_place_id` int(11) DEFAULT NULL, + `classification` varchar(40) DEFAULT NULL, + `notes` text DEFAULT NULL, + `image` varchar(100) DEFAULT NULL, + `file_att` varchar(255) DEFAULT NULL, + `opac_hide` smallint(1) DEFAULT 0, + `promoted` smallint(1) DEFAULT 0, + `labels` text DEFAULT NULL, + `frequency_id` int(11) NOT NULL DEFAULT 0, + `spec_detail_info` text DEFAULT NULL, + `content_type_id` int(11) DEFAULT NULL, + `media_type_id` int(11) DEFAULT NULL, + `carrier_type_id` int(11) DEFAULT NULL, + `input_date` datetime DEFAULT NULL, + `last_update` datetime DEFAULT NULL, + `uid` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_attachment` +-- + +CREATE TABLE `biblio_attachment` ( + `biblio_id` int(11) NOT NULL, + `file_id` int(11) NOT NULL, + `placement` enum('link','popup','embed') DEFAULT NULL, + `access_type` enum('public','private') NOT NULL, + `access_limit` text DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_author` +-- + +CREATE TABLE `biblio_author` ( + `biblio_id` int(11) NOT NULL DEFAULT 0, + `author_id` int(11) NOT NULL DEFAULT 0, + `level` int(1) NOT NULL DEFAULT 1 +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_custom` +-- + +CREATE TABLE `biblio_custom` ( + `biblio_id` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='one to one relation with real biblio table'; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_log` +-- + +CREATE TABLE `biblio_log` ( + `biblio_log_id` int(11) NOT NULL, + `biblio_id` int(11) NOT NULL, + `user_id` int(11) NOT NULL, + `realname` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `title` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `ip` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `action` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `affectedrow` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `rawdata` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `additional_information` text CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL, + `date` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_mark` +-- + +CREATE TABLE `biblio_mark` ( + `id` varchar(32) NOT NULL, + `member_id` varchar(20) NOT NULL, + `biblio_id` int(11) NOT NULL, + `created_at` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_relation` +-- + +CREATE TABLE `biblio_relation` ( + `biblio_id` int(11) NOT NULL DEFAULT 0, + `rel_biblio_id` int(11) NOT NULL DEFAULT 0, + `rel_type` int(1) DEFAULT 1 +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `biblio_topic` +-- + +CREATE TABLE `biblio_topic` ( + `biblio_id` int(11) NOT NULL DEFAULT 0, + `topic_id` int(11) NOT NULL DEFAULT 0, + `level` int(1) NOT NULL DEFAULT 1 +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `cache` +-- + +CREATE TABLE `cache` ( + `name` varchar(64) NOT NULL, + `contents` text NOT NULL, + `created_at` datetime NOT NULL, + `updated_at` datetime NOT NULL, + `expired_at` datetime DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `comment` +-- + +CREATE TABLE `comment` ( + `comment_id` int(11) NOT NULL, + `biblio_id` int(11) NOT NULL, + `member_id` varchar(20) NOT NULL, + `comment` text NOT NULL, + `input_date` datetime DEFAULT NULL, + `last_update` datetime DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `content` +-- + +CREATE TABLE `content` ( + `content_id` int(11) NOT NULL, + `content_title` varchar(255) NOT NULL, + `content_desc` text NOT NULL, + `content_path` varchar(20) NOT NULL, + `is_news` smallint(1) DEFAULT NULL, + `is_draft` smallint(1) DEFAULT 0, + `publish_date` date DEFAULT NULL, + `input_date` datetime NOT NULL, + `last_update` datetime NOT NULL, + `content_ownpage` enum('1','2') NOT NULL DEFAULT '1' +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `content` +-- + +INSERT INTO `content` (`content_id`, `content_title`, `content_desc`, `content_path`, `is_news`, `is_draft`, `publish_date`, `input_date`, `last_update`, `content_ownpage`) VALUES +(1, 'Library Information', '

Contact Information

\r\n

Address :
Jenderal Sudirman Road, Senayan, Jakarta, Indonesia - Postal Code : 10270
Phone Number :
(021) 5711144
Fax Number :
(021) 5711144

\r\n

Opening Hours

\r\n

Monday - Friday :
Open : 08.00 AM
Break : 12.00 - 13.00 PM
Close : 20.00 PM
Saturday :
Open : 08.00 AM
Break : 12.00 - 13.00 PM
Close : 17.00 PM

\r\n

Collections

\r\n

We have many types of collections in our library, range from Fictions to Sciences Material, from printed material to digital collections such CD-ROM, CD, VCD and DVD. We also collect daily serials publications such as newspaper and also monthly serials such as magazines.

\r\n

Library Membership

\r\n

To be able to loan our library collections, you must first become library member. There is terms and conditions that you must obey.

', 'libinfo', NULL, 0, NULL, '2009-09-13 19:48:16', '2009-09-13 19:48:16', '1'), +(2, 'Help On Usage', '

Searching

\r\n

There are 2 methods available on searching library catalog. The first one is SIMPLE SEARCH, which is the simplest method on searching catalog. You just enter any keyword, either it containes in titles, author(s) names or subjects. You can supply more than one keywords in Simple Search method and it will expanding your search results.

\r\n

 

\r\n

ADVANCED SEARCH, lets you define keywords in more specific fields. If you want your keywords only contained in title field, then type your keyword in Title field and the system will limit its search within Title fields only, not in other fields. Location field lets you narrowing search results by specific location, so only collection that exists in selected location get fetched by system.

', 'help', NULL, 0, NULL, '2009-09-13 19:48:16', '2009-09-13 19:48:16', '1'), +(3, 'Welcome To Admin Page', '
\r\n
\r\n
\r\n

Bibliography

\r\n
\r\n
\r\n
The Bibliography module lets you manage your library bibliographical data. It also include collection items management to manage a copies of your library collection so it can be used in library circulation.
\r\n
\r\n
\r\n
\r\n

Circulation

\r\n
\r\n
\r\n
The Circulation module is used for doing library circulation transaction such as collection loans and return. In this module you can also create loan rules that will be used in loan transaction proccess.
\r\n
\r\n
\r\n
\r\n

Membership

\r\n
\r\n
\r\n
The Membership module lets you manage library members such adding, updating and also removing. You can also manage membership type in this module.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Stock Take

\r\n
\r\n
\r\n
The Stock Take module is the easy way to do Stock Opname for your library collections. Follow several steps that ease your pain in Stock Opname proccess.
\r\n
\r\n
\r\n
\r\n

Serial Control

\r\n
\r\n
\r\n
Serial Control module help you manage library\'s serial publication subscription. You can track issues for each subscription.
\r\n
\r\n
\r\n
\r\n

Reporting

\r\n
\r\n
\r\n
Reporting lets you view various type of reports regardings membership data, circulation data and bibliographic data. All compiled on-the-fly from current library database.
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n

Master File

\r\n
\r\n
\r\n
The Master File modules lets you manage referential data that will be used by another modules. It include Authority File management such as Authority, Subject/Topic List, GMD and other data.
\r\n
\r\n
\r\n
\r\n

System

\r\n
\r\n
\r\n
The System module is used to configure application globally, manage index, manage librarian, and also backup database.
\r\n
\r\n
\r\n
\r\n
', 'adminhome', NULL, 0, NULL, '2009-09-13 19:48:16', '2009-09-13 22:02:11', '1'), +(4, 'Homepage Info', '

Welcome To SLiMS Library Online Public Access Catalog (OPAC). Use OPAC to search collection in our library.

', 'headerinfo', NULL, 0, NULL, '2009-09-13 19:48:16', '2009-09-13 19:48:16', '1'), +(5, 'Tentang SLiMS', '

SLiMS adalah akronim dari Senayan Library Management System. Awalnya dikembangkan oleh Perpustakaan Kementerian Pendidikan Nasional untuk menggantikan Alice (http://www2.softlinkint.com). Tujuan utamanya agar Perpustakaan Kemdiknas mempunyai kebebasan untuk menggunakan, mempelajari, memodifikasi dan mendistribusikan perangkat lunak yang digunakan. SLiMS, maka dirilis dengan lisensi GPL dan sekarang pengembangan SLiMS dilakukan oleh komunitas penggunanya.

\r\n

Asal Mula

\r\n

Setelah beroperasi 50 tahun lebih, karena beberapa alasan Perpustakaan BC Indonesia yang telah selama bertahun-tahun menjadi andalan layanan BC di Indonesia harus ditutup. Pengelola BC Indonesia kemudian berinisiatif untuk menghibahkan pengelolaan aset perpustakaanya ke tangan institusi pemerintah. Dalam hal ini, institusi pemerintah yang dianggap sesuai bidangnya dan strategis tempatnya, adalah Departemen Pendidikan Nasional (Depdiknas). Yang dihibahkan tidak hanya koleksi, tetapi juga rak koleksi, hardware (server dan workstation) serta sistem termasuk untuk aplikasi manajemen administrasi perpustakaan (Alice).

\r\n

Seiring dengan berjalannya waktu, manajemen Perpustakaan Depdiknas mulai menghadapi beberapa kendala dalam penggunaan sistem Alice. Pertama, keterbatasan dalam menambahkan fitur-fitur baru. Antara lain: kebutuhan manajemen serial, meng-online-kan katalog di web dan kustomisasi report yang sering berubah-ubah kebutuhannya. Penambahan fitur jika harus meminta modul resmi dari developer Alice, berarti membutuhkan dana tambahan yang tidak kecil. Apalagi tidak ada distributor resminya di Indonesia sehingga harus mengharapkan support dari Inggris. Ditambah lagi beberapa persyaratan yang membutuhkan infrastruktur biaya mahal seperti dedicated public IP agar bisa meng-online-kan Alice di web.

Saat itu untuk mengatasi sebagian kebutuhan (utamanya kustomisasi report), dilakukan dengan ujicoba mengakses langsung database yang disimpan dalam format DBase. Terkadang berhasil terkadang tidak karena struktur datanya proprietary dan kompleks serta jumlah rekodnya banyak. Untuk mempelajari struktur database, dicoba melakukan kontak via email ke developer Alice. Tetapi tidak ada respon sama sekali. Disini muncul masalah kedua. Sulitnya mempelajari lebih mendalam cara kerja perangkat lunak Alice. Karena Alice merupakan sistem proprietary yang serba tertutup, segala sesuatunya sangat tergantung vendor. Dibutuhkan sejumlah uang untuk mendapatkan layanan resmi untuk kustomisasi.

Perpustakaan Depdiknas salah satu tupoksinya adalah melakukan koordinasi pengelolaan perpustakaan unit kerja dibawah lingkungan Depdiknas. Dalam implementasinya, seringkali muncul kebutuhan untuk bisa mendistribusikan perangkat lunak sistem perpustakaan ke berbagai unit kerja tersebut. Disini masalah ketiga: sulit (atau tidak mungkin) untuk melakukan redistribusi sistem Alice. Alice merupakan perangkat lunak yang secara lisensi tidak memungkinkan diredistribusi oleh pengelola Perpustakaan Depdiknas secara bebas. Semuanya harus ijin dan membutuhkan biaya.

November 2006, perpustakaan dihadapkan oleh sebuah masalah mendasar. Sistem Alice tiba-tiba tidak bisa digunakan. Ternyata Alice yang digunakan selama ini diimplementasikan dengan sistem sewa. Pantas saja biayanya relatif murah. Tiap tahun pengguna harus membayar kembali untuk memperpanjang masa sewa pakainya. Tetapi yang mengkhawatirkan adalah fakta bahwa perpustakaan harus menyimpan semua informasi penting dan kritikal di sebuah sistem yang tidak pernah dimiliki. Yang kalau lupa atau tidak mau membayar sewa lagi, hilanglah akses terhadap data kita sendiri. Konyol sekali. Itu sama saja dengan bunuh diri kalau masih tergantung dengan sistem berlisensi seperti itu.

Akhirnya pengelola Perpustakaan Depdiknas me-review kembali penggunaan sistem Alice di perpustakaan Depdiknas. Beberapa poin pentingnya antara lain:
•    Alice memang handal (reliable), tapi punya banyak keterbatasan. Biaya sewanya memang relatif murah, tetapi kalau membutuhkan support tambahan, baik sederhana ataupun kompleks, sangat tergantung dengan developer Alice yang berpusat di Inggris. Butuh biaya yang kalau di total juga tidak murah.
•    Model lisensi proprietary yang digunakan developer Alice tidak cocok dengan kondisi kebanyakan perpustakaan di Indonesia. Padahal pengelola Perpustakaan Depdiknas sebagai koordinator banyak perpustakaan di lingkungan Depdiknas, punya kepentingan untuk bisa dengan bebas melakukan banyak hal terhadap software yang digunakan.
•    Menyimpan data penting dan kritikal untuk operasional perpustakaan di suatu software yang proprietary dan menggunakan sistem sewa, dianggap sesuatu yang konyol dan mengancam independensi dan keberlangsungan perpustakaan itu sendiri.
•    Alice berjalan diatas sistem operasi Windows yang juga proprietary padahal pengelola Perpustakaan Depdiknas ingin beralih menggunakan Sistem Operasi open source (seperti GNU/Linux dan FreeBSD).
•    Masalah devisa negara yang terbuang untuk membayar software yang tidak pernah dimiliki.
•    Intinya: pengelola Perpustakaan Depdiknas ingin menggunakan software yang memberikan dan menjamin kebebasan untuk: menggunakan, mempelajari, memodifikasi dan melakukan redistribusi. Lisensi Alice tidak memungkinkan untuk itu.

Setelah memutuskan untuk hijrah menggunakan sistem yang lain, maka langkah berikutnya adalah mencari sistem yang ada untuk digunakan atau mengembangkan sendiri sistem yang dibutuhkan. Beberapa pertimbangan yang harus dipenuhi:
•    Dirilis dibawah lisensi yang menjamin kebebasan untuk: menggunakan, mempelajari, memodifikasi dan melakukan redistribusi. Model lisensi open source (www.openosurce.org) dianggap sebagai model yang paling ideal dan sesuai.
•    Teknologi yang digunakan untuk membangun sistem juga harus berlisensi open source.
•    Teknologi yang digunakan haruslah teknologi yang relatif mudah dipelajari oleh pengelola perpustakaan Depdiknas yang berlatarbelakang pendidiknas pustakawan, seperti PHP (scripting language) dan MySQL (database). Jika tidak menguasai sisi teknis teknologi, maka akan terjebak kembali terhadap ketergantungan pada developer.

Langkah berikutnya adalah melakukan banding software sistem perpustakaan open source yang bisa diperoleh di internet. Beberapa software yang dicoba antara lain: phpMyLibrary, OpenBiblio, KOHA, EverGreen. Pengelola perpustakaan Depdiknas merasa tidak cocok dengan software yang ada, dengan beberapa alasan:
•    Desain aplikasi dan database yang tidak baik atau kurang menerapkan secara serius prinsip-prinsip pengembangan aplikasi dan database yang baik sesuai dengan teori yang ada (PHPMyLibrary, OpenBiblio).
•    Menggunakan teknologi yang sulit dikuasai oleh pengelola perpustakaan Depdiknas (KOHA dan EverGreen dikembangkan menggunakan Perl dan C++ Language yang relatif lebih sulit dipelajari).
•    Beberapa sudah tidak aktif atau lama sekali tidak di rilis versi terbarunya (PHPMyLibrary dan OpenBiblio).

Karena tidak menemukan sistem yang dibutuhkan, maka diputuskan untuk mengembangkan sendiri aplikasi sistem perpustakaan yang dibutuhkan. Dalam dunia pengembangan software, salah satu best practice-nya adalah memberikan nama kode (codename) pengembangan. Nama kode berbeda dengan nama aplikasinya itu sendiri. Nama kode biasanya berbeda-beda tiap versi. Misalnya kode nama “Hardy Heron” untuk Ubuntu Linux 8.04 dan “Jaunty Jackalope” untuk Ubuntu Linux 9.04. Pengelola perpustakaan Depdiknas Untuk versi awal (1.0) aplikasi yang akan dikembangkan, memberikan nama kode “Senayan”. Alasannya sederhana, karena awal dikembangkan di perpustakaan Depdiknas yang berlokasi di Senayan. Apalagi Perpustakaan Depdiknas mempunyai brand sebagai library@senayan. Belakangan karena dirasa nama “Senayan” dirasa cocok dan punya nilai marketing yang bagus, maka nama “Senayan” dijadikan nama resmi aplikasi sistem perpustakaan yang dikembangkan.

Mengembangkan Senayan

Sebelum mulai mengembangkan Senayan, ada beberapa keputusan desain aplikasi yang harus dibuat. Aspek desain ini penting diantaranya untuk pengambilankeputusan dari berbagai masukan yang datang dari komunitas. Antara lain:

Pertama,  Senayan adalah aplikasi untuk kebutuhan administrasi dan konten perpustakaan (Library Automation System). Senayan didesain untuk kebutuhan skala menengah maupun besar. Cocok untuk perpustakaan yang memiliki koleksi, anggota dan staf banyak di lingkungan jaringan, baik itu lokal (intranet) dan internet.

Kedua, Senayan dibangun dengan memperhatikan best practice dalam pengembangan software seperti dalam hal penulisan source code, dokumentasi, dan desain database.

Ketiga, Senayan dirancang untuk compliant dengan standar pengelolaan koleksi di perpustakaan. Untuk standar pengatalogan minimal memenuhi syarat AACR 2 level 2 (Anglo-American Cataloging Rules). Kebutuhan untuk kesesuaian dengan standar di perpustakaan terus berkembang dan pengelola perpustakaan Depdiknas dan developer Senayan berkomitmen untuk terus mengembangkan Senayan agar mengikuti standar-standar tersebut.

Keempat, Senayan didesain agar bisa juga menjadi middleware bagi aplikasi lain untuk menggunakan data yang ada didalam Senayan. Untuk itu Senayan akan menyediakan API (application programming Interface) yang berbasis web service.

Kelima, Senayan merupakan aplikasi yang cross-platform, baik dari sisi aplikasinya itu sendiri dan akses terhadap aplikasi. Untuk itu basis yang paling tepat ada basis web.

Keenam, teknologi yang digunakan untuk membangun Senayan, haruslah terbukti bisa diinstall di banyak platform sistem operasi, berlisensi open source dan mudah dipelajari oleh pengelola perpustakaan Depdiknas. Diputuskan untuk menggunakan PHP (www.php.net) untuk web scripting languange dan MySQL (www.mysql.com) untuk server database.

Ketujuh, diputuskan untuk mengembangkan library PHP sendiri yang didesain spesifik untuk kebutuhan membangun library automation system. Tidak menggunakan library PHP yang sudah terkenal seperti PEAR (pear.php.net) karena alasan penguasaan terhadap teknologi dan kesederhanaan. Library tersebut diberinama “simbio”.

Kedelapan, untuk mempercepat proses pengembangan, beberapa modul atau fungsi yang dibutuhkan yang dirasa terlalu lama dan rumit untuk dikembangkan sendiri, akan menggunakan software open source yang berlisensi open source juga. Misalnya: flowplayer untuk dukungan multimedia, jQuery untuk dukungan AJAX (Asynchronous Javascript and XML), genbarcode untuk dukungan pembuatan barcode, PHPThumb untuk dukungan generate image on-the-fly, tinyMCE untuk web-based text editor, dan lain-lain.

Kesembilan, untuk menjaga spirit open source, proses pengembangan Senayan dilakukan dengan infrastruktur yang berbasis open source. Misalnya: server web menggunakan Apache, server produksi menggunakan OS Linux Centos dan OpenSuse, para developer melakukan pengembangan dengan OS Ubuntu Linux, manajemen source code menggunakan software git, dan lain-lain.

Kesepuluh, Senayan dirilis ke masyarakat umum dengan lisensi GNU/GPL versi 3 yang menjamin kebebasan penggunanya untuk mempelajari, menggunakan, memodifikasi dan redistribusi Senayan.

Kesebelas, para developer dan pengelola perpustakaan Depdiknas berkomitmen untuk terus mengembangkan Senayan dan menjadikannya salah satu contoh software perpustakaan yang open source, berbasis di indonesia dan menjadi salah satu contoh bagi model pengembangan open source yang terbukti berjalan dengan baik.

Keduabelas, model pengembangan Senayan adalah open source yang artinya setiap orang dipersilahkan memberikan kontribusinya. Baik dari sisi pemrogaman, template, dokumentasi, dan lain-lain. Tentu saja ada mekanisme mana kontribusi yang bagus untuk dimasukkan dalam rilis resmi, mana yang tidak. Mengacu ke dokumen … (TAMBAHKAN DENGAN TULISAN ERIC S RAYMOND)

Model pengembangan senayan

Pengembangan Senayan awalnya diinisiasi oleh pengelola Perpustakaan Depdiknas. Tetapi sekarang komunitas pengembang Senayan (Senayan Developer Community) yang lebih banyak mengambil peran dalam mengembangkan Senayan. Beberapa hal dibawah ini merupakan kultur yang dibangun dalam mengembangkan Senayan:
1.    Meritokrasi. Siapa saja bisa berkontribusi. Mereka yang banyak memberikan kontribusi, akan mendapatkan privilege lebih dibandingkan yang lain.
2.    Minimal punya concern terhadap pengembangan perpustakaan. Contoh lain: berlatar belakang pendidikan ilmu perpustakaan dan informasi, bekerja di perpustakaan, mengelola perpustakaan, dan lain-lain. Diharapkan dengan kondisi ini, sense of librarianship melekat di tiap developer/pengguna Senayan. Sejauh ini, semua developer senayan merupakan pustakawan atau berlatarbelakang pendidikan kepustakawanan (Information and Librarianship).
3.    Release early, release often, and listen to your customer. Release early artinya setiap perbaikan dan penambahan fitur, secepat mungkin dirilis ke publik. Diharapkan bugs yang ada, bisa cepat ditemukan oleh komunitas, dilaporkan ke developer, untuk kemudian dirilis perbaikannya. Release often, artinya sesering mungkin memberikan update perbaikan bugs dan penambahan fitur. Ini “memaksa” developer Senayan untuk terus kreatif menambahkan fitur Senayan. Release often juga membuat pengguna berkeyakinan bahwa Senayan punya sustainability yang baik dan terus aktif dikembangkan. Selain itu, release often juga mempunyai dampak pemasaran. Pengguna dan calon pengguna, selalu diingatkan tentang keberadaan Senayan. Tentunya dengan cara yang elegan, yaitu rilis-rilis Senayan. Sejak dirilis ke publi pertama kali November 2007 sampai Juli 2009 (kurang lebih 20 bulan) telah dirilis 18 rilis resmi Senayan. Listen to your customer. Developer Senayan selalu berusaha mengakomodasi kebutuhan pengguna baik yang masuk melalui report di mailing list, ataupun melalui bugs tracking system. Tentu tidak semua masukan diakomodasi, harus disesuaikan dengan desain dan roadmap pengembangan Senayan.
4.    Dokumentasi. Developer Senayan meyakini pentingnya dokumentasi yang baik dalam mensukseskan implementasi Senayan dibanyak tempat. Karena itu pengembang Senayan mempunyai tim khusus yang bertanggungjawab yang mengembangkan dokumentasi Senayan agar terus uo-to-date mengikuti rilis terbaru.
5.    Agar ada percepatan dalam pengembangan dan untuk mengakrabkan antar pengembang Senayan, minimal setahun sekali diadakan Senayan Developers Day yang mengumpulkan para developer Senayan dari berbagai kota, dan melakukan coding bersama-sama.
Fitur Senayan
Sebagai sebuah Sistem Automasi Perpustakaan yang terintergrasi, modul-modul yang telah terdapat di SENAYAN adalah sebagai berikut:
Modul Pengatalogan (Cataloging Module)
1)    Compliance dengan standar AACR2 (Anglo-American Cataloging Rules).
2)    Fitur untuk membuat, mengedit, dan menghapus data bibliografi sesuai dengan standar deskripsi bibliografi AACR2 level ke dua.
3)    Mendukung pengelolaan koleksi dalam berbagai macam format seperti monograph, terbitan berseri, audio visual, dsb.
4)    Mendukung penyimpanan data bibliografi dari situs di Internet.
5)    Mendukung penggunaan Barcode.
6)    Manajemen item koleksi untuk dokumen dengan banyak kopi dan format yang berbeda.
7)    Mendukung format XML untuk pertukaran data dengan menggunakan standar metadata MODS (Metadata Object Description Schema).
8)    Pencetakan Barcode item/kopi koleksi Built-in.
9)    Pencetakan Label Punggung koleksi Built-in.
10)    Pengambilan data katalog melalui protokol Z3950 ke database koleksi Library of Congress.
11)    Pengelolaan koleksi yang hilang, dalam perbaikan, dan rusak serta pencatatan statusnya untuk dilakukan pergantian/perbaikan terhadap koleksi.
12)    Daftar kendali untuk pengarang (baik pengarang orang, badan/lembaga, dan pertemuan) sebagai standar konsistensi penuliasn
13)    Pengaturan hak akses pengelolaan data bibliografi hanya untuk staf yang berhak.

Modul Penelusuran (OPAC/Online Public Access catalog Module)
1)    Pencarian sederhana.
2)    Pencarian tingkat lanjut (Advanced).
3)    Dukungan penggunaan Boolean\'s Logic dan implementasi CQL (Common Query Language).
4)    OPAC Web Services berbasis XML.
5)    Mendukung akses OPAC melalui peralatan portabel (mobile device)
6)    Menampilkan informasi lengkap tetang status koleksi di perpustakaan, tanggal pengembalian, dan pemesanan item/koleksi
7)    Detil informasi juga menampilkan gambar sampul buku, lampiran dalam format elektronik yang tersedia (jika ada) serta fasilitas menampilkan koleksi audio dan visual.
8)    Menyediakan hyperlink tambahan untuk pencarian lanjutan berdasarkan penulis, dan subjek.

Modul Sirkulasi (Circulation Module)
1)    Mampu memproses peminjaman dan pengembalian koleksi secara efisien, efektif dan aman.
2)    Mendukung fitur reservasi koleksi yang sedang dipinjam, termasuk reminder/pemberitahuan-nya.
3)    Mendukung fitur manajemen denda. Dilengkapi fleksibilitas untuk pemakai membayar denda secara cicilan.
4)    Mendukung fitur reminder untuk berbagai keperluan seperti melakukan black list terhadap pemakai yang bermasalah atau habis keanggotaannya.
5)    Mendukung fitur pengkalenderan (calendaring) untuk diintegrasikan dengan penghitungan masa peminjaman, denda, dan lain-lain.
6)    Memungkinkan penentuan hari-hari libur non-standar yang spesifik.
7)    Dukungan terhadap ragam jenis tipe pemakai dengan masa pinjam beragam untuk berbagai jenis keanggotaan.
8)    Menyimpan histori peminjaman anggota.
9)    Mendukung pembuatan peraturan peminjaman yang sangat rinci dengan mengkombinasikan parameter keanggotaan, jenis koleksi, dan gmd selain aturan peminjaman standar berdasarkan jenis keanggotaan

Modul Manajemen Keanggotaan (Membership Management Module)
1)    Memungkinkan beragam tipe pemakai dengan ragam jenis kategori peminjaman, ragam jenis keanggotaan dan pembedaan setiap layanan sirkulasi dalam jumlah koleksi serta lama peminjaman untuk jenis koleksi untuk setiap jenis/kategori.
2)    Dukungan terhadap input menggunakan barcode reader
3)    Memungkinkan untuk menyimpan informasi preferensi pemakai atau subject interest.
4)    Memungkinkan untuk menyimpan informasi tambahan untuk keperluan reminder pada saat transaksi.
5)    Memungkinkan menyimpan informasi detail pemakai yang lebih lengkap.
6)    Pencarian informasi anggota minimal berdasarkan nomor dan nama anggota.
7)    Pembuatan kartu anggota yang dilengkapi dengan barcode untuk transaksi peminjaman.

Modul Inventarisasi Koleksi (Stocktaking Module)
1)    Proses inventarisasi koleksi bisa dilakukan secara bertahap dan parsial tanpa harus menutup layanan perpustakaan secara keseluruhan.
2)    Proses inventarisasi bisa dilakukan secara efisien dan efektif.
3)    Terdapat pilihan untuk menghapus data secara otomatis pada saat akhir proses inventarisasi terhadap koleksi yang dianggap hilang.

Modul Statistik/Pelaporan (Report Module)
1)    Meliputi pelaporan untuk semua modul-modul yang tersedia di Senayan.
2)    Laporan Judul.
3)    Laporan Items/Kopi koleksi.
4)    Laporan Keanggotaan.
5)    Laporan jumlah koleksi berdasarkan klasifikasi.
6)    Laporan Keterlambatan.
7)    Berbagai macam statistik seperti statistik koleksi, peminjaman, keanggotaan, keterpakaian koleksi.
8)    Tampilan laporan yang sudah didesain printer-friendly, sehingga memudahkan untuk dicetak.
9)    Filter data yang lengkap untuk setiap laporan.
10)    API untuk pelaporan yang relatif mudah dipelajari untuk membuat custom report baru.

Modul Manajemen Terbitan Berseri (Serial Control)
1)    Manajemen data langganan.
2)    Manajemen data Kardex.
3)    Manajemen tracking data terbitan yang akan terbit dan yang sudah ada.
4)    Memungkinkan tracking data terbitan berseri yang jadwal terbitnya tidak teratur (pengaturan yang fleksibel).

Modul Lain-lain
1)    Dukungan antar muka yang multi bahasa (internasionalisasi) dengan Gettext.
2)    Dukungan terhadap penggunaan huruf bukan latin untuk pengisian data dan pencarian.

Roadmap Pengembangan Senayan
SENAYAN akan terus dikembangkan oleh para pengembangnya beserta komunitas pengguna SENAYAN lainnya. Berikut adalah Roadmap pengembangan SENAYAN ke depannya:

Pengembangan aplikasi:
1.    Kompatibilitas dengan MARC dan standar pertukaran data yang komplit. Contoh implementasinya:
•    Memastikan bahwa format data bibliografi kompatibel dengan MARC secara lebih baik (minimal MARC light).
•    Dukungan terhadap RFID.
•    Fitur untuk impor / ekspor rekod dari The Online Computer Library Centre (OCLC), Research Libraries Information Network (RLIN), vendor sistem lain yang compliant dengan MARC.
•    Validasi data ISBN menggunakan modulus seven.
•    Dukungan terhadap standar di perpustakaan, seperti: Library of Congress Subject Headings, Library of Congress Classification, ALA filing rules, International Standard Bibliographic Description, ANSI Standard for Bibliographic Information Exchange on magnetic tape, Common communication format (ISO 2709).
2.    Katalog induk/bersama (union catalog)
3.    Implementasi Thesaurus. Contoh implementasinya:
•    Pemanfaatan tesaurus untuk proses pengatalogan.
•    Pemanfaatan tesaurus untuk proses pencarian, misalnya memberikan advis pencarian menggunakan knowledge base yang dibangun dengan sistem tesaurus.
4.    Implementasi Library 2.0. Contoh implementasinya:
•    User bisa login dan mempunyai halaman personalisasi.
•    User bisa melakukan reservasi koleksi dan memperpanjang peminjaman.
•    User bisa melakukan komunikasi dengan pustakawan via messaging system.
•    User bisa melakukan tagging, rekomendasi koleksi dan menyimpannya didalam daftar koleksi favoritnya.
•    User bisa memberikan komentar terhadap koleksi.
•    Pustakawan bisa memasukkan preferensi pemakai didalam data keanggotaan. Preferensi tersebut bisa dimanfaatkan salah satunya untuk men-generate semacam daftar koleksi terpilih untuk dicetak atau ditampilkan ketika user login.
5.    Peningkatan dukungan manajemen konten digital dan entri analitikal

Pengembangan basis komunitas pengguna:
•    Membangun komunitas pengguna di berbagai kota
•    Mengadakan Senayan Developers Day untuk silaturahmi antar developer Senayan, update dokumentasi, penambahan fitur baru dan bug fixing dan mencari bibit pengembang yang baru.
•    Workshop/Seminar Nasional Tahunan
•    Jam Sessions rutin setiap 3 bulan

', 'about_slims', NULL, 0, NULL, '2010-08-28 23:29:55', '2010-11-12 18:21:01', '1'), +(6, 'Modul yang Tersedia', '

Sebagai sebuah Sistem Automasi Perpustakaan yang terintergrasi, modul-modul yang telah terdapat di SENAYAN antara lain: pengatalogan/bibliografi, keanggotaan, sirkulasi, masterfile, stock opname (inventarisasi koleksi), pelaporan/reporting, manajemen kontrol serial, digital library, dan lain-lain.

\r\n

Modul Pengatalogan (Cataloging Module)
1)    Compliance dengan standar AACR2 (Anglo-American Cataloging Rules).
2)    Fitur untuk membuat, mengedit, dan menghapus data bibliografi sesuai dengan standar deskripsi bibliografi AACR2 level ke dua.
3)    Mendukung pengelolaan koleksi dalam berbagai macam format seperti monograph, terbitan berseri, audio visual, dsb.
4)    Mendukung penyimpanan data bibliografi dari situs di Internet.
5)    Mendukung penggunaan Barcode.
6)    Manajemen item koleksi untuk dokumen dengan banyak kopi dan format yang berbeda.
7)    Mendukung format XML untuk pertukaran data dengan menggunakan standar metadata MODS (Metadata Object Description Schema).
8)    Pencetakan Barcode item/kopi koleksi Built-in.
9)    Pencetakan Label Punggung koleksi Built-in.
10)    Pengambilan data katalog melalui protokol Z3950 ke database koleksi Library of Congress.
11)    Pengelolaan koleksi yang hilang, dalam perbaikan, dan rusak serta pencatatan statusnya untuk dilakukan pergantian/perbaikan terhadap koleksi.
12)    Daftar kendali untuk pengarang (baik pengarang orang, badan/lembaga, dan pertemuan) sebagai standar konsistensi penuliasn
13)    Pengaturan hak akses pengelolaan data bibliografi hanya untuk staf yang berhak.

Modul Penelusuran (OPAC/Online Public Access catalog Module)
1)    Pencarian sederhana.
2)    Pencarian tingkat lanjut (Advanced).
3)    Dukungan penggunaan Boolean\'s Logic dan implementasi CQL (Common Query Language).
4)    OPAC Web Services berbasis XML.
5)    Mendukung akses OPAC melalui peralatan portabel (mobile device)
6)    Menampilkan informasi lengkap tetang status koleksi di perpustakaan, tanggal pengembalian, dan pemesanan item/koleksi
7)    Detil informasi juga menampilkan gambar sampul buku, lampiran dalam format elektronik yang tersedia (jika ada) serta fasilitas menampilkan koleksi audio dan visual.
8)    Menyediakan hyperlink tambahan untuk pencarian lanjutan berdasarkan penulis, dan subjek.

Modul Sirkulasi (Circulation Module)
1)    Mampu memproses peminjaman dan pengembalian koleksi secara efisien, efektif dan aman.
2)    Mendukung fitur reservasi koleksi yang sedang dipinjam, termasuk reminder/pemberitahuan-nya.
3)    Mendukung fitur manajemen denda. Dilengkapi fleksibilitas untuk pemakai membayar denda secara cicilan.
4)    Mendukung fitur reminder untuk berbagai keperluan seperti melakukan black list terhadap pemakai yang bermasalah atau habis keanggotaannya.
5)    Mendukung fitur pengkalenderan (calendaring) untuk diintegrasikan dengan penghitungan masa peminjaman, denda, dan lain-lain.
6)    Memungkinkan penentuan hari-hari libur non-standar yang spesifik.
7)    Dukungan terhadap ragam jenis tipe pemakai dengan masa pinjam beragam untuk berbagai jenis keanggotaan.
8)    Menyimpan histori peminjaman anggota.
9)    Mendukung pembuatan peraturan peminjaman yang sangat rinci dengan mengkombinasikan parameter keanggotaan, jenis koleksi, dan gmd selain aturan peminjaman standar berdasarkan jenis keanggotaan

Modul Manajemen Keanggotaan (Membership Management Module)
1)    Memungkinkan beragam tipe pemakai dengan ragam jenis kategori peminjaman, ragam jenis keanggotaan dan pembedaan setiap layanan sirkulasi dalam jumlah koleksi serta lama peminjaman untuk jenis koleksi untuk setiap jenis/kategori.
2)    Dukungan terhadap input menggunakan barcode reader
3)    Memungkinkan untuk menyimpan informasi preferensi pemakai atau subject interest.
4)    Memungkinkan untuk menyimpan informasi tambahan untuk keperluan reminder pada saat transaksi.
5)    Memungkinkan menyimpan informasi detail pemakai yang lebih lengkap.
6)    Pencarian informasi anggota minimal berdasarkan nomor dan nama anggota.
7)    Pembuatan kartu anggota yang dilengkapi dengan barcode untuk transaksi peminjaman.

Modul Inventarisasi Koleksi (Stocktaking Module)
1)    Proses inventarisasi koleksi bisa dilakukan secara bertahap dan parsial tanpa harus menutup layanan perpustakaan secara keseluruhan.
2)    Proses inventarisasi bisa dilakukan secara efisien dan efektif.
3)    Terdapat pilihan untuk menghapus data secara otomatis pada saat akhir proses inventarisasi terhadap koleksi yang dianggap hilang.

Modul Statistik/Pelaporan (Report Module)
1)    Meliputi pelaporan untuk semua modul-modul yang tersedia di Senayan.
2)    Laporan Judul.
3)    Laporan Items/Kopi koleksi.
4)    Laporan Keanggotaan.
5)    Laporan jumlah koleksi berdasarkan klasifikasi.
6)    Laporan Keterlambatan.
7)    Berbagai macam statistik seperti statistik koleksi, peminjaman, keanggotaan, keterpakaian koleksi.
8)    Tampilan laporan yang sudah didesain printer-friendly, sehingga memudahkan untuk dicetak.
9)    Filter data yang lengkap untuk setiap laporan.
10)    API untuk pelaporan yang relatif mudah dipelajari untuk membuat custom report baru.

Modul Manajemen Terbitan Berseri (Serial Control)
1)    Manajemen data langganan.
2)    Manajemen data Kardex.
3)    Manajemen tracking data terbitan yang akan terbit dan yang sudah ada.
4)    Memungkinkan tracking data terbitan berseri yang jadwal terbitnya tidak teratur (pengaturan yang fleksibel).

Modul Lain-lain
1)    Dukungan antar muka yang multi bahasa (internasionalisasi) dengan Gettext.
2)    Dukungan terhadap penggunaan huruf bukan latin untuk pengisian data dan pencarian.

', 'modul_tersedia', NULL, 0, NULL, '2010-08-29 04:03:09', '2010-08-29 04:05:49', '1'), +(7, 'Lisensi SLiMS', '

SLiMS dilisensikan dibawah GNU/GPL (http://www.gnu.org/licenses/gpl.html) untuk menjamin kebebasan pengguna dalam menggunakannya. GNU General Public License (disingkat GNU GPL atau cukup GPL) merupakan suatu lisensi perangkat lunak bebas yang aslinya ditulis oleh Richard Stallman untuk proyek GNU. Lisensi GPL memberikan penerima salinan perangkat lunak hak dari perangkat lunak bebas dan menggunakan copyleft  untuk memastikan kebebasan yang sama diterapkan pada versi berikutnya dari karya tersebut.

\r\n

 GNU LESSER GENERAL PUBLIC LICENSE
                       Version 3, 29 June 2007

 Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
 Everyone is permitted to copy and distribute verbatim copies
 of this license document, but changing it is not allowed.


  This version of the GNU Lesser General Public License incorporates
the terms and conditions of version 3 of the GNU General Public
License, supplemented by the additional permissions listed below.

  0. Additional Definitions.

  As used herein, \"this License\" refers to version 3 of the GNU Lesser
General Public License, and the \"GNU GPL\" refers to version 3 of the GNU
General Public License.

  \"The Library\" refers to a covered work governed by this License,
other than an Application or a Combined Work as defined below.

  An \"Application\" is any work that makes use of an interface provided
by the Library, but which is not otherwise based on the Library.
Defining a subclass of a class defined by the Library is deemed a mode
of using an interface provided by the Library.

  A \"Combined Work\" is a work produced by combining or linking an
Application with the Library.  The particular version of the Library
with which the Combined Work was made is also called the \"Linked
Version\".

  The \"Minimal Corresponding Source\" for a Combined Work means the
Corresponding Source for the Combined Work, excluding any source code
for portions of the Combined Work that, considered in isolation, are
based on the Application, and not on the Linked Version.

  The \"Corresponding Application Code\" for a Combined Work means the
object code and/or source code for the Application, including any data
and utility programs needed for reproducing the Combined Work from the
Application, but excluding the System Libraries of the Combined Work.

  1. Exception to Section 3 of the GNU GPL.

  You may convey a covered work under sections 3 and 4 of this License
without being bound by section 3 of the GNU GPL.

  2. Conveying Modified Versions.

  If you modify a copy of the Library, and, in your modifications, a
facility refers to a function or data to be supplied by an Application
that uses the facility (other than as an argument passed when the
facility is invoked), then you may convey a copy of the modified
version:

   a) under this License, provided that you make a good faith effort to
   ensure that, in the event an Application does not supply the
   function or data, the facility still operates, and performs
   whatever part of its purpose remains meaningful, or

   b) under the GNU GPL, with none of the additional permissions of
   this License applicable to that copy.

  3. Object Code Incorporating Material from Library Header Files.

  The object code form of an Application may incorporate material from
a header file that is part of the Library.  You may convey such object
code under terms of your choice, provided that, if the incorporated
material is not limited to numerical parameters, data structure
layouts and accessors, or small macros, inline functions and templates
(ten or fewer lines in length), you do both of the following:

   a) Give prominent notice with each copy of the object code that the
   Library is used in it and that the Library and its use are
   covered by this License.

   b) Accompany the object code with a copy of the GNU GPL and this license
   document.

  4. Combined Works.

  You may convey a Combined Work under terms of your choice that,
taken together, effectively do not restrict modification of the
portions of the Library contained in the Combined Work and reverse
engineering for debugging such modifications, if you also do each of
the following:

   a) Give prominent notice with each copy of the Combined Work that
   the Library is used in it and that the Library and its use are
   covered by this License.

   b) Accompany the Combined Work with a copy of the GNU GPL and this license
   document.

   c) For a Combined Work that displays copyright notices during
   execution, include the copyright notice for the Library among
   these notices, as well as a reference directing the user to the
   copies of the GNU GPL and this license document.

   d) Do one of the following:

       0) Convey the Minimal Corresponding Source under the terms of this
       License, and the Corresponding Application Code in a form
       suitable for, and under terms that permit, the user to
       recombine or relink the Application with a modified version of
       the Linked Version to produce a modified Combined Work, in the
       manner specified by section 6 of the GNU GPL for conveying
       Corresponding Source.

       1) Use a suitable shared library mechanism for linking with the
       Library.  A suitable mechanism is one that (a) uses at run time
       a copy of the Library already present on the user\'s computer
       system, and (b) will operate properly with a modified version
       of the Library that is interface-compatible with the Linked
       Version.

   e) Provide Installation Information, but only if you would otherwise
   be required to provide such information under section 6 of the
   GNU GPL, and only to the extent that such information is
   necessary to install and execute a modified version of the
   Combined Work produced by recombining or relinking the
   Application with a modified version of the Linked Version. (If
   you use option 4d0, the Installation Information must accompany
   the Minimal Corresponding Source and Corresponding Application
   Code. If you use option 4d1, you must provide the Installation
   Information in the manner specified by section 6 of the GNU GPL
   for conveying Corresponding Source.)

  5. Combined Libraries.

  You may place library facilities that are a work based on the
Library side by side in a single library together with other library
facilities that are not Applications and are not covered by this
License, and convey such a combined library under terms of your
choice, if you do both of the following:

   a) Accompany the combined library with a copy of the same work based
   on the Library, uncombined with any other library facilities,
   conveyed under the terms of this License.

   b) Give prominent notice with the combined library that part of it
   is a work based on the Library, and explaining where to find the
   accompanying uncombined form of the same work.

  6. Revised Versions of the GNU Lesser General Public License.

  The Free Software Foundation may publish revised and/or new versions
of the GNU Lesser General Public License from time to time. Such new
versions will be similar in spirit to the present version, but may
differ in detail to address new problems or concerns.

  Each version is given a distinguishing version number. If the
Library as you received it specifies that a certain numbered version
of the GNU Lesser General Public License \"or any later version\"
applies to it, you have the option of following the terms and
conditions either of that published version or of any later version
published by the Free Software Foundation. If the Library as you
received it does not specify a version number of the GNU Lesser
General Public License, you may choose any version of the GNU Lesser
General Public License ever published by the Free Software Foundation.

  If the Library as you received it specifies that a proxy can decide
whether future versions of the GNU Lesser General Public License shall
apply, that proxy\'s public statement of acceptance of any version is
permanent authorization for you to choose that version for the
Library.

', 'lisensi_slims', NULL, 0, NULL, '2010-08-29 04:04:33', '2010-11-12 22:15:43', '1'); +INSERT INTO `content` (`content_id`, `content_title`, `content_desc`, `content_path`, `is_news`, `is_draft`, `publish_date`, `input_date`, `last_update`, `content_ownpage`) VALUES +(8, 'Model Pengembangan Open Source', '

Sumber terbuka (Inggris: open source) adalah sistem pengembangan yang tidak dikoordinasi oleh suatu individu / lembaga pusat, tetapi oleh para pelaku yang bekerja sama dengan memanfaatkan kode sumber (source-code) yang tersebar dan tersedia bebas (biasanya menggunakan fasilitas komunikasi internet). Pola pengembangan ini mengambil model ala bazaar, sehingga pola Open Source ini memiliki ciri bagi komunitasnya yaitu adanya dorongan yang bersumber dari budaya memberi.

Pola Open Source lahir karena kebebasan berkarya, tanpa intervensi berpikir dan mengungkapkan apa yang diinginkan dengan menggunakan pengetahuan dan produk yang cocok. Kebebasan menjadi pertimbangan utama ketika dilepas ke publik. Komunitas yang lain mendapat kebebasan untuk belajar, mengutak-ngatik, merevisi ulang, membenarkan ataupun bahkan menyalahkan, tetapi kebebasan ini juga datang bersama dengan tanggung jawab, bukan bebas tanpa tanggung jawab.

Pada intinya konsep sumber terbuka adalah membuka \"kode sumber\" dari sebuah perangkat lunak. Konsep ini terasa aneh pada awalnya dikarenakan kode sumber merupakan kunci dari sebuah perangkat lunak. Dengan diketahui logika yang ada di kode sumber, maka orang lain semestinya dapat membuat perangkat lunak yang sama fungsinya. Sumber terbuka hanya sebatas itu. Artinya, dia tidak harus gratis. Definisi sumber terbuka yang asli adalah seperti tertuang dalam OSD (Open Source Definition)/Definisi sumber terbuka.

\r\n

Pengembangan Senayan awalnya diinisiasi oleh pengelola Perpustakaan Depdiknas. Tetapi sekarang komunitas pengembang Senayan (Senayan Developer Community) yang lebih banyak mengambil peran dalam mengembangkan Senayan. Beberapa hal dibawah ini merupakan kultur yang dibangun dalam mengembangkan Senayan:
1.    Meritokrasi. Siapa saja bisa berkontribusi. Mereka yang banyak memberikan kontribusi, akan mendapatkan privilege lebih dibandingkan yang lain.
2.    Minimal punya concern terhadap pengembangan perpustakaan. Contoh lain: berlatar belakang pendidikan ilmu perpustakaan dan informasi, bekerja di perpustakaan, mengelola perpustakaan, dan lain-lain. Diharapkan dengan kondisi ini, sense of librarianship melekat di tiap developer/pengguna Senayan. Sejauh ini, semua developer senayan merupakan pustakawan atau berlatarbelakang pendidikan kepustakawanan (Information and Librarianship).
3.    Release early, release often, and listen to your customer. Release early artinya setiap perbaikan dan penambahan fitur, secepat mungkin dirilis ke publik. Diharapkan bugs yang ada, bisa cepat ditemukan oleh komunitas, dilaporkan ke developer, untuk kemudian dirilis perbaikannya. Release often, artinya sesering mungkin memberikan update perbaikan bugs dan penambahan fitur. Ini “memaksa” developer Senayan untuk terus kreatif menambahkan fitur Senayan. Release often juga membuat pengguna berkeyakinan bahwa Senayan punya sustainability yang baik dan terus aktif dikembangkan. Selain itu, release often juga mempunyai dampak pemasaran. Pengguna dan calon pengguna, selalu diingatkan tentang keberadaan Senayan. Tentunya dengan cara yang elegan, yaitu rilis-rilis Senayan. Sejak dirilis ke publi pertama kali November 2007 sampai Juli 2009 (kurang lebih 20 bulan) telah dirilis 18 rilis resmi Senayan. Listen to your customer. Developer Senayan selalu berusaha mengakomodasi kebutuhan pengguna baik yang masuk melalui report di mailing list, ataupun melalui bugs tracking system. Tentu tidak semua masukan diakomodasi, harus disesuaikan dengan desain dan roadmap pengembangan Senayan.
4.    Dokumentasi. Developer Senayan meyakini pentingnya dokumentasi yang baik dalam mensukseskan implementasi Senayan dibanyak tempat. Karena itu pengembang Senayan mempunyai tim khusus yang bertanggungjawab yang mengembangkan dokumentasi Senayan agar terus uo-to-date mengikuti rilis terbaru.
5.    Agar ada percepatan dalam pengembangan dan untuk mengakrabkan antar pengembang Senayan, minimal setahun sekali diadakan Senayan Developers Day yang mengumpulkan para developer Senayan dari berbagai kota, dan melakukan coding bersama-sama.

', 'opensource', NULL, 0, NULL, '2010-08-29 04:05:16', '2010-08-29 04:34:04', '1'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `files` +-- + +CREATE TABLE `files` ( + `file_id` int(11) NOT NULL, + `file_title` text NOT NULL, + `file_name` text NOT NULL, + `file_url` text DEFAULT NULL, + `file_dir` text DEFAULT NULL, + `mime_type` varchar(100) DEFAULT NULL, + `file_desc` text DEFAULT NULL, + `file_key` text DEFAULT NULL, + `uploader_id` int(11) NOT NULL, + `input_date` datetime NOT NULL, + `last_update` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `files_read` +-- + +CREATE TABLE `files_read` ( + `filelog_id` int(11) NOT NULL, + `file_id` int(11) NOT NULL, + `date_read` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(), + `member_id` varchar(20) DEFAULT NULL, + `user_id` int(11) DEFAULT NULL, + `client_ip` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `fines` +-- + +CREATE TABLE `fines` ( + `fines_id` int(11) NOT NULL, + `fines_date` date NOT NULL, + `member_id` varchar(20) NOT NULL, + `debet` int(11) DEFAULT 0, + `credit` int(11) DEFAULT 0, + `description` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `group_access` +-- + +CREATE TABLE `group_access` ( + `group_id` int(11) NOT NULL, + `module_id` int(11) NOT NULL, + `menus` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`menus`)), + `r` int(1) NOT NULL DEFAULT 0, + `w` int(1) NOT NULL DEFAULT 0 +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `group_access` +-- + +INSERT INTO `group_access` (`group_id`, `module_id`, `menus`, `r`, `w`) VALUES +(1, 1, NULL, 1, 1), +(1, 2, NULL, 1, 1), +(1, 3, NULL, 1, 1), +(1, 4, NULL, 1, 1), +(1, 5, NULL, 1, 1), +(1, 6, NULL, 1, 1), +(1, 7, NULL, 1, 1), +(1, 8, NULL, 1, 1); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `holiday` +-- + +CREATE TABLE `holiday` ( + `holiday_id` int(11) NOT NULL, + `holiday_dayname` varchar(20) NOT NULL, + `holiday_date` date DEFAULT NULL, + `description` varchar(100) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `holiday` +-- + +INSERT INTO `holiday` (`holiday_id`, `holiday_dayname`, `holiday_date`, `description`) VALUES +(1, 'Mon', '2009-06-01', 'Tes Libur'), +(2, 'Tue', '2009-06-02', 'Tes Libur'), +(3, 'Wed', '2009-06-03', 'Tes Libur'), +(4, 'Thu', '2009-06-04', 'Tes Libur'), +(5, 'Fri', '2009-06-05', 'Tes Libur'), +(6, 'Sat', '2009-06-06', 'Tes Libur'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `index_documents` +-- + +CREATE TABLE `index_documents` ( + `document_id` int(11) NOT NULL, + `word_id` bigint(20) NOT NULL, + `location` varchar(50) NOT NULL, + `hit_count` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `index_words` +-- + +CREATE TABLE `index_words` ( + `id` bigint(20) NOT NULL, + `word` varchar(50) NOT NULL, + `num_hits` int(11) NOT NULL, + `doc_hits` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `item` +-- + +CREATE TABLE `item` ( + `item_id` int(11) NOT NULL, + `biblio_id` int(11) DEFAULT NULL, + `call_number` varchar(50) DEFAULT NULL, + `coll_type_id` int(3) DEFAULT NULL, + `item_code` varchar(20) DEFAULT NULL, + `inventory_code` varchar(200) DEFAULT NULL, + `received_date` date DEFAULT NULL, + `supplier_id` varchar(6) DEFAULT NULL, + `order_no` varchar(20) DEFAULT NULL, + `location_id` varchar(3) DEFAULT NULL, + `order_date` date DEFAULT NULL, + `item_status_id` char(3) DEFAULT NULL, + `site` varchar(50) DEFAULT NULL, + `source` int(1) NOT NULL DEFAULT 0, + `invoice` varchar(20) DEFAULT NULL, + `price` int(11) DEFAULT NULL, + `price_currency` varchar(10) DEFAULT NULL, + `invoice_date` date DEFAULT NULL, + `input_date` datetime NOT NULL, + `last_update` datetime DEFAULT NULL, + `uid` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `kardex` +-- + +CREATE TABLE `kardex` ( + `kardex_id` int(11) NOT NULL, + `date_expected` date NOT NULL, + `date_received` date DEFAULT NULL, + `seq_number` varchar(25) DEFAULT NULL, + `notes` text DEFAULT NULL, + `serial_id` int(11) DEFAULT NULL, + `input_date` date NOT NULL, + `last_update` date NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `loan` +-- + +CREATE TABLE `loan` ( + `loan_id` int(11) NOT NULL, + `item_code` varchar(20) DEFAULT NULL, + `member_id` varchar(20) DEFAULT NULL, + `loan_date` date NOT NULL, + `due_date` date NOT NULL, + `renewed` int(11) NOT NULL DEFAULT 0, + `loan_rules_id` int(11) NOT NULL DEFAULT 0, + `actual` date DEFAULT NULL, + `is_lent` int(11) NOT NULL DEFAULT 0, + `is_return` int(11) NOT NULL DEFAULT 0, + `return_date` date DEFAULT NULL, + `input_date` datetime DEFAULT NULL, + `last_update` datetime DEFAULT NULL, + `uid` int(11) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Triggers `loan` +-- +DELIMITER $$ +CREATE TRIGGER `delete_loan_history` AFTER DELETE ON `loan` FOR EACH ROW DELETE FROM `loan_history` WHERE loan_id=OLD.loan_id +$$ +DELIMITER ; +DELIMITER $$ +CREATE TRIGGER `insert_loan_history` AFTER INSERT ON `loan` FOR EACH ROW INSERT INTO loan_history + SET loan_id=NEW.loan_id, + item_code=NEW.item_code, + member_id=NEW.member_id, + loan_date=NEW.loan_date, + due_date=NEW.due_date, + renewed=NEW.renewed, + is_lent=NEW.is_lent, + is_return=NEW.is_return, + return_date=NEW.return_date, + input_date=NEW.input_date, + last_update=NEW.last_update, + title=(SELECT b.title FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code), + biblio_id=(SELECT b.biblio_id FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code), + call_number=(SELECT IF(i.call_number IS NULL, b.call_number,i.call_number) FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code), + classification=(SELECT b.classification FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id WHERE i.item_code=NEW.item_code), + gmd_name=(SELECT g.gmd_name FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id LEFT JOIN mst_gmd g ON g.gmd_id=b.gmd_id WHERE i.item_code=NEW.item_code), + language_name=(SELECT l.language_name FROM biblio b LEFT JOIN item i ON i.biblio_id=b.biblio_id LEFT JOIN mst_language l ON b.language_id=l.language_id WHERE i.item_code=NEW.item_code), + location_name=(SELECT ml.location_name FROM item i LEFT JOIN mst_location ml ON i.location_id=ml.location_id WHERE i.item_code=NEW.item_code), + collection_type_name=(SELECT mct.coll_type_name FROM mst_coll_type mct LEFT JOIN item i ON i.coll_type_id=mct.coll_type_id WHERE i.item_code=NEW.item_code), + member_name=(SELECT m.member_name FROM member m WHERE m.member_id=NEW.member_id), + member_type_name=(SELECT mmt.member_type_name FROM mst_member_type mmt LEFT JOIN member m ON m.member_type_id=mmt.member_type_id WHERE m.member_id=NEW.member_id) +$$ +DELIMITER ; +DELIMITER $$ +CREATE TRIGGER `update_loan_history` AFTER UPDATE ON `loan` FOR EACH ROW UPDATE loan_history + SET is_lent=NEW.is_lent, + is_return=NEW.is_return, + renewed=NEW.renewed, + return_date=NEW.return_date + WHERE loan_id=NEW.loan_id +$$ +DELIMITER ; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `loan_history` +-- + +CREATE TABLE `loan_history` ( + `loan_id` int(11) NOT NULL, + `item_code` varchar(20) DEFAULT NULL, + `biblio_id` int(11) NOT NULL, + `title` varchar(300) DEFAULT NULL, + `call_number` varchar(50) DEFAULT NULL, + `classification` varchar(40) DEFAULT NULL, + `gmd_name` varchar(30) DEFAULT NULL, + `language_name` varchar(20) DEFAULT NULL, + `location_name` varchar(100) DEFAULT NULL, + `collection_type_name` varchar(100) DEFAULT NULL, + `member_id` varchar(20) DEFAULT NULL, + `member_name` varchar(100) DEFAULT NULL, + `member_type_name` varchar(64) DEFAULT NULL, + `loan_date` date DEFAULT NULL, + `due_date` date DEFAULT NULL, + `renewed` int(11) NOT NULL DEFAULT 0, + `is_lent` int(11) NOT NULL DEFAULT 0, + `is_return` int(11) NOT NULL DEFAULT 0, + `return_date` date DEFAULT NULL, + `input_date` datetime DEFAULT NULL, + `last_update` datetime DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `member` +-- + +CREATE TABLE `member` ( + `member_id` varchar(20) NOT NULL, + `member_name` varchar(100) NOT NULL, + `gender` int(1) NOT NULL, + `birth_date` date DEFAULT NULL, + `member_type_id` int(6) DEFAULT NULL, + `member_address` varchar(255) DEFAULT NULL, + `member_mail_address` varchar(255) DEFAULT NULL, + `member_email` varchar(100) DEFAULT NULL, + `postal_code` varchar(20) DEFAULT NULL, + `inst_name` varchar(100) DEFAULT NULL, + `is_new` int(1) DEFAULT NULL, + `member_image` varchar(200) DEFAULT NULL, + `pin` varchar(50) DEFAULT NULL, + `member_phone` varchar(50) DEFAULT NULL, + `member_fax` varchar(50) DEFAULT NULL, + `member_since_date` date DEFAULT NULL, + `register_date` date DEFAULT NULL, + `expire_date` date NOT NULL, + `member_notes` text DEFAULT NULL, + `is_pending` smallint(1) NOT NULL DEFAULT 0, + `mpasswd` varchar(64) DEFAULT NULL, + `last_login` datetime DEFAULT NULL, + `last_login_ip` varchar(20) DEFAULT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `member_custom` +-- + +CREATE TABLE `member_custom` ( + `member_id` varchar(20) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='one to one relation with real member table'; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_author` +-- + +CREATE TABLE `mst_author` ( + `author_id` int(11) NOT NULL, + `author_name` varchar(100) NOT NULL, + `author_year` varchar(20) DEFAULT NULL, + `authority_type` enum('p','o','c') DEFAULT 'p', + `auth_list` varchar(20) DEFAULT NULL, + `input_date` date NOT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_carrier_type` +-- + +CREATE TABLE `mst_carrier_type` ( + `id` int(11) NOT NULL, + `carrier_type` varchar(100) NOT NULL, + `code` varchar(5) NOT NULL, + `code2` char(1) NOT NULL, + `input_date` datetime NOT NULL, + `last_update` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_carrier_type` +-- + +INSERT INTO `mst_carrier_type` (`id`, `carrier_type`, `code`, `code2`, `input_date`, `last_update`) VALUES +(1, 'audio cartridge', 'sg', 'g', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(2, 'audio cylinder', 'se', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(3, 'audio disc', 'sd', 'd', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(4, 'sound track reel', 'si', 'i', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(5, 'audio roll', 'sq', 'q', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(6, 'audiocassette', 'ss', 's', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(7, 'audiotape reel', 'st', 't', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(8, 'other (audio)', 'sz', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(9, 'computer card', 'ck', 'k', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(10, 'computer chip cartridge', 'cb', 'b', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(11, 'computer disc', 'cd', 'd', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(12, 'computer disc cartridge', 'ce', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(13, 'computer tape cartridge', 'ca', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(14, 'computer tape cassette', 'cf', 'f', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(15, 'computer tape reel', 'ch', 'h', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(16, 'online resource', 'cr', 'r', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(17, 'other (computer)', 'cz', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(18, 'aperture card', 'ha', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(19, 'microfiche', 'he', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(20, 'microfiche cassette', 'hf', 'f', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(21, 'microfilm cartridge', 'hb', 'b', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(22, 'microfilm cassette', 'hc', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(23, 'microfilm reel', 'hd', 'd', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(24, 'microfilm roll', 'hj', 'j', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(25, 'microfilm slip', 'hh', 'h', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(26, 'microopaque', 'hg', 'g', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(27, 'other (microform)', 'hz', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(28, 'microscope slide', 'pp', 'p', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(29, 'other (microscope)', 'pz', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(30, 'film cartridge', 'mc', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(31, 'film cassette', 'mf', 'f', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(32, 'film reel', 'mr', 'r', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(33, 'film roll', 'mo', 'o', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(34, 'filmslip', 'gd', 'd', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(35, 'filmstrip', 'gf', 'f', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(36, 'filmstrip cartridge', 'gc', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(37, 'overhead transparency', 'gt', 't', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(38, 'slide', 'gs', 's', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(39, 'other (projected image)', 'mz', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(40, 'stereograph card', 'eh', 'h', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(41, 'stereograph disc', 'es', 's', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(42, 'other (stereographic)', 'ez', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(43, 'card', 'no', 'o', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(44, 'flipchart', 'nn', 'n', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(45, 'roll', 'na', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(46, 'sheet', 'nb', 'b', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(47, 'volume', 'nc', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(48, 'object', 'nr', 'r', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(49, 'other (unmediated)', 'nz', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(50, 'video cartridge', 'vc', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(51, 'videocassette', 'vf', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(52, 'videodisc', 'vd', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(53, 'videotape reel', 'vr', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(54, 'other (video)', 'vz', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(55, 'unspecified', 'zu', 'u', '2024-10-24 14:33:53', '2024-10-24 14:33:53'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_coll_type` +-- + +CREATE TABLE `mst_coll_type` ( + `coll_type_id` int(3) NOT NULL, + `coll_type_name` varchar(30) NOT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_coll_type` +-- + +INSERT INTO `mst_coll_type` (`coll_type_id`, `coll_type_name`, `input_date`, `last_update`) VALUES +(1, 'Reference', '2007-11-29', '2007-11-29'), +(2, 'Textbook', '2007-11-29', '2007-11-29'), +(3, 'Fiction', '2007-11-29', '2007-11-29'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_content_type` +-- + +CREATE TABLE `mst_content_type` ( + `id` int(11) NOT NULL, + `content_type` varchar(100) NOT NULL, + `code` varchar(5) NOT NULL, + `code2` char(1) NOT NULL, + `input_date` datetime NOT NULL, + `last_update` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_content_type` +-- + +INSERT INTO `mst_content_type` (`id`, `content_type`, `code`, `code2`, `input_date`, `last_update`) VALUES +(1, 'cartographic dataset', 'crd', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(2, 'cartographic image', 'cri', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(3, 'cartographic moving image', 'crm', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(4, 'cartographic tactile image', 'crt', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(5, 'cartographic tactile three-dimensional form', 'crn', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(6, 'cartographic three-dimensional form', 'crf', 'e', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(7, 'computer dataset', 'cod', 'm', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(8, 'computer program', 'cop', 'm', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(9, 'notated movement', 'ntv', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(10, 'notated music', 'ntm', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(11, 'performed music', 'prm', 'j', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(12, 'sounds', 'snd', 'i', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(13, 'spoken word', 'spw', 'i', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(14, 'still image', 'sti', 'k', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(15, 'tactile image', 'tci', 'k', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(16, 'tactile notated music', 'tcm', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(17, 'tactile notated movement', 'tcn', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(18, 'tactile text', 'tct', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(19, 'tactile three-dimensional form', 'tcf', 'r', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(20, 'text', 'txt', 'a', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(21, 'three-dimensional form', 'tdf', 'r', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(22, 'three-dimensional moving image', 'tdm', 'g', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(23, 'two-dimensional moving image', 'tdi', 'g', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(24, 'other', 'xxx', 'o', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(25, 'unspecified', 'zzz', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_custom_field` +-- + +CREATE TABLE `mst_custom_field` ( + `field_id` int(11) NOT NULL, + `primary_table` varchar(100) DEFAULT NULL, + `dbfield` varchar(50) NOT NULL, + `label` varchar(80) NOT NULL, + `type` enum('text','checklist','numeric','dropdown','longtext','choice','date') NOT NULL, + `default` varchar(80) DEFAULT NULL, + `max` int(11) DEFAULT NULL, + `data` text DEFAULT NULL, + `indexed` tinyint(1) DEFAULT NULL, + `class` varchar(100) DEFAULT NULL, + `is_public` tinyint(1) DEFAULT NULL, + `width` int(5) DEFAULT 100, + `note` text DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_frequency` +-- + +CREATE TABLE `mst_frequency` ( + `frequency_id` int(11) NOT NULL, + `frequency` varchar(25) NOT NULL, + `language_prefix` varchar(5) DEFAULT NULL, + `time_increment` smallint(6) DEFAULT NULL, + `time_unit` enum('day','week','month','year') DEFAULT 'day', + `input_date` date NOT NULL, + `last_update` date NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_frequency` +-- + +INSERT INTO `mst_frequency` (`frequency_id`, `frequency`, `language_prefix`, `time_increment`, `time_unit`, `input_date`, `last_update`) VALUES +(1, 'Weekly', 'en', 1, 'week', '2009-05-23', '2009-05-23'), +(2, 'Bi-weekly', 'en', 2, 'week', '2009-05-23', '2009-05-23'), +(3, 'Fourth-Nightly', 'en', 14, 'day', '2009-05-23', '2009-05-23'), +(4, 'Monthly', 'en', 1, 'month', '2009-05-23', '2009-05-23'), +(5, 'Bi-Monthly', 'en', 2, 'month', '2009-05-23', '2009-05-23'), +(6, 'Quarterly', 'en', 3, 'month', '2009-05-23', '2009-05-23'), +(7, '3 Times a Year', 'en', 4, 'month', '2009-05-23', '2009-05-23'), +(8, 'Annualy', 'en', 1, 'year', '2009-05-23', '2009-05-23'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_gmd` +-- + +CREATE TABLE `mst_gmd` ( + `gmd_id` int(11) NOT NULL, + `gmd_code` varchar(3) DEFAULT NULL, + `gmd_name` varchar(30) NOT NULL, + `icon_image` varchar(100) DEFAULT NULL, + `input_date` date NOT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_gmd` +-- + +INSERT INTO `mst_gmd` (`gmd_id`, `gmd_code`, `gmd_name`, `icon_image`, `input_date`, `last_update`) VALUES +(1, 'TE', 'Text', NULL, '2024-10-24', '2024-10-24'), +(2, 'AR', 'Art Original', NULL, '2024-10-24', '2024-10-24'), +(3, 'CH', 'Chart', NULL, '2024-10-24', '2024-10-24'), +(4, 'CO', 'Computer Software', NULL, '2024-10-24', '2024-10-24'), +(5, 'DI', 'Diorama', NULL, '2024-10-24', '2024-10-24'), +(6, 'FI', 'Filmstrip', NULL, '2024-10-24', '2024-10-24'), +(7, 'FL', 'Flash Card', NULL, '2024-10-24', '2024-10-24'), +(8, 'GA', 'Game', NULL, '2024-10-24', '2024-10-24'), +(9, 'GL', 'Globe', NULL, '2024-10-24', '2024-10-24'), +(10, 'KI', 'Kit', NULL, '2024-10-24', '2024-10-24'), +(11, 'MA', 'Map', NULL, '2024-10-24', '2024-10-24'), +(12, 'MI', 'Microform', NULL, '2024-10-24', '2024-10-24'), +(13, 'MN', 'Manuscript', NULL, '2024-10-24', '2024-10-24'), +(14, 'MO', 'Model', NULL, '2024-10-24', '2024-10-24'), +(15, 'MP', 'Motion Picture', NULL, '2024-10-24', '2024-10-24'), +(16, 'MS', 'Microscope Slide', NULL, '2024-10-24', '2024-10-24'), +(17, 'MU', 'Music', NULL, '2024-10-24', '2024-10-24'), +(18, 'PI', 'Picture', NULL, '2024-10-24', '2024-10-24'), +(19, 'RE', 'Realia', NULL, '2024-10-24', '2024-10-24'), +(20, 'SL', 'Slide', NULL, '2024-10-24', '2024-10-24'), +(21, 'SO', 'Sound Recording', NULL, '2024-10-24', '2024-10-24'), +(22, 'TD', 'Technical Drawing', NULL, '2024-10-24', '2024-10-24'), +(23, 'TR', 'Transparency', NULL, '2024-10-24', '2024-10-24'), +(24, 'VI', 'Video Recording', NULL, '2024-10-24', '2024-10-24'), +(25, 'EQ', 'Equipment', NULL, '2024-10-24', '2024-10-24'), +(26, 'CF', 'Computer File', NULL, '2024-10-24', '2024-10-24'), +(27, 'CA', 'Cartographic Material', NULL, '2024-10-24', '2024-10-24'), +(28, 'CD', 'CD-ROM', NULL, '2024-10-24', '2024-10-24'), +(29, 'MV', 'Multimedia', NULL, '2024-10-24', '2024-10-24'), +(30, 'ER', 'Electronic Resource', NULL, '2024-10-24', '2024-10-24'), +(31, 'DVD', 'Digital Versatile Disc', NULL, '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_item_status` +-- + +CREATE TABLE `mst_item_status` ( + `item_status_id` char(3) NOT NULL, + `item_status_name` varchar(30) NOT NULL, + `rules` varchar(255) DEFAULT NULL, + `no_loan` smallint(1) NOT NULL DEFAULT 0, + `skip_stock_take` smallint(1) NOT NULL DEFAULT 0, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_item_status` +-- + +INSERT INTO `mst_item_status` (`item_status_id`, `item_status_name`, `rules`, `no_loan`, `skip_stock_take`, `input_date`, `last_update`) VALUES +('R', 'Repair', 'a:1:{i:0;s:1:\"1\";}', 1, 1, '2024-10-24', '2024-10-24'), +('NL', 'No Loan', 'a:1:{i:0;s:1:\"1\";}', 1, 1, '2024-10-24', '2024-10-24'), +('MIS', 'Missing', NULL, 1, 1, '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_label` +-- + +CREATE TABLE `mst_label` ( + `label_id` int(11) NOT NULL, + `label_name` varchar(20) NOT NULL, + `label_desc` varchar(50) DEFAULT NULL, + `label_image` varchar(200) NOT NULL, + `input_date` date NOT NULL, + `last_update` date NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; + +-- +-- Dumping data for table `mst_label` +-- + +INSERT INTO `mst_label` (`label_id`, `label_name`, `label_desc`, `label_image`, `input_date`, `last_update`) VALUES +(1, 'label-new', 'New Title', 'label-new.png', '2024-10-24', '2024-10-24'), +(2, 'label-favorite', 'Favorite Title', 'label-favorite.png', '2024-10-24', '2024-10-24'), +(3, 'label-multimedia', 'Multimedia', 'label-multimedia.png', '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_language` +-- + +CREATE TABLE `mst_language` ( + `language_id` char(5) NOT NULL, + `language_name` varchar(20) NOT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_language` +-- + +INSERT INTO `mst_language` (`language_id`, `language_name`, `input_date`, `last_update`) VALUES +('id', 'Indonesia', '2024-10-24', '2024-10-24'), +('en', 'English', '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_loan_rules` +-- + +CREATE TABLE `mst_loan_rules` ( + `loan_rules_id` int(11) NOT NULL, + `member_type_id` int(11) NOT NULL DEFAULT 0, + `coll_type_id` int(11) DEFAULT 0, + `gmd_id` int(11) DEFAULT 0, + `loan_limit` int(3) DEFAULT 0, + `loan_periode` int(3) DEFAULT 0, + `reborrow_limit` int(3) DEFAULT 0, + `fine_each_day` int(3) DEFAULT 0, + `grace_periode` int(2) DEFAULT 0, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_location` +-- + +CREATE TABLE `mst_location` ( + `location_id` varchar(3) NOT NULL, + `location_name` varchar(100) DEFAULT NULL, + `input_date` date NOT NULL, + `last_update` date NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_location` +-- + +INSERT INTO `mst_location` (`location_id`, `location_name`, `input_date`, `last_update`) VALUES +('SL', 'My Library', '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_media_type` +-- + +CREATE TABLE `mst_media_type` ( + `id` int(11) NOT NULL, + `media_type` varchar(100) NOT NULL, + `code` varchar(5) NOT NULL, + `code2` char(1) NOT NULL, + `input_date` datetime NOT NULL, + `last_update` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_media_type` +-- + +INSERT INTO `mst_media_type` (`id`, `media_type`, `code`, `code2`, `input_date`, `last_update`) VALUES +(1, 'audio', 's', 's', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(2, 'computer', 'c', 'c', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(3, 'microform', 'h', 'h', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(4, 'microscopic', 'p', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(5, 'projected', 'g', 'g', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(6, 'stereographic', 'e', '', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(7, 'unmediated', 'n', 't', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(8, 'video', 'v', 'v', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(9, 'other', 'x', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'), +(10, 'unspecified', 'z', 'z', '2024-10-24 14:33:53', '2024-10-24 14:33:53'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_member_type` +-- + +CREATE TABLE `mst_member_type` ( + `member_type_id` int(11) NOT NULL, + `member_type_name` varchar(50) NOT NULL, + `loan_limit` int(11) NOT NULL, + `loan_periode` int(11) NOT NULL, + `enable_reserve` int(1) NOT NULL DEFAULT 0, + `reserve_limit` int(11) NOT NULL DEFAULT 0, + `member_periode` int(11) NOT NULL, + `reborrow_limit` int(11) NOT NULL, + `fine_each_day` int(11) NOT NULL, + `grace_periode` int(2) DEFAULT 0, + `input_date` date NOT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_member_type` +-- + +INSERT INTO `mst_member_type` (`member_type_id`, `member_type_name`, `loan_limit`, `loan_periode`, `enable_reserve`, `reserve_limit`, `member_periode`, `reborrow_limit`, `fine_each_day`, `grace_periode`, `input_date`, `last_update`) VALUES +(1, 'Standard', 2, 7, 1, 2, 365, 1, 0, 0, '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_module` +-- + +CREATE TABLE `mst_module` ( + `module_id` int(3) NOT NULL, + `module_name` varchar(50) NOT NULL, + `module_path` varchar(200) DEFAULT NULL, + `module_desc` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci ROW_FORMAT=DYNAMIC; + +-- +-- Dumping data for table `mst_module` +-- + +INSERT INTO `mst_module` (`module_id`, `module_name`, `module_path`, `module_desc`) VALUES +(1, 'bibliography', 'bibliography', 'Manage your bibliographic/catalog and items/copies database'), +(2, 'circulation', 'circulation', 'Module for doing library items circulation such as loan and return'), +(3, 'membership', 'membership', 'Manage your library membership and membership type'), +(4, 'master_file', 'master_file', 'Manage your referential data that will be used by other modules'), +(5, 'stock_take', 'stock_take', 'Ease your pain in doing library stock opname process'), +(6, 'system', 'system', 'Configure system behaviour, user and backups'), +(7, 'reporting', 'reporting', 'Real time and dynamic report about library collections and circulation'), +(8, 'serial_control', 'serial_control', 'Serial publication management'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_place` +-- + +CREATE TABLE `mst_place` ( + `place_id` int(11) NOT NULL, + `place_name` varchar(30) NOT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_publisher` +-- + +CREATE TABLE `mst_publisher` ( + `publisher_id` int(11) NOT NULL, + `publisher_name` varchar(100) NOT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_relation_term` +-- + +CREATE TABLE `mst_relation_term` ( + `ID` int(11) NOT NULL, + `rt_id` varchar(11) NOT NULL, + `rt_desc` varchar(50) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_relation_term` +-- + +INSERT INTO `mst_relation_term` (`ID`, `rt_id`, `rt_desc`) VALUES +(1, 'U', 'Use'), +(2, 'UF', 'Use For'), +(3, 'BT', 'Broader Term'), +(4, 'NT', 'Narrower Term'), +(5, 'RT', 'Related Term'), +(6, 'SA', 'See Also'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_servers` +-- + +CREATE TABLE `mst_servers` ( + `server_id` int(11) NOT NULL, + `name` varchar(255) NOT NULL, + `uri` text NOT NULL, + `server_type` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1 - p2p server; 2 - z3950; 3 - z3950 SRU', + `input_date` datetime NOT NULL, + `last_update` datetime DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_supplier` +-- + +CREATE TABLE `mst_supplier` ( + `supplier_id` int(11) NOT NULL, + `supplier_name` varchar(100) NOT NULL, + `address` varchar(100) DEFAULT NULL, + `postal_code` char(10) DEFAULT NULL, + `phone` char(14) DEFAULT NULL, + `contact` char(30) DEFAULT NULL, + `fax` char(14) DEFAULT NULL, + `account` char(12) DEFAULT NULL, + `e_mail` char(80) DEFAULT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_topic` +-- + +CREATE TABLE `mst_topic` ( + `topic_id` int(11) NOT NULL, + `topic` varchar(50) NOT NULL, + `topic_type` enum('t','g','n','tm','gr','oc') NOT NULL, + `auth_list` varchar(20) DEFAULT NULL, + `classification` varchar(50) NOT NULL COMMENT 'Classification Code', + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `mst_topic` +-- + +INSERT INTO `mst_topic` (`topic_id`, `topic`, `topic_type`, `auth_list`, `classification`, `input_date`, `last_update`) VALUES +(1, 'Programming', 't', NULL, '', '2007-11-29', '2007-11-29'), +(2, 'Website', 't', NULL, '', '2007-11-29', '2007-11-29'), +(3, 'Operating System', 't', NULL, '', '2007-11-29', '2007-11-29'), +(4, 'Linux', 't', NULL, '', '2007-11-29', '2007-11-29'), +(5, 'Computer', 't', NULL, '', '2007-11-29', '2007-11-29'), +(6, 'Database', 't', NULL, '', '2007-11-29', '2007-11-29'), +(7, 'RDBMS', 't', NULL, '', '2007-11-29', '2007-11-29'), +(8, 'Open Source', 't', NULL, '', '2007-11-29', '2007-11-29'), +(9, 'Project', 't', NULL, '', '2007-11-29', '2007-11-29'), +(10, 'Design', 't', NULL, '', '2007-11-29', '2007-11-29'), +(11, 'Information', 't', NULL, '', '2007-11-29', '2007-11-29'), +(12, 'Organization', 't', NULL, '', '2007-11-29', '2007-11-29'), +(13, 'Metadata', 't', NULL, '', '2007-11-29', '2007-11-29'), +(14, 'Library', 't', NULL, '', '2007-11-29', '2007-11-29'), +(15, 'Corruption', 't', NULL, '', '2007-11-29', '2007-11-29'), +(16, 'Development', 't', NULL, '', '2007-11-29', '2007-11-29'), +(17, 'Poverty', 't', NULL, '', '2007-11-29', '2007-11-29'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_visitor_room` +-- + +CREATE TABLE `mst_visitor_room` ( + `id` int(11) NOT NULL, + `name` varchar(50) NOT NULL, + `unique_code` varchar(5) NOT NULL COMMENT 'Code for identification each room', + `created_at` datetime DEFAULT NULL, + `updated_at` datetime NOT NULL DEFAULT current_timestamp() +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `mst_voc_ctrl` +-- + +CREATE TABLE `mst_voc_ctrl` ( + `vocabolary_id` int(11) NOT NULL, + `topic_id` int(11) NOT NULL, + `rt_id` varchar(11) NOT NULL, + `related_topic_id` varchar(250) NOT NULL, + `scope` text DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `plugins` +-- + +CREATE TABLE `plugins` ( + `id` varchar(32) NOT NULL, + `options` longtext CHARACTER SET utf8mb4 COLLATE utf8mb4_bin DEFAULT NULL CHECK (json_valid(`options`)), + `path` text NOT NULL, + `created_at` datetime NOT NULL, + `updated_at` datetime DEFAULT NULL, + `deleted_at` datetime DEFAULT NULL, + `uid` int(11) NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `reserve` +-- + +CREATE TABLE `reserve` ( + `reserve_id` int(11) NOT NULL, + `member_id` varchar(20) NOT NULL, + `biblio_id` int(11) NOT NULL, + `item_code` varchar(20) NOT NULL, + `reserve_date` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `search_biblio` +-- + +CREATE TABLE `search_biblio` ( + `biblio_id` int(11) NOT NULL, + `title` text DEFAULT NULL, + `edition` varchar(50) DEFAULT NULL, + `isbn_issn` varchar(32) DEFAULT NULL, + `author` text DEFAULT NULL, + `topic` text DEFAULT NULL, + `gmd` varchar(30) DEFAULT NULL, + `publisher` varchar(100) DEFAULT NULL, + `publish_place` varchar(30) DEFAULT NULL, + `language` varchar(20) DEFAULT NULL, + `classification` varchar(40) DEFAULT NULL, + `spec_detail_info` text DEFAULT NULL, + `carrier_type` varchar(100) NOT NULL, + `content_type` varchar(100) NOT NULL, + `media_type` varchar(100) NOT NULL, + `location` text DEFAULT NULL, + `publish_year` varchar(20) DEFAULT NULL, + `notes` text DEFAULT NULL, + `series_title` text DEFAULT NULL, + `items` text DEFAULT NULL, + `collection_types` text DEFAULT NULL, + `call_number` varchar(50) DEFAULT NULL, + `opac_hide` smallint(1) NOT NULL DEFAULT 0, + `promoted` smallint(1) NOT NULL DEFAULT 0, + `labels` text DEFAULT NULL, + `collation` varchar(100) DEFAULT NULL, + `image` varchar(100) DEFAULT NULL, + `input_date` datetime DEFAULT NULL, + `last_update` datetime DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci COMMENT='index table for advance searching technique for SLiMS'; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `serial` +-- + +CREATE TABLE `serial` ( + `serial_id` int(11) NOT NULL, + `date_start` date NOT NULL, + `date_end` date DEFAULT NULL, + `period` varchar(100) DEFAULT NULL, + `notes` text DEFAULT NULL, + `biblio_id` int(11) DEFAULT NULL, + `gmd_id` int(11) DEFAULT NULL, + `input_date` date NOT NULL, + `last_update` date NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `setting` +-- + +CREATE TABLE `setting` ( + `setting_id` int(3) NOT NULL, + `setting_name` varchar(30) NOT NULL, + `setting_value` text DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `setting` +-- + +INSERT INTO `setting` (`setting_id`, `setting_name`, `setting_value`) VALUES +(1, 'library_name', 's:7:\"Senayan\";'), +(2, 'library_subname', 's:37:\"Open Source Library Management System\";'), +(3, 'template', 'a:2:{s:5:\"theme\";s:7:\"default\";s:3:\"css\";s:26:\"template/default/style.css\";}'), +(4, 'admin_template', 'a:2:{s:5:\"theme\";s:7:\"default\";s:3:\"css\";s:32:\"admin_template/default/style.css\";}'), +(5, 'default_lang', 's:5:\"en_US\";'), +(6, 'opac_result_num', 's:2:\"10\";'), +(7, 'enable_promote_titles', 'N;'), +(8, 'quick_return', 'b:1;'), +(9, 'allow_loan_date_change', 'b:0;'), +(10, 'loan_limit_override', 'b:0;'), +(11, 'enable_xml_detail', 'b:1;'), +(12, 'enable_xml_result', 'b:1;'), +(13, 'allow_file_download', 'b:1;'), +(14, 'session_timeout', 's:4:\"7200\";'), +(15, 'circulation_receipt', 'b:0;'), +(16, 'barcode_encoding', 's:7:\"code128\";'), +(17, 'ignore_holidays_fine_calc', 'b:0;'), +(18, 'barcode_print_settings', 'a:12:{s:19:\"barcode_page_margin\";d:0.200000000000000011102230246251565404236316680908203125;s:21:\"barcode_items_per_row\";i:3;s:20:\"barcode_items_margin\";d:0.1000000000000000055511151231257827021181583404541015625;s:17:\"barcode_box_width\";i:7;s:18:\"barcode_box_height\";i:5;s:27:\"barcode_include_header_text\";i:1;s:17:\"barcode_cut_title\";i:50;s:19:\"barcode_header_text\";s:0:\"\";s:13:\"barcode_fonts\";s:41:\"Arial, Verdana, Helvetica, \'Trebuchet MS\'\";s:17:\"barcode_font_size\";i:11;s:13:\"barcode_scale\";i:70;s:19:\"barcode_border_size\";i:1;}'), +(19, 'label_print_settings', 'a:10:{s:11:\"page_margin\";d:0.200000000000000011102230246251565404236316680908203125;s:13:\"items_per_row\";i:3;s:12:\"items_margin\";d:0.05000000000000000277555756156289135105907917022705078125;s:9:\"box_width\";i:8;s:10:\"box_height\";d:3.29999999999999982236431605997495353221893310546875;s:19:\"include_header_text\";i:1;s:11:\"header_text\";s:0:\"\";s:5:\"fonts\";s:41:\"Arial, Verdana, Helvetica, \'Trebuchet MS\'\";s:9:\"font_size\";i:11;s:11:\"border_size\";i:1;}'), +(20, 'membercard_print_settings', 'a:1:{s:5:\"print\";a:1:{s:10:\"membercard\";a:61:{s:11:\"card_factor\";s:12:\"37.795275591\";s:21:\"card_include_id_label\";i:1;s:23:\"card_include_name_label\";i:1;s:22:\"card_include_pin_label\";i:1;s:23:\"card_include_inst_label\";i:0;s:24:\"card_include_email_label\";i:0;s:26:\"card_include_address_label\";i:1;s:26:\"card_include_barcode_label\";i:1;s:26:\"card_include_expired_label\";i:1;s:14:\"card_box_width\";d:8.5999999999999996447286321199499070644378662109375;s:15:\"card_box_height\";d:5.4000000000000003552713678800500929355621337890625;s:9:\"card_logo\";s:8:\"logo.png\";s:21:\"card_front_logo_width\";s:0:\"\";s:22:\"card_front_logo_height\";s:0:\"\";s:20:\"card_front_logo_left\";s:0:\"\";s:19:\"card_front_logo_top\";s:0:\"\";s:20:\"card_back_logo_width\";s:0:\"\";s:21:\"card_back_logo_height\";s:0:\"\";s:19:\"card_back_logo_left\";s:0:\"\";s:18:\"card_back_logo_top\";s:0:\"\";s:15:\"card_photo_left\";s:0:\"\";s:14:\"card_photo_top\";s:0:\"\";s:16:\"card_photo_width\";d:1.5;s:17:\"card_photo_height\";d:1.8000000000000000444089209850062616169452667236328125;s:23:\"card_front_header1_text\";s:19:\"Library Member Card\";s:28:\"card_front_header1_font_size\";s:2:\"12\";s:23:\"card_front_header2_text\";s:10:\"My Library\";s:28:\"card_front_header2_font_size\";s:2:\"12\";s:22:\"card_back_header1_text\";s:10:\"My Library\";s:27:\"card_back_header1_font_size\";s:2:\"12\";s:22:\"card_back_header2_text\";s:35:\"My Library Full Address and Website\";s:27:\"card_back_header2_font_size\";s:1:\"5\";s:17:\"card_header_color\";s:7:\"#0066FF\";s:18:\"card_bio_font_size\";s:2:\"11\";s:20:\"card_bio_font_weight\";s:4:\"bold\";s:20:\"card_bio_label_width\";s:3:\"100\";s:9:\"card_city\";s:9:\"City Name\";s:10:\"card_title\";s:15:\"Library Manager\";s:14:\"card_officials\";s:14:\"Librarian Name\";s:17:\"card_officials_id\";s:12:\"Librarian ID\";s:15:\"card_stamp_file\";s:9:\"stamp.png\";s:19:\"card_signature_file\";s:13:\"signature.png\";s:15:\"card_stamp_left\";s:0:\"\";s:14:\"card_stamp_top\";s:0:\"\";s:16:\"card_stamp_width\";s:0:\"\";s:17:\"card_stamp_height\";s:0:\"\";s:13:\"card_exp_left\";s:0:\"\";s:12:\"card_exp_top\";s:0:\"\";s:14:\"card_exp_width\";s:0:\"\";s:15:\"card_exp_height\";s:0:\"\";s:18:\"card_barcode_scale\";i:100;s:17:\"card_barcode_left\";s:0:\"\";s:16:\"card_barcode_top\";s:0:\"\";s:18:\"card_barcode_width\";s:0:\"\";s:19:\"card_barcode_height\";s:0:\"\";s:10:\"card_rules\";s:120:\"\";s:20:\"card_rules_font_size\";s:1:\"8\";s:12:\"card_address\";s:76:\"My Library
website: http://slims.web.id, email : librarian@slims.web.id\";s:22:\"card_address_font_size\";s:1:\"7\";s:17:\"card_address_left\";s:0:\"\";s:16:\"card_address_top\";s:0:\"\";}}}'), +(21, 'enable_visitor_limitation', 's:1:\"0\";'), +(22, 'time_visitor_limitation', 's:2:\"60\";'), +(23, 'logo_image', NULL); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `stock_take` +-- + +CREATE TABLE `stock_take` ( + `stock_take_id` int(11) NOT NULL, + `stock_take_name` varchar(200) NOT NULL, + `start_date` datetime NOT NULL, + `end_date` datetime DEFAULT NULL, + `init_user` varchar(50) NOT NULL, + `total_item_stock_taked` int(11) DEFAULT NULL, + `total_item_lost` int(11) DEFAULT NULL, + `total_item_exists` int(11) DEFAULT 0, + `total_item_loan` int(11) DEFAULT NULL, + `stock_take_users` mediumtext DEFAULT NULL, + `is_active` int(1) NOT NULL DEFAULT 0, + `report_file` varchar(255) DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `stock_take_item` +-- + +CREATE TABLE `stock_take_item` ( + `stock_take_id` int(11) NOT NULL, + `item_id` int(11) NOT NULL, + `item_code` varchar(20) NOT NULL, + `title` varchar(255) NOT NULL, + `gmd_name` varchar(30) DEFAULT NULL, + `classification` varchar(30) DEFAULT NULL, + `coll_type_name` varchar(30) DEFAULT NULL, + `call_number` varchar(50) DEFAULT NULL, + `location` varchar(100) DEFAULT NULL, + `status` enum('e','m','u','l') NOT NULL DEFAULT 'm', + `checked_by` varchar(50) DEFAULT NULL, + `last_update` datetime DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- -------------------------------------------------------- + +-- +-- Table structure for table `system_log` +-- + +CREATE TABLE `system_log` ( + `log_id` int(11) NOT NULL, + `log_type` enum('staff','member','system') NOT NULL DEFAULT 'staff', + `id` varchar(50) DEFAULT NULL, + `log_location` varchar(50) NOT NULL, + `sub_module` varchar(50) DEFAULT NULL, + `action` varchar(50) DEFAULT NULL, + `log_msg` text NOT NULL, + `log_date` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `system_log` +-- + +INSERT INTO `system_log` (`log_id`, `log_type`, `id`, `log_location`, `sub_module`, `action`, `log_msg`, `log_date`) VALUES +(1, 'staff', 'admin', 'Login', '', '', 'Login FAILED for user admin from address 127.0.0.1', '2024-11-06 10:05:04'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `user` +-- + +CREATE TABLE `user` ( + `user_id` int(11) NOT NULL, + `username` varchar(50) NOT NULL, + `realname` varchar(100) NOT NULL, + `passwd` varchar(64) NOT NULL, + `2fa` text DEFAULT NULL, + `email` varchar(200) DEFAULT NULL, + `user_type` smallint(2) DEFAULT NULL, + `user_image` varchar(250) DEFAULT NULL, + `social_media` text DEFAULT NULL, + `last_login` datetime DEFAULT NULL, + `last_login_ip` char(15) DEFAULT NULL, + `groups` varchar(200) DEFAULT NULL, + `admin_template` text DEFAULT NULL, + `forgot` varchar(80) DEFAULT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `user` +-- + +INSERT INTO `user` (`user_id`, `username`, `realname`, `passwd`, `2fa`, `email`, `user_type`, `user_image`, `social_media`, `last_login`, `last_login_ip`, `groups`, `admin_template`, `forgot`, `input_date`, `last_update`) VALUES +(1, 'admin', 'Admin', '$2y$10$jwcbJB8rpzU2aGUQGrLGA.g3WiOjWJz3PRmTbq097BVZz5XAlYjlK', NULL, NULL, NULL, NULL, NULL, NULL, '127.0.0.1', 'a:1:{i:0;s:1:\"1\";}', NULL, NULL, '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `user_group` +-- + +CREATE TABLE `user_group` ( + `group_id` int(11) NOT NULL, + `group_name` varchar(30) NOT NULL, + `input_date` date DEFAULT NULL, + `last_update` date DEFAULT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Dumping data for table `user_group` +-- + +INSERT INTO `user_group` (`group_id`, `group_name`, `input_date`, `last_update`) VALUES +(1, 'Administrator', '2024-10-24', '2024-10-24'); + +-- -------------------------------------------------------- + +-- +-- Table structure for table `visitor_count` +-- + +CREATE TABLE `visitor_count` ( + `visitor_id` int(11) NOT NULL, + `member_id` varchar(20) DEFAULT NULL, + `member_name` varchar(255) NOT NULL, + `institution` varchar(100) DEFAULT NULL, + `room_code` varchar(5) DEFAULT NULL, + `checkin_date` datetime NOT NULL +) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; + +-- +-- Indexes for dumped tables +-- + +-- +-- Indexes for table `backup_log` +-- +ALTER TABLE `backup_log` + ADD PRIMARY KEY (`backup_log_id`); + +-- +-- Indexes for table `biblio` +-- +ALTER TABLE `biblio` + ADD PRIMARY KEY (`biblio_id`), + ADD KEY `references_idx` (`gmd_id`,`publisher_id`,`language_id`,`publish_place_id`), + ADD KEY `classification` (`classification`), + ADD KEY `biblio_flag_idx` (`opac_hide`,`promoted`), + ADD KEY `rda_idx` (`content_type_id`,`media_type_id`,`carrier_type_id`), + ADD KEY `uid` (`uid`); +ALTER TABLE `biblio` ADD FULLTEXT KEY `title_ft_idx` (`title`,`series_title`); +ALTER TABLE `biblio` ADD FULLTEXT KEY `notes_ft_idx` (`notes`); +ALTER TABLE `biblio` ADD FULLTEXT KEY `labels` (`labels`); + +-- +-- Indexes for table `biblio_attachment` +-- +ALTER TABLE `biblio_attachment` + ADD KEY `biblio_id` (`biblio_id`), + ADD KEY `file_id` (`file_id`), + ADD KEY `biblio_id_2` (`biblio_id`,`file_id`); + +-- +-- Indexes for table `biblio_author` +-- +ALTER TABLE `biblio_author` + ADD PRIMARY KEY (`biblio_id`,`author_id`), + ADD KEY `biblio_id` (`biblio_id`), + ADD KEY `author_id` (`author_id`); + +-- +-- Indexes for table `biblio_custom` +-- +ALTER TABLE `biblio_custom` + ADD PRIMARY KEY (`biblio_id`); + +-- +-- Indexes for table `biblio_log` +-- +ALTER TABLE `biblio_log` + ADD PRIMARY KEY (`biblio_log_id`), + ADD KEY `realname` (`realname`), + ADD KEY `biblio_id` (`biblio_id`), + ADD KEY `user_id` (`user_id`), + ADD KEY `ip` (`ip`), + ADD KEY `action` (`action`), + ADD KEY `affectedrow` (`affectedrow`), + ADD KEY `date` (`date`); +ALTER TABLE `biblio_log` ADD FULLTEXT KEY `title` (`title`); +ALTER TABLE `biblio_log` ADD FULLTEXT KEY `rawdata` (`rawdata`); +ALTER TABLE `biblio_log` ADD FULLTEXT KEY `additional_information` (`additional_information`); + +-- +-- Indexes for table `biblio_mark` +-- +ALTER TABLE `biblio_mark` + ADD UNIQUE KEY `id` (`id`), + ADD KEY `member_id_idx` (`member_id`), + ADD KEY `biblio_id_idx` (`biblio_id`); + +-- +-- Indexes for table `biblio_relation` +-- +ALTER TABLE `biblio_relation` + ADD PRIMARY KEY (`biblio_id`,`rel_biblio_id`); + +-- +-- Indexes for table `biblio_topic` +-- +ALTER TABLE `biblio_topic` + ADD PRIMARY KEY (`biblio_id`,`topic_id`), + ADD KEY `biblio_id` (`biblio_id`), + ADD KEY `topic_id` (`topic_id`); + +-- +-- Indexes for table `cache` +-- +ALTER TABLE `cache` + ADD UNIQUE KEY `name` (`name`); + +-- +-- Indexes for table `comment` +-- +ALTER TABLE `comment` + ADD PRIMARY KEY (`comment_id`); + +-- +-- Indexes for table `content` +-- +ALTER TABLE `content` + ADD PRIMARY KEY (`content_id`), + ADD UNIQUE KEY `content_path` (`content_path`); +ALTER TABLE `content` ADD FULLTEXT KEY `content_title` (`content_title`); +ALTER TABLE `content` ADD FULLTEXT KEY `content_desc` (`content_desc`); + +-- +-- Indexes for table `files` +-- +ALTER TABLE `files` + ADD PRIMARY KEY (`file_id`); +ALTER TABLE `files` ADD FULLTEXT KEY `file_name` (`file_name`); +ALTER TABLE `files` ADD FULLTEXT KEY `file_dir` (`file_dir`); + +-- +-- Indexes for table `files_read` +-- +ALTER TABLE `files_read` + ADD PRIMARY KEY (`filelog_id`); + +-- +-- Indexes for table `fines` +-- +ALTER TABLE `fines` + ADD PRIMARY KEY (`fines_id`), + ADD KEY `member_id` (`member_id`); + +-- +-- Indexes for table `group_access` +-- +ALTER TABLE `group_access` + ADD PRIMARY KEY (`group_id`,`module_id`); + +-- +-- Indexes for table `holiday` +-- +ALTER TABLE `holiday` + ADD PRIMARY KEY (`holiday_id`), + ADD UNIQUE KEY `holiday_dayname` (`holiday_dayname`,`holiday_date`); + +-- +-- Indexes for table `index_documents` +-- +ALTER TABLE `index_documents` + ADD PRIMARY KEY (`document_id`,`word_id`,`location`), + ADD KEY `document_id` (`document_id`), + ADD KEY `word_id` (`word_id`), + ADD KEY `location` (`location`); + +-- +-- Indexes for table `index_words` +-- +ALTER TABLE `index_words` + ADD PRIMARY KEY (`id`); + +-- +-- Indexes for table `item` +-- +ALTER TABLE `item` + ADD PRIMARY KEY (`item_id`), + ADD UNIQUE KEY `item_code` (`item_code`), + ADD KEY `uid` (`uid`), + ADD KEY `item_references_idx` (`coll_type_id`,`location_id`,`item_status_id`), + ADD KEY `biblio_id_idx` (`biblio_id`); + +-- +-- Indexes for table `kardex` +-- +ALTER TABLE `kardex` + ADD PRIMARY KEY (`kardex_id`), + ADD KEY `fk_serial` (`serial_id`); + +-- +-- Indexes for table `loan` +-- +ALTER TABLE `loan` + ADD PRIMARY KEY (`loan_id`), + ADD KEY `item_code` (`item_code`), + ADD KEY `member_id` (`member_id`), + ADD KEY `input_date` (`input_date`,`last_update`,`uid`); + +-- +-- Indexes for table `loan_history` +-- +ALTER TABLE `loan_history` + ADD PRIMARY KEY (`loan_id`), + ADD KEY `member_name` (`member_name`); + +-- +-- Indexes for table `member` +-- +ALTER TABLE `member` + ADD PRIMARY KEY (`member_id`), + ADD KEY `member_name` (`member_name`), + ADD KEY `member_type_id` (`member_type_id`); + +-- +-- Indexes for table `member_custom` +-- +ALTER TABLE `member_custom` + ADD PRIMARY KEY (`member_id`); + +-- +-- Indexes for table `mst_author` +-- +ALTER TABLE `mst_author` + ADD PRIMARY KEY (`author_id`), + ADD UNIQUE KEY `author_name` (`author_name`,`authority_type`); + +-- +-- Indexes for table `mst_carrier_type` +-- +ALTER TABLE `mst_carrier_type` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `media_type` (`carrier_type`), + ADD KEY `code` (`code`); + +-- +-- Indexes for table `mst_coll_type` +-- +ALTER TABLE `mst_coll_type` + ADD PRIMARY KEY (`coll_type_id`), + ADD UNIQUE KEY `coll_type_name` (`coll_type_name`); + +-- +-- Indexes for table `mst_content_type` +-- +ALTER TABLE `mst_content_type` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `content_type` (`content_type`), + ADD KEY `code` (`code`); + +-- +-- Indexes for table `mst_custom_field` +-- +ALTER TABLE `mst_custom_field` + ADD PRIMARY KEY (`dbfield`), + ADD UNIQUE KEY `field_id` (`field_id`); + +-- +-- Indexes for table `mst_frequency` +-- +ALTER TABLE `mst_frequency` + ADD PRIMARY KEY (`frequency_id`); + +-- +-- Indexes for table `mst_gmd` +-- +ALTER TABLE `mst_gmd` + ADD PRIMARY KEY (`gmd_id`), + ADD UNIQUE KEY `gmd_name` (`gmd_name`), + ADD UNIQUE KEY `gmd_code` (`gmd_code`); + +-- +-- Indexes for table `mst_item_status` +-- +ALTER TABLE `mst_item_status` + ADD PRIMARY KEY (`item_status_id`), + ADD UNIQUE KEY `item_status_name` (`item_status_name`); + +-- +-- Indexes for table `mst_label` +-- +ALTER TABLE `mst_label` + ADD PRIMARY KEY (`label_id`), + ADD UNIQUE KEY `label_name` (`label_name`); + +-- +-- Indexes for table `mst_language` +-- +ALTER TABLE `mst_language` + ADD PRIMARY KEY (`language_id`), + ADD UNIQUE KEY `language_name` (`language_name`); + +-- +-- Indexes for table `mst_loan_rules` +-- +ALTER TABLE `mst_loan_rules` + ADD PRIMARY KEY (`loan_rules_id`); + +-- +-- Indexes for table `mst_location` +-- +ALTER TABLE `mst_location` + ADD PRIMARY KEY (`location_id`), + ADD UNIQUE KEY `location_name` (`location_name`); + +-- +-- Indexes for table `mst_media_type` +-- +ALTER TABLE `mst_media_type` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `media_type` (`media_type`), + ADD KEY `code` (`code`); + +-- +-- Indexes for table `mst_member_type` +-- +ALTER TABLE `mst_member_type` + ADD PRIMARY KEY (`member_type_id`), + ADD UNIQUE KEY `member_type_name` (`member_type_name`); + +-- +-- Indexes for table `mst_module` +-- +ALTER TABLE `mst_module` + ADD PRIMARY KEY (`module_id`), + ADD UNIQUE KEY `module_name` (`module_name`,`module_path`); + +-- +-- Indexes for table `mst_place` +-- +ALTER TABLE `mst_place` + ADD PRIMARY KEY (`place_id`), + ADD UNIQUE KEY `place_name` (`place_name`); + +-- +-- Indexes for table `mst_publisher` +-- +ALTER TABLE `mst_publisher` + ADD PRIMARY KEY (`publisher_id`), + ADD UNIQUE KEY `publisher_name` (`publisher_name`); + +-- +-- Indexes for table `mst_relation_term` +-- +ALTER TABLE `mst_relation_term` + ADD PRIMARY KEY (`ID`); + +-- +-- Indexes for table `mst_servers` +-- +ALTER TABLE `mst_servers` + ADD PRIMARY KEY (`server_id`); + +-- +-- Indexes for table `mst_supplier` +-- +ALTER TABLE `mst_supplier` + ADD PRIMARY KEY (`supplier_id`), + ADD UNIQUE KEY `supplier_name` (`supplier_name`); + +-- +-- Indexes for table `mst_topic` +-- +ALTER TABLE `mst_topic` + ADD PRIMARY KEY (`topic_id`), + ADD UNIQUE KEY `topic` (`topic`,`topic_type`); + +-- +-- Indexes for table `mst_visitor_room` +-- +ALTER TABLE `mst_visitor_room` + ADD PRIMARY KEY (`id`), + ADD UNIQUE KEY `unique_code_unq` (`unique_code`), + ADD KEY `unique_code_idx` (`unique_code`); + +-- +-- Indexes for table `mst_voc_ctrl` +-- +ALTER TABLE `mst_voc_ctrl` + ADD PRIMARY KEY (`vocabolary_id`); + +-- +-- Indexes for table `plugins` +-- +ALTER TABLE `plugins` + ADD UNIQUE KEY `id` (`id`); + +-- +-- Indexes for table `reserve` +-- +ALTER TABLE `reserve` + ADD PRIMARY KEY (`reserve_id`), + ADD KEY `references_idx` (`member_id`,`biblio_id`), + ADD KEY `item_code_idx` (`item_code`); + +-- +-- Indexes for table `search_biblio` +-- +ALTER TABLE `search_biblio` + ADD UNIQUE KEY `biblio_id` (`biblio_id`), + ADD KEY `add_indexes` (`gmd`,`publisher`,`publish_place`,`language`,`classification`,`publish_year`,`call_number`), + ADD KEY `add_indexes2` (`opac_hide`,`promoted`), + ADD KEY `rda_indexes` (`carrier_type`,`media_type`,`content_type`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `title` (`title`,`series_title`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `author` (`author`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `topic` (`topic`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `location` (`location`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `items` (`items`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `collection_types` (`collection_types`); +ALTER TABLE `search_biblio` ADD FULLTEXT KEY `labels` (`labels`); + +-- +-- Indexes for table `serial` +-- +ALTER TABLE `serial` + ADD PRIMARY KEY (`serial_id`), + ADD KEY `fk_serial_biblio` (`biblio_id`), + ADD KEY `fk_serial_gmd` (`gmd_id`); + +-- +-- Indexes for table `setting` +-- +ALTER TABLE `setting` + ADD PRIMARY KEY (`setting_id`), + ADD UNIQUE KEY `setting_name` (`setting_name`); + +-- +-- Indexes for table `stock_take` +-- +ALTER TABLE `stock_take` + ADD PRIMARY KEY (`stock_take_id`); + +-- +-- Indexes for table `stock_take_item` +-- +ALTER TABLE `stock_take_item` + ADD PRIMARY KEY (`stock_take_id`,`item_id`), + ADD UNIQUE KEY `item_code` (`item_code`), + ADD KEY `status` (`status`), + ADD KEY `item_properties_idx` (`gmd_name`,`classification`,`coll_type_name`,`location`); + +-- +-- Indexes for table `system_log` +-- +ALTER TABLE `system_log` + ADD PRIMARY KEY (`log_id`), + ADD KEY `log_type` (`log_type`), + ADD KEY `id` (`id`); + +-- +-- Indexes for table `user` +-- +ALTER TABLE `user` + ADD PRIMARY KEY (`user_id`), + ADD UNIQUE KEY `username` (`username`), + ADD KEY `realname` (`realname`); + +-- +-- Indexes for table `user_group` +-- +ALTER TABLE `user_group` + ADD PRIMARY KEY (`group_id`), + ADD UNIQUE KEY `group_name` (`group_name`); + +-- +-- Indexes for table `visitor_count` +-- +ALTER TABLE `visitor_count` + ADD PRIMARY KEY (`visitor_id`), + ADD KEY `member_id` (`member_id`), + ADD KEY `room_code` (`room_code`); + +-- +-- AUTO_INCREMENT for dumped tables +-- + +-- +-- AUTO_INCREMENT for table `backup_log` +-- +ALTER TABLE `backup_log` + MODIFY `backup_log_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `biblio` +-- +ALTER TABLE `biblio` + MODIFY `biblio_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `biblio_log` +-- +ALTER TABLE `biblio_log` + MODIFY `biblio_log_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `comment` +-- +ALTER TABLE `comment` + MODIFY `comment_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `content` +-- +ALTER TABLE `content` + MODIFY `content_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; + +-- +-- AUTO_INCREMENT for table `files` +-- +ALTER TABLE `files` + MODIFY `file_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `files_read` +-- +ALTER TABLE `files_read` + MODIFY `filelog_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `fines` +-- +ALTER TABLE `fines` + MODIFY `fines_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `holiday` +-- +ALTER TABLE `holiday` + MODIFY `holiday_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=7; + +-- +-- AUTO_INCREMENT for table `index_words` +-- +ALTER TABLE `index_words` + MODIFY `id` bigint(20) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `item` +-- +ALTER TABLE `item` + MODIFY `item_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `kardex` +-- +ALTER TABLE `kardex` + MODIFY `kardex_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `loan` +-- +ALTER TABLE `loan` + MODIFY `loan_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_author` +-- +ALTER TABLE `mst_author` + MODIFY `author_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_carrier_type` +-- +ALTER TABLE `mst_carrier_type` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=56; + +-- +-- AUTO_INCREMENT for table `mst_coll_type` +-- +ALTER TABLE `mst_coll_type` + MODIFY `coll_type_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- AUTO_INCREMENT for table `mst_content_type` +-- +ALTER TABLE `mst_content_type` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=26; + +-- +-- AUTO_INCREMENT for table `mst_custom_field` +-- +ALTER TABLE `mst_custom_field` + MODIFY `field_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_frequency` +-- +ALTER TABLE `mst_frequency` + MODIFY `frequency_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; + +-- +-- AUTO_INCREMENT for table `mst_gmd` +-- +ALTER TABLE `mst_gmd` + MODIFY `gmd_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=32; + +-- +-- AUTO_INCREMENT for table `mst_label` +-- +ALTER TABLE `mst_label` + MODIFY `label_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4; + +-- +-- AUTO_INCREMENT for table `mst_loan_rules` +-- +ALTER TABLE `mst_loan_rules` + MODIFY `loan_rules_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_media_type` +-- +ALTER TABLE `mst_media_type` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11; + +-- +-- AUTO_INCREMENT for table `mst_member_type` +-- +ALTER TABLE `mst_member_type` + MODIFY `member_type_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT for table `mst_module` +-- +ALTER TABLE `mst_module` + MODIFY `module_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; + +-- +-- AUTO_INCREMENT for table `mst_place` +-- +ALTER TABLE `mst_place` + MODIFY `place_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_publisher` +-- +ALTER TABLE `mst_publisher` + MODIFY `publisher_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_relation_term` +-- +ALTER TABLE `mst_relation_term` + MODIFY `ID` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=13; + +-- +-- AUTO_INCREMENT for table `mst_servers` +-- +ALTER TABLE `mst_servers` + MODIFY `server_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_supplier` +-- +ALTER TABLE `mst_supplier` + MODIFY `supplier_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_topic` +-- +ALTER TABLE `mst_topic` + MODIFY `topic_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18; + +-- +-- AUTO_INCREMENT for table `mst_visitor_room` +-- +ALTER TABLE `mst_visitor_room` + MODIFY `id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `mst_voc_ctrl` +-- +ALTER TABLE `mst_voc_ctrl` + MODIFY `vocabolary_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `reserve` +-- +ALTER TABLE `reserve` + MODIFY `reserve_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `serial` +-- +ALTER TABLE `serial` + MODIFY `serial_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `setting` +-- +ALTER TABLE `setting` + MODIFY `setting_id` int(3) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=24; + +-- +-- AUTO_INCREMENT for table `stock_take` +-- +ALTER TABLE `stock_take` + MODIFY `stock_take_id` int(11) NOT NULL AUTO_INCREMENT; + +-- +-- AUTO_INCREMENT for table `system_log` +-- +ALTER TABLE `system_log` + MODIFY `log_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT for table `user` +-- +ALTER TABLE `user` + MODIFY `user_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT for table `user_group` +-- +ALTER TABLE `user_group` + MODIFY `group_id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; + +-- +-- AUTO_INCREMENT for table `visitor_count` +-- +ALTER TABLE `visitor_count` + MODIFY `visitor_id` int(11) NOT NULL AUTO_INCREMENT; +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From 23dc820c8bcfbbb02ba404e4cb4c30376b376550 Mon Sep 17 00:00:00 2001 From: fuadkleb Date: Sat, 9 Nov 2024 23:08:30 +0700 Subject: [PATCH 2/4] doc(readme): add command for docker compose --- README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/README.md b/README.md index de34e5c7..e231e9d7 100755 --- a/README.md +++ b/README.md @@ -16,3 +16,16 @@ to learn more about GPL. - PHP GD enabled - PHP gettext enabled - PHP mbstring enabled + +### Running Docker Development + +Using docker for running requires Docker Desktop service, as it will use Docker to create the database. +You can run the test using this command : + +```shell +docker compose up -d --build +``` + +Setting docker default can be change on docker-compose.yml + + From 3d0cbfb572f65a1b2c9af37395f6862c805981c9 Mon Sep 17 00:00:00 2001 From: fuadkleb Date: Mon, 11 Nov 2024 13:25:48 +0700 Subject: [PATCH 3/4] refactor(compose): change port to env file --- .env.example | 2 ++ README.md | 7 ++++--- docker-compose.yml | 6 +++--- 3 files changed, 9 insertions(+), 6 deletions(-) create mode 100644 .env.example diff --git a/.env.example b/.env.example new file mode 100644 index 00000000..be10b2e3 --- /dev/null +++ b/.env.example @@ -0,0 +1,2 @@ +HTTP_PORT=8881 +DB_PORT=3307 diff --git a/README.md b/README.md index e231e9d7..c79004a5 100755 --- a/README.md +++ b/README.md @@ -20,12 +20,13 @@ to learn more about GPL. ### Running Docker Development Using docker for running requires Docker Desktop service, as it will use Docker to create the database. +Before run docker compose copy .env.example to .env for setting http port and maria db (db) port +can be change on .env + You can run the test using this command : ```shell docker compose up -d --build ``` -Setting docker default can be change on docker-compose.yml - - +Setting docker default can be change on docker-compose.yml \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml index 61dc0983..fbe81785 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: environment: - ENV=production - DB_HOST=db - - DB_PORT=3306 + - DB_PORT=${DB_PORT} - DB_USER=root - DB_PASS=Pass123 - DB_NAME=senayan @@ -18,7 +18,7 @@ services: - appimages:/var/www/html/images - apprepo:/var/www/html/repository ports: - - "8881:80" + - "${HTTP_PORT}:80" networks: - proxy depends_on: @@ -28,7 +28,7 @@ services: image: mariadb:lts container_name: db ports: - - "3306:3306" + - "${DB_PORT}:3306" volumes: - ./install/senayan_ddl.sql:/docker-entrypoint-initdb.d/init.sql - dbdata:/var/lib/mysql From 47650ce4a655277cd2862172feb75cbc3dfd2eb2 Mon Sep 17 00:00:00 2001 From: fuadkleb Date: Mon, 11 Nov 2024 14:21:41 +0700 Subject: [PATCH 4/4] fix(compose): change default port for interconnect db to app --- docker-compose.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yml b/docker-compose.yml index fbe81785..e3dc36d6 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -9,7 +9,7 @@ services: environment: - ENV=production - DB_HOST=db - - DB_PORT=${DB_PORT} + - DB_PORT=3306 - DB_USER=root - DB_PASS=Pass123 - DB_NAME=senayan