ไอเดีย #23: ระบบบริหารห้องพักหอพัก/อพาร์ตเมนต์
ทุกต้นเดือน เจ้าของหอพักหลายแห่งยังต้องเดินถือสมุดไปจดเลขมิเตอร์น้ำไฟทีละห้อง กลับมานั่งกดเครื่องคิดเลข เขียนบิลด้วยมือ แล้วสอดใต้ประตู พอผู้เช่าทักมาถามว่าทำไมค่าไฟเดือนนี้แพง ก็ต้องย้อนไปเปิดสมุดหาเลขเดือนก่อน ยังไม่นับเรื่องสัญญาเช่าที่หมดอายุไปแล้วไม่มีใครสังเกต หรือเงินประกันที่ต้องคืนตอนย้ายออก งานจุกจิกแบบนี้คือโจทย์ดีมากสำหรับคนอยากฝึกทำระบบให้ลูกค้าจริง
ใครจะใช้
- เจ้าของหอ — ดูห้องว่าง รายรับ ยอดค้างชำระ
- ผู้ดูแลหอ / แม่บ้าน — จดมิเตอร์ แจ้งซ่อม รับเงิน
- ผู้เช่า — ดูบิล แจ้งโอน และแจ้งซ่อมผ่านมือถือ
ฟีเจอร์ขั้นต่ำ (MVP)
- จัดการอาคาร ชั้น ห้อง พร้อมสถานะ ว่าง มีผู้เช่า ปิดปรับปรุง
- สัญญาเช่า ระบุผู้เช่า วันเริ่ม วันสิ้นสุด ค่าเช่า เงินประกัน และแนบไฟล์สัญญา
- บันทึกเลขมิเตอร์น้ำและไฟรายเดือนต่อห้อง โดยกรอกเรียงห้องได้เร็วบนมือถือ
- ออกบิลอัตโนมัติ รวมค่าเช่า ค่าน้ำ ค่าไฟตามหน่วยที่ใช้ และค่าบริการอื่น
- บันทึกการชำระเงิน รองรับ PromptPay QR และแนบสลิป
- รายงานห้องค้างชำระ และสัญญาที่ใกล้หมดอายุ
- ขั้นตอนย้ายออก คำนวณหักเงินประกันกับค่าเสียหายหรือยอดค้าง
ต่อยอดได้อีก
- ส่งบิลและแจ้งเตือนครบกำหนดชำระทาง LINE OA
- ระบบแจ้งซ่อมพร้อมติดตามสถานะ
- ให้ผู้ดูแลถ่ายรูปหน้ามิเตอร์แนบไว้เป็นหลักฐาน
- รองรับหลายหอในบัญชีเดียวสำหรับเจ้าของที่มีหลายตึก
โครงข้อมูลตั้งต้น
CREATE TABLE rooms (id serial PRIMARY KEY, building_id int, room_no varchar(10), monthly_rent numeric(10,2), status varchar(20));
CREATE TABLE leases (id serial PRIMARY KEY, room_id int, tenant_id int, start_date date, end_date date, deposit numeric(10,2), status varchar(20));
CREATE TABLE meter_readings (id serial PRIMARY KEY, room_id int, period char(7), water_unit int, electric_unit int, UNIQUE (room_id, period));
CREATE TABLE invoices (id serial PRIMARY KEY, lease_id int, period char(7), total numeric(10,2), due_date date, status varchar(20));
CREATE TABLE invoice_items (id serial PRIMARY KEY, invoice_id int, item_type varchar(20), qty numeric(10,2), unit_price numeric(10,2), amount numeric(10,2));
ระดับความยาก และสิ่งที่จะได้เรียนรู้
ระดับ ปานกลาง ทำด้วย Yii2 หรือ Laravel + PostgreSQL/MySQL ก็พอ ถ้าอยากให้ผู้เช่าใช้สะดวกอาจทำ LIFF หรือแอป Flutter เพิ่มทีหลัง สิ่งที่จะได้ฝึก:
- การคำนวณหน่วยที่ใช้จากเลขมิเตอร์เดือนก่อนกับเดือนนี้ รวมกรณีมิเตอร์วนรอบหรือเปลี่ยนมิเตอร์ใหม่
- การออกบิลแบบ batch ทั้งตึกด้วย cron หรือ console command
- การจัดการทศนิยมเงินบาทให้ปัดเศษสม่ำเสมอ
- การออกแบบฟอร์มกรอกข้อมูลบนมือถือให้เร็ว
ข้อควรระวัง
- บิลที่ออกแล้วไม่ควรแก้ทับ ถ้าผิดให้ยกเลิกแล้วออกใหม่ เพื่อให้ตรวจย้อนหลังได้
- สำเนาบัตรประชาชนผู้เช่าเป็นข้อมูลส่วนบุคคลตาม PDPA ควรเก็บแบบจำกัดสิทธิ์และกำหนดระยะเวลาลบหลังย้ายออก
- อัตราค่าน้ำค่าไฟและการออกใบกำกับภาษีมีเงื่อนไขเฉพาะ ควรตรวจสอบกับนักบัญชีหรือระเบียบล่าสุดก่อนใช้งานจริง
ใครมีญาติหรือคนรู้จักทำหอพักอยู่ ลองเอาไอเดียนี้ไปคุยดูครับ อยากรู้ว่าแต่ละคนเก็บค่าไฟแบบเหมาหรือตามหน่วยจริง และจะจัดการกรณีย้ายเข้ากลางเดือนอย่างไร? ถ้าทำแล้วเอามาแชร์โครงสร้างหรือหน้าจอในกระทู้นี้กันได้เลย