Mô hình hóa yêu cầu

Một phần của tài liệu Xây dựng ứng dụng du lịch sử dụng flutter và microservices (Trang 42 - 63)

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ự

Một phần của tài liệu Xây dựng ứng dụng du lịch sử dụng flutter và microservices (Trang 42 - 63)