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
- Pros:
- Database: Firebase real-time database
Student service
- Database: Firebase real-time database
- Pros:
- เนื่องจากเป็น NoSQL ทำให้ประหยัด Query ไม่ต้อง join ข้อมูลหลาย table เราสามารถดึงออกมาเป็นก้อน object ผ่าน class model
- หากติวเตอร์มีการอัพเดทข้อมูลจะทำให้ผู้เรียนสามารถเห็นข้อมูลที่เปลี่ยนแปลงได้ทันที เช่น เวลาที่สะดวกสอน
- Cons:
- firebase ต้องดึงข้อมูลติวเตอร์ทั้งหมด จึงทำให้เกิดความล่าช้าเนื่องจากข้อมูลมีขนาดใหญ่
- Pros:
- Database: Firebase real-time database
Offer service
- Database: Firebase real-time database
- Pros:
- หากมีการยื่นข้อเสนองานสอนมา จะทำให้ผู้ที่ได้รับข้อเสนอมีการแจ้งเตือนทันที
- Cons:
- รูปแบบข้อมูลของการส่งข้อเสนอไม่เหมาะกับการเก็บแบบ JSON
- Pros:
- Database: Firebase real-time database
:scroll: Detailed Actions
- Action: ไปที่หน้านักเรียนประกาศหาผู้สอน
- Descriptive view
Input
: เข้าสู่ระบบในฐานะ ติวเตอร์Output
: แสดงข้อมูลการโพสทั้งหมดของนั
- Technical view
- Descriptive 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
- Descriptive view
Event | Endpoint URL | Service | Request | Response |
---|---|---|---|---|
Get search student form | GET /searchstudent |
Search student service | - | - |
- Action: แสดงผลลัพธ์จากตัวกรองที่กรอกไป
- Descriptive view
Input
: กรอกข้อมูลค้นหาOutput
: ผลลัพธ์การค้นหา (ลิสต์รายละเอียดที่นักเรียนโพส)
- Technical view
- Descriptive 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
- Descriptive 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
- Descriptive view
Event | Endpoint URL | Service | Request | Response |
---|---|---|---|---|
Get student posts | GET /studentposts |
Student | Student ID, Offer ID | Student ID, Post ID |