ĐẠI HỌC ĐÀ NẴNGTRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁNCÔNG NGHỆ PHẦN MỀMĐỀ TÀIXây dựng Website hỗ trợ việc tìm kiếm địa điểm vui chơi, du lịch và chia sẻ trải nghiệm du lịch tại thành phố Đà Nẵng GVHD: TS. Lê Thị Mỹ HạnhNhóm:16Nh14 SVTH:Nguyễn Hữu Hoàng HưngNguyễn Trần HậuĐoàn Văn KhánhLê Trần Hồng PhúcNguyễn Phước PhiVõ Xuân Hùng Đà Nẵng, 2019MỤC LỤCLỜI NÓI ĐẦU4PHÂN CÔNG CÔNG VIỆC5CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG6MỤC ĐÍCH6PHẠM VI HỆ THỐNG6CHƯƠNG 2: XÂY DỰNG HỆ THỐNG7PHÂN TÍCH YÊU CẦU7TỔNG QUAN7Tác nhân7Sơ đồ ca sử dụng8MÔ TẢ CHỨC NĂNG11Xác thực người dùng11Xem thông tin địa điểm, dịch vụ18Tìm kiếm dịch vụ, địa điểm19Đánh giá dịch vụ, địa điểm21Yêu cầu cập nhật dịch vụ, địa điểm22Báo cáo dịch vụ, địa điểm25Xem blog26Viết blog29Đánh giá (bình luận) blog30Báo cáo blog31Phê duyệt yêu cầu tạo mới và cập nhật dịch vụ, địa điểm sẵn có33Xử lý báo cáo về dịch vụ, địa điểm34Xem thông tin và phân quyền35YÊU CẦU PHI CHỨC NĂNG38Hiệu suất38Tương thích38Tính ứng dụng39Tính tin cậy39An toàn thông tin39THIẾT KẾ40Sơ đồ lớp40Cơ sở dữ liệu41Sơ đồ cơ sở dữ liệu41Cấu trúc bảng41CÀI ĐẶT50KIỂM THỬ51CHƯƠNG 3: KẾT QUẢ TRIỂN KHAI HỆ THỐNG53XÁC THỰC NGƯỜI DÙNG53Đăng nhập53Xem thông tin cá nhân54DỊCH VỤ, ĐỊA ĐIỂM54Tìm kiếm dịch vụ, địa điểm54Xem thông tin dịch vụ, địa điểm55Đánh giá dịch vụ, địa điểm56Yêu cầu cập nhật dịch vụ, địa điểm56BLOG58Xem blog58Báo cáo blog59Viết blog mới60QUẢN LÝ NGƯỜI DÙNG61PHÊ DUYỆT YÊU CẦUBÁO CÁO62Phê duyệt yêu cầu cập nhậtthêm dịch vụ, địa điểm62Xử lý báo cáo về dịch vụ, địa điểm62CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN63THUẬN LỢI VÀ KHÓ KHĂN63THÀNH QUẢ ĐẠT ĐƯỢC63HƯỚNG PHÁT TRIỂN63 LỜI NÓI ĐẦUĐồ án chuyên ngành công nghệ phần mềm là đồ án quan trọng của sinh viên chuyên ngành công nghệ phần mềm. Sau khi được học các môn học về phần mềm như công nghệ phần mềm, phân tích và thiết kế hướng đối tượng thì có thể nói đây là phần quan trọng để sinh viên hiểu rõ hơn về thế nào là một dự án phần mềm. Đồ án này là một cột mốc mà các kỹ năng và khả năng lập trình của sinh viên lại lên một bước mới vì những mảng kiến thức đã xuất hiện trong các môn học, sinh viên sẽ áp dụng vào dự án này.Và nhóm em xin tỏ lòng cảm ơn tới cô Lê Thị Mỹ Hạnh – giảng viên khoa Công nghệ thông tin, Trường Đại học Bách Khoa, Đại học Đà Nẵng đã trực tiếp hướng dẫn em hoàn thành đề tài này.Trong quá trình làm khó có thể tránh khỏi các thiếu sót, kính mong nhận được ý sự góp ý của quý thầy cô để đề tài trở nên hoàn thiện hơn.Nhóm em xin chân thành cảm ơn PHÂN CÔNG CÔNG VIỆCSTTThành viênNội dung công việc1Nguyễn Hữu Hoàng HưngPhân tích và thiết kế databasePhân tích và thiết kế toàn hệ thốngCrawl dữ liệuViết báo cáo Kiểm tra tiến độ từng thành viên trong nhóm2Đoàn Văn KhánhPhân tích và thiết kế databasePhân tích và thiết kế hệ thống API cho hệ thốngReview phần Backend cho toàn hệ thốngDeploy website và quản lý cloud server3Nguyễn Trần HậuPhân tích và thiết kế hệ thống API cho hệ thốngPhân tích và thiết kế sơ đồ lớp cho hệ thốngCoding phần Backend cho toàn hệ thốngReview phần frontend của trang admin4Nguyễn Phước PhiPhân tích và thiết kế UXUI cho trang blog, service và quản lý.Coding phần frontend cho blogReview phần frontend cho serviceThiết kế testcase cho trang service5Lê Trần Hồng PhúcPhân tích và thiết kế UXUI cho trang blog, service.Coding phần frontend cho serviceReview phần frontend cho blogThiết kế testcase cho trang blog6Võ Xuân HùngPhân tích và thiết kế UXUI cho trang quản lý.Coding phần frontend cho adminThiết kế testcase cho trang adminCHƯƠNG 1: GIỚI THIỆU HỆ THỐNGI.MỤC ĐÍCHMục đích của hệ thống là hỗ trợ người dùng có thể tìm kiếm các trải nghiệm về du lịch Đà Nẵng bao gồm địa điểm ăn uống, vui chơi và giải trí tại thành phố Đà Nẵng.Hệ thống hỗ trợ và cho phép người dùng tìm kiếm và đánh giá các địa điểm, dịch vụ đã có sẵn trên hệ thống cũng như đóng góp các địa điểm, dịch vụ mới vào hệ thống. Hệ thống cũng cho phép người dùng có thể đăng tải các bài viết về trải nghiệm du lịch của mình để chia sẻ với cộng đồng.II.PHẠM VI HỆ THỐNGHệ thống website gợi ý trải nghiệm, địa điểm vui chơi, du lịch tại thành phố Đà Nẵng chạy trên nền web giúp việc tìm kiếm các địa điểm ăn uống, vui chơi, giải trí được tiến hành một cách nhanh chóng và tiện lợi. Hệ thống ra đời nhằm đáp ứng nhu cầu du lịch tại thành phố Đà Nẵng ngày càng tăng cao, nhằm giúp khách du lịch và người dân địa phương có thể dễ dàng lựa chọn được những dịch vụ phù hợp.Hệ thống phục vụ cho 3 đối tượng user chính:Người du lịch (traveler)Người điều hành (moderator)Quản trị viên (admin)Website cho phép người dùng tìm kiếm các dịch vụ và địa điểm theo từ khoá (tên quán, địa chỉ, số điện thoại, mô tả) hoặc theo loại (nhà hàng, quán cà phê, chỗ lưu trú, phương tiện di chuyển). Bên cạnh đó, người dùng có thể đánh giá phản hồi các dịch vụ hoặc địa điểm có trên hệ thống. Ngoài ra thì hệ thống còn cho phép người dùng cập nhật các thông tin liên quan đến dịch vụ hoặc địa điểm (thêm địa điểm mới chưa có trên hệ thống, sửa các thông tin về dịch vụ đã có trên hệ thống) dưới sự quản lý của admin và moderator. Cuối cùng, hệ thống cho phép user chia sẻ và khám phá các trải nghiệm Đà Nẵng dưới nhiều góc nhìn khác nhau thông qua các bài blog.CHƯƠNG 2: XÂY DỰNG HỆ THỐNGI.PHÂN TÍCH YÊU CẦUI.1.TỔNG QUANI.1.1.Tác nhânTác nhânMô tảNgười du lịch (Traveler)Có quyền đăng nhập, đăng ký, chỉnh sửa và xem chi tiết thông tin cá nhân.Có quyền tìm kiếm các dịch vụ và địa điểm trên hệ thống bằng từ khóa hoặc bằng loại dịch vụ.Có quyền xem, đánh giá, đề nghị cập nhật và thêm mới các dịch vụ và địa điểm trên hệ thống.Có quyền xem và bình luận blog chia sẻ trải nghiệm tại Đà Nẵng của người dùng khác.Có quyền viết blog để chia sẻ trải nghiệm.Có quyền báo cáo các dịch vụ, điểm điểm và các bài viết blog không phù hợp.Người trung gian (Moderator)Có quyền đăng nhập, chỉnh sửa, xem chi tiết thông tin cá nhân.Có các quyền tương tự như user.Có quyền phê duyệt các đề nghị cập nhật và thêm mới của user.Có quyền xử lý các báo cáo từ user (xoá, chặn).Quản trị viên (Admin)Có các quyền tương tự như Moderator.Có quyền phân quyền cho user và Moderator.Có quyền chặn (block) user, Moderator. I.1.2.Sơ đồ ca sử dụngI.1.2.1.Sơ đồ tổng quát I.1.2.2.Chức năng xác thực người dùng I.1.2.3.Chức năng tìm kiếm dịch vụ địa điểm I.1.2.4.Chức năng đánh giá dịch vụ địa điểm I.1.2.5.Chức năng cập nhật dịch vụ địa điểm I.1.2.6.Chức năng viết blog I.1.2.7.Chức năng quản lý dịch vụ I.1.2.8.Chức năng quản lý blog I.1.2.9.Chức năng quản lý người dùng I.2.MÔ TẢ CHỨC NĂNGI.2.1.Xác thực người dùngI.2.1.1.Đăng nhập Screen Đăng nhậpDescriptionCho phép user đăng nhập bằng usernameScreen AccessUser nhấn vào login ở headerScreen ContentItemTypeDataDescriptionLoginlabeltiêu đề usernameinputusernametrường input để nhập username của userpasswordinputpasswordtrường input để nhập password của userloginbutton đăng nhậpScreen ActionsAction NameDescriptionSuccessFailuređăng nhậpsau khi bấm nút login, user có thể đăng nhập vào tài khoản của mìnhchuyển trang về trang userthông báo lỗi nếu đăng nhập không thành công (usernamepassword sai)I.2.1.2.Đăng ký Screen Đăng kýDescriptionCho phép user đăng ký tài khoảnScreen AccessUser nhấn vào nút Sign up ở màn hình loginScreen ContentItemTypeDataDescriptionSign uplabeltiêu đề usernameinputusernametrường input để nhập username của userpasswordinputpasswordtrường input để nhập password của useremailinputemailtrường input để nhập email của userfull nameinputfull nametrường input để nhập full name của usersign upbutton đăng kýScreen ActionsAction NameDescriptionSuccessFailuresign upSau khi nhấn nút sign up, thông tin tài khoản của user sẽ được lưu vào hệ thống và user có thể bắt đầu login sử dụng tài khoản.thông báo sign up thành công, chuyển trang về màn hình đăng nhậpthông báo lỗi nếu đăng ký không thành công (username trùng, email trùng, dữ liệu của các input không hợp lệ)I.2.1.3.Đăng xuất Screen Đăng xuấtDescriptionCho phép user đăng xuất khỏi tài khoảnScreen Accessuser nhấn vào biểu tượng user trên header và chọn logoutScreen ContentItemTypeDataDescriptionlogoutbutton đăng xuấtScreen ActionsAction NameDescriptionSuccessFailurelogoutsau khi nhấn nút logout, hệ thống sẽ hủy bỏ session hiện tại của userchuyển trang về trang chủthông báo lỗi nếu logout không thành côngI.2.1.4.Xem thông tin cá nhân ScreenXem chi tiết thông tin cá nhânDescriptionCho phép user xem chi tiết thông tin cá nhân của mình và số lượng bài viết đã đăngScreen accessSau khi đăng nhập user chọn vào menu thông tin cá nhân để truy cậpScreen ContentItemTypeDataDescriptionTênLabelString Hiển thị tên của userNgày sinhLabelDate Hiển thị ngày sinh của userSdtLabelNumber Hiển thị số điện thoại của userEmailLabelString Hiển thị email của userFacebookLabelString Hiển thị facebook của userInstagramLabelString Hiển thị instagram của userPOSTLabelString Hiển thị số lượng bài viết user đã viếtImageImage Thumbnail của các bài viếtĐổi mật khẩuButton Có chức năng đổi mật khẩu cho tài khoản của userChỉnh sửaButton Cập nhật lại các thông tin cá nhân trừ mật khẩuScreen ActionsAction NameDescriptionSuccessFailureĐổi mật khẩuUser click vào nút đổi mật khẩu để thực hiện đổi mật khẩuHiển thị ra form để đổi mật khẩuKhông hiện form đổi mật khẩuChỉnh sửaUser click vào nút chỉnh sửa để thực hiện cập nhật thông tinHiện ra form cập nhật thông tinKhông hiện form cập nhật thông tinI.2.1.5.Cập nhật thông tin cá nhân ScreenCập nhật thông tin cá nhânDescriptionCho phép user cập nhật thông tin cá nhânScreen accessUser click vào nút chỉnh sửaScreen ContentItemTypeDataDescriptionTênTextInput Nhập tên mớiNgày sinhDate Nhập ngày sinh mớiSdtTextInput Nhập số điện thoại mớiEmailTextInput Nhập email mớiFacebookTextInput Nhập facebook mớiInstagramTextInput Nhập instagram mớiLưu thay đổiButton Xác nhận thay đổiScreen ActionsAction NameDescriptionSuccessFailureLưu thay đổiUser nhấn vào nút “Lưu thay đổi” để thực hiện việc thay đổi thông tinThông báo chỉnh sửa thành công, quay lại trang trướcTải lại trang, thông báo lỗi nếu lưu không thành công (dữ liệu input không hợp lệ) ScreenĐổi mật khẩuDescriptionCho phép user cập đổi mật khẩuScreen accessUser click vào nút đổi mật khẩuScreen ContentItemTypeDataDescriptionMật khẩu cũTextInput Nhập mật khẩu cũMật khẩu mớiTextInput Nhập mật khẩu mớiXác nhận mật khẩu mớiTextInput Nhập lại mật khẩu mớiLưu thay đổiButton Xác nhận thay đổiScreen ActionsAction NameDescriptionSuccessFailureLưu thay đổiUser nhấn vào “Lưu thay đổi” để thực hiện việc thay đổiThông báo đổi mật khẩu thành công, quay lại trang trướcThông báo lỗi nếu đổi mật khẩu thất bạiI.2.2.Xem thông tin địa điểm, dịch vụ Screen Xem chi tiết địa điểm, dịch vụDescriptionCho phép user xem thông tin chi tiết về một địa điểm hoặc một dịch vụ cụ thểScreen AccessUser nhấn vào một địa điểm hoặc dịch vụ ở danh sáchScreen ContentItemTypeDataDescriptionnametexttên địa điểm, dịch vụ addresstextđịa chỉ ratingnumberxếp hạng descriptiontextmô tả về địa điểm, dịch vụ imagesimage1 số hình ảnh của địa điểm, dịch vụ related blogbuttonblog liên quan tới địa điểmnhấn để xem blogScreen ActionsAction NameDescriptionSuccessFailurexem blogSau khi nhấn nút xem blog, user sẽ xem chi tiết blog đóchuyển trang tới trang chi tiết blogthông báo lỗi nếu không tìm thấy blogI.2.3.Tìm kiếm dịch vụ, địa điểm Screen Tìm kiếm địa điểm, dịch vụDescriptioncho phép user tìm kiếm địa điểm, dịch vụScreen Accessuser nhấn vào thanh tìm kiếm ở headerScreen ContentItemTypeDataDescriptionsearch barinputtên địa điểm, dịch vụinput để nhập nội dung cần tìmsearchbutton nhấn để tìm kiếm địa điểm, dịch vụfilterbutton nhấn để lọc khi tìm kiếm địa điểm, dịch vụScreen ActionsAction NameDescriptionSuccessFailuresearchsau khi nhấn nút search, danh sách kết quả sẽ hiện ra ở dropdownkết quả hiện ra ở dropdownhiện ra kết quả rỗng nếu không tìm thấy kết quả nàofiltersau khi nhấn nút filter, kết quả tìm kiếm sẽ được giới hạn lạikết quả tìm kiếm giới hạn lạihiện ra thông báo lỗi nếu filter không hợp lệI.2.4.Đánh giá dịch vụ, địa điểm Screen Đánh giá địa điểm, dịch vụDescriptionCho phép user đánh giá địa điểm, dịch vụScreen Accessuser nhấn vào nút đánh giá ở trang địa điểm, dịch vụScreen ContentItemTypeDataDescriptiontitletext tiêu đềratingnumberratingrating tương ứng với chất lượng cũng như sự hài lòng của user đối với địa điểm, dịch vụdescriptiontextmô tả về địa điểm, dịch vụlý do và nội dung của bài đánh giáratebutton nhấn để rateScreen ActionsAction NameDescriptionSuccessFailureratesau khi nhấn nút rate, user sẽ gửi đánh giá về địa điểm, dịch vụ để lưu vào hệ thốngthông báo thành công, trở về trang địa điểmthông báo lỗi khi không thể rateI.2.5.Yêu cầu cập nhật dịch vụ, địa điểmI.2.5.1.Cập nhật dịch vụ và địa điểm có sẵn ScreenYêu cầu cập nhật dịch vụ, địa điểmDescriptionCho phép user gửi đề nghị cập nhật lại địa điểm, dịch vụScreen accessUser xem địa điểm, dịch vụ sau đó click vào cập nhậtScreen ContentItemTypeDataDescriptionThuộc tính cần cập nhậtLabelString Mô tả thuộc tính cần cập nhậtĐịa điểmTextInput Địa chỉ của địa điểm, dịch vụ đóThời gian hoạt độngTextInput Thời gian hoạt động của địa điểm, dịch vụ đóƯu đãiTextInput Ưu đãi của địa điểm, dịch vụ đóHình ảnhButton Hình ảnh của địa điểm, dịch vụ đóNội dung cập nhậtTextField Mô tả chi tiết thông tin hơn về nội dung cập nhậtGửiButton Gửi yêu cầuScreen ActionsAction NameDescriptionSuccessFailureGửiUser click vào để thực hiện việc gửi yêu cầuThông báo gửi yêu cầu thành côngTải lại trang, thông báo lỗiI.2.5.2.Thêm mới dịch vụ và địa điểm ScreenYêu cầu thêm mới địa điểm dịch vụDescriptionCho phép user gửi đề nghị thêm vào địa điểm, dịch vụScreen accessUser click vào menu yêu cầu thêm mới địa điểm,dịch vụScreen ContentItemTypeDataDescriptionTên gọiTextInput Tên địa điểm, dịch vụĐịa chỉTextInput Địa chỉ của địa điểm, dịch vụ đóLoại hình dịch vụCombobox Chọn loại hình ví dụ như cafe, nhà hàng...Giờ hoạt độngTextInput Giờ hoạt độngGiá cả trung bìnhTextInput Giá cả trung bình của địa điểm, dịch vụ đóMô tảTextInput Mô tả chi tiết thông tin hơn về địa điểm đóHình ảnhButton Upload ảnh về địa điểm nếu cóSubmitButton Submit yêu cầuScreen ActionsAction NameDescriptionSuccessFailureLoại hình dịch vụUser click vào để thực hiện chọn loại hình ví dụ như cafe, nhà hàng... Hình ảnhUser click vào để upload ảnh về địa điểm nếu có SubmitUser click vào để thực hiện việc submit yêu cầuQuay lại trang chủ, thông báo thành côngTải lại trang, thông báo lỗiI.2.6.Báo cáo dịch vụ, địa điểm ScreenXem chi tiết bài viếtDescriptionCho phép user báo cáo bài viếtScreen accessUser click vào thumbnail bài viết ở trang trướcScreen ContentItemTypeDataDescription. . .Icon Chọn yêu cầu đối với bài viếtBáo cáo bài viếtIcon Chọn để báo cáo bài viếtVui lòng chọn vấn đề báo cáoLabelString Hiển thị window report bài viếtLý do 1Icon Lý do report 1Lý do 2Icon Lý do report 2Lý do 3Icon Lý do report 3Lý do 4Icon Lý do report 4Lý do 5Icon Lý do report 5GửiButton Gửi lý do reportScreen ActionsAction NameDescriptionSuccessFailureChọn lý doUser click vào để chọn các lý do 1,2,3,4,5 để báo cáo GửiUser click vào để gửi các lý do vừa chọnThông báo gửi thành côngTải lại trang, thông báo gửi thất bạiI.2.7.Xem blogI.2.7.1.Xem nội dung blog ScreenXem các bài viếtDescriptionCho phép user xem các bài viết đánh giáScreen accessUser click vào menu bài viếtScreen ContentItemTypeDataDescriptionThumbnailImage Thumbnail của các bài viết1Number Trang 12Number Trang 23Number Trang 3NextButton Tiến 1 trangPreviousButton Lùi 1 trangScreen ActionsAction NameDescriptionSuccessFailureNextUser click vào để tiến 1 trangTiến 1 trangTải lại trangPreviousUser click vào để lùi 1 trangLùi 1 trangTải lại trangClick vào thumbnailUser click vào để xem chi tiết bài viếtHiển thị chi tiết bài viếtTải lại trang, thông báo lỗi ScreenXem chi tiết bài viếtDescriptionCho phép user xem chi tiết bài viếtScreen accessUser click vào thumbnail bài viết ở trang trướcScreen ContentItemTypeDataDescriptionImageImage Ảnh chụp về các địa điểm,dịch vụTiêu đềText Tiêu đề bài viếtNội dungText Nội dung chi tiết bài viếtScreen ActionsAction NameDescriptionSuccessFailure I.2.8.Viết blog ScreenViết bàiDescriptionCho phép user viết bài cảm nhận hay đánh giá về một địa điểm, dịch vụScreen accessUser click vào menu bài viết chọn tạo mớiScreen ContentItemTypeDataDescriptionTiêu đềTextInput Tiêu đề bài viếtGiới thiệuTextField Giới thiệu bài viếtNội dungTextField Nội dung bài viếtHình ảnhButton Upload các hình ảnh cho bài viếtGửiButton Submit bài viếtScreen ActionsAction NameDescriptionSuccessFailureGửiUser click vào để submit bài viếtThông báo gửi thành côngTải lại trang, thông báo gửi thất bạiI.2.9.Đánh giá (bình luận) blog ScreenXem chi tiết bài viếtDescriptionCho phép user xem chi tiết bài viết và bình luận về bài viếtScreen accessUser click vào thumbnail bài viết ở trang trướcScreen ContentItemTypeDataDescriptionBình luậnTextField Hiển thị các bình luận về bài viếtNội dung bình luậnTextInput Nhập nội dung bình luậnĐăngButton Đăng bình luậnScreen ActionsAction NameDescriptionSuccessFailureĐăngUser click vào để đăng bình luậnHiển thị bình luận vừa mới đăng lên phái trênTải lại trang, thông báo lỗiI.2.10.Báo cáo blog ScreenXem chi tiết bài viếtDescriptionCho phép user báo cáo bài viếtScreen accessUser click vào thumbnail bài viết ở trang trướcScreen ContentItemTypeDataDescription. . .Icon Chọn yêu cầu đối với bài viếtBáo cáo bài viếtIcon Chọn để báo cáo bài viếtVui lòng chọn vấn đề báo cáoLabelString Hiển thị window report bài viếtLý do 1Icon Lý do report 1Lý do 2Icon Lý do report 2Lý do 3Icon Lý do report 3Lý do 4Icon Lý do report 4Lý do 5Icon Lý do report 5GửiButton Gửi lý do reportScreen ActionsAction NameDescriptionSuccessFailureChọn lý doUser click vào để chọn các lý do 1,2,3,4,5 để báo cáo GửiUser click vào để gửi các lý do vừa chọnThông báo gửi thành côngTải lại trang, thông báo gửi thất bạiI.2.11.Phê duyệt yêu cầu tạo mới và cập nhật dịch vụ, địa điểm sẵn có ScreenQuản lý các request từ người dùngDescriptionCho phép xác nhận các requestScreen accessAdmin chọn Quản lý request ở thanh menu bên tráiScreen ContentItemTypeDataDescriptionDanh sách requestTableDanh sách các requestBảng chứa danh sách các requestId requestLabel – Stringid của requestCác ô mã id của requestId userLabel – StringId của người requestCác ô mã id của người gửi requestTrạng tháiLabel – StringTrạng thái của requestLoại requestLabel – StringLoại của requestPhân loại ra các requestid serviceLabel – String Id của dịch vụMã id của dịch vụThời gianLabel – StringThời gian tạo request Có thể xem thời gian requestXác nhậnButtonChấp nhận request Có thể chấp nhận requestSubmitTìm kiếmButton Có thể nhấn để hiển thị kết quả tìm kiếmI.2.12.Xử lý báo cáo về dịch vụ, địa điểm ScreenQuản lý các report từ người dùngDescriptionCho phép xác nhận xử lý các reportScreen accessAdmin chọn Quản lý report thanh menu bên tráiScreen ContentItemTypeDataDescriptionDanh sách reportTableDanh sách các reportBảng chứa danh sách các reportId reportLabel – Stringid của reportCác ô mã id của reportId userLabel – StringId của người reportCác ô mã id của người gửi reportTrạng tháiLabel – StringTrạng thái của reportLoại requestLabel – StringLoại của requestPhân loại ra các requestid serviceLabel – String Id của dịch vụMã id của dịch vụThời gianLabel – StringThời gian tạo request Có thể xem thời gian reportXác nhậnButtonCó thể chấp nhận reportI.2.13.Xem thông tin và phân quyền Screen Danh sách các tài khoản user (user và mod)DescriptionCho phép admin có thể xem chi tiết thông tin, cấp quyền hoặc chặn userScreen AccessAdmin chọn Quản lý user hoặc Quản lý moderator ở thanh menu bên tráiScreen ContentItemTypeDataDescriptionDanh sách userTableDanh sách các userBảng chứa danh sách các userTênLabel – StringHọ và tên userCác ô chứa họ và tên userEmailLabel – StringEmail của userCác ô chứa emailSố điện thoạiLabel – StringSố điện thoại userCác ô chứa số điện thoạiNgày tạoLabel – StringNgày tạo tài khoảnChứa ngày tạo tài khoảnPhân quyềnSelect User ModeratorCấp quyền cho userTùy chỉnhLink Có thể nhấn để xem chi tiết tài khoảnTìm kiếmTextbox String Có thể nhập tên hoặc email để tìm kiếm thông tin userSubmitTìm kiếmButton Có thể nhấn để hiển thị kết quả tìm kiếmScreen ActionsAction NameDescriptionSuccessFailureXem chi tiết danh sách thông tin userSau khi nhấn vào mục Quản lý user hoặc Quản lý moderator, sẽ gửi request lên server để lấy dữ liệu sau đó render ra danh sách thông tin chi tiết các user.Hiển thị danh sách tất cả các thông tin user nếu không có user nào thì để trống.Request lên server bị lỗi hoặc dữ liệu server trả về bị lỗi sẽ hiển thị ra “Không có user nào”Cấp quyền cho userMặc định khi user đăng ký tài khoản thì tài khoản sẽ là tài khoản khách(user). Khi Admin select để cấp quyền cho user, Nếu chọn quyền moderator thi tài khoản đó sẽ có các quyền của Moderator. Và tài khoản sẽ bị xoá khỏi danh sách user, di chuyển sang danh sách moderator.Chuyển sang trang danh sách các moderator. Và có tất cả quyền của moderator.Vẫn select được nhưng tài khoản vẫn ở tại danh sách user và chưa có quyền nào.Xem chi tiết thông tin từng tài khoảnKhi Admin nhấn vào xem chi tiết sẽ di chuyển sang trang mới hiển thị ra chi tiết thông tin của user, xem chi tiết các bài đăng của user, các request, các report,...Sẽ di chuyển đến trang mới hiển thị ra thông tin userNhấn vào xem chi tiết vị vô hiệu.Tìm kiếm thông tin userKhi gõ vào ô tìm kiếm. và nhấn vào nút Tìm kiếm. Admin có thể tìm kiếm thông tin user một cách nhanh chóng bằng cách tìm kiếm theo Tên hoặc email userHiển thị ra danh sách thông tin user cần tìm kiếmkết quả trả về từ server thất bại nhấn vào nút tìm kiếm không có kết quả.Thay đổi trạng thái của userMặc định trạng thái sẽ là Vô hiệu hóa.Khi nhấn vào nút vô hiệu hóa thì trạng thái vô hiệu hóa sẽ được kích hoạt tài khoản của user bị block khỏi hệ thống, user sẽ bị đăng xuất khi đang ở trạng thái đăng nhập và sẽ không thể đăng nhập cho đến khi được mở và hiện thông báo “tài khoản của bạn đã bị khóa”.Nếu user đang ở trạng thái bị Vô hiệu hóa, Admin có thể nhấn Hoạt động để tài khoản user hoạt động trở lại.Tài khoản user bị vô hiệu hóa không thể đăng nhập. Hoặc trở lại hoạt động bình thường.Không thể chuyển trạng thái, không bị vô hiệu hóa hoặc hoạt động.I.3.YÊU CẦU PHI CHỨC NĂNGI.3.1.Hiệu suấtSTTYêu cầu1Cho phép nhiều tài khoản truy cập vào hệ thống cùng một lúc (scale tự động dựa trên dịch vụ của Google Cloud)2Người dùng có thể truy cập đến website thông qua internet2Yêu cầu về thời gian chờ kết quả: hiển thị nhanh 1 trang web (thời gian tải 1 trang chậm nhất là 3s nếu đường truyền internet ổn định)3Tài nguyên sử dụng: Tiết kiệm tài nguyên,đảm bảo sử dụng hợp lý bộ nhớ4Yêu cầu linh động: Thao tác với phần mềm đơn giản,không quá phức tạpI.3.2.Tương thíchSTTYêu cầu1Chạy trên được nhiều trình duyệt (Google Chrome, Safari, Firefox, Cốc cốc, Opera)I.3.3.Tính ứng dụngSTTYêu cầu1Phù hợp với nhu cầu tìm kiếm dịch vụ du lịch của người dân du lịch2Nội dung bằng tiếng Anh nên phù hợp với người nước ngoài3Giao diện đơn giản + đẹp mắt với người sử dụngI.3.4.Tính tin cậySTTYêu cầu1Bảo trì định kỳ (trung bình 1 tuần 1 lần)2Nhiều chức năng đáp ứng 3Khả năng phục hồi sao lưu dữ liệuI.3.5.An toàn thông tinSTTYêu cầu1Bảo mật thông tin tốt2Toàn vẹn dữ liệu khi có sự cố xảy ra (mất nguồn điện)3Chức năng xác thực (các thay đổi dữ liệu đều được quản trị viên xác thực)II.THIẾT KẾII.1.Sơ đồ lớp II.2.Cơ sở dữ liệuII.2.1.Sơ đồ cơ sở dữ liệu II.2.2.Cấu trúc bảngII.2.2.1.Bảng UserBảng UserTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã thông tin người dùngInteger11Khóa chínhusernameTên đăng nhậpVarchar255Độc nhấtpasswordMật khẩuVarchar255Mã hóa BcryptemailEmailVarchar255fullnameHọ tên đầy đủVarchar255 tokenMã định danh người gọi APIVarchar 255 role_idMã phân quyềnInteger 11Khóa ngoạiII.2.2.2.Bảng RoleBảng RoleTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã phân quyềnInteger11Khóa chínhrole_nameTên quyềnVarchar255II.2.2.3.Bảng ServiceBảng ServiceTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã thông tin người dùngInteger11Khóa chínhnameTên dịch vụVarchar255street_addressĐịa chỉ đườngVarchar255extended_addressĐịa chỉ mở rộngVarchar255mobileSố điện thoạiVarchar255view_statusTrạng thái hiển thịVarchar255total_ratingTổng số lượt đánh giáIntegeravg_ratingĐiểm đánh giá trung bìnhRealcategory_idMã loại dịch vụInteger11Khoá ngoạiauthor_idMã người tạoInteger11Khoá ngoạiII.2.2.4.Bảng Service_CategoryBảng Service_CategoryTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã loại dịch vụInteger11Khóa chínhnameTên loại dịch vụVarchar255prop_table_nameTên bảng thuộc tínhVarchar255II.2.2.5.Bảng Service_HotelBảng Service_HotelTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã khách sạnInteger11Khóa chínhproperty_amenitiesDanh sách tiện nghi chỗ ở Varchar255priceGiá một đêmVarchar255service_idMã dịch vụInteger11Khoá ngoạiII.2.2.6.Bảng Service_RestaurantBảng Service_RestaurantTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã nhà hàngInteger11Khóa chínhfood_categoryDanh sách loại thức ăn được phục vụ tại nhà hàngVarchar255special_dietChế độ ăn đặc biệt được phục vụ tại nhà hàngVarchar255mealBữa ăn nhà hàng phục vụVarchar255service_idMã dịch vụInteger11Khoá ngoạiII.2.2.7.Bảng Service_AttractionBảng Service_AttractionTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã địa điểm du lịchInteger11Khóa chínhnoteChú thích về địa điểmVarchar255service_idMã dịch vụInteger11Khoá ngoạiII.2.2.8.Bảng Service_TransportationBảng Service_TransportationTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã phương tiện di chuyểnInteger11Khóa chínhwebsiteĐường dẫn liên kết đến website của dịch vụ vận chuyển Varchar255appĐường dẫn liên kết đến ứng dụng của dịch vụ vận chuyểnVarchar255service_idMã dịch vụInteger11Khoá ngoạiII.2.2.9.Bảng Service_ReviewBảng Service_ReviewTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã đánh giá dịch vụInteger11Khóa chínhtimeThời gian đánh giá dịch vụTimestampratingĐánh giá dịch vụVarchar255(15)commentBình luận về dịch vụVarchar255service_idMã dịch vụInteger11Khoá ngoạiauthor_idMã tác giảInteger11Khoá ngoạiII.2.2.10.Bảng Service_Related_KeysBảng Service_Related_KeysTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã bảng quan hệInteger11Khóa chínhkeyTừ khóa liên quan đến dịch vụTextservice_idMã dịch vụInteger11Khoá ngoạiII.2.2.11.Bảng Service_ImageBảng Service_ImageTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã đánh giá dịch vụInteger11Khóa chínhsrcDãy nhị phân biểu diễn hình ảnhblobservice_idMã dịch vụInteger11Khoá ngoạiauthor_idMã tác giảInteger11Khoá ngoạiII.2.2.12.Bảng Service_ReportBảng Service_ReportTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã đánh giá dịch vụInteger11Khóa chínhtimeThời gian tạo báo cáoTimestampreasonLý do báo cáoVarchar255statusTrạng thái xử lý báo cáoVarchar255service_idMã dịch vụInteger11Khoá ngoạiauthor_idMã tác giảInteger11Khoá ngoạimoderator_idMã quản trị viênInteger11Khoá ngoạiII.2.2.13.Bảng Service_RequestBảng Service_RequestTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã đánh giá dịch vụInteger11Khóa chínhtimeThời gian tạo yêu cầu cập nhậtTimestampstatusTrạng thái của yêu cầu cập nhậtVarchar255service_old_idMã dịch vụ liên kết đến dịch vụ đã tồn tại trong trường hợp cập nhật thông tin của dịch vụ đã cóInteger11Khoá ngoại(Nếu thêm dịch vụ mới thì bằng NULL)service_new_idMã dịch vụ liên kết đến dịch vụ mới trong trường hợp cập nhật và thêm mới.Integer11Khoá ngoạiauthor_idMã tác giảInteger11Khoá ngoạimoderator_idMã quản trị viênInteger11Khoá ngoạiII.2.2.14.Bảng Contact_FormBảng Contact_FormTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã form liên hệInteger11Khóa chínhtimeThời gian tạo form liên hệTimestampcontentNội dung liên hệVarchar255emailEmail người liên hệVarchar255nameTên người liên hệVarchar255II.2.2.15.Bảng BlogBảng BlogTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã blogInteger11Khóa chínhtitleTiêu đề của blogVarchar255overviewMô tả ngắn về blogVarchar255contentNội dung blogtexttimeThời gian tạo blogTimestampthumbnailHình ảnh đại diện của blogVarchar255author_idMã tác giảInteger11Khoá ngoạiII.2.2.16.Bảng Blog_FeedbackBảng Blog_FeedbackTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã blogInteger11Khóa chínhtimeThời gian tạo phản hồi TimestampcommentNội dung bình luậnVarchar255author_idMã tác giảInteger11Khoá ngoạiblog_idMã blogInteger11Khoá ngoạiII.2.2.17.Bảng Blog_ReportBảng Blog_ReportTên cộtGiải thíchKiểu dữ liệuMaxlengthGhi chúidMã báo cáo blogInteger11Khóa chínhtimeThời gian báo cáo blogTimestampreasonLý do báo cáoVarchar255statusTình trạng xử lý báo cáoVarchar255author_idMã người báo cáoInteger11Khoá ngoạiblog_idMã blogInteger11Khoá ngoạimoderator_id Mã quản trị viên xử lý báo cáoInteger11Khoá ngoạiIII.CÀI ĐẶTFrontend: HTML, CSS, JavaScript, JQuery, Bootstrap, React JSBackend: NodeJS, Express.jsDatabase: PostgreSQLServer: Google CloudIV.KIỂM THỬNoModule codePassFailUntestedNANumber of test cases1Đăng nhập700072Đăng ký11000113Đăng xuất100014Xem thông tin cá nhân500055Cập nhật thông tin cá nhân300036Tìm kiếm thông tin dịch vụ, địa điểm16000167Xem thông tin dịch vụ, địa điểm48000488Đánh giá dịch vụ, địa điểm12000129Cập nhật thông tin dịch vụ, địa điểm đã có trên hệ thống540005410Thêm thông tin dịch vụ, địa điểm mới540005411Xem blog130001312Viết blog mới4000413Báo cáo blog3000314Quản lý người dùng141415Hiển thị chi tiết service(admin)282816Hiển thị chi tiết blog (admin)3317Phê duyệt yêu cầu cập nhật dịch vụ, địa điểm sẵn có110001118Phê duyệt yêu cầu thêm dịch vụ, địa điểm mới110001119Xử lý báo cáo về dịch vụ, địa điểm111120Xử lý báo cáo về blog2221Xử lý phân trang cho service4444822Xử lý phân trang cho review1021223Xử lý phân trang cho blog10210Sub total373080381Test coverage97,90%Test successful coverage97,90%CHƯƠNG 3: KẾT QUẢ TRIỂN KHAI HỆ THỐNGI.XÁC THỰC NGƯỜI DÙNGI.1.Đăng nhập I.2.Xem thông tin cá nhân II.DỊCH VỤ, ĐỊA ĐIỂMII.1.Tìm kiếm dịch vụ, địa điểm II.2.Xem thông tin dịch vụ, địa điểm II.3.Đánh giá dịch vụ, địa điểm II.4.Yêu cầu cập nhật dịch vụ, địa điểmII.4.1.Cập nhật thông tin dịch vụ, địa điểm sẵn có II.4.2.Thêm dịch, địa điểm mới III.BLOGIII.1.Xem blog III.2.Báo cáo blog III.3.Viết blog mới IV.QUẢN LÝ NGƯỜI DÙNG V.PHÊ DUYỆT YÊU CẦUBÁO CÁOV.1.Phê duyệt yêu cầu cập nhậtthêm dịch vụ, địa điểm V.2.Xử lý báo cáo về dịch vụ, địa điểm CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂNI.THUẬN LỢI VÀ KHÓ KHĂNI.1.Thuận lợiCác thành viên đều nắm khá rõ quy trình phát triển phần mềmCó nhiều công cụ và thư viện hỗ trợ cho việc quản lý công việc, xây dựng các chức năng và deploy sản phẩm.Các thành viên đều có kiến thức chuyên môn vững vàng, tinh thần trách nhiệm tốt và luôn hoàn thành công việc.I.2.Khó khănChưa được tiếp xúc với môi trường thực tế nên hệ thống có thể chưa đáp ứng được tất cả các yêu cầu phù hợp thực tế.Nghiệp vụ của hệ thống khá phức tạp, đặc biệt là trong việc tối ưu hóa các chức năng.II.THÀNH QUẢ ĐẠT ĐƯỢCChất lượng sản phẩm đáp ứng được yêu cầu đề raDeploy thành công sản phẩm.Thực hiện đầy đủ quy trình phát triển phần mềmNâng cao kỹ năng làm việc nhómIII.HƯỚNG PHÁT TRIỂNĐưa sản phẩm đến người dùng.Liên tục nhận các đánh giá và phản hồi từ người dùng để hoàn thiện sản phẩm ngày càng tốt hơn.Quản lý và bảo dưỡng sản phẩm thường xuyên.
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
-BÁO CÁO ĐỒ ÁN CÔNG NGHỆ PHẦN MỀM
ĐỀ TÀI
Xây dựng Website hỗ trợ việc tìm kiếm địa điểm vui chơi, du lịch và
chia sẻ trải nghiệm du lịch tại thành phố Đà Nẵng
TS Lê Thị Mỹ Hạnh
Nhóm: 16Nh14
Nguyễn Hữu Hoàng Hưng
Nguyễn Trần Hậu
Trang 3Đánh giá (bình luận) blog 30
Phê duyệt yêu cầu tạo mới và cập nhật dịch vụ, địa điểm sẵn có 33
Xử lý báo cáo về dịch vụ, địa điểm 34Xem thông tin và phân quyền 35
Trang 4CHƯƠNG 3: KẾT QUẢ TRIỂN KHAI HỆ THỐNG 53
PHÊ DUYỆT YÊU CẦU/BÁO CÁO 62Phê duyệt yêu cầu cập nhật/thêm dịch vụ, địa điểm 62
Xử lý báo cáo về dịch vụ, địa điểm 62
Trang 5LỜI NÓI ĐẦU
Đồ án chuyên ngành công nghệ phần mềm là đồ án quan trọng của sinh viên chuyênngành công nghệ phần mềm Sau khi được học các môn học về phần mềm như côngnghệ phần mềm, phân tích và thiết kế hướng đối tượng thì có thể nói đây là phần quantrọng để sinh viên hiểu rõ hơn về thế nào là một dự án phần mềm
Đồ án này là một cột mốc mà các kỹ năng và khả năng lập trình của sinh viênlại lên một bước mới vì những mảng kiến thức đã xuất hiện trong các môn học, sinhviên sẽ áp dụng vào dự án này
Và nhóm em xin tỏ lòng cảm ơn tới cô Lê Thị Mỹ Hạnh – giảng viên khoaCông nghệ thông tin, Trường Đại học Bách Khoa, Đại học Đà Nẵng đã trực tiếphướng dẫn em hoàn thành đề tài này
Trong quá trình làm khó có thể tránh khỏi các thiếu sót, kính mong nhận được ý
sự góp ý của quý thầy cô để đề tài trở nên hoàn thiện hơn
Nhóm em xin chân thành cảm ơn!
Trang 6PHÂN CÔNG CÔNG VIỆC
1 Nguyễn Hữu Hoàng
Hưng
- Phân tích và thiết kế database
- Phân tích và thiết kế toàn hệ thống
- Crawl dữ liệu
- Viết báo cáo
- Kiểm tra tiến độ từng thành viên trong nhóm
2 Đoàn Văn Khánh
- Phân tích và thiết kế database
- Phân tích và thiết kế hệ thống API cho hệ thống
- Review phần Backend cho toàn hệ thống
- Deploy website và quản lý cloud server
3 Nguyễn Trần Hậu
- Phân tích và thiết kế hệ thống API cho hệ thống
- Phân tích và thiết kế sơ đồ lớp cho hệ thống
- Coding phần Backend cho toàn hệ thống
- Review phần frontend của trang admin
4 Nguyễn Phước Phi
- Phân tích và thiết kế UX/UI cho trang blog, service
và quản lý
- Coding phần frontend cho blog
- Review phần frontend cho service
- Thiết kế testcase cho trang service
5 Lê Trần Hồng Phúc
- Phân tích và thiết kế UX/UI cho trang blog, service
- Coding phần frontend cho service
- Review phần frontend cho blog
- Thiết kế testcase cho trang blog
6 Võ Xuân Hùng
- Phân tích và thiết kế UX/UI cho trang quản lý
- Coding phần frontend cho admin
- Thiết kế testcase cho trang admin
Trang 7CHƯƠNG 1: GIỚI THIỆU HỆ THỐNG
- Mục đích của hệ thống là hỗ trợ người dùng có thể tìm kiếm các trải nghiệm
về du lịch Đà Nẵng bao gồm địa điểm ăn uống, vui chơi và giải trí tại thànhphố Đà Nẵng
- Hệ thống hỗ trợ và cho phép người dùng tìm kiếm và đánh giá các địa điểm,dịch vụ đã có sẵn trên hệ thống cũng như đóng góp các địa điểm, dịch vụmới vào hệ thống
- Hệ thống cũng cho phép người dùng có thể đăng tải các bài viết về trảinghiệm du lịch của mình để chia sẻ với cộng đồng
- Hệ thống website gợi ý trải nghiệm, địa điểm vui chơi, du lịch tại thành phố
Đà Nẵng chạy trên nền web giúp việc tìm kiếm các địa điểm ăn uống, vuichơi, giải trí được tiến hành một cách nhanh chóng và tiện lợi Hệ thống rađời nhằm đáp ứng nhu cầu du lịch tại thành phố Đà Nẵng ngày càng tăngcao, nhằm giúp khách du lịch và người dân địa phương có thể dễ dàng lựachọn được những dịch vụ phù hợp
- Hệ thống phục vụ cho 3 đối tượng user chính:
Người du lịch (traveler)Người điều hành (moderator)Quản trị viên (admin)
- Website cho phép người dùng tìm kiếm các dịch vụ và địa điểm theo từkhoá (tên quán, địa chỉ, số điện thoại, mô tả) hoặc theo loại (nhà hàng, quán
cà phê, chỗ lưu trú, phương tiện di chuyển) Bên cạnh đó, người dùng có thểđánh giá phản hồi các dịch vụ hoặc địa điểm có trên hệ thống Ngoài ra thì
hệ thống còn cho phép người dùng cập nhật các thông tin liên quan đến dịch
vụ hoặc địa điểm (thêm địa điểm mới chưa có trên hệ thống, sửa các thôngtin về dịch vụ đã có trên hệ thống) dưới sự quản lý của admin và moderator.Cuối cùng, hệ thống cho phép user chia sẻ và khám phá các trải nghiệm ĐàNẵng dưới nhiều góc nhìn khác nhau thông qua các bài blog
Trang 8- Có quyền viết blog để chia sẻ trải nghiệm.
- Có quyền báo cáo các dịch vụ, điểm điểm và các bài viết blog không phù hợp
Người trung gian
(Moderator)
- Có quyền đăng nhập, chỉnh sửa, xem chi tiết thông tin cá nhân
- Có các quyền tương tự như user
- Có quyền phê duyệt các đề nghị cập nhật và thêm mới của user
- Có quyền xử lý các báo cáo từ user (xoá, chặn)
Quản trị viên
(Admin)
- Có các quyền tương tự như Moderator
- Có quyền phân quyền cho user và Moderator
- Có quyền chặn (block) user, Moderator
I.1.2 Sơ đồ ca sử dụng
Trang 9I.1.2.2 Chức năng xác thực người dùng
Trang 10I.1.2.4 Chức năng đánh giá dịch vụ/ địa điểm
Trang 11I.1.2.7 Chức năng quản lý dịch vụ
Trang 12I.2 MÔ TẢ CHỨC NĂNG
I.2.1 Xác thực người dùng
Description Cho phép user đăng nhập bằng username
Screen Access User nhấn vào login ở header
Screen Content Item Type Data Description
username input username trường input để nhập username của user password input password trường input để nhập password của user
Trang 13Screen Actions Action Name Description Success Failure
đăng nhập sau khi bấm nút
login, user có thể đăng nhập vào tài khoản của mình
chuyển trang về trang user
thông báo lỗi nếu đăng nhập không thành công (username/password sai)
Description Cho phép user đăng ký tài khoản
Screen Access User nhấn vào nút Sign up ở màn hình login
Screen Content Item Type Data Description
Sign up label tiêu đề
username input username trường input để nhập username của user password input password trường input để nhập password của user
Trang 14email input email trường input để nhập email của user full name input full name trường input để nhập full name của user
Screen Actions Action Name Description Success Failure
sign up Sau khi nhấn
nút sign up, thông tin tài khoản của user sẽ được lưu vào hệ thống và user
có thể bắt đầu login sử dụng tài khoản.
thông báo sign up thành công, chuyển trang về màn hình đăng nhập
thông báo lỗi nếu đăng ký không thành công (username trùng, email trùng, dữ liệu của các input không hợp lệ)
Screen Đăng xuất
Description Cho phép user đăng xuất khỏi tài khoản
Screen Access user nhấn vào biểu tượng user trên header và chọn logout
Screen Content
Trang 15Item Type Data Description
Screen Actions Action Name Description Success Failure
logout sau khi nhấn
nút logout, hệ thống sẽ hủy bỏ session hiện tại của user
chuyển trang về trang chủ
thông báo lỗi nếu logout không thành
công
Screen Xem chi tiết thông tin cá nhân
Description Cho phép user xem chi tiết thông tin cá nhân của mình và số lượng bài viết đã đăng
Screen access Sau khi đăng nhập user chọn vào menu thông tin cá nhân để truy cập
Screen Content Item Type Data Description
Tên Label-String Hiển thị tên của user
Ngày sinh Label-Date Hiển thị ngày sinh của user
Sdt Label-Number Hiển thị số điện thoại của user
Email Label-String Hiển thị email của user
Facebook Label-String Hiển thị facebook của user
Trang 16Instagram Label-String Hiển thị instagram của user
POST Label-String Hiển thị số lượng bài viết user đã viết
Image Image Thumbnail của các bài viết
Đổi mật khẩu Button Có chức năng đổi mật khẩu cho tài khoản của
user Chỉnh sửa Button Cập nhật lại các thông tin cá nhân trừ mật khẩu
Screen Actions Action Name Description Success Failure
Đổi mật khẩu User click vào nút
đổi mật khẩu để thực hiện đổi mật khẩu
Hiển thị ra form để đổi mật khẩu
Không hiện form đổi mật khẩu
Chỉnh sửa User click vào nút
chỉnh sửa để thực hiện cập nhật thông tin
Hiện ra form cập nhật thông tin
Không hiện form cập nhật thông tin
Screen Cập nhật thông tin cá nhân
Description Cho phép user cập nhật thông tin cá nhân
Screen access User click vào nút chỉnh sửa
Screen Content
Trang 17Item Type Data Description
Sdt TextInput Nhập số điện thoại mới
Facebook TextInput Nhập facebook mới
Instagram TextInput Nhập instagram mới
Lưu thay đổi Button Xác nhận thay đổi
Screen Actions Action Name Description Success Failure
Lưu thay đổi User nhấn vào
nút “Lưu thay đổi” để thực hiện việc thay đổi thông tin
Thông báo chỉnh sửa thành công, quay lại trang trước
Tải lại trang, thông báo lỗi nếu lưu không thành công (dữ liệu input không hợp lệ)
Screen Đổi mật khẩu
Description Cho phép user cập đổi mật khẩu
Screen access User click vào nút đổi mật khẩu
Screen Content
Trang 18Item Type Data Description
Mật khẩu cũ TextInput Nhập mật khẩu cũ
Mật khẩu mới TextInput Nhập mật khẩu mới
Xác nhận mật
khẩu mới
TextInput Nhập lại mật khẩu mới
Lưu thay đổi Button Xác nhận thay đổi
Screen Actions
Action Name Description Success Failure
Lưu thay đổi User nhấn vào
“Lưu thay đổi”
để thực hiện việc thay đổi
Thông báo đổi mật khẩu thành công, quay lại trang trước
Thông báo lỗi nếu đổi mật khẩu thất bại
I.2.2 Xem thông tin địa điểm, dịch vụ
Screen Xem chi tiết địa điểm, dịch vụ
Trang 19Description Cho phép user xem thông tin chi tiết về một địa điểm hoặc một dịch vụ cụ thể
Screen Access User nhấn vào một địa điểm hoặc dịch vụ ở danh sách
Screen Content Item Type Data Description
name text tên địa điểm,
dịch vụ address text địa chỉ
related blog button blog liên quan
tới địa điểm
nhấn để xem blog
Screen Actions Action Name Description Success Failure
xem blog Sau khi nhấn nút
xem blog, user sẽ xem chi tiết blog đó
chuyển trang tới trang chi tiết blog
thông báo lỗi nếu không tìm thấy blog
Trang 20I.2.3 Tìm kiếm dịch vụ, địa điểm
Description cho phép user tìm kiếm địa điểm, dịch vụ
Screen Access user nhấn vào thanh tìm kiếm ở header
Screen Content
search bar input tên địa
điểm, dịchvụ
input để nhập nội dung cần tìm
search button nhấn để tìm kiếm địa điểm, dịch vụ
filter button nhấn để lọc khi tìm kiếm địa điểm,
Trang 21search sau khi
nhấn nút search, danh sáchkết quả sẽhiện ra ở dropdown
kết quả hiện ra ở dropdown
hiện ra kết quả rỗng nếu không tìm thấy kết quả nào
filter sau khi
nhấn nút filter, kết quả tìm kiếm sẽ được giớihạn lại
kết quả tìm kiếm giới hạn lại
hiện ra thông báo lỗi nếu filter không hợp lệ
I.2.4 Đánh giá dịch vụ, địa điểm
Screen Đánh giá địa điểm, dịch vụ
Description Cho phép user đánh giá địa điểm, dịch vụ
Screen Access user nhấn vào nút đánh giá ở trang địa điểm, dịch vụ
Screen Content
Trang 22Item Type Data Description
rating number rating rating tương ứng với chất lượng cũng như
sự hài lòng của user đối với địa điểm,
dịch vụ
description text mô tả về
địa điểm, dịch vụ
lý do và nội dung của bài đánh giá
Screen Actions Action Name Description Success Failure
rate sau khi nhấn nút
rate, user sẽ gửi đánh giá về địa điểm, dịch vụ để lưu vào hệ thống
thông báo thành công, trở về trang địa điểm
thông báo lỗi khi không thể rate
I.2.5 Yêu cầu cập nhật dịch vụ, địa điểm
Screen Yêu cầu cập nhật dịch vụ, địa điểm
Description Cho phép user gửi đề nghị cập nhật lại địa điểm, dịch vụ
Trang 23Screen access User xem địa điểm, dịch vụ sau đó click vào cập nhật
Screen Content Item Type Data Description
Thuộc tính cần
cập nhật
Label-String Mô tả thuộc tính cần cập nhật
Địa điểm TextInput Địa chỉ của địa điểm, dịch vụ đó
Thời gian hoạt
động
TextInput Thời gian hoạt động của địa điểm, dịch vụ đó
Ưu đãi TextInput Ưu đãi của địa điểm, dịch vụ đó Hình ảnh Button Hình ảnh của địa điểm, dịch vụ đó
Gửi User click
vào để thực hiện việc gửi yêu cầu
Thông báo gửi yêu cầu thành công
Tải lại trang, thông báo lỗi
Trang 24Screen Yêu cầu thêm mới địa điểm dịch vụ
Description Cho phép user gửi đề nghị thêm vào địa điểm, dịch vụ
Screen access User click vào menu yêu cầu thêm mới địa điểm,dịch vụ
Screen Content Item Type Data Description
Tên gọi TextInput Tên địa điểm, dịch vụ
Địa chỉ TextInput Địa chỉ của địa điểm, dịch vụ đó Loại hình dịch vụ Combobox Chọn loại hình ví dụ như cafe, nhà hàng Giờ hoạt động TextInput Giờ hoạt động
Giá cả trung bình TextInput Giá cả trung bình của địa điểm, dịch vụ đó
Mô tả TextInput Mô tả chi tiết thông tin hơn về địa điểm đó Hình ảnh Button Upload ảnh về địa điểm nếu có
Screen Actions Action Name Description Success Failure
Trang 25Loại hình dịch vụ User click vào
để thực hiện chọn loại hình
ví dụ như cafe, nhà hàng
Hình ảnh User click vào
Quay lại trang chủ, thông báo thành công
Tải lại trang, thông báo lỗi
I.2.6 Báo cáo dịch vụ, địa điểm
Trang 26Screen Xem chi tiết bài viết
Description Cho phép user báo cáo bài viết
Screen access User click vào thumbnail bài viết ở trang trước
Screen Content Item Type Data Description
Icon Chọn yêu cầu đối với bài viết
Báo cáo bài viết Icon Chọn để báo cáo bài viết
Trang 27Screen Actions Action Name Description Success Failure
Chọn lý do User click
vào để chọn các lý do 1,2,3,4,5 để báo cáo
Gửi User click
vào để gửi các lý do vừa chọn
Thông báo gửi thành công
Tải lại trang, thông báo gửi thất bại
I.2.7 Xem blog
Screen Xem các bài viết
Description Cho phép user xem các bài viết đánh giá
Screen access User click vào menu bài viết
Screen Content Item Type Data Description
Thumbnail Image Thumbnail của các bài viết
Trang 28Next Button Tiến 1 trang
Screen Actions Action Name Description Success Failure
Next User click
vào để tiến 1 trang
Tiến 1 trang Tải lại trang
Previous User click
vào để lùi 1 trang
Lùi 1 trang Tải lại trang
Click vào thumbnail User click
vào để xem chi tiết bài viết
Hiển thị chi tiết bài viết
Tải lại trang, thông báo lỗi
Screen Xem chi tiết bài viết
Description Cho phép user xem chi tiết bài viết
Screen access User click vào thumbnail bài viết ở trang trước
Trang 29Screen Content Item Type Data Description
Image Image Ảnh chụp về các địa điểm,dịch vụ
Nội dung Text Nội dung chi tiết bài viết
Screen Actions Action Name Description Success Failure
I.2.8 Viết blog
Screen Viết bài
Description Cho phép user viết bài cảm nhận hay đánh giá về một địa điểm, dịch vụ
Screen access User click vào menu bài viết chọn tạo mới
Screen Content
Item Type Data Description
Tiêu đề TextInput Tiêu đề bài viết
Trang 30Giới thiệu TextField Giới thiệu bài viết
Nội dung TextField Nội dung bài viết
Hình ảnh Button Upload các hình ảnh cho bài viết
Screen Actions
Action Name Description Success Failure
Gửi User click
vào để submit bài viết
Thông báo gửi thành công
Tải lại trang, thông báo gửi thất bại
I.2.9 Đánh giá (bình luận) blog
Screen Xem chi tiết bài viết
Description Cho phép user xem chi tiết bài viết và bình luận về bài viết
Screen access User click vào thumbnail bài viết ở trang trước
Screen Content
Item Type Data Description
Bình luận TextField Hiển thị các bình luận về bài viết
Trang 31Nội dung bình
luận
TextInput Nhập nội dung bình luận
Screen Actions
Action Name Description Success Failure
Đăng User click vào
để đăng bình luận
Hiển thị bình luận vừa mới đăng lên phái trên
Tải lại trang, thông báo lỗi
I.2.10 Báo cáo blog
Trang 32Screen Xem chi tiết bài viết
Description Cho phép user báo cáo bài viết
Screen access User click vào thumbnail bài viết ở trang trước
Screen Content Item Type Data Description
Icon Chọn yêu cầu đối với bài viết
Báo cáo bài
Trang 33Screen Actions Action Name Description Success Failure
Chọn lý do User click vào
để chọn các lý
do 1,2,3,4,5 để báo cáo
Gửi User click vào
để gửi các lý
do vừa chọn
Thông báo gửi thành công
Tải lại trang, thông báo gửi thất bại
I.2.11 Phê duyệt yêu cầu tạo mới và cập nhật dịch vụ, địa điểm sẵn có
Screen Quản lý các request từ người dùng
Description Cho phép xác nhận các request
Screen access Admin chọn Quản lý request ở thanh menu bên trái
Screen Content Item Type Data Description
Danh sách
request
Table Danh sách
các request
Bảng chứa danh sách các request
Id request Label – String id của
Các ô mã id của người gửi request
Trạng thái Label – String Trạng thái