Sprint summary report: Sprint 3 - Chayanon6409682538/ProjectCS360_foodadvisor GitHub Wiki
ชื่อกลุ่ม: Pakpok
สมาชิกในกลุ่ม:
- นายศักรพงศ์ พิพัฒน์พรชัยกุล 6309545033 (พอตเตอร์)
- นายชญานนท์ ขันฤทธิ์ 6409682538 (ไรเฟิล)
- นายศุภกร อูปแก้ว 6409682918 (ต้า)
- นางสาวอนัลลีนา ลิภา 6409682942 (ฟ้า)
ช่วงเวลาดำเนินงาน:
วันที่ 31 ตุลาคม 2567 ถึงวันที่ 6 ธันวาคม 2567
การสรุปงานที่ทำใน Sprint (Summary of Tasks Completed)
ใน Sprint 3 กลุ่มของเราได้ทำงานดังนี้:
- Docker Container: ทีมของเราได้สร้างและตรวจสอบ Dockerfile สำหรับ Frontend และ Backend พร้อมทั้งทดสอบการสร้างและรัน Container เพื่อให้แน่ใจว่าทำงานได้ตามที่ออกแบบ
- ต้า: จัดเตรียม Dockerfile และตรวจสอบการทำงานของ Container เบื้องต้น
- ไรเฟิล: จัดเตรียม Dockerfile สำหรับ Backend และ Frontend
- ไรเฟิล: เพิ่ม Token และ Username ของ Docker ไว้ใน Github Secret
- ทุกคน: ตรวจสอบความถูกต้องและการทำงานของ Dockerfile ทั้ง Frontend และ Backend เพื่อให้มั่นใจว่าสามารถทำงานได้ตามที่คาดหวัง
- CI Docker: ทีมได้ตั้งค่า Pipeline บน GitHub Actions สำหรับการตรวจสอบและสร้าง Docker Image อัตโนมัติ และทดสอบว่า Pipeline ทำงานได้ถูกต้อง
- ต้า: เพิ่ม Pipeline สำหรับตรวจสอบและสร้าง Docker Image อัตโนมัติ
- ไรเฟิล: ทดสอบ Pipeline และแก้ไขข้อผิดพลาดที่พบ
- CD: ทีมได้ตั้งค่าและทดสอบ CD Pipeline สำหรับการ Deploy แอปพลิเคชันไปยังเซิร์ฟเวอร์ Production เพื่อให้มั่นใจว่าทำงานได้อย่างราบรื่น
- ไรเฟิล: ตรวจสอบความถูกต้องของการตั้งค่า CD และบันทึกผลลัพธ์การ Deploy
- ทุกคน: วางแผนการ Deploy อัตโนมัติผ่าน CD Pipeline
- ทุกคน: ร่วมกันอธิบายวิธีการดูผลลัพธ์การทดสอบที่ได้จาก CI pipeline ในหน้า GitHub หรือใน Terminal หลังจากการรันการทดสอบ
- Documentation Update:
- ฟ้า: ปรับปรุงเนื้อหาใน Wiki สำหรับ Sprint 3
- ฟ้า: จัดทำรายงาน PDF เพื่อวิเคราะห์การใช้เวลาในการ Deploy ด้วยวิธีต่างๆ และผลของการพัฒนาระบบด้วย CI/CD
- ฟ้า: แก้ไขและเพิ่มเติมข้อมูลที่ได้รับ feedback ของ Readme สำหรับ Sprint 3
- Sprint Summary: ทีมได้รวบรวมผลการทำงานทั้งหมดใน Sprint 3 และจัดทำเอกสารสรุป เพื่อใช้ในการนำเสนอ
- ทุกคน: รวบรวมและสรุปผลการทำงานทั้งหมดใน Sprint 3 เพื่อเตรียมการนำเสนอ
- ฟ้า: จัดทำเอกสารสรุป Sprint และแชร์ให้ทีมทบทวนก่อนประชุม
การวิเคราะห์ปัญหาและการแก้ไข (Problem Analysis and Solutions)
- ปัญหาในการเชื่อมต่อ frontend กับ backend:
- ปัญหา: เชื่อมต่อ frontend กับ backend ไม่ได้หลังจาก deploy ผ่าน CI/CD pipeline เนื่องจาก client ไปดึง .env ที่เป็น default ที่ได้จากตอน build มาใช้
- การแก้ไข: แก้โดยใช้ option -e ตอนรัน docker เพื่อเป็นการกำหนดค่าใน .env และ build project ตอนรัน docker
- ปัญหาในการรันคำสั่ง docker run ใน yaml file ในขั้นตอนการ deploy code ใน workflow ไม่ได้:
- ปัญหา: Syntax ใน yaml file ผิดเนื่องจากมีช่องว่างอยู่หลังสุดของคำสั่ง ทำให้เกิด syntax error
- การแก้ไข: แก้ syntax ให้ถูกต้อง
- ปัญหาในการไม่สามารเพิ่ม strapi upload plugin ไปในโปรเจคได้:
- ปัญหา: ไม่สามารถเพิ่ม strapi upload plugin เพราะ node veriosin 16 not compatible
- การแก้ไข: ใช้วิทีเดิมในการอัปโหลดรูป
การประเมินผลของทีม (Team Evaluation)
-
การทำงานร่วมกัน: ทีมทำงานร่วมกันอย่างมีประสิทธิภาพ โดยมีการแบ่งหน้าที่ชัดเจนตามงาน คือ หน้าที่สร้าง Dockerfile, สร้าง CI pipeline , และ ปรับปรุง Readme ของ repository สมาชิกทีมแต่ละคนมีส่วนร่วมในการทำงาน และร่วมกันช่วยเหลือในการแก้ไขปัญหาที่เกิดขึ้น
-
การสื่อสาร: ใช้ช่องทาง Discord ของกลุ่มในการสื่อสารกันผ่านข้อความและประชุมงาน ปัญหาจาก sprint1 และ sprint2 ได้รับการแก้ไขจากการใช้ GitHub Issues และ GitHub Projects มากขึ้น ในการมอบหมายงานและติดตามการดำเนินงานของทีม ทำให้งานออกมาเสร็จตามเวลาที่กำหนด
การวิเคราะห์การทำงานของทีมและบทเรียนที่ได้(Team Collaboration and Lessons Learned)
- การทำงานเป็นทีม: จากความประมาทในการวางแผนในการทำงาน sprint 2 ใน sprint 3 นี้ทีมได้มีการปรึกษาพี่ TA อย่างต่อเนื่อง เวลาเกิดปัญหาจึงสามารถแก้ไขได้ทันและเพิ่มความเข้าใจในตัว CI/CD Pipeline มากขึ้น มีการแบ่งงานให้เหมาะสมกับความสามารถของสมาชิกแต่ละคน การทำงานต่าง ๆ ใน branch master และ dev ก็มีความชัดเจนมากยิ่งขึ้น
- บทเรียนที่ได้และแผนในการพัฒนาการทำงาน: ได้เรียนรู้วิธีตั้งค่า CI/CD Pipeline ด้วยการใช้ GitHub Actions เพื่อจัดการกระบวนการทำงานอัตโนมัติ และการบริหารจัดการ Docker Containers อย่างมีประสิทธิภาพ รวมถึงการเพิ่มข้อมูล Docker Token และ Username ลงใน GitHub Secrets เพื่อใช้งานร่วมกับ Docker Hub นอกจากนี้ ยังได้เรียนรู้วิธีการทำ CD อัตโนมัติ โดยนำ AWS Key ต่างๆ มาใช้ในกระบวนการสร้าง Instance ผ่าน GitHub Actions เพื่อเสริมประสิทธิภาพของระบบ Deployment อัตโนมัติ รวมถึงในการทำงานเมื่อเกิดปัญหาในการทำงานต้องรีบแจ้งเพื่อจะได้มาร่วมกันแก้ไข เพื่อไม่ให้เกิดความล่าช้าในการทำงานอีก