[แจกฟรี] ระบบแจ้งซ่อมออนไลน์ PHP (ครุภัณฑ์)

[แจกฟรี] ระบบแจ้งซ่อมออนไลน์ PHP (ครุภัณฑ์)

โปรเจ็กต์นี้เป็นระบบสำหรับองค์กรที่ต้องการจัดการ 2 งานหลักในที่เดียวกัน คือ

  • งานทะเบียนครุภัณฑ์
  • งานแจ้งซ่อมอุปกรณ์

พูดแบบง่ายที่สุด ระบบนี้ช่วยให้หน่วยงานสามารถเก็บข้อมูลทรัพย์สินหรืออุปกรณ์ที่มีอยู่ในองค์กร เช่น คอมพิวเตอร์ เครื่องพิมพ์ เครื่องมือ หรืออุปกรณ์สำนักงานต่าง ๆ พร้อมติดตามหมายเลขเครื่อง ผู้ถือครอง สถานะการใช้งาน และประวัติที่เกี่ยวข้องได้จากหน้าเว็บเดียว เมื่ออุปกรณ์มีปัญหา ผู้ใช้งานยังสามารถสร้างรายการแจ้งซ่อมจากอุปกรณ์ที่ลงทะเบียนไว้แล้ว ทำให้การติดตามงานซ่อมเป็นระบบมากขึ้น ลดการใช้กระดาษ ลดการสื่อสารที่ตกหล่น และช่วยให้ผู้ดูแลตรวจสอบสถานะล่าสุดได้ตลอดเวลา

ระบบนี้เหมาะกับ

  • โรงเรียน มหาวิทยาลัย หรือหน่วยงานราชการ
  • บริษัทหรือองค์กรที่ต้องการเก็บทะเบียนครุภัณฑ์อย่างเป็นระเบียบ
  • ทีม IT หรือเจ้าหน้าที่พัสดุที่ต้องการติดตามงานแจ้งซ่อมและประวัติการใช้งานอุปกรณ์

ความสามารถหลักของระบบ

1. จัดการทะเบียนครุภัณฑ์

ระบบสามารถบันทึกข้อมูลครุภัณฑ์หรืออุปกรณ์ได้ เช่น

  • ชื่ออุปกรณ์
  • หมวดหมู่
  • ประเภท
  • ยี่ห้อหรือรุ่น
  • หมายเลขเครื่อง หรือเลขทะเบียน
  • จำนวนคงเหลือ
  • ผู้ถือครองอุปกรณ์
  • สถานะการเปิดใช้งาน

ผู้ดูแลสามารถเพิ่ม แก้ไข ค้นหา กรองข้อมูล และจัดการรายการอุปกรณ์ได้จากหน้าเมนูทะเบียนครุภัณฑ์

2. จัดการผู้ถือครองอุปกรณ์

ระบบรองรับการกำหนดผู้ถือครองให้กับอุปกรณ์แต่ละรายการได้ ทำให้ติดตามได้ว่าอุปกรณ์ชิ้นใดอยู่กับใคร เหมาะกับองค์กรที่มีการเบิกใช้งานอุปกรณ์เป็นรายบุคคลหรือรายหน่วยงาน

3. ดูรายการอุปกรณ์ของตนเอง

ผู้ใช้งานสามารถดูรายการอุปกรณ์ที่ตนเองถือครองอยู่ได้จากหน้าของฉัน ช่วยให้ตรวจสอบได้สะดวกโดยไม่ต้องค้นหาจากรายการทั้งหมด

4. แจ้งซ่อมอุปกรณ์

เมื่ออุปกรณ์มีปัญหา ผู้ใช้สามารถสร้างคำขอแจ้งซ่อมได้จากหน้าแจ้งซ่อม โดยระบุหมายเลขเครื่องหรือเลขทะเบียน พร้อมกรอกรายละเอียดอาการเสียหรือปัญหาที่พบ

5. ติดตามประวัติการซ่อม

ระบบมีหน้าประวัติการแจ้งซ่อมและหน้ารายการงานซ่อม เพื่อให้ทั้งผู้แจ้งและเจ้าหน้าที่ติดตามความคืบหน้าของงานได้ง่ายขึ้น

ข้อตกลงการนำไปใช้งาน

  • สามารถนำไปใช้งานส่วนตัวได้
  • สามารถพัฒนาต่อยอดได้
  • ต้องการให้ผู้เขียนพัฒนาเพิ่มเติม ติดต่อผู้เขียนได้โดยตรง (อาจมีค่าใช้จ่าย)
  • ผู้เขียนไม่รับผิดชอบข้อผิดพลาดใดๆในการใช้งาน
  • ห้ามขาย ถ้าต้องการนำไปพัฒนาต่อเพื่อขายให้ติดต่อผู้เขียนก่อน (เพื่อบริจาค)

สิ่งที่ต้องเตรียมก่อนติดตั้ง

ก่อนเริ่มติดตั้ง ควรเตรียม Web Server และฐานข้อมูลให้พร้อม โดยระบบมีตัวติดตั้งผ่านหน้าเว็บอยู่แล้ว จึงไม่จำเป็นต้องติดตั้งแบบซับซ้อนด้วยคำสั่งยาว ๆ

ความต้องการของระบบ

จากตัวติดตั้งของโปรเจ็กต์ ระบบต้องการอย่างน้อยดังนี้

  • PHP 7.4 ขึ้นไป
  • MySQL หรือ MariaDB ที่ใช้งานผ่าน PDO MySQL ได้
  • ส่วนเสริม PHP ที่สำคัญ
  • mbstring
  • zlib
  • json
  • xml
  • openssl
  • gd
  • curl

และมีค่าที่แนะนำเพิ่มเติมเพื่อให้ระบบทำงานได้สมบูรณ์ขึ้น เช่น

  • เปิด file_uploads
  • ปิด session.auto_start
  • รองรับ ZIP
  • รองรับ Intl
  • รองรับ OPcache

สิ่งที่ต้องมีเพิ่มเติม

  • โฮสต์หรือเครื่องเซิร์ฟเวอร์ที่รัน PHP ได้
  • ฐานข้อมูล MySQL หรือ MariaDB
  • สิทธิ์ในการสร้างฐานข้อมูล หรืออย่างน้อยมีฐานข้อมูลว่างเตรียมไว้
  • สิทธิ์ในการเขียนไฟล์ในโฟลเดอร์ datas/ และ settings/

โครงสร้างการทำงานแบบเข้าใจง่าย

ผู้ใช้ทั่วไปไม่จำเป็นต้องรู้โครงสร้างภายในทั้งหมด แต่การเข้าใจภาพรวมจะช่วยให้ติดตั้งและดูแลระบบได้ง่ายขึ้น

  • หน้าเว็บหลักของระบบเริ่มจาก index.html
  • ส่วน API ของระบบเข้าใช้งานผ่าน api.php
  • หากต้องการติดตั้งใหม่หรืออัปเกรด ใช้โฟลเดอร์ install/
  • ไฟล์ตั้งค่าที่สำคัญจะถูกสร้างไว้ในโฟลเดอร์ settings/
  • ข้อมูลแคช รูปภาพ และ log ของระบบจะถูกเก็บในโฟลเดอร์ datas/

วิธีติดตั้งสำหรับมือใหม่

ขั้นที่ 1 อัปโหลดไฟล์ขึ้นเซิร์ฟเวอร์

นำไฟล์ของโปรเจ็กต์ทั้งหมดขึ้นไปไว้บน Web Server ในโฟลเดอร์ที่ต้องการใช้งาน เช่น

  • โฟลเดอร์เว็บไซต์หลัก
  • โฟลเดอร์ย่อยภายใต้โดเมน
  • โฟลเดอร์ภายใต้ระบบ intranet ขององค์กร

หลังอัปโหลดแล้ว ควรตรวจสอบว่าไฟล์หลักอย่าง index.htmlapi.phpload.php และโฟลเดอร์ install/ อยู่ครบ

ขั้นที่ 2 สร้างฐานข้อมูล

สร้างฐานข้อมูล MySQL หรือ MariaDB ไว้ล่วงหน้า 1 ฐาน หรือเตรียมชื่อฐานข้อมูล บัญชีผู้ใช้ และรหัสผ่านที่จะใช้ให้พร้อม

ตัวติดตั้งของระบบสามารถสร้างตารางให้ได้เอง และจะนำเข้าโครงสร้างฐานข้อมูลจากไฟล์ติดตั้งอัตโนมัติ

ขั้นที่ 3 เปิดหน้าติดตั้ง

เปิดเบราว์เซอร์ แล้วเข้าไปที่ https://your-domain/install/

หรือถ้าติดตั้งในโฟลเดอร์ย่อย เช่น https://your-domain/inventory/install/

จากนั้นระบบจะเริ่มตรวจสอบความพร้อมของเซิร์ฟเวอร์ให้อัตโนมัติ

ขั้นที่ 4 ตรวจสอบความพร้อมของเซิร์ฟเวอร์

หน้าแรกของตัวติดตั้งจะตรวจสอบว่าเครื่องเซิร์ฟเวอร์มีคุณสมบัติครบหรือไม่ หากมีรายการขึ้นเป็นสีแดง ควรแก้ไขให้ผ่านก่อนค่อยดำเนินการต่อ ถ้าทุกอย่างพร้อม ระบบจะให้กดปุ่มติดตั้งเพื่อไปขั้นตอนถัดไป

ขั้นที่ 5 ระบุข้อมูลผู้ดูแลระบบสูงสุด

ระบบจะถามชื่อผู้ใช้และรหัสผ่านของผู้ดูแลระบบคนแรก บัญชีนี้มีสิทธิ์สูงสุด จึงควรตั้งรหัสผ่านที่คาดเดายากและเก็บไว้ให้ปลอดภัย

คำแนะนำ

  • ใช้อีเมลหรือชื่อผู้ใช้ที่จำง่ายแต่ปลอดภัย
  • ใช้รหัสผ่านที่ยาวพอและไม่ซ้ำกับระบบอื่น
  • บันทึกข้อมูลนี้ไว้ในที่ปลอดภัย

ขั้นที่ 6 กรอกข้อมูลฐานข้อมูล

ระบบจะให้กรอกข้อมูลดังนี้

  • ชื่อผู้ใช้ฐานข้อมูล
  • รหัสผ่านฐานข้อมูล
  • ชื่อโฮสต์ฐานข้อมูล เช่น localhost
  • พอร์ต เช่น 3306
  • ชื่อฐานข้อมูล
  • คำนำหน้าตาราง

คำนำหน้าตารางมีประโยชน์เมื่อคุณต้องการใช้ฐานข้อมูลเดียวกันกับหลายระบบ เพราะช่วยแยกตารางออกจากกันได้

ขั้นที่ 7 รอให้ระบบสร้างข้อมูลเริ่มต้น

เมื่อกดยืนยัน ระบบจะ

  • เชื่อมต่อฐานข้อมูล
  • สร้างฐานข้อมูลถ้ายังไม่มีและมีสิทธิ์เพียงพอ
  • นำเข้าตารางจากไฟล์ติดตั้ง
  • สร้างผู้ใช้เริ่มต้น
  • สร้างไฟล์ตั้งค่าในโฟลเดอร์ settings/

หากไม่มีข้อผิดพลาด ระบบจะแจ้งว่าติดตั้งเสร็จสมบูรณ์

ขั้นที่ 8 ลบโฟลเดอร์ติดตั้ง

หลังติดตั้งเสร็จ ระบบแนะนำให้ลบโฟลเดอร์ install/ ออกทันทีเพื่อความปลอดภัย

นี่เป็นขั้นตอนสำคัญมาก เพราะหากปล่อยโฟลเดอร์นี้ไว้ อาจเพิ่มความเสี่ยงในการถูกเรียกใช้งานซ้ำโดยไม่จำเป็น

การเข้าใช้งานครั้งแรก

เมื่อติดตั้งเรียบร้อยแล้ว ให้เข้าเว็บไซต์ตาม URL ของระบบ จากนั้นเข้าสู่ระบบด้วยบัญชีผู้ดูแลที่สร้างไว้ในขั้นตอนติดตั้ง หลังล็อกอินแล้ว โดยทั่วไปควรทำสิ่งต่อไปนี้ก่อนเริ่มใช้งานจริง

  1. ตรวจสอบข้อมูลหน่วยงาน
  2. ตั้งค่าธีม ภาษา และข้อมูลระบบพื้นฐาน
  3. เพิ่มผู้ใช้งานและกำหนดสิทธิ์
  4. ตั้งค่าหมวดหมู่ที่จำเป็น
  5. เริ่มเพิ่มรายการครุภัณฑ์

แนวทางเริ่มใช้งานหลังติดตั้ง

เริ่มจากการตั้งค่าหมวดหมู่ก่อน

ถ้าต้องการให้ข้อมูลครุภัณฑ์เป็นระเบียบ ควรเริ่มจากกำหนดหมวดหมู่ ประเภท ยี่ห้อ หรือรายการอ้างอิงที่จำเป็นก่อน เพราะเมื่อผู้ใช้เริ่มเพิ่มข้อมูลจริง จะสามารถเลือกจากรายการมาตรฐานได้ทันที

เพิ่มครุภัณฑ์ทีละรายการ

ไปที่หน้า Inventory แล้วเพิ่มข้อมูลอุปกรณ์ โดยกรอกข้อมูลพื้นฐานให้ครบที่สุด เช่น ชื่ออุปกรณ์ หมวดหมู่ รุ่น หมายเลขเครื่อง และจำนวน หากอุปกรณ์มีหลายชิ้นในรุ่นเดียวกัน ระบบก็รองรับการจัดเก็บเป็นรายการย่อยของอุปกรณ์ได้

กำหนดผู้ถือครอง

เมื่ออุปกรณ์ถูกส่งมอบให้บุคลากรหรือหน่วยงาน สามารถระบุผู้ถือครองไว้ในระบบได้ทันที ช่วยให้ตรวจสอบย้อนหลังได้ว่าใครเป็นผู้รับผิดชอบอุปกรณ์ชิ้นนั้น

เริ่มใช้งานระบบแจ้งซ่อม

เมื่อมีอุปกรณ์เสีย ผู้ใช้สามารถเปิดหน้า Get a repair แล้วค้นหาด้วยหมายเลขเครื่องหรือเลขทะเบียน จากนั้นอธิบายอาการเสียและบันทึกคำขอ หลังจากนั้นเจ้าหน้าที่หรือผู้ดูแลสามารถติดตามงานจากหน้า Repair jobs และดูประวัติย้อนหลังได้จาก Repair history

การดูแลระบบเบื้องต้น

เพื่อให้ระบบใช้งานได้ต่อเนื่อง ควรดูแลเรื่องต่อไปนี้เป็นประจำ

1. สำรองฐานข้อมูล

ข้อมูลครุภัณฑ์และประวัติแจ้งซ่อมถือเป็นข้อมูลสำคัญ ควรตั้งรอบการสำรองฐานข้อมูลอย่างสม่ำเสมอ เช่น รายวันหรือรายสัปดาห์ตามความเหมาะสม

2. ตรวจสอบพื้นที่จัดเก็บไฟล์

ระบบมีโฟลเดอร์สำหรับเก็บรูปภาพ แคช และ log หากใช้งานไปนาน ๆ ควรตรวจสอบพื้นที่ว่างของเซิร์ฟเวอร์ด้วย

3. อัปเดตระบบเมื่อมีเวอร์ชันใหม่

โปรเจ็กต์นี้รองรับกระบวนการอัปเกรดผ่านโฟลเดอร์ install/ เช่นกัน หากมีเวอร์ชันใหม่ ควรสำรองข้อมูลก่อนทุกครั้ง แล้วค่อยดำเนินการอัปเกรด

4. ปิดโหมด debug ในระบบใช้งานจริง

ไฟล์ load.php มีการตั้งค่าเกี่ยวกับการแสดงผลข้อผิดพลาดและการบันทึก query สำหรับสภาพแวดล้อมจริง ควรเปิดใช้งานเฉพาะเท่าที่จำเป็น เพื่อไม่ให้กระทบความปลอดภัยและประสิทธิภาพ

เรื่องที่ควรรู้สำหรับผู้ดูแลระบบ

บัญชีผู้ใช้เริ่มต้น

ระหว่างติดตั้ง ระบบจะสร้างบัญชีผู้ดูแลระบบจากข้อมูลที่คุณกรอกไว้ และสร้างข้อมูลตัวอย่างบางส่วนในฐานข้อมูลเริ่มต้นด้วย ดังนั้นหลังติดตั้งเสร็จ ควรตรวจสอบผู้ใช้งานในระบบและลบหรือปิดข้อมูลที่ไม่ต้องการใช้งานจริง

การสมัครสมาชิก

ระบบรองรับการสมัครสมาชิกและการลืมรหัสผ่านได้ หากองค์กรของคุณไม่ต้องการเปิดให้สมัครเอง ควรตรวจสอบค่าการตั้งค่าด้านผู้ใช้หลังติดตั้ง

การเชื่อมต่อบริการภายนอก

หากต้องการส่งการแจ้งเตือนผ่าน LINE, Telegram หรือ SMS สามารถตั้งค่าได้จากหน้าตั้งค่าที่เกี่ยวข้อง แต่ถ้ายังไม่ได้ใช้งาน ก็สามารถปล่อยว่างไว้ก่อนได้

กรณีต้องการ build ไฟล์ frontend ใหม่

ผู้ใช้ทั่วไปที่ติดตั้งเพื่อใช้งานตามปกติ มักไม่จำเป็นต้องทำขั้นตอนนี้ เพราะโปรเจ็กต์มีไฟล์ที่ build แล้วอยู่ใน Now/dist/ สำหรับใช้งานอยู่แล้ว แต่ถ้าคุณเป็นผู้ดูแลระบบหรือผู้พัฒนาที่ต้องแก้ไขไฟล์ JavaScript หรือ CSS ของเฟรมเวิร์กฝั่งหน้าเว็บ จะต้องมี Node.js และ npm เพิ่มเติม แล้วใช้คำสั่งเช่น

npm install
npm run build

หรือหากต้องการรันโหมดพัฒนา

npm run dev

ขั้นตอนนี้ไม่จำเป็นสำหรับการติดตั้งใช้งานทั่วไปบนเซิร์ฟเวอร์ หากคุณไม่ได้แก้ไขโค้ด frontend

ปัญหาที่พบบ่อย

เปิดหน้า install ไม่ได้

ให้ตรวจสอบว่า

  • อัปโหลดไฟล์ครบหรือไม่
  • Web Server ชี้มาที่โฟลเดอร์ถูกต้องหรือไม่
  • PHP ทำงานได้จริงหรือไม่

ติดตั้งไม่ผ่านเพราะเขียนไฟล์ไม่ได้

มักเกิดจากสิทธิ์โฟลเดอร์ไม่ถูกต้อง ให้ตรวจสอบโฟลเดอร์ datas/ และ settings/ รวมถึงไฟล์ตั้งค่าที่ระบบต้องเขียน

เชื่อมต่อฐานข้อมูลไม่สำเร็จ

ให้ตรวจสอบ

  • ชื่อฐานข้อมูล
  • ชื่อผู้ใช้ฐานข้อมูล
  • รหัสผ่านฐานข้อมูล
  • โฮสต์และพอร์ต
  • สิทธิ์ของผู้ใช้ฐานข้อมูล

เข้าระบบไม่ได้หลังติดตั้ง

ให้ลองตรวจสอบว่าพิมพ์ชื่อผู้ใช้และรหัสผ่านถูกต้องหรือไม่ หากเป็นระบบที่เพิ่งติดตั้งใหม่ ควรใช้บัญชีผู้ดูแลที่สร้างในขั้นตอนติดตั้งเท่านั้น

สรุป

ถ้าคุณกำลังมองหาระบบที่ช่วยเก็บทะเบียนครุภัณฑ์และติดตามงานแจ้งซ่อมผ่านหน้าเว็บเดียว โปรเจ็กต์นี้ถือว่าเหมาะมากสำหรับการเริ่มต้นใช้งานในองค์กร เพราะมีตัวติดตั้งผ่านเว็บ ใช้งานไม่ยาก และมีส่วนจัดการที่ครอบคลุมทั้งข้อมูลอุปกรณ์ ผู้ใช้งาน และการติดตามงานซ่อม

สำหรับมือใหม่ แนวทางที่ดีที่สุดคือ

  1. เตรียมเซิร์ฟเวอร์และฐานข้อมูลให้พร้อม
  2. เปิด install/ เพื่อให้ระบบช่วยติดตั้ง
  3. ล็อกอินด้วยบัญชีผู้ดูแลระบบ
  4. ตั้งค่าพื้นฐานขององค์กร
  5. เพิ่มข้อมูลครุภัณฑ์และเริ่มใช้งานระบบแจ้งซ่อม

ถ้าติดตั้งตามลำดับนี้ คุณจะเริ่มใช้งานระบบได้ค่อนข้างเร็ว และสามารถขยายการใช้งานให้เหมาะกับหน่วยงานของคุณต่อไปได้ไม่ยาก

พบปัญหาการใช้งานหรือต้องการเสนอแนะ หรือ ต้องการสอบถามใดๆ โพสต์ถามไว้บนเว็บบอร์ดของเว็บไซต์นี้ได้เลยนะครับ ผมยินดีตอบทุกคำถาม

เว็บไซต์ตัวอย่าง https://inventory.acc.in.th

ดาวน์โหลดโค้ดได้จาก Github

หากต้องการสนับสนุนผู้เขียน สามารถบริจาคช่วยเหลือค่า Server ได้ที่
ธนาคาร กสิกรไทย สาขากาญจนบุรี
เลขที่บัญชี 221-2-78341-5
ชื่อบัญชี กรกฎ วิริยะ
0SHAREFacebookLINE it!