Sprint Summary Report: Sprint 1 - Chayanon6409682538/ProjectCS360_foodadvisor GitHub Wiki

Sprint Summary Report: Sprint 1

ชื่อกลุ่ม: PakPok

สมาชิกในกลุ่ม:

  1. นายศักรพงศ์ พิพัฒน์พรชัยกุล 6309545033 (พอตเตอร์)
  2. นายชญานนท์ ขันฤทธิ์ 6409682538 (ไรเฟิล)
  3. นายศุภกร อูปแก้ว 6409682918 (ต้า)
  4. นางสาวอนัลลีนา ลิภา 6409682942 (ฟ้า)

ช่วงเวลาดำเนินงาน:

3 กันยายน 2567 ถึงวันที่ 23 กันยายน 2567

การสรุปงานที่ทำใน Sprint (Summary of Tasks Completed)

ใน Sprint 1 กลุ่มของเราได้ทำงานดังนี้:

1. หา Repository ที่จะนำมาพัฒนา: ทีมของเราตกลงกันว่าจะหา Repository ของคนอื่นที่สามารถทำงานได้ส่วนหนึ่งมาพัฒนาต่อยอด ไม่ได้เรื่มสร้าง Project ใหม่กันเอง

  • ทุกคน: แต่ละคนหา Repository ที่น่าสนใจและสามารถ Demo ได้มาคนละอย่างน้อย 1 Project เพื่อนำมาโหวตว่าจำพัฒนา Project ไหนต่อ
  • ทุกคน: ทีมของเราได้ Fork repository จากต้นฉบับมายัง Repository ของกลุ่มบน Github โดยใช้บัญชีของ Rifle
  • Rifle: Setup repository ของกลุ่มโดยการ fork มาจาก repository ต้นฉบับ และตั้งค่าการอณุญาติสิทธิ์การเข้าถึงของสมาชิกในทีม
  • ทุกคน: ทำการ clone repository ที่ Rifle ได้ fork มาที่เครื่องของตนเอง และยืนยันว่าทุกคนสามารถเข้าถึง repository ได้

2. Local Setup: ทีมได้clone repository ที่ fork มาไปยังเครื่องของสมาชิกทุกคน และทำการติดตั้ง dependencies ต่างๆ ที่จำเป็น เช่น Node.js และ npm packages

  • Rifle: ลองติดตั้งและรัน application ตามคำแนะนำใน Readme จาก repository ต้นฉบับ
  • Tar: Clone Project จาก git และลอง Demo Project แบบง่าย ๆ เพื่อคิดว่าจะทำ Feature อะไรต่อ
  • Potter: ทดลองติดตั้งและ Demo เพื่อหาแนวทางในการพัฒนาเว็ปไซต์
  • Fa: ใช้คำสั่ง git clone และเข้าไปยังโฟลเดอร์โปรเจค โดยทำตามขั้นตอนในไฟล์ README
  • ทุกคน: ลองติดตั้งและทดสอบ dependencies ด้วยตนเอง พร้อมนำผลการทดสอบมาอภิปรายในกลุ่ม

3. Cloud Setup: ทีมได้ตั้งค่าและสร้าง EC2 instance บน AWS และทำการ deploy เว็บแอปพลิเคชันบน EC2

  • Rifle: เขียน Bash script สำหรับติดตั้งเว็บแอปพลิเคชันบนเซิร์ฟเวอร์ EC2 โดยอัตโนมัติ
  • Tar: หา Recomendation จาก Doc ของ Strapi เพื่อนำมาสร้าง EC2
  • Potter: ร่วมเขียน Bash Script สำหรับใช้ในการติดตั้งเว็บแอปฟลิเคชั่นบนเครื่อง EC2
  • Fa: ทดสอบและตรวจสอบการทำงานของเว็บแอปพลิเคชันบน EC2
  • ทุกคน: ทำตามงานที่ตัวเองถนัด

4. Initial Manual Deployment:

  • Rifle: ช่วย Tar แก้ปัญหาที่เกิดขึ้นระหว่างลอง demo application บน ec2 ผ่าน public ip address`○ Tar: ลอง Demo โดยการทำตาม README.txt ที่มีในโปรเจคเดิมว่าต้องติดตั้งหรือเพิ่มบ้าง เพื่อนำไปพัฒนา Script ต่อ และ Config .env ตามคำแนะนำของพี่ TA เพื่อแก้ปัญหาที่ Frontend ไม่สารมารถ fecth รูปได้เพราะ CORS policy
  • Potter: ทดลองรัน Demo พบว่าว่าไม่สามารถโหลดภาพขึ้นเว็บได้
  • Fa: ได้ลองรันหลายคำสั่ง ในตอนแรกไม่สามารถรันคำสั่งได้ เพราะพบว่ามีบางแพ็กเกจที่ขาดไป
  • ทุกคน: ทำการทดลอง Deploy บนเครื่องของตนเอง พร้อมนำผลการ Deploy มาอภิปรายในกลุ่มเพื่อหาแนวทางการแก้ไขร่วมกัน

5. Web application development: ทีมได้พัฒนาฟังก์ชันการทำงานของเว็บแอปพลิเคชันเพิ่มเติม ดังนี้

  • Rifle: ช่วยคิด Feature กับเพื่อนในทีมสำหรับ application เพื่อพัฒนาให้สมบูรณ์ขึ้นและใส่ใน product backlog
  • Tar: ช่วยคิด Feature กับเพื่อนในทีมสำหรับ application เพื่อพัฒนาให้สมบูรณ์ขึ้น
  • Potter: ช่วยคิด Feature กับเพื่อนในทีมสำหรับ application เพื่อพัฒนาให้สมบูรณ์ขึ้น
  • Fa: ช่วยคิด Feature กับเพื่อนในทีมสำหรับ application เพื่อพัฒนาให้สมบูรณ์ขึ้น และเขียนหน้า README.md ของโปรเจค
  • ทุกคน: ช่วยกันคิด Feature เพิ่มเติม

การวิเคราะห์ปัญหาและการแก้ไข (Problem Analysis and Solutions)

1. ปัญหาในการ Fork Repository:

  • ปัญหา: ในขั้นตอนการ fork repository เนื่องจากไม่เคยใช้การ fork ทำให้ต้องศึกษาการใช้งานใหม่
  • การแก้ไข: ศึกษาการใช้งานและลองปฏิบัติจริงในการ fork repository
  • ทุกคน: ตรวจสอบและยืนยันว่า repository ที่ fork มาใช้งานได้และได้รับสิทธิ์ในการเข้าถึง repository นี้

2. ปัญหาในการติดตั้ง Dependencies:

  • ปัญหา: Project ที่นำมาพัฒนามีการใช้ node version เก่าทำให้ mismatch หรือการติดตั้งที่ไม่สมบูรณ์
  • การแก้ไข: Tar ได้ตรวจสอบและระบุเวอร์ชันที่ถูกต้องของ node และใช้คำสั่ง curl -fsSL https://deb.nodesource.com/setup_16.x | sudo -E bash - และ sudo apt install nodejs -y เพื่อใช้ node version 16 ใน Project
  • ทุกคน: ลองแก้ไขปัญหาที่เกิดขึ้นตามคำแนะนำของ Tar และนำผลการแก้ไขมาอภิปรายในกลุ่ม

3. ปัญหาในการเชื่อมต่อกับ EC2 Instance:

  • ปัญหา: ในการตั้งค่าในไฟล์ .env มีการตั้งค่าให้ client side เรียกใช้ api ผ่าน ip ของ localhost ทำให้ขณะใช้ public ip ไม่สามารถ fetch รูปภาพได้
  • การแก้ไข: สมาชิกในกลุ่มได้การแนะนำของพี่ TA ถึงสาเหตุและลองปรับแก้ตามคำแนะนำ
  • ทุกคน: ช่วยกันหาปัญหาที่เกิดขึ้นนี้

การประเมินผลของทีม (Team Evaluation)

1. การทำงานร่วมกัน:

  • ทีมทำงานร่วมกันอย่างมีประสิทธิภาพ โดยมีการแบ่งหน้าที่ชัดเจนตามงาน คือ หน้าที่ fork repository, หน้าที่เขียน Readme , และหน้าที่ deploy บน EC2
  • สมาชิกทีมแต่ละคนสามารถปฏิบัติหน้าที่ได้ตามกำหนดเวลา 2. การสื่อสาร:
  • ยังต้องปรับปรุงเรื่องการสื่อสารเนื่องจาก sprint1 ที่ผ่านมายังมีการประชุมที่ไม่ต่อเนื่อง
  • มีการใช้ช่องทาง Discord ของกลุ่มในการสื่อสารกันผ่านข้อความ

การวิเคราะห์การทำงานของทีมและบทเรียนที่ได้(Team Collaboration and Lessons Learned)

1. การทำงานเป็นทีม:

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

2. บทเรียนที่ได้และแผนในการพัฒนาการทำงาน:

  • ได้เรียนรู้ว่าการสื่อสารที่ชัดเจนและสม่ำเสมอช่วยให้สมาชิกภายในทีมเข้าใจเป้าหมายและสถานการณ์ได้ดีขึ้น
  • ได้ทักษะในการปรับตัว ในการหาแนวคิดใหม่ๆ และวิธีแก้ไขที่ดีกว่าเดิมมาพัฒนาตัวเว็บแอปพลิเคชั่น
  • ได้เรียนรู้การใช้เครื่องมือต่างๆ เช่น GitHub, AWS EC2, และ Miro อย่างมีประสิทธิภาพ
  • ตระหนักถึงความสำคัญของการประชุม เพื่อให้การทำงานออกมามีประสิทธิภาพและเสร็จได้ทันกำหนดที่วางไว้