feat: implement full authentication system and CRUD APIs for users, rumah ibadah, and penduduk miskin with database updates.

This commit is contained in:
Syariffullah
2026-06-11 08:10:42 +07:00
parent 5585c34c5c
commit b77d4f6869
48 changed files with 1439 additions and 1442 deletions
+21 -48
View File
@@ -26,6 +26,8 @@ CREATE TABLE `penduduk_miskin` (
`jumlah_jiwa` int(11) NOT NULL DEFAULT 1,
`lat` double NOT NULL,
`lng` double NOT NULL,
`foto_rumah` varchar(255) DEFAULT NULL,
`foto_kk` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
@@ -44,39 +46,6 @@ CREATE TABLE `log_bantuan` (
CONSTRAINT `fk_log_miskin` FOREIGN KEY (`miskin_id`) REFERENCES `penduduk_miskin` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 4. Tabel jalan
DROP TABLE IF EXISTS `jalan`;
CREATE TABLE `jalan` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(255) NOT NULL,
`status` varchar(100) NOT NULL DEFAULT 'Kabupaten',
`panjang` double NOT NULL DEFAULT 0,
`geom` geometry NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 5. Tabel parsil
DROP TABLE IF EXISTS `parsil`;
CREATE TABLE `parsil` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(255) NOT NULL,
`status` varchar(100) NOT NULL DEFAULT 'SHM',
`luas` double NOT NULL DEFAULT 0,
`geom` geometry NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- 6. Tabel spbu
DROP TABLE IF EXISTS `spbu`;
CREATE TABLE `spbu` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nama` varchar(255) NOT NULL,
`no_wa` varchar(20) DEFAULT NULL,
`is_24_jam` tinyint(1) NOT NULL DEFAULT 0,
`lat` double NOT NULL,
`lng` double NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data Contoh (Sample Data) untuk Pontianak
@@ -98,20 +67,24 @@ INSERT INTO `log_bantuan` (`miskin_id`, `ibadah_id`, `tipe_bantuan`, `tanggal`,
(2, 2, 'Pendidikan', '2026-05-20', 'Bantuan biaya sekolah anak'),
(3, 1, 'Uang Tunai', '2026-06-01', 'Santunan tunai darurat');
-- Data Contoh SPBU
INSERT INTO `spbu` (`nama`, `no_wa`, `is_24_jam`, `lat`, `lng`) VALUES
('SPBU Ahmad Yani', '081234567890', 1, -0.0485, 109.3490),
('SPBU Oesman Sapta Odang', '081234567891', 0, -0.0345, 109.3512),
('SPBU Kota Baru', '081234567892', 1, -0.0512, 109.3198);
-- Data Contoh Jalan (Polyline)
-- Menggunakan ST_GeomFromText untuk membuat LineString
INSERT INTO `jalan` (`nama`, `status`, `panjang`, `geom`) VALUES
('Jl. Jenderal Ahmad Yani', 'Nasional', 2500, ST_GeomFromText('LINESTRING(109.3400 -0.0380, 109.3450 -0.0450, 109.3500 -0.0520)')),
('Jl. Gajah Mada', 'Provinsi', 1800, ST_GeomFromText('LINESTRING(109.3350 -0.0290, 109.3410 -0.0280, 109.3480 -0.0270)'));
-- Data Contoh Parsil (Polygon)
-- Menggunakan ST_GeomFromText untuk membuat Polygon (pastikan koordinat berputar kembali ke titik awal untuk menutup polygon)
INSERT INTO `parsil` (`nama`, `status`, `luas`, `geom`) VALUES
('Parsil Tanah A', 'SHM', 150, ST_GeomFromText('POLYGON((109.3360 -0.0250, 109.3375 -0.0250, 109.3375 -0.0260, 109.3360 -0.0260, 109.3360 -0.0250))')),
('Parsil Tanah B', 'HGB', 320, ST_GeomFromText('POLYGON((109.3405 -0.0310, 109.3420 -0.0310, 109.3420 -0.0330, 109.3405 -0.0330, 109.3405 -0.0310))'));
-- 7. Tabel users
DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`username` varchar(100) NOT NULL UNIQUE,
`password` varchar(255) NOT NULL,
`role` enum('admin', 'pengelola') NOT NULL,
`ibadah_id` int(11) DEFAULT NULL,
PRIMARY KEY (`id`),
CONSTRAINT `fk_users_ibadah` FOREIGN KEY (`ibadah_id`) REFERENCES `rumah_ibadah` (`id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
-- Data Contoh Pengguna (Default Users)
-- Password admin: password
-- Password pengelola: password (terhubung ke Masjid Raya Mujahidin, ibadah_id = 1)
INSERT INTO `users` (`username`, `password`, `role`, `ibadah_id`) VALUES
('admin', '$2y$10$qqKxivn4646czFu/ffwa/uZxJrkj3T9xmsrRbyxJbHx6jllpOOfDO', 'admin', NULL),
('pengelola_mujahidin', '$2y$10$qqKxivn4646czFu/ffwa/uZxJrkj3T9xmsrRbyxJbHx6jllpOOfDO', 'pengelola', 1);