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




จุดเด่นในการพัฒนา
-
Ruby on Rails 7
สำหรับในโปรเจ็คสิ่งที่น่าจะเป็นความท้าทายใหม่ก็คือการที่ต้องเปลี่ยนมาใช้ Rails เวอร์ชัน 7 ซึ่งมีการอัพเดตฟีเจอร์ใหม่ๆ และเปลี่ยนไปเยอะจากเวอร์ชัน 6 โดยฟีเจอร์เด็ดของเวอร์ชันนี้ก็คงเป็นHotwired ที่เป็นรูปแบบในการส่งผ่าน HTML ผ่าน request และ websocket
-
Stimulus
การทำให้เว็บไซด์ของเรามีความน่าสนใจ และปฏิส้มพันธ์กับผู้ใช้งานเราได้เลือกใช้ Stimulus ซึ่งมีจุดเด่นในเรื่องการใช้งานที่มี learning curve ต่ำและขนาดที่เล็กเอามากๆ แต่ยังคงความสามารถไม่แตกต่างจากการใช้ framework อื่น
-
TailwindCSS
เป็น CSS framework ที่เป็น utilities โดยจะต้องเอาชิ้นส่วนแต่ละชิ้นมาประกอบกัน ซึ่งค่อนข้างจะใช้งานยากในช่วงเริ่มต้น แต่ถ้าเริ่มเข้าใจเราก็สามารถจะใช้งานได้อย่างคล่องแคล่ว และพัฒนาเว็บไซด์ได้อย่างรวดเร็ว นอกจากนี้ยังมีข้อดีในเรื่องของขนาดที่ถูกตัดออกจนเหลือเฉพาะที่ใช้งานจริงๆ เท่านั้น ทำให้เมื่อนำไป deploy บน production จริงจะมีขนาดที่เล็ก
ในส่วนของ Stimulus และ TailwindCSS ขนาดของไฟล์ที่ถูกโหลดมาใช้งานจะเป็นดังนี้
-
JS หลักจะอยู่ที่ประมาณ 178kb โดยจะประกอบไปด้วย controller ต่างๆ
Stimulus Controllers
- JS ของ ApexChart ที่ใช้แสดงผลกราฟต่างๆ อยู่ที่ 474kb
-
CSS ของ Tailwind จะอยู่ที่ 90kb
ขนาดไฟล์ JavaScript และ CSS ที่ถูกโหลดผ่านเบราเซอร์
-
-
Rollup
เป็น JS Bundling Tool ที่เราเลือกมาใช้ทดแทน Webpack ด้วยเหตุที่ค่อนข้างจะใช้งานง่ายกว่า และสามารถ customize ได้ไม่ยากนัก นอกจากนี้เรายังมีการ customize Rollup เพื่อนำมาใช้ในการจัดการ chunk name เพื่อให้สามารถใช้งานร่วมกับ Sprockets อีกด้วย
-
Testing & CI
การเขียนเทสเป็นสิ่งที่พยายามพลักดันมาตลอด แต่ด้วยปัจจัยเรื่องเวลาทำให้หลายต่อหลายโปรเจ็คต้องมาคอยเขียนเทสตามหลังอยู่เสมอ สำหรับในโปรเจ็คถือเป็นสิ่งที่แตกต่างในทางที่ดี เพราะว่าเรามีเทสเคสก่อนที่จะนำโปรแกรมไป deploy ใช้งานจริง และยังใช้ CI ของ Gitlab ในช่วยรันเทสให้เราอีกด้วย
Test Coverage
Gitlab CI
Badge
-
Ansible
อีกหนึ่ง automation ที่ได้รับความนิยมในท้องตลาด เราหยิบมาใช้ในการ deploy โปรเจ็ค เพื่อเพิ่มความรวดเร็วและสะดวกมากยิ่งขึ้น
ทีมพัฒนาภายใต้บริษัทโอเพน ซอร์ส เทคโนโลยี จำกัด
- เอฟ (Developer)
- นิค (Developer)
- บอย (Data Analyst)
- เกตุ (Tester)