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

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

เริ่มต้นพัฒนาระบบ

หลังจากวันนั้นผมก็ได้กลับมาวิเคราะห์ระบบทันทีเพื่อจะเริ่มพัฒนาระบบที่ว่าให้ทันเสร็จในตอนนั้นเลย แต่เพราะกลับมาวิเคราะห์แล้วมันไม่ใช่แค่ใส่เกรดแล้วแจ้งเกรด ระบบมันค่อนข้างซับซ้อนกว่าที่เราคิด สิ่งแรกที่คิดได้เลยก็คือ หลักสูตรในแต่ละปีมันไม่ตายตัวปีนี้ใช้แบบนี้ส่วนปีหน้าก็อาจจะมีเปลี่ยนซึ่งก็เปลี่ยนจริงๆนั้นแหละ ไหนจะเรื่องนักเรียนเลื่อนชั้น ใบรวมเกรดรายสามปีทั้งแบบ ม.ต้น และ ม.ปลาย ปพ.ต่างๆและอื่นๆอีก บลา…บลา…บลา.. เห้ยแบบนี้เราวิเคราะห์ระบบแบบคลอบคลุมทุกส่วน ทุกแผนกเลยดีกว่า ออกแบบ Infrastructure ให้ชัดเจน วิเคราะห์ระบบให้ยืดหยุ่นที่สุดเท่าที่จะเป็นไปได้เพื่อรองรับฟังชั่นอื่นๆที่จะมีเพิ่มเข้ามาที่ไม่ใช่แค่ใส่เกรดแล้วแจ้งเกรด ระบบต้องคลอบคลุมทุกอย่างเกี่ยวกับการศึกษา กิจกรรมต่างๆ (นี้มันงานระดับหลักแสนชัดๆ) ซึ่งทำให้ผมเสียเวลากับการวิเคราะห์ระบบอยู่ช่วงนั้นเกือบสองเดือน และแน่นอนระบบก็ไม่ทันใช้ในเทอมนั้น ผมจึงรับปากว่าปีการศึกษาหน้าเทอมที่ 1 ต้องเริ่มใช้ระบบให้ได้ ช่วงต้นปีก็มีเหตุระบาดของไวรัส COVID-19 ทำให้โรงเรียนปิดนาน ผมเลยมีเวลาพัฒนาระบบอยู่เยอะพอสมควร หลังจากที่คิดว่าได้วิเคราะห์ระบบได้อย่างดีแล้วผมก็เริ่มออกแบบโครงสร้างของฐานข้อมูล (Data Dictionary) ของฐานข้อมูล (Database)

โครงสร้างของฐานข้อมูล ER-Diagram ที่ผมออกแบบในตอนนั้น ปัจจุบันมีการอัพเดทไปหลายส่วนแต่โครงสร้างก็คล้ายๆกัน

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

การเลือกเครื่องมือที่ใช้พัฒนา

อย่างที่บอกไป ผมจะรันโปรแกรมให้ทำงานบนเซิฟเวอร์และเชื่อมต่อฐานข้อมูลบนเซิฟเวอร์ด้วย สิ่งแรกเลยที่ต้องมีคือเซิฟเวอร์ ซึ่งทางโรงเรียนเองก็มีการใช้บริการอินเตอร์เน็ตแบบ Fix IP กับทาง ISP อยู่แล้วแถมยังเร็วอีกด้วย สิ่งที่ต้องหาคือเครื่องเซิฟเวอร์ อันที่จริงช่วงเริ่มต้นเราสามารถเช่า Hosting หรือ VPS ได้โดยจ่ายค่าเช่าเป็นเดือนๆ แต่ในเมื่อทางโรงเรียนได้ใช้บริการเน็ตและมี Fix IP แล้วผมเลยคิดว่าวางเซิฟเวอร์เองเลยดีกว่า ซึ่งพอดีเลยตอนนั้นทางโรงเรียนมีเซิฟเวอร์เครื่องเก่าแบบตั้งโต๊ะสเปคเครื่องเซิฟเวอร์ก็ระดับเริ่มต้น อายุเก่าประมาณ 4-5 ปีก็ยังถือว่าใช้ได้อยู่ แค่จะเอามารันเว็บเซิฟเวอร์น่าจะรองรับผู้ใช้ออนไลน์พร้อมกันได้หลักร้อยคน ตอนนี้ก็เสร็จในเรื่อง Hardware Requirement มาดูเรื่อง Software Requirement ต่อ ซึ่งตอนนั้นผมตื่นเต้นมากที่จะได้ลองเขียนโปรแกรม Web Application โดยใช้ภาษา JavaScript รันผ่าน Node.JS เป็น Back-end เพราะกำลังเป็นที่นิยมมาก ถึงเราจะยังไม่ค่อยชำนาญแต่ก็ไม่ยากเกินความสามารถเป็นอะไรที่เราสามารถเรียนรู้ได้ ในส่วนของ Front-end ก็เลือกใช้ Bootstrap + Font Awesome เพื่อจะได้ลดระยะเวลาในการออกแบบหน้าเว็บทำให้เราทำ UI ได้เร็วขึ้น

UI บางส่วนที่ผมทำในช่วงนั้น หน้า Login

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

เอาละไว้เดี่ยวผมจะมาเล่าประสบการณ์การเขียนโปรแกรมสองสัปดาห์ว่าเจออะไรบ้าง มีทั้งปัญหา ทั้ง Bug, Error และแรงกดดันจากเวลา ไว้มาเจอกันตอนที่ 2 นะครับ บ๊ายบาย

Facebook Comments