Feature 3: A student review tutor - Skydddoogg/soa2019_group2 GitHub Wiki
:scissors: Prototype
:vertical_traffic_light: User Flow
- ขั้นตอนที่ 1: ค้นหาผู้สอน
- ขั้นตอนที่ 2: เข้าไปยังหน้าโปลไฟล์ของผู้สอน
- ขั้นตอนที่ 3: กรอกข้อมูลรีวิว
- ขั้นตอนที่ 4: ยืนยันการรีวิว
:zap: Services
Tutor service
- Database: Firebase real-time database
- Pros:
- เนื่องจากเป็น NoSQL ทำให้ประหยัด Query ไม่ต้อง join ข้อมูลหลาย table เราสามารถดึงออกมาเป็นก้อน object ผ่าน class model
- หากติวเตอร์มีการอัพเดทข้อมูลจะทำให้ผู้เรียนสามารถเห็นข้อมูลที่เปลี่ยนแปลงได้ทันที เช่น เวลาที่สะดวกสอน
- Cons:
- firebase ต้องดึงข้อมูลติวเตอร์ทั้งหมด จึงทำให้เกิดความล่าช้าเนื่องจากข้อมูลมีขนาดใหญ่
- Pros:
- Database: Firebase real-time database
Tutor Search service
- Database: Firebase real-time database
- Pros:
- สามารถดึง object ของติวเตอร์โดยเป็น class model ทำให้สามารถดึงข้อมูลมาทีเดียว แล้วค่อยทำไปใช้ในหน้าดูข้อมูลติวเตอร์ได้
- Cons:
- ไม่จำเป็นต้องใช้ความเร็วขนาด real-time
- Pros:
- Database: Firebase real-time database
Tutor Review service
- Database: Firebase real-time database
- Pros:
- ทำให้ผู้ใช้ที่อยู่ในหน้าดูโปรไฟล์ติวเตอร์ สามารถเห็นรีวิวแบบ real-time
- Cons:
- firebase ต้องดึงข้อมูลรีวิวทั้งหมด จึงทำให้เกิดความล่าช้าเนื่องจากข้อมูลมีขนาดใหญ่
- Pros:
- Database: Firebase real-time database
Review Posting 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
-
Event | Endpoint URL | Service | Request | Response |
---|---|---|---|---|
Search for tutor | GET /searchtutor |
Tutor Search | Tutor Tags | รายชื่อติวเตอร์ตาม Tags |
- Action: ไปยังหน้าโปรไฟล์ของติวเตอร์
- Action: ค้นหาผู้สอน
-
Descriptive view
Input
: ติวเตอร์ที่ถูกเลือกOutput
: โปรไฟล์ของติวเตอร์
-
Technical view
-
Event | Endpoint URL | Service | Request | Response |
---|---|---|---|---|
Get tutor's information | GET /tutor/:tutorid |
Tutor | Tutor ID | ข้อมูลติวเตอร์ |
Get all review messages for tutor | GET /tutor/:tutorid/reviews |
Tutor Review | Tutor ID | comments ที่ติวเตอร์ได้รับมา |
- Action: เขียนรีวิวให้ผู้สอน
There is no event
- Action: ยืนยันการรีวิว
-
Descriptive view
Input
: -Output
: โปรไฟล์ของติวเตอร์ที่ถูกเลือกมาแล้ว
-
Technical view
-
Event | Endpoint URL | Service | Request | Response |
---|---|---|---|---|
Post a review message to tutor | POST /review/:reviewid/post |
Review Posting | Review ID | Success/Fail message |
Get tutor's information | GET /tutor/:tutorid |
Tutor | Tutor ID | ข้อมูลติวเตอร์ |
Get all review messages for tutor | GET /tutor/:turtorid/reviews |
Tutor Review | Tutor ID | comments ที่ติวเตอร์ได้รับมา |