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

Published on
Tags

ภาพรวม

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

Frameworks & Libraries

คลังภาพ

จุดเด่นในการพัฒนา

  1. Ruby on Rails 7

    สำหรับในโปรเจ็คสิ่งที่น่าจะเป็นความท้าทายใหม่ก็คือการที่ต้องเปลี่ยนมาใช้ Rails เวอร์ชัน 7 ซึ่งมีการอัพเดตฟีเจอร์ใหม่ๆ และเปลี่ยนไปเยอะจากเวอร์ชัน 6 โดยฟีเจอร์เด็ดของเวอร์ชันนี้ก็คงเป็นHotwired ที่เป็นรูปแบบในการส่งผ่าน HTML ผ่าน request และ websocket

  2. Stimulus

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

  3. TailwindCSS

    เป็น CSS framework ที่เป็น utilities โดยจะต้องเอาชิ้นส่วนแต่ละชิ้นมาประกอบกัน ซึ่งค่อนข้างจะใช้งานยากในช่วงเริ่มต้น แต่ถ้าเริ่มเข้าใจเราก็สามารถจะใช้งานได้อย่างคล่องแคล่ว และพัฒนาเว็บไซด์ได้อย่างรวดเร็ว นอกจากนี้ยังมีข้อดีในเรื่องของขนาดที่ถูกตัดออกจนเหลือเฉพาะที่ใช้งานจริงๆ เท่านั้น ทำให้เมื่อนำไป deploy บน production จริงจะมีขนาดที่เล็ก

    ในส่วนของ Stimulus และ TailwindCSS ขนาดของไฟล์ที่ถูกโหลดมาใช้งานจะเป็นดังนี้

    1. JS หลักจะอยู่ที่ประมาณ 178kb โดยจะประกอบไปด้วย ​controller ต่างๆ

      Stimulus Controllers

    2. JS ของ ApexChart ที่ใช้แสดงผลกราฟต่างๆ อยู่ที่ 474kb
    3. CSS ของ Tailwind จะอยู่ที่ 90kb

      ขนาดไฟล์ JavaScript และ CSS ที่ถูกโหลดผ่านเบราเซอร์

  4. Rollup

    เป็น JS Bundling Tool ที่เราเลือกมาใช้ทดแทน Webpack ด้วยเหตุที่ค่อนข้างจะใช้งานง่ายกว่า และสามารถ customize ได้ไม่ยากนัก นอกจากนี้เรายังมีการ customize Rollup เพื่อนำมาใช้ในการจัดการ chunk name เพื่อให้สามารถใช้งานร่วมกับ Sprockets อีกด้วย

  5. Testing & CI

    การเขียนเทสเป็นสิ่งที่พยายามพลักดันมาตลอด แต่ด้วยปัจจัยเรื่องเวลาทำให้หลายต่อหลายโปรเจ็คต้องมาคอยเขียนเทสตามหลังอยู่เสมอ สำหรับในโปรเจ็คถือเป็นสิ่งที่แตกต่างในทางที่ดี เพราะว่าเรามีเทสเคสก่อนที่จะนำโปรแกรมไป deploy ใช้งานจริง และยังใช้ CI ของ Gitlab ในช่วยรันเทสให้เราอีกด้วย

    Test Coverage

    Gitlab CI

    Badge

  6. Ansible

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

ทีมพัฒนาภายใต้บริษัทโอเพน ซอร์ส เทคโนโลยี จำกัด

  • เอฟ (Developer)
  • นิค (Developer)
  • บอย (Data Analyst)
  • เกตุ (Tester)

https://thainhf-api.opensource-technology.com