ระบบจัดการคำสั่งและเอกสารราชการ (Order Document System) พัฒนาด้วย PHP และ MySQL สำหรับใช้งานภายในองค์กร เพื่อจัดเก็บ ค้นหา และออกรายงานคำสั่งต่างๆ
- จัดการคำสั่ง: เพิ่ม, แก้ไข, ลบ คำสั่งและแนบไฟล์ PDF
- ระบบค้นหา: ค้นหาคำสั่งตามปี, เลขที่, หรือชื่อเรื่อง ได้อย่างรวดเร็ว
- แสดงผลแบบกลุ่ม: จัดกลุ่มคำสั่งตามปี พ.ศ. อัตโนมัติ
- รายงานประจำปี: สร้างรายงานสรุปคำสั่งประจำปีเป็น PDF พร้อมสารบัญและเนื้อหาครบถ้วน
- Responsive Design: รองรับการใช้งานทั้งบน Desktop และ Mobile (มี Burger Menu)
- Glassmorphism UI: ดีไซน์ทันสมัย สวยงาม สบายตา
- Frontend: HTML5, CSS3 (Glassmorphism), JavaScript (Vanilla)
- Backend: PHP 7.4+
- Database: MySQL / MariaDB
- Libraries:
jspdf&jspdf-autotable: สำหรับสร้างตารางใน PDFpdf-lib: สำหรับจัดการและรวมไฟล์ PDFfontkit: สำหรับจัดการฟอนต์ไทยใน PDFdownloadjs: สำหรับดาวน์โหลดไฟล์
-
Clone Project:
git clone https://github.com/phumiphut-ta/ODS.git
หรือดาวน์โหลดไฟล์ไปวางที่
C:\xampp\htdocs\ODS -
ตั้งค่าฐานข้อมูล:
- เปิด phpMyAdmin:
http://localhost/phpmyadmin - สร้างฐานข้อมูลชื่อ
ods_db(utf8mb4_general_ci) - Import ไฟล์
schema.sql(v4.0 - ฉบับสมบูรณ์)
หมายเหตุ:
schema.sqlรวมทุกอย่างไว้แล้ว ไม่ต้องรันไฟล์ migration อื่น
สำหรับ Upgrade จากเวอร์ชันเก่า: ดูไฟล์ในmigrations/directory - เปิด phpMyAdmin:
-
ตั้งค่าการเชื่อมต่อ:
- เปลี่ยนชื่อไฟล์
config.sample.phpเป็นconfig.php - เปิดไฟล์
config.phpและแก้ไขค่า$servername,$username,$password,$dbnameให้ตรงกับเครื่องของคุณ
- เปลี่ยนชื่อไฟล์
-
ติดตั้งฟอนต์ (สำคัญ):
- ดาวน์โหลดฟอนต์ THSarabunNew.ttf และ THSarabunNew Bold.ttf
- นำไปวางไว้ในโฟลเดอร์
fonts/
-
เข้าใช้งาน:
- เปิด Browser ไปที่
http://localhost/ODS - Admin Login: (ค่าเริ่มต้น)
- Username:
admin - Password:
password123(ควรเปลี่ยนหลังติดตั้ง)
- Username:
- เปิด Browser ไปที่
index.php: หน้าแรกสำหรับผู้ใช้ทั่วไป (ค้นหาและดูคำสั่ง)admin.php: หน้าจัดการสำหรับแอดมินreport.php: หน้าสร้างรายงานประจำปีorder_form.php: ฟอร์มเพิ่ม/แก้ไขคำสั่งconfig.php: ไฟล์เชื่อมต่อฐานข้อมูล + CSRF helperscss/style.css: ไฟล์สไตล์หลักของระบบuploads/: โฟลเดอร์เก็บไฟล์ PDF ที่อัปโหลด
schema.sql- Schema ฉบับสมบูรณ์ v4.0 (สำหรับติดตั้งใหม่)migrations/- ประวัติการเปลี่ยนแปลง schema (v2-v4)migration_v2.sql- เพิ่ม status & run_nomigration_v3.sql- เพิ่ม order_yearmigration_v4.sql- อัปเดตเป็น bcrypt password
- CSRF Protection: ป้องกันการโจมตีแบบ Cross-Site Request Forgery ในทุกฟอร์ม
- Password Hashing: ใช้
password_hash()(bcrypt) แทน MD5 - File Upload Validation: ตรวจสอบ MIME type ไม่ใช่แค่นามสกุลไฟล์
หากเข้าสู่ระบบด้วย admin / password123 ไม่ได้ ให้รันคำสั่ง SQL นี้ใน phpMyAdmin:
UPDATE users
SET password = '$2y$10$D8.eTqZ8g7KAXP3tbrvxK.z5BbU0UmkqP4oFGOQsaXqlOSOegXHFy'
WHERE username = 'admin';- เปลี่ยนรหัสผ่าน admin ทันทีหลังติดตั้ง
- อย่า commit ไฟล์
config.phpลง Git (มีใน.gitignoreแล้ว) - ตั้งค่า permission โฟลเดอร์
uploads/ให้เหมาะสม (755)
สาเหตุ: รหัสผ่านยังเป็น MD5 แบบเก่า
แก้ไข: รันคำสั่ง SQL ด้านบน (ในส่วน Security) เพื่อรีเซ็ตรหัสผ่าน
สาเหตุ: ไม่มีฟอนต์ TH Sarabun New
แก้ไข: ดาวน์โหลดและวางฟอนต์ในโฟลเดอร์ fonts/
สาเหตุ: ไฟล์ไม่ใช่ PDF จริง หรือ permission โฟลเดอร์ uploads/ ไม่ถูกต้อง
แก้ไข: ตรวจสอบว่าเป็นไฟล์ PDF จริง และตั้งค่า permission โฟลเดอร์เป็น 755
สาเหตุ: JavaScript ไม่โหลด หรือมี Console Error
แก้ไข: เปิด Developer Console ตรวจสอบ error และรีเฟรชหน้า
สาเหตุ: PHP extension fileinfo ไม่ได้เปิดใช้งาน
แก้ไข:
- เปิดไฟล์
php.ini - ค้นหา
;extension=fileinfoและเอา;ออก - Restart Web Server (Apache/IIS)
หมายเหตุ: ระบบมี fallback validation อยู่แล้ว จะทำงานได้แม้ไม่เปิด extension แต่แนะนำให้เปิดเพื่อความปลอดภัยสูงสุด
สำหรับนักพัฒนาที่ต้องการทำงานต่อหรือแก้ไขระบบ กรุณาอ่านเอกสารฉบับเต็มที่:
- walkthrough.md - เอกสารสำหรับนักพัฒนา (Development Guide, Architecture, Session History)
Git Workflow:
git add .
git commit -m "คำอธิบายการแก้ไข"
git push origin main- ระบบนี้พัฒนาขึ้นเพื่อใช้งานภายในองค์กรรัฐ
- รองรับปีพุทธศักราช (พ.ศ.) สำหรับการใช้งานในประเทศไทย
- ระบบรันบน PHP มาตรฐาน ไม่ใช้ Framework เพื่อความเรียบง่าย