- Add Node.js Express backend with REST API - Create database schema and server.js - Migrate frontend from IndexedDB to MySQL API - Add environment configuration (.env) - Rebrand from Koperasi to LPD Gerana - Update all documentation and UI text - Add configurable server port setting Features: - POST /api/dokumentasi - Create documentation - GET /api/dokumentasi - Retrieve all (with search) - GET /api/dokumentasi/:id - Get single record - DELETE /api/dokumentasi/:id - Delete record - Full CRUD operations with MySQL persistence
35 lines
1.2 KiB
SQL
35 lines
1.2 KiB
SQL
-- Database Schema untuk Aplikasi Dokumentasi Nasabah LPD Gerana
|
|
|
|
-- Buat database jika belum ada
|
|
CREATE DATABASE IF NOT EXISTS dokumentasi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
|
|
|
|
USE dokumentasi;
|
|
|
|
-- Tabel dokumentasi
|
|
CREATE TABLE IF NOT EXISTS dokumentasi (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
nama VARCHAR(255) NOT NULL,
|
|
no_anggota VARCHAR(100) NOT NULL,
|
|
jenis_perjanjian VARCHAR(255) NOT NULL,
|
|
tanggal DATE NOT NULL,
|
|
catatan TEXT,
|
|
foto LONGTEXT NOT NULL COMMENT 'Base64 encoded image',
|
|
timestamp TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_nama (nama),
|
|
INDEX idx_no_anggota (no_anggota),
|
|
INDEX idx_tanggal (tanggal),
|
|
INDEX idx_timestamp (timestamp)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
-- Tabel untuk tracking aktivitas (optional)
|
|
CREATE TABLE IF NOT EXISTS activity_log (
|
|
id INT AUTO_INCREMENT PRIMARY KEY,
|
|
action VARCHAR(50) NOT NULL,
|
|
dokumentasi_id INT,
|
|
details TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
INDEX idx_dokumentasi_id (dokumentasi_id),
|
|
INDEX idx_created_at (created_at),
|
|
FOREIGN KEY (dokumentasi_id) REFERENCES dokumentasi(id) ON DELETE CASCADE
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|