4. Phương pháp nghiên cứu
4.1. Mô hình hóa yêu cầu
Nghiệp vụ View Trip Itineraries
Sơ đồ luồng dữ liệu
Hình 4-1. Sơ đồ luồng dữ liệu View Trip Itineraries
Mô tả dữ liệu
D1: Nhận thông tin view từ guest, user.
D2: Không có.
D3: Danh sách thông tin từ tbl_trips gồm id, userIds, name, fromRegionId, toRegionId, fromDate, toDate, dayIds, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt và thông tin từ tbl_regions gồm id, name, address, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D4: Không có.
D5: Không có.
D6: Thông tin về những trip đã hoàn thành, đang lên lịch, phổ biến từ tbl_trips gồm name, fromDate, toDate và thông tin từ tbl_regions gồm name, address, active.
Thuật toán
B1: Mở kết nối cơ sở dữ liệu.
B2: Chọn hiển thị trip itineraries trong trang chủ: Hiển thị các thông tin tên (của địa danh), nơi xuất phát, số ngày đi, thời gian đi.
32
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-2. View Trip Itineraries - Lược đồ tuần tự
Nghiệp vụ View Places
Sơ đồ luồng dữ liệu
Hình 4-3. Sơ đồ luồng dữ liệu View Places
Mô tả dữ liệu
D1: Nhận thông tin view từ guest.
D2: Không có.
D3: Danh sách thông tin từ tbl_places gồm id, regionId, name, latitude, longtitude, address, note, timeArriveAt, visitDuration, active, dateCreatedAt,
33
dateUpdatedAt, dateDeletedAt và thông tin từ tbl_regions gồm id, name, address, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D4: Không có.
D5: Không có.
D6: Thông tin về những place nổi tiếng từ tbl_places gồm name, address, visitDuration và thông tin từ tbl_regions gồm name, address, active.
Thuật toán
B1: Mở kết nối cơ sở dữ liệu.
B2: Chọn hiển thị place trong trang chủ: Hiển thị các thông tin tên (của địa danh), địa chỉ, thời gian mở cửa.
34
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-4. View Places - Lược đồ tuần tự
Nghiệp vụ View Profile
Sơ đồ luồng dữ liệu
Hình 4-5. Sơ đồ luồng dữ liệu View Profile
Mô tả dữ liệu
D1: Nhận thông tin view từ user.
35
D3: Danh sách thông tin từ tbl_users gồm id, socialId, socialType, phoneNumber, email, full name, gender, avatar, birthday, verifyCode, dataExpiredAt, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D4: Không có.
D5: Không có.
D6: Thông tin về profile từ tbl_users như full name, email, gender, avatar, birthday, phoneNumber.
Thuật toán
B1: Mở kết nối cơ sở dữ liệu.
B2: Chọn hiển thị profile trong trang chủ: Hiển thị các thông tin tên, email, ảnh đại diện, giới tính, ngày sinh, số điện thoại.
36
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-6. View Profile - Lược đồ tuần tự
Nghiệp vụ Edit Profile
Sơ đồ luồng dữ liệu
Hình 4-7. Sơ đồ luồng dữ liệu Edit Profile
Mô tả dữ liệu
D1: Thông tin về user (full name, email, gender, avatar, birthday, phoneNumber).
37
D3: Danh sách user từ tbl_users (full name, email, gender, avatar, birthday, phoneNumber).
D4: full name, email, gender, avatar, birthday, phoneNumber.
D5: Không có.
D6:
- Thông báo cập nhật thành công => Dữ liệu được lưu trong cơ sở dữ liệu và trả về trang profile của user.
- Thông báo thêm không thành công => Dữ liệu không bị thay đổi và trả về trang profile của user.
Thuật toán
B1: User cập nhập thông tin profile của mình (tên, email, ảnh đại diện, giới tính, ngày sinh, số điện thoại) thông qua form.
B2: Thực hiện validate các field trong form gồm kiểm tra các trường bắt buộc phải nhập và kiểm tra tên user và email đã tồn tại hay chưa.
- Trường hợp validate thành công => chuyển đến B3. - Trường hợp validate không thành công => quay lại B1.
B3: Sau khi nhấn button “Save” .
- Lưu thành công và show thông báo => chuyển đến B4. - Lưu thất bại thì sẽ show thông báo => chuyển đến B1.
38
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-8. Edit Profile - Lược đồ tuần tự
Nghiệp vụ Create Trip
Sơ đồ luồng dữ liệu
Hình 4-9. Sơ đồ luồng dữ liệu Create Trip
Mô tả dữ liệu
D1: Thông tin trip gồm (name, fromRegionId, toRegionId, fromDate, toDate, dayIds).
39
D3: Danh sách trip từ tbl_trips (name, fromRegionId, toRegionId, fromDate, toDate, dayIds), danh sách region từ tbl_regions (name, address) và danh sách day từ tbl_days (id, note).
D4: tripName, fromRegionId, toRegionId, fromDate, toDate, dayIds, regionName, address.
D5: Không có.
D6:
- Thông báo thêm thành công => Dữ liệu được lưu trong cơ sở dữ liệu và trả về danh sách trip.
- Thông báo thêm không thành công => Dữ liệu không bị thay đổi và trả về trang Create Trip.
Thuật toán
B1: User nhập thông tin của trip (tripName, fromRegionId, toRegionId, fromDate, toDate, dayIds, regionName, address) thông qua form.
B2: Thực hiện validate các field trong form gồm kiểm tra các trường bắt buộc phải nhập và kiểm tra tên trip và fromDate, toDate đã tồn tại hay chưa.
- Trường hợp validate thành công => chuyển đến B3. - Trường hợp validate không thành công => quay lại B1.
B3: Sau khi nhấn button “Save” :
- Lưu thành công và show thông báo => chuyển đến B4. - Lưu thất bại thì sẽ show thông báo => chuyển đến B1.
40
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-10. Create Trip - Lược đồ tuần tự
Nghiệp vụ Login with Facebook
Sơ đồ luồng dữ liệu
Hình 4-11. Sơ đồ luồng dữ liệu Login with Facebook
41
D1: email, password (email và password của Facebook).
D2: Không có.
D3: Danh sách email từ tbl_users.
D4: Thông tin id, socialId, socialType, phoneNumber, email, full name, gender, avatar, birthday, verifyCode, dataExpiredAt, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D5: Không có.
D6:
- Đăng nhập thành công => Vào được trang chủ user.
- Đăng nhập không thành công => Vẫn ở lại trang đăng nhập.
Thuật toán
B1: Nhập tài khoản email và password.
B2: Lấy danh sách user từ tbl_users và so sánh với tài khoản nhập.
B3:
- Nếu tài khoản không tồn tại thì hệ thống sẽ tự động tạo tài khoản => Lưu user mới trong cơ sở dữ liệu.
42
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-12. Login with Facebook - Lược đồ tuần tự
Nghiệp vụ Login with Google
Sơ đồ luồng dữ liệu
Hình 4-13. Sơ đồ luồng dữ liệu Login with Google
Mô tả dữ liệu
43 D2: Không có.
D3: Danh sách email từ tbl_users.
D4: Thông tin id, socialId, socialType, phoneNumber, email, full name, gender, avatar, birthday, verifyCode, dataExpiredAt, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D5: Không có.
D6:
- Đăng nhập thành công => Vào được trang chủ user.
- Đăng nhập không thành công => Vẫn ở lại trang đăng nhập.
Thuật toán
B1: Nhập tài khoản email và password.
B2: Lấy danh sách user từ tbl_users và so sánh với tài khoản nhập.
B3:
- Nếu tài khoản không tồn tại thì hệ thống sẽ tự động tạo tài khoản => Lưu user mới trong cơ sở dữ liệu.
44
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-14. Login with Gooogle – Lược đồ tuần tự
Nghiệp vụ Login with Phone Number
Sơ đồ luồng dữ liệu
Hình 4-15. Sơ đồ luồng dữ liệu Login with Phone Number
Mô tả dữ liệu
D1: Số điện thoại, verify code được gửi tới điện thoại.
45 D3: Danh sách phoneNumber từ tbl_users.
D4: Thông tin id, socialId, socialType, phoneNumber, email, full name, gender, avatar, birthday, verifyCode, dataExpiredAt, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D5: Không có.
D6:
- Đăng nhập thành công => Vào được trang chủ user.
- Đăng nhập không thành công => Vẫn ở lại trang đăng nhập.
Thuật toán
B1: Nhập số điện thoại.
B2: Lấy danh sách user từ tbl_users và so sánh với số điện thoại nhập.
B3: Gửi verify code đến số điện thoại và yêu cầu nhập code.
B4: Nhập verify code.
B5:
- Nếu tài khoản không tồn tại thì hệ thống sẽ tự động tạo tài khoản => Lưu user mới trong cơ sở dữ liệu.
46
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-16. Login with Phone Number - Lược đồ tuần tự
Nghiệp vụ Create Destination
Sơ đồ luồng dữ liệu
Hình 4-17. Sơ đồ luồng dữ liệu Create Destination
47
D1: Thông tin destination gồm (name, latitude, longtitude, address).
D2: Không có.
D3: Danh sách trip từ tbl_places (name, latitude, longtitude, address).
D4: name, latitude, longtitude, address.
D5: Không có.
D6:
- Thông báo thêm thành công => Dữ liệu được lưu trong cơ sở dữ liệu và trả về danh sách destination.
- Thông báo thêm không thành công => Dữ liệu không bị thay đổi và trả về trang Create Destination.
Thuật toán
B1: User nhập thông tin của destination (name, latitude, longtitude, address) thông qua form.
B2: Thực hiện validate các field trong form gồm kiểm tra các trường bắt buộc phải nhập và kiểm tra tên destination đã tồn tại hay chưa.
- Trường hợp validate thành công => chuyển đến B3. - Trường hợp validate không thành công => quay lại B1.
B3: Sau khi nhấn button “Save” :
- Lưu thành công và show thông báo => chuyển đến B4. - Lưu thất bại thì sẽ show thông báo => chuyển đến B1.
48
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-18. Create Destination - Lược đồ tuần tự
Nghiệp vụ View Destination
Sơ đồ luồng dữ liệu
Hình 4-19. Sơ đồ luồng dữ liệu View Destination
Mô tả dữ liệu
49 D2: Không có.
D3: Danh sách thông tin từ tbl_places gồm regionId, id, name, latitude, longtitude, address, note, timeArriveAt, visitDuration, active, dateCreatedAt, dateUpdatedAt, dateDeletedAt.
D4: Không có.
D5: Không có.
D6: Thông tin về destination từ tbl_places như name, address, note, timeArriveAt.
Thuật toán
B1: Mở kết nối cơ sở dữ liệu.
B2: Chọn hiển thị destination trong trang chủ: Hiển thị các thông tin tên, địa chỉ, ghi chú, thời gian khởi hành.
50
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-20. View Destination - Lược đồ tuần tự
Nghiệp vụ Logout
Sơ đồ luồng dữ liệu
Hình 4-21. Sơ đồ luồng dữ liệu Logout
Mô tả dữ liệu
D1: Tín hiệu đăng xuất từ user.
D2: Không có.
D3: Không có.
D4: Không có.
D5: Không có.
51
Thuật toán
B1: Chọn vào nút “đăng xuất” từ màn hình.
52
PHÂN TÍCH YÊU CẦU VÀ THIẾT KẾ CƠ SỞ DỮ LIỆU
Sequence Diagram
Hình 4-22. Logout - Lược đồ tuần tự