No description
Find a file
Methapon Metanipat 132e1e9acd fix: error
2024-08-26 11:35:21 +07:00
.github/workflows fix: wrong file path 2024-01-10 17:03:25 +07:00
Document Update DFD.drawio 2023-12-12 15:59:33 +07:00
keycloak_themes style: keycloak theme 2023-12-01 13:13:18 +07:00
Services fix: error 2024-08-26 11:35:21 +07:00
.gitignore Initial commit 2023-11-16 09:15:43 +07:00
README.md update project document 2023-11-29 22:42:49 +07:00

EDM

Enterprise Document Management (EDM) เป็นโปรแกรมสำหรับจัดการข้อมูลเอกสารในองค์กร การออกแบบทำสำหรับ ระบบจัดเก็บข้อมูลผลการประเมินบุคคล ซึ่งเป็นระบบย่อยของโปรเจ็ก eHR ของกทม แต่จะออกแบบให้สามารถนำกลับมาใช้ซ้ำได้ในโปรเจ็กอื่นๆ และ เป็นสินค้าตัวต่อไป EDM ถือเป็นหนึ่งในโปรแกรมสำหรับจัดการงานในองค์กร เหมือนกัน EHR, ERP, EAM

คุณลักษณะปัจจุบัน

  • เป็น Stand alone Product ไม่ขึ้นกับโปรเจ็กอื่น มีทุกอย่างใน Repository เดียวกัน
  • ใช้ Object Storage(MiniO) เก็บข้อมูล ใช้ minio presigned url ทั้งอัปโหลดและดาว์นโหลด จาก client โดยตรงลดการทำงานของ Backend รองรับไฟล์ขนาดใหญ่เป็นจำนวนมาก และยังมีความปลอดภัย
  • ไม่ใช้ SQL Database ข้อมูลต่างๆใช้จาก MiniO หรือ Elasticsearch เพื่อลดส่วนประกอบของระบบ ต้องการแบบเรียบง่าย
  • จัดทำ index เอกสารด้วย Attachment processory ของ Elasticsearch รองรับเอกสารหลายประเภท รองรับภาษาไทยซึ่งเป็นฟีเจอร์สำคัญของระบบ
  • Integrate ยูสเซอร์กับโปรเจ็กอื่นๆได้ด้วย Single Sign On ของ Keycloak
  • ฟีเจอร์ต่างๆของ MiniO เช่น Version, Quota , metadata อาจจะนำมาใช้ในระบบ
  • bucket notification เพื่อทำ index เอกสารภายหลัง อาจจะใช้ webhook หรือ RabbitMQ ทำให้อัปโหลดเอกสารพร้อมๆกันได้โดยไม่มีปัญหากับประสิทธิ์ภาพการทำ Index
  • ควรรองรับ multi tenant แบ่งตามแผนกหรือบริษัทต่อหนึ่ง bucket สิทธิ์ในการใช้ แบ่งตาม Role
    • login user ค้นหาเอกสารในระบบ อาจจะมี role dm_user เพิ่มเติมเพื่อจัดการเอกสารตัวเอง สามารถสร้างเอกสารส่วนตัวได้ แชร์โฟลเดอร์หรือเอกสาร ให้ยูสเซอร์หรือกลุ่ม ดู group ใน keycloak
    • dm_management: รับผิดชอบแต่ละ tenant ผู้ดูแลระบบระดับสูงกว่านั้นไม่ต้องมีเพราะใช้การจัดการ keycloak แทน
  • ตามความต้องการของ BMA จะใช้ 1 tenant(default) ผู้ใช้งานมีสอง Role
    • dm_management : เป็น role สำหรับจัดการ เพิ่ม ลบ แก้ไขจัดระเบียบ เอกสาร
    • login user: บุคคลเข้าระบบได้ไม่ต้องมี role พิเศษใดๆ ค้นหาและดาว์นโหลดเอกสาร
  • โปรเจ็กนี้ใช้เครื่องมือ และวิธีการที่พัฒนาแบบใหม่หลายอย่าง เพื่อเป็นต้นแบบในการพัฒนาโปรเจ็กอื่นๆต่อไป

คุณลักษณะที่ทำเพิ่มในอนาคต

อยู่นอกเหนือขอบเขตงานขณะนี้ แต่น่าจะเหมาะกับระบบส่วนอื่นๆ ต้องคุยกับทีมงานก่อน

  • ระบบจัดการเอกสารของยูสเซอร์ สามารถใช้แชร์กันได้
  • จัดทำ Site เพื่อใช้ร่วมกันหรือเผยแพร่
  • preview เอกสาร

Team

  • อุ้ม - Technical Team Leader
  • โอ๊ต - Frontend developer
  • เน็ต - Frontend developer
  • ภัท - Frontend developer
  • เตย - Backend developer