Sprint Summary Report: Sprint 1 - Chayanon6409682538/ProjectCS360_foodadvisor GitHub Wiki
Sprint Summary Report: Sprint 1
ชื่อกลุ่ม: PakPok
สมาชิกในกลุ่ม:
- นายศักรพงศ์ พิพัฒน์พรชัยกุล 6309545033 (พอตเตอร์)
- นายชญานนท์ ขันฤทธิ์ 6409682538 (ไรเฟิล)
- นายศุภกร อูปแก้ว 6409682918 (ต้า)
- นางสาวอนัลลีนา ลิภา 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 อย่างมีประสิทธิภาพ
- ตระหนักถึงความสำคัญของการประชุม เพื่อให้การทำงานออกมามีประสิทธิภาพและเสร็จได้ทันกำหนดที่วางไว้