Feature 2: A student searches for tutors - Skydddoogg/soa2019_group2 GitHub Wiki
:scissors: Prototype

:vertical_traffic_light: User Flow
- ขั้นตอนที่ 1: ค้นหาตามชื่อและตัวกรองที่ได้กำหนดลงไป
- ขั้นตอนที่ 2: เลือกติวเตอร์จากผลลัพธ์การค้นหาที่ปรากฏ
- ขั้นตอนที่ 3: ติดต่อติวเตอร์เพื่อสอบถามข้อมูลเพิ่มเติม

:zap: Services
Search service- Database: Firebase real-time database
- Pros:
- รูปแบบข้อมูลที่ได้จากการ query สามารถนำไปใช้ต่อได้ง่าย
- Cons:
- เนื่องด้วยข้อจำกัดของ firebase การ search อาจทำได้ไม่มีประสิทธิภาพเท่าที่ควร
- Pros:
- Database: Firebase real-time database
Tutor service- Database: Firebase real-time database
- Pros:
- หากติวเตอร์มีการอัพเดทข้อมูล ผู้เรียนสามารถเห็นข้อมูลที่เปลี่ยนแปลงได้ทันที
- Cons:
- หากข้อมูลของติวเตอร์มีขนาดใหญ่ จะทำให้เกิดความล่าช้า เนื่องจากต้องดึงข้อมูลทั้งหมดของติวเตอร์
- Pros:
- Database: Firebase real-time database
:scroll: Detailed Actions
- Action: ค้นหาตามชื่อและตัวกรองที่ได้กำหนดลงไป
-
Descriptive view
Input: ชื่อติวเตอร์, ตัวเลือกการกรองติวเตอร์Output: ผลลัพธ์การค้นหา (ลิสต์ของติวเตอร์)
-
Technical view
-
| Event | Endpoint URL | Service | Request | Response |
|---|---|---|---|---|
| Search | GET /searchform/search |
Search | Tutor Name, Tutor Tags | List of Tutors |
- Action: เลือกติวเตอร์จากผลลัพธ์การค้นหาที่ปรากฏ
-
Descriptive view
Input: ติวเตอร์ที่ถูกเลือกOutput: โปรไฟล์ของติวเตอร์
-
Technical view
-
| Event | Endpoint URL | Service | Request | Response |
|---|---|---|---|---|
| Get a selected tutor's information | GET /tutor/:tutorid/information |
Tutor | Tutor ID | Tutor Profile |
- Action: ติดต่อติวเตอร์เพื่อสอบถามข้อมูลเพิ่มเติม
-
Descriptive view
Input: ช่องทางการติดต่อกับติวเตอร์Output: ข้อมูลการติดต่อกับติวเตอร์ของช่องทางที่เลือก
-
Technical view
-
| Event | Endpoint URL | Service | Request | Response |
|---|---|---|---|---|
| See tutor's contacts | GET /tutor/:tutorid/information/contacts |
Tutor | Contact Type | Contact Information |
-
Action: ยกเลิกการค้นหา
There is no event.
- Action: ย้อนกลับไปเลือกติวเตอร์คนอื่นจากผลลัพธ์
-
Descriptive view
Input: ชื่อติวเตอร์, ตัวเลือกการกรองติวเตอร์Output: ผลลัพธ์การค้นหา (ลิสต์ของติวเตอร์)
-
Technical view
-
| Event | Endpoint URL | Service | Request | Response |
|---|---|---|---|---|
| Search | GET /searchform/search |
Search | Tutor Name, Tutor Tags | List of Tutors |
- Action: ยกเลิกการติดต่อกับติวเตอร์
-
Descriptive view
Input: ติวเตอร์ที่ถูกเลือกOutput: โปรไฟล์ของติวเตอร์
-
Technical view
-
| Event | Endpoint URL | Service | Request | Response |
|---|---|---|---|---|
| Get a selected tutor's information | GET /tutor/:tutorid/information |
Tutor | Tutor ID | Tutor Profile |