บลูพรินต์ฟีเจอร์ · 12 โมดูลหลัก · 283 รายการ
⚙️ ระบบยืนยันตัวตนและสิทธิ์การใช้งาน
ระบบจัดการการเข้าสู่ระบบ การลงทะเบียน และก ารกำหนดสิทธิ์ผู้ใช้งานทุกประเภท
✨ ลงทะเบียนผู้ใช้งาน
ฟีเจอร์สำหรับผู้ใช้งานใหม่สร้างบัญชีในระบบ
- 🔌 POST /api/v1/auth/register — Endpoint รับข้อมูลลงทะเบียน ตรวจสอบความถูกต้อง และสร้างบัญชีผู้ใช้ใหม่
- 🔌 POST /api/v1/auth/verify-email — Endpoint ส่งรหัสยืนยันอีเมลและตรวจสอบความถูกต้อง
- 🎨 หน้าลงทะเบียน (/register) — ฟอร์มกรอกข้อมูลสมัครสมาชิกพร้อม validation แบบ real-time
- 🎨 หน้ายืนยันอีเมล (/verify-email) — หน้ากรอกรหัสยืนยันหรือคลิกลิงก์ยืนยัน
✨ เข้าสู่ระบบและออกจากระบบ
ฟีเจอร์ยืนยันตัวตนและจัดการ session ผู้ใช้
- 🔌 POST /api/v1/auth/login — Endpoint ตรวจสอบ credentials และออก JWT token
- 🔌 POST /api/v1/auth/logout — Endpoint ยกเลิก session และ revoke token
- 🔌 POST /api/v1/auth/refresh-token — Endpoint ขอ access token ใหม่จาก refresh token
- 🎨 หน้าเข้าสู่ระบบ (/login) — ฟอร์มเข้าสู่ระบบพร้อมระบบจำรหัสผ่านและลืมรหัสผ่าน
✨ รีเซ็ตรหัสผ่าน
ฟีเจอร์กู้คืนรหัสผ่านเมื่อผู้ใช้ลืม
- 🔌 POST /api/v1/auth/forgot-password — Endpoint ส่งลิงก์รีเซ็ตรหัสผ่านไปยังอีเมล
- 🔌 POST /api/v1/auth/reset-password — Endpoint ตั้งรหัสผ่านใหม่จาก token ที่ได้รับ
- 🎨 หน้าลืมรหัสผ่าน (/forgot-password) — ฟอร์มกรอกอีเมลเพื่อขอลิงก์รีเซ็ตรหัสผ่าน
- 🎨 หน้าตั้งรหัสผ่านใหม่ (/reset-password) — ฟอร์มกรอกรหัสผ่านใหม่พร้อม confirm password
✨ จัดการสิทธิ์และบทบาท
ระบบกำหนดสิทธิ์การเข้าถึงตามบทบาทต่างๆ
- 🗄️ ตาราง users — เก็บข้อมูลผู้ใช้งานทั้งหมด (id, email, password_hash, role, status, created_at)
- 🗄️ ตาราง roles — เก็บบทบาทในระบบ (id, name, permissions, description)
- 🗄️ ตาราง user_sessions — เก็บ session การใช้งานของผู้ใช้ (id, user_id, token, expires_at, device_info)
- 🔒 Middleware ตรวจสอบสิทธิ์ — ระบบตรวจสอบ JWT token และสิทธิ์การเข้าถึง API ทุก endpoint
✨ การยืนยันตัวตนแบบสองชั้น (2FA)
เพิ่มความปลอดภัยด้วยการยืนยันตัวตนสองขั้นตอน
- 🔌 POST /api/v1/auth/2fa/setup — Endpoint ตั้งค่า 2FA ด้วย TOTP (Time-based One-Time Password)
- 🔌 POST /api/v1/auth/2fa/verify — Endpoint ตรวจสอบรหัส 2FA ตอนเข้าสู่ระบบ
- 🎨 หน้าตั้งค่า 2FA (/settings/security/2fa) — หน้าสแกน QR code และบันทึก recovery codes
⚙️ ระบบจัดการลานจอดรถ
ระบบหลักสำหรับจัดการข้อมูลลานจอดรถ โซน และช่องจอดทั้งห มด
✨ จัดการข้อมูลลานจอดรถ
CRUD ข้อมูลลานจอดรถแต่ละสาขา
- 🔌 POST /api/v1/parking-lots — Endpoint สร้างลานจอดรถใหม่พร้อมข้อมูลครบถ้วน
- 🔌 GET /api/v1/parking-lots — Endpoint ดึงรายการลานจอดรถทั้งหมดแบบ paginated
- 🔌 PUT /api/v1/parking-lots/:id — Endpoint แก้ไขข้อมูลลานจอดรถ
- 🔌 DELETE /api/v1/parking-lots/:id — Endpoint ลบลานจอดรถ (soft delete)
- 🗄️ ตาราง parking_lots — เก็บข้อมูลลานจอดรถ (id, name, address, coordinates, total_spaces, operating_hours , status)
- 🎨 หน้ารายการลานจอดรถ (/admin/parking-lots) — ตารางแสดงลานจอดรถทั้งหมดพร้อม filter และ sort
- 🎨 หน้าสร้าง/แก้ไขลานจอดรถ (/admin/parking-lots/[id]) — ฟอร์มจัดการข้อมูลลานจอดรถแบบ multi-step
✨ จัดการโซนภายในลานจอดรถ
แบ่งพื้นที่ลานจอดเป็นโซนย่อยตามประเภท
- 🔌 POST /api/v1/parking-lots/:lotId/zones — Endpoint สร้างโซนใหม่ภายในลานจอดรถ
- 🔌 GET /api/v1/parking-lots/:lotId/zones — Endpoint ดึงรายการโซนทั้งหมดของลานจอดรถ
- 🔌 PUT /api/v1/zones/:id — Endpoint แก้ไขข้อมูลโซน
- 🗄️ ตาราง parking_zones — เก็บข้อมูลโซน (id, lot_id, name, zone_type, hourly_rate, capacity, floor_level)
- 🎨 หน้าจัดการโซน (/admin/parking-lots/[id]/zones) — แผนผังโซนแบบ interactive พร้อม drag-drop จัดเรียง
✨ จัดการช่องจอดรถ
จัดการช่องจอดรถแต่ละช่องในแต่ละโซน
- 🔌 POST /api/v1/zones/:zoneId/spots — Endpoint สร้างช่องจอดรถหลายช่องพร้อมกัน (batch create)
- 🔌 GET /api/v1/zones/:zoneId/spots — Endpoint ดึงรายการช่องจอดทั้งหมดในโซน
- 🔌 PUT /api/v1/spots/:id — Endpoint แก้ไขสถานะและข้อมูลช่องจอดรถ
- 🔌 PATCH /api/v1/spots/:id/status — Endpoint อัปเดตสถานะช่องจอดรถแบบ real-time
- 🗄️ ตาราง parking_spots — เก็บข้อมูลช่องจอด (id, zone_id, spot_number, spot_type, status, sensor_id, coordin ates)
- 🎨 หน้าแผนผังช่องจอด (/admin/parking-lots/[id]/floor-plan) — แผนผังชั้นแบบ visual แสดงสถานะช่องจอด real-time
✨ ตั้งค่าอัตราค่าจอดรถ
กำหนดราคาค่าจอดรถตามประเภทโซนและช่วงเวลา
- 🔌 POST /api/v1/pricing-rules — Endpoint สร้างกฎการคิดราคาใหม่
- 🔌 GET /api/v1/pricing-rules — Endpoint ดึงรายการกฎราคาทั้งหมด
- 🔌 PUT /api/v1/pricing-rules/:id — Endpoint แก้ไขกฎราคา
- 🗄️ ตาราง pricing_rules — เก็บกฎราคา (id, zone_id, vehicle_type, base_rate, hourly_rate, daily_cap, night _rate, weekend_rate)
- 🎨 หน้าตั้งค่าราคา (/admin/pricing) — ตารางกำหนดราคาแบบ calendar view พร้อม bulk edit
✨ อัปโหลดแผนผังลานจอดรถ
ระบบอัปโหลดและจัดการรูปภาพแผนผัง
- 🔌 POST /api/v1/upload/floor-plan — Endpoint อัปโหลดไฟล์รูปแผนผังชั้นไปยัง AWS S3
- 🔌 DELETE /api/v1/upload/floor-plan/:key — Endpoint ลบไฟล์แผนผังจาก S3
- 🗄️ ตาราง floor_plans — เก็บข้อมูลแผนผัง (id, lot_id, floor_number, image_url, coordinates_mapping)
- 🎨 หน้าอัปโหลดแผนผัง (/admin/parking-lots/[id]/upload-plan) — อินเตอร์เฟซอัปโหลดรูปพร้อม crop และ annotate ตำแหน่งช่องจอด
⚙️ ระบบการจองที่จอดรถ
ระบบให้ผู้ใช้จองล่วงหน้าและจัดการการจอง
✨ ค้นหาและเลือกที่จอดรถ
ฟีเจอร์ค้นหาลานจอดรถที่ว่างตามเงื่อนไข
- 🔌 GET /api/v1/search/parking — Endpoint ค้นหาลานจอดรถตามตำแหน่ง วันเวลา และประเภทรถ
- 🔌 GET /api/v1/parking-lots/:id/availability — Endpoint ตรวจสอบช่องว่างในลานจอดรถตามช่วงเวลา
- 🎨 หน้าค้นหาลานจอดรถ (/search) — หน้าค้นหาพร้อมแผนที่ ตัวกรอง และรายการผลลัพธ์
- 🎨 หน้ารายละเอียดลานจอดรถ (/parking-lots/[id]) — หน้าแสดงข้อมูลลานจอดรถ รีวิว และปุ่มจอง
✨ สร้างการจอง
กระบวนการจองที่จอดรถล่วงหน้า
- 🔌 POST /api/v1/reservations — Endpoint สร้างการจองใหม่พร้อมตรวจสอบความว่าง
- 🔌 POST /api/v1/reservations/calculate-price — Endpoint คำนวณราคาการจองก่อนยืนยัน
- 🗄️ ตาราง reservations — เก็บข้อมูลการจอง (id, user_id, spot_id, start_time, end_time, total_price, status , qr_code)
- 🎨 หน้าสร้างการจอง (/reservations/new) — ฟอร์มเลือกวันเวลา ประเภทรถ และยืนยันการจอง
- 🎨 หน้ายืนยันการจอง (/reservations/confirm) — หน้าสรุปรายละเอียดการจองก่อนชำระเงิน
✨ ชำระเงินการจอง
ระบบรับชำระเงินค่าจองล่วงหน้า
- 🔌 POST /api/v1/payments/create-intent — Endpoint สร้าง payment intent ของ Stripe
- 🔌 POST /api/v1/payments/confirm — Endpoint ยืนยันการชำระเงินและอัปเดตสถานะการจอง
- 🔌 POST /api/v1/webhooks/stripe — Endpoint รับ webhook จาก Stripe
- 🗄️ ตาราง payments — เก็บข้อมูลการชำระเงิน (id, reservation_id, amount, payment_method, transaction_id, status, paid_at)
- 🎨 หน้าชำระเงิน (/payments/checkout) — หน้ากรอกข้อมูลบัตรเครดิตผ่าน Stripe Elements
✨ จัดการการจองของฉัน
ให้ผู้ใช้ดูและจัดการการจองของตนเอง
- 🔌 GET /api/v1/my-reservations — Endpoint ดึงรายการจองของผู้ใช้ที่ login
- 🔌 PUT /api/v1/reservations/:id/cancel — Endpoint ยกเลิกการจองพร้อมคำนวณคืนเงิน
- 🔌 GET /api/v1/reservations/:id/qr-code — Endpoint ดึง QR code สำหรับเข้าลานจอดรถ
- 🎨 หน้าการจองของฉัน (/my-reservations) — รายการการจองแบบ card view พร้อมสถานะและ action ต่างๆ
- 🎨 หน้ารายละเอียดการจอง (/my-reservations/[id]) — หน้าแสดง QR code รายละเอียดการจอง และปุ่มยกเลิก
✨ ต่ออายุการจอง
ขยายเวลาการจองเมื่อใกล้หมดเวลา
- 🔌 POST /api/v1/reservations/:id/extend — Endpoint ขยายเวลาการจองพร้อมคำนวณค่าใช้จ่ายเพิ่ม
- 🎨 หน้าต่ออายุการจอง (/my-reservations/[id]/extend) — ฟอร์มเลือกระยะเวลาต่ออายุและชำระเงินเพิ่ม
⚙️ ระบบการเข้า-ออกลานจอดรถ
ระบบควบคุมการเข้าออกด้วยอุปกรณ์ IoT และ QR cod e
✨ สแกน QR Code เข้าลาน
ระบบตรวจสอบสิทธิ์เข้าลานด้วย QR code
- 🔌 POST /api/v1/entry/scan-qr — Endpoint ตรวจสอบ QR code และบันทึกเวลาเข้า
- 🔌 POST /api/v1/entry/manual — Endpoint บันทึกการเข้าด้วยพนักงาน (กรณี QR ใช้ไม่ได้)
- 🗄️ ตาราง parking_entries — เก็บข้อมูลการเข้า (id, reservation_id, entry_time, gate_id, method, captured_plate )
- 🎨 หน้าสแกนเข้าสำหรับพนักงาน (/staff/entry-scan) — หน้า camera สแกน QR พร้อมแสดงสถานะการตรวจสอบ
✨ สแกน QR Code ออกลาน
ระบบตรวจสอบและคำนวณค่าจอดตอนออก
- 🔌 POST /api/v1/exit/scan-qr — Endpoint ตรวจสอบ QR code คำนวณค่าจอดและบันทึกเวลาออก
- 🔌 POST /api/v1/exit/pay-on-exit — Endpoint รับชำระเงินค่าจอดเกินก่อนออก
- 🗄️ ตาราง parking_exits — เก็บข้อมูลการออก (id, entry_id, exit_time, total_fee, additional_charge, payment_ status)
- 🎨 หน้าสแกนออกสำหรับพนักงาน (/staff/exit-scan) — หน้าแสดงรายละเอียดการจอดและค่าใช้จ่ายก่อนยืนยันออก
✨ ตรวจจับป้ายทะเบียนอัตโนมัติ (ANPR)
ระบบอ่านป้ายทะเบียนจากกล้อง
- 🔌 POST /api/v1/anpr/detect — Endpoint รับข้อมูลป้ายทะเบียนจากกล้อง ANPR
- 🔌 GET /api/v1/anpr/search — Endpoint ค้นหารถจากหมายเลขทะเบียน
- 🗄️ ตาราง anpr_logs — เก็บข้อมูลการตรวจจับ (id, camera_id, plate_number, confidence, image_url, detected _at)
- 🗄️ ตาราง registered_plates — เก็บป้ายทะเบียนที่ลงทะเบียน (id, user_id, plate_number, vehicle_type, is_primary)
- 🎨 หน้าตรวจสอบ ANPR (/staff/anpr) — หน้าแสดงภาพจากกล้องและผลการตรวจจับแบบ real-time
✨ ควบคุมไม้กั้นอัตโนมัติ
ระบบสั่งการไม้กั้นผ่าน IoT
- 🔌 POST /api/v1/gate/control — Endpoint ส่งคำสั่งเปิด/ปิดไม้กั้นไปยังอุปกรณ์
- 🔌 WebSocket /ws/gate-status — ช่องทาง real-time รับสถานะไม้กั้น
- 🗄️ ตาราง gate_devices — เก็บข้อมูลอุปกรณ์ไม้กั้น (id, lot_id, gate_type, device_ip, status, last_heartbeat)
- 🎨 หน้าควบคุมไม้กั้น (/staff/gate-control) — แผงควบคุมแบบ dashboard พร้อมปุ่ม manual override
✨ บันทึกการเข้าออกแบบไม่มีการจอง
รองรับลูกค้า walk-in ที่ไม่ได้จองล่วงหน้า
- 🔌 POST /api/v1/walk-in/entry — Endpoint บันทึกการเข้าของลูกค้า walk-in และออกบัตร
- 🔌 POST /api/v1/walk-in/exit — Endpoint คำนวณค่าจอดและรับชำระเงิน walk-in
- 🗄️ ตาราง walk_in_sessions — เก็บข้อมูล walk-in (id, ticket_number, plate_number, entry_time, exit_time, fee)
- 🎨 หน้าบันทึก walk-in (/staff/walk-in) — ฟอร์มบันทึกข้อมูลรถ walk-in และพิมพ์บัตร
⚙️ ระบบตรวจสอบสถานะที่จอดรถ Real-time
ระบบแสดงสถานะช่องจอดแบบ real-tim e ผ่านเซ็นเซอร์
✨ รับข้อมูลจากเซ็นเซอร์
ระบบรับและประมวลผลข้อมูลจากเซ็นเซอร์ IoT
- 🔌 POST /api/v1/sensors/data — Endpoint รับข้อมูลจากเซ็นเซอร์ (ultrasonic, magnetic, camera)
- 🔌 WebSocket /ws/sensor-data — ช่องทาง real-time ส่งข้อมูลเซ็นเซอร์ไป client
- 🗄️ ตาราง sensor_devices — เก็บข้อมูลเซ็นเซอร์ (id, spot_id, sensor_type, device_id, battery_level, last_seen)
- 🗄️ ตาราง sensor_readings — เก็บประวัติการอ่านค่า (id, sensor_id, is_occupied, confidence, reading_at)
- 🗄️ Redis Pub/Sub สถานะช่องจอด — เก็บสถานะล่าสุดของช่องจอดทั้งหมดใน memory เพื่อความเร็ว
✨ แสดงแผนที่ที่จอดรถแบบ Real-time
หน้าแผนที่แสดงสถานะช่องจอดสด
- 🔌 GET /api/v1/parking-lots/:id/realtime-status — Endpoint ดึงสถานะช่องจอดล่าสุดทั้งหมด
- 🎨 หน้าแผนที่ลานจอดรถ (/parking-map/[lot-id]) — แผนที่ interactive แสดงช่องว่างสีเขียว ช่องไม่ว่างสีแดง
- 🎨 หน้า dashboard สถานะ (/admin/realtime-dashboard) — หน้าจอขนาดใหญ่แสดงสถิติและสถานะลานจอดรถ
✨ แจ้งเตือนเหตุการณ์ผิดปกติ
ระบบแจ้งเตือนเมื่อพบปัญหา
- 🔌 POST /api/v1/alerts — Endpoint สร้างการแจ้งเตือนใหม่
- 🔌 GET /api/v1/alerts — Endpoint ดึงรายการแจ้งเตือน
- 🗄️ ตาราง alerts — เก็บข้อมูลแจ้งเตือน (id, lot_id, alert_type, severity, message, is_resolved, create d_at)
- 📌 Firebase Cloud Messaging — ระบบ push notification ไปยังอุปกรณ์พนักงาน
- 🎨 หน้าแจ้งเตือน (/admin/alerts) — รายการแจ้งเตือนแบบ real-time พร้อม filter ตามประเภท
✨ ประวัติการใช้งานช่องจอด
บันทึกและวิเคราะห์การใช้งาน
- 🔌 GET /api/v1/spots/:id/history — Endpoint ดึงประวัติการใช้งานช่องจอด
- 🗄️ ตาราง spot_usage_logs — เก็บประวัติการใช้งาน (id, spot_id, started_at, ended_at, duration, revenue)
- 🎨 หน้ารายงานการใช้งานช่องจอด (/admin/reports/spot-usage) — กราฟและตารางแสดง utilization rate แต่ละช่อง
⚙️ ระบบสมาชิกและยานพาหนะ
ระบบจัดการข้อมูลสมาชิกและรถที่ลงทะเบียน
✨ โปรไฟล์ผู้ใช้งาน
จัดการข้อมูลส่วนตัวของสมาชิก
- 🔌 GET /api/v1/profile — Endpoint ดึงข้อมูลโปรไฟล์ผู้ใช้
- 🔌 PUT /api/v1/profile — Endpoint อัปเดตข้อมูลส่วนตัว
- 🔌 POST /api/v1/profile/avatar — Endpoint อัปโหลดรูปโปรไฟล์
- 🎨 หน้าโปรไฟล์ (/profile) — หน้าแสดงและแก้ไขข้อมูลส่วนตัว
✨ จัดการยานพาหนะ
ลงทะเบียนและจัดการรถของสมาชิก
- 🔌 POST /api/v1/vehicles — Endpoint เพิ่มรถใหม่เข้าระบบ
- 🔌 GET /api/v1/vehicles — Endpoint ดึงรายการรถของผู้ใช้
- 🔌 PUT /api/v1/vehicles/:id — Endpoint แก้ไขข้อมูลรถ
- 🔌 DELETE /api/v1/vehicles/:id — Endpoint ลบรถออกจากระบบ
- 🗄️ ตาราง vehicles — เก็บข้อมูลรถ (id, user_id, plate_number, brand, model, color, vehicle_type, is_de fault)
- 🎨 หน้ารายการรถ (/my-vehicles) — รายการรถแบบ card พร้อมรูปและข้อมูลสรุป
- 🎨 หน้าเพิ่ม/แก้ไขรถ (/my-vehicles/[id]) — ฟอร์มกรอกข้อมูลรถพร้อมตัวอย่างป้ายทะเบียน
✨ ระบบสมาชิกระดับ (Membership Tiers)
ระบบคะแนนและสิทธิประโยชน์สมาชิก
- 🔌 GET /api/v1/membership/status — Endpoint ดึงสถานะสมาชิกและคะแนนสะสม
- 🗄️ ตาราง membership_tiers — เก็บระดับสมาชิก (id, name, min_points, discount_percent, benefits)
- 🗄️ ตาราง user_points — เก็บประวัติคะแนน (id, user_id, points, transaction_type, description, created_at)
- 🎨 หน้าสถานะสมาชิก (/membership) — หน้าแสดงระดับสมาชิก คะแนน และสิทธิประโยชน์
✨ บัตรจอดรถรายเดือน/รายปี
ระบบสมัครสมาชิกจอดรถระยะยาว
- 🔌 POST /api/v1/subscriptions — Endpoint สมัครบัตรจอดรถระยะยาว
- 🔌 GET /api/v1/subscriptions — Endpoint ดึงข้อมูลบัตรสมาชิก
- 🗄️ ตาราง subscriptions — เก็บข้อมูลสมาชิก (id, user_id, lot_id, zone_id, start_date, end_date, price, statu s)
- 🗄️ ตาราง subscription_payments — เก็บประวัติการชำระค่าสมาชิก
- 🎨 หน้าสมัครบัตรสมาชิก (/subscriptions/apply) — ฟอร์มเลือกแพ็กเกจและชำระเงิน
- 🎨 หน้าบัตรสมาชิกดิจิตอล (/subscriptions/card) — บัตรสมาชิกแบบ digital พร้อม QR code สำหรับสแกนเข้า
⚙️ ระบบรายงานและวิเคราะห์ข้อมูล
ระบบสร้างรายงานและแดชบอร์ดสำหรับผู้บริหาร
✨ แดชบอร์ดภาพรวม
หน้าสรุปข้อมูลสำคัญแบบ real-time
- 🔌 GET /api/v1/dashboard/summary — Endpoint ดึงข้อมูลสรุป (ยอดขาย จำนวนรถ อัตราการเข้าชม)
- 🔌 GET /api/v1/dashboard/revenue-chart — Endpoint ดึงข้อมูลรายได้ย้อนหลัง
- 🎨 หน้าแดชบอร์ดหลัก (/admin/dashboard) — หน้า dashboard พร้อมกราฟและ KPI cards
✨ รายงานรายได้
รายงานรายละเอียดรายได้แยกตามประเภท
- 🔌 GET /api/v1/reports/revenue — Endpoint ดึงรายงานรายได้ตามช่วงเวลา
- 🔌 GET /api/v1/reports/revenue/export — Endpoint ส่งออกรายงานเป็น Excel/PDF
- 🎨 หน้ารายงานรายได้ (/admin/reports/revenue) — ตารางและกราฟรายได้พร้อม filter หลายมิติ
✨ รายงานการใช้งานลานจอดรถ
วิเคราะห์ประสิทธิภาพการใช้พื้นที่
- 🔌 GET /api/v1/reports/occupancy — Endpoint ดึงข้อมูลอัตราการเข้าจอด (occupancy rate)
- 🔌 GET /api/v1/reports/peak-hours — Endpoint ดึงข้อมูลช่วงเวลาที่มีคนใช้มากที่สุด
- 🎨 หน้ารายงานการใช้งาน (/admin/reports/occupancy) — กราฟ heatmap แสดงความหนาแน่นตามช่วงเวลา
✨ รายงานลูกค้า
วิเคราะห์พฤติกรรมลูกค้า
- 🔌 GET /api/v1/reports/customers — Endpoint ดึงข้อมูลลูกค้าและความถี่ในการใช้งาน
- 🔌 GET /api/v1/reports/customer-retention — Endpoint ดึงข้อมูลอัตราการกลับมาใช้ซ้ำ
- 🎨 หน้ารายงานลูกค้า (/admin/reports/customers) — กราฟ cohort analysis และ customer lifetime value
✨ รายงานการทำงานของพนักงาน
ติดตามประสิทธิภาพพนักงาน
- 🔌 GET /api/v1/reports/staff-activities — Endpoint ดึงประวัติการทำงานของพนักงาน
- 🗄️ ตาราง staff_activities — เก็บประวัติการทำงาน (id, staff_id, action_type, details, performed_at)
- 🎨 หน้ารายงานพนักงาน (/admin/reports/staff) — ตารางกิจกรรมและสถิติการทำงานของพนักงานแต่ละคน
✨ รายงานส่งออกอัตโนมัติ
ตั้งค่าการส่งรายงานประจำ
- 🔌 POST /api/v1/scheduled-reports — Endpoint สร้างงานส่งรายงานอัตโนมัติ
- 🗄️ ตาราง scheduled_reports — เก็บตั้งค่ารายงาน (id, report_type, frequency, recipients, last_sent_at)
- 🎨 หน้าตั้งค่ารายงานอัตโนมัติ (/admin/reports/scheduled) — ฟอร์มตั้งค่าการส่งรายงานทางอีเมล
⚙️ ระบบแจ้งเตือนและการสื่อสาร
ระบบส่งการแจ้งเตือนผ่านหลายช่องทาง
✨ แจ้งเตือนในแอป (In-app Notifications)
ระบบแจ้งเตือนภายในแอปพลิเคชัน
- 🔌 GET /api/v1/notifications — Endpoint ดึงรายการแจ้งเตือนของผู้ใช้
- 🔌 PUT /api/v1/notifications/:id/read — Endpoint ทำเครื่องหมายว่าอ่านแล้ว
- 🔌 DELETE /api/v1/notifications/:id — Endpoint ลบการแจ้งเตือน
- 🗄️ ตาราง notifications — เก็บการแจ้งเตือน (id, user_id, title, message, type, is_read, created_at)
- 🎨 หน้าการแจ้งเตือน (/notifications) — รายการแจ้งเตือนพร้อม badge จำนวนที่ยังไม่อ่าน
- 🎨 Component แจ้งเตือนแบบ Toast — แสดงการแจ้งเตือนแบบ real-time บนมุมจอ
✨ แจ้งเตือนทางอีเมล
ระบบส่งอีเมลอัตโนมัติ
- 🔌 POST /api/v1/email/send — Endpoint ส่งอีเมล (ใช้ภายในระบบ)
- 🗄️ ตาราง email_templates — เก็บเทมเพลตอีเมล (id, name, subject, body_html, variables)
- 🗄️ ตาราง email_logs — เก็บประวัติการส่งอีเมล (id, to_email, template_id, status, sent_at)
- 📌 Queue ส่งอีเมล (Bull Queue + Redis) — ระบบคิวส่งอีเมลแบบ asynchronous
✨ แจ้งเตือน Push Notification
ส่งการแจ้งเตือนไปยังมือถือ
- 🔌 POST /api/v1/push/send — Endpoint ส่ง push notification ผ่าน FCM
- 🗄️ ตาราง push_tokens — เก็บ token อุปกรณ์ (id, user_id, device_token, platform, created_at)
- 📌 Service Worker สำหรับ PWA — รับ push notification แม้ปิดแอป
✨ แจ้งเตือน SMS
ส่งข้อความ SMS สำหรับกรณีฉุกเฉิน
- 🔌 POST /api/v1/sms/send — Endpoint ส่ง SMS ผ่านผู้ให้บริการ (Twilio)
- 🗄️ ตาราง sms_logs — เก็บประวัติการส่ง SMS (id, phone_number, message, status, cost, sent_at)
✨ ตั้งค่าการแจ้งเตือน
ให้ผู้ใช้เลือกรับการแจ้งเตือนประเภทใด
- 🔌 PUT /api/v1/notification-settings — Endpoint อัปเดตการตั้งค่าการแจ้งเตือน
- 🗄️ ตาราง notification_settings — เก็บการตั้งค่า (id, user_id, email_enabled, push_enabled, sms_enabled, reminder_be fore_minutes)
- 🎨 หน้าตั้งค่าการแจ้งเตือน (/settings/notifications) — สวิตช์เปิด/ปิดการแจ้งเตือนแต่ละประเภท
⚙️ ระบบจัดการผู้ใช้งานและพนักงาน (Admin)
ระบบสำหรับผู้ดูแลระบบจัดการผู้ใช้และพนัก งาน
✨ จัดการบัญชีผู้ใช้งาน
CRUD ผู้ใช้งานทุกประเภท
- 🔌 GET /api/v1/admin/users — Endpoint ดึงรายการผู้ใช้งานทั้งหมดแบบ paginated
- 🔌 PUT /api/v1/admin/users/:id/status — Endpoint เปลี่ยนสถานะผู้ใช้ (active, suspended, banned)
- 🔌 DELETE /api/v1/admin/users/:id — Endpoint ลบบัญชีผู้ใช้
- 🎨 หน้าจัดการผู้ใช้ (/admin/users) — ตารางผู้ใช้พร้อม filter ตาม role และสถานะ
- 🎨 หน้ารายละเอียดผู้ใช้ (/admin/users/[id]) — หน้าแสดงประวัติการใช้งานและข้อมูลผู้ใช้
✨ จัดการพนักงาน
จัดการบัญชีและสิทธิ์พนักงาน
- 🔌 POST /api/v1/admin/staff — Endpoint สร้างบัญชีพนักงานใหม่
- 🔌 PUT /api/v1/admin/staff/:id/permissions — Endpoint กำหนดสิทธิ์การทำงานของพนักงาน
- 🗄️ ตาราง staff_profiles — เก็บข้อมูลพนักงาน (id, user_id, employee_id, department, shift, hired_date)
- 🎨 หน้าจัดการพนักงาน (/admin/staff) — รายการพนักงานพร้อมตารางเวรและสิทธิ์
✨ บันทึกการทำงานของระบบ (Audit Log)
ติดตามทุกการกระทำในระบบ
- 🔌 GET /api/v1/admin/audit-logs — Endpoint ดึงบันทึกการทำงานตามเงื่อนไข
- 🗄️ ตาราง audit_logs — เก็บบันทึกทั้งหมด (id, user_id, action, entity_type, entity_id, old_values, new_val ues, ip_address, user_agent, created_at)
- 🎨 หน้าบันทึกการทำงาน (/admin/audit-logs) — ตารางแสดงประวัติการแก้ไขข้อมูลทั้งหมด
✨ ตั้งค่าระบบ
การตั้งค่าทั่วไปของระบบ
- 🔌 GET /api/v1/admin/settings — Endpoint ดึงการตั้งค่าปัจจุบัน
- 🔌 PUT /api/v1/admin/settings — Endpoint อัปเดตการตั้งค่าระบบ
- 🗄️ ตาราง system_settings — เก็บการตั้งค่า (id, key, value, description, updated_by)
- 🎨 หน้าตั้งค่าระบบ (/admin/settings) — ฟอร์มตั้งค่าทั่วไป เช่น โลโก้ ชื่อบริษัท ข้อความต้อนรับ
⚙️ ระบบรีวิวและการให้คะแนน
ระบบให้ลูกค้ารีวิวและประเมินความพึงพอใจ
✨ ให้คะแนนและรีวิวลานจอดรถ
ฟีเจอร์รีวิวหลังใช้งาน
- 🔌 POST /api/v1/reviews — Endpoint สร้างรีวิวใหม่
- 🔌 GET /api/v1/parking-lots/:id/reviews — Endpoint ดึงรีวิวของลานจอดรถ
- 🔌 PUT /api/v1/reviews/:id — Endpoint แก้ไขรีวิวตัวเอง
- 🔌 DELETE /api/v1/reviews/:id — Endpoint ลบรีวิว
- 🗄️ ตาราง reviews — เก็บรีวิว (id, user_id, lot_id, reservation_id, rating, comment, images, created_ at)
- 🎨 หน้ารีวิว (/parking-lots/[id]/reviews) — รายการรีวิวพร้อมดาวกรองตามคะแนน
- 🎨 หน้าเขียนรีวิว (/my-reservations/[id]/review) — ฟอร์มให้คะแนนดาวและเขียนความคิดเห็น
✨ อัปโหลดรูปภาพรีวิว
แนบรูปภาพประกอบรีวิว
- 🔌 POST /api/v1/upload/review-images — Endpoint อัปโหลดรูปภาพรีวิวหลายไฟล์
- 🗄️ ตาราง review_images — เก็บข้อมูลรูป (id, review_id, image_url, order_index)
- 🎨 Component อัปโหลดรูปหลายไฟล์ — อินเตอร์เฟซลากวางรูปภาพพร้อม preview
✨ จัดการรีวิว (Admin)
ตรวจสอบและตอบกลับรีวิว
- 🔌 PUT /api/v1/admin/reviews/:id/response — Endpoint ตอบกลับรีวิวของลูกค้า
- 🔌 PUT /api/v1/admin/reviews/:id/moderate — Endpoint ซ่อนหรือแสดงรีวิว (moderation)
- 🎨 หน้าจัดการรีวิว (/admin/reviews) — ตารางรีวิวทั้งหมดพร้อม filter และปุ่มตอบกลับ
✨ วิเคราะห์ความพึงพอใจ
สรุปคะแนนรีวิวและ insights
- 🔌 GET /api/v1/admin/reviews/analytics — Endpoint ดึงสถิติรีวิว
- 🎨 หน้าวิเคราะห์รีวิว (/admin/reviews/analytics) — กราฟคะแนนเฉลี่ย และ word cloud จากคำในรีวิว
⚙️ ระบบรักษาความปลอดภัยและความปลอดภัย
มาตรการรักษาความปลอดภัยทั้งระบบ
🔒 การเข้ารหัสข้อมูล
ปกป้องข้อมูลสำคัญ
🔒 Encryption ข้อมูล sensitive
เข้ารหัสข้อมูลบัตรเครดิตและข้อมูลส่วนตัวด้วย AES-256
🔒 Hashing รหัสผ่านด้วย bcrypt
ใช้ bcrypt 12 rounds สำหรับ hashing รหัสผ่าน
🔒 TLS/SSL ทุกการเชื่อมต่อ
บังคับใช้ HTTPS ทุก endpoint
🔒 การป้องกันการโจมตี
มาตรการป้องกัน threats ต่างๆ
🔒 Rate Limiting
จำกัดจำนวน request ต่อ IP (100 req/min ทั่วไป, 5 req/min สำหรับ login)
🔒 CORS Policy
กำหนด allowed origins อย่างเคร่งครัด
🔒 SQL Injection Prevention
ใช้ Prisma ORM ป้องกันการ injection ทุก query
🔒 XSS Protection
Sanitize ข้อมูล input และใช้ Content Security Policy
🔒 การตรวจสอบและติดตาม
ระบบ monitoring และ logging
🔒 Winston Logger
บันทึกทุก request และ error ลงไฟล์และ cloud
🔒 Sentry Integration
ติดตามและแจ้งเตือน error แบบ real-time
🔌 Health Check Endpoint
GET /api/v1/health ตรวจสอบสถานะระบบ
🔒 การสำรองข้อมูล
ระบบ backup และ recovery
🔒 Automated Database Backup
สำรองฐานข้อมูลอัตโนมัติทุก 6 ชั่วโมง
🔒 Point-in-Time Recovery
ระบบกู้คืนข้อมูลย้อนหลังได้ 30 วัน
⚙️ ระบบ Deploy และ Infrastructure
โครงสร้างพื้นฐานและการ deploy
🚀 Docker Containerization
แพ็คระบบเป็น containers
🚀 Dockerfile สำหรับ Next.js App
สร้าง image สำหรับ frontend และ API routes
🚀 Dockerfile สำหรับ Worker
สร้าง image สำหรับ background jobs
🚀 docker-compose.yml
กำหนด services ทั้งหมด (app, db, redis, nginx)
🚀 CI/CD Pipeline
ระบบ automated deployment
🚀 GitHub Actions Workflow
รัน test, build, และ deploy อัตโนมัติ
🚀 Automated Testing
รัน unit test และ integration test ก่อน deploy
🚀 Staging Environment
สภาพแวดล้อมทดสอบก่อนขึ้น production
🚀 Load Balancing และ Scaling
รองรับ traffic สูง
🚀 Nginx Reverse Proxy
กระจาย traffic และ SSL termination
🚀 Horizontal Pod Autoscaling
ขยายจำนวน containers อัตโนมัติตาม load
🚀 Redis Cluster
กระจาย cache หลาย nodes เพื่อความเร็ว
🚀 Monitoring และ Alerting
ติดตามสถานะระบบ
🚀 Prometheus Metrics
เก็บ metrics ต่างๆ ของระบบ
🚀 Grafana Dashboard
แสดงกราฟ performance และ resource usage
🚀 Uptime Monitoring
แจ้งเตือนเมื่อระบบล่มผ่าน PagerDuty