Feature 4: A tutor offers to teach - Skydddoogg/soa2019_group2 GitHub Wiki

:scissors: Prototype

:vertical_traffic_light: User Flow

  • ขั้นตอนที่ 1 : ไปที่หน้านักเรียนประกาศหาผู้สอน
  • ขั้นตอนที่ 2 : ไปหน้าค้นหานักเรียน
  • ขั้นตอนที่ 3 : แสดงผลลัพธ์จากตัวกรองที่กรอกไป
  • ขั้นตอนที่ 4 : เลือกเสนอการสอนให้กับนักเรียนที่ต้องการ
  • ขั้นตอนที่ 5 : ยืนยันข้อความเสนอการสอน

:zap: Services

  • Search student service
    • Database: Firebase real-time database
      • Pros:
        • สามารถดึง object ของติวเตอร์โดยเป็น class model ทำให้สามารถดึงข้อมูลมาทีเดียว แล้วค่อยทำไปใช้ในหน้าดูข้อมูลติวเตอร์ได้
      • Cons:
        • ไม่จำเป็นต้องใช้ความเร็วขนาด real-time
  • Student service
    • Database: Firebase real-time database
      • Pros:
        • เนื่องจากเป็น NoSQL ทำให้ประหยัด Query ไม่ต้อง join ข้อมูลหลาย table เราสามารถดึงออกมาเป็นก้อน object ผ่าน class model
        • หากติวเตอร์มีการอัพเดทข้อมูลจะทำให้ผู้เรียนสามารถเห็นข้อมูลที่เปลี่ยนแปลงได้ทันที เช่น เวลาที่สะดวกสอน
      • Cons:
        • firebase ต้องดึงข้อมูลติวเตอร์ทั้งหมด จึงทำให้เกิดความล่าช้าเนื่องจากข้อมูลมีขนาดใหญ่
  • Offer service
    • Database: Firebase real-time database
      • Pros:
        • หากมีการยื่นข้อเสนองานสอนมา จะทำให้ผู้ที่ได้รับข้อเสนอมีการแจ้งเตือนทันที
      • Cons:
        • รูปแบบข้อมูลของการส่งข้อเสนอไม่เหมาะกับการเก็บแบบ JSON

:scroll: Detailed Actions

  • Action: ไปที่หน้านักเรียนประกาศหาผู้สอน
    • Descriptive view
      • Input: เข้าสู่ระบบในฐานะ ติวเตอร์
      • Output: แสดงข้อมูลการโพสทั้งหมดของนั
    • Technical view
Event Endpoint URL Service Request Response
Get student posts GET /studentposts Student Students's posts All students's posts

  • Action: ไปหน้าค้นหานักเรียน
    • Descriptive view
      • Input: -
      • Output: แสดงหน้าเพื่อกรอกข้อมูลค้นหานักเรียน
    • Technical view
Event Endpoint URL Service Request Response
Get search student form GET /searchstudent Search student service - -

  • Action: แสดงผลลัพธ์จากตัวกรองที่กรอกไป
    • Descriptive view
      • Input: กรอกข้อมูลค้นหา
      • Output: ผลลัพธ์การค้นหา (ลิสต์รายละเอียดที่นักเรียนโพส)
    • Technical view
Event Endpoint URL Service Request Response
Get search result GET /studentsearch/searchresult Search student service Student Tags List of students

  • Action: เปลี่ยนตัวกรองที่กรอกไปใหม่

There is no event


  • Action: เลือกเสนอการสอนให้กับนักเรียน
    • Descriptive view
      • Input: -
      • Output: แสดงชื่อ และรายละเอียด ของนักเรียนที่กำลังจะเสนอสอน
    • Technical view
Event Endpoint URL Service Request Response
Get teaching offer GET /offers/:studentId/teachingoffer Offer Student ID, Offer ID Student ID, Post ID

  • Action: ยกเลิกข้อความเสนอการสอน

There is no event


  • Action: ยืนยันข้อความเสนอการสอน
    • Descriptive view
      • Input: กรอกข้อความการเสนอสอน
      • Output: แสดงข้อความยืนยันสถานะการส่ง
    • Technical view
Event Endpoint URL Service Request Response
Get student posts GET /studentposts Student Student ID, Offer ID Student ID, Post ID