Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 111 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
111
Dung lượng
6,94 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ PHẦN MỀM XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ GVHD: ThS MAI TUẤN KHƠI SVTH: PHẠM THÁI VĨNH MSSV: 16110525 SVTH: PHÙNG ĐẠI HIỆP MSSV: 16110331 SKL 0 7 Tp Hồ Chí Minh, năm 2020 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CƠNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM - - PHẠM THÁI VĨNH : 16110525 PHÙNG ĐẠI HIỆP : 16110331 Đề tài: XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ KHĨA LUẬN TỐT NGHIỆP GIẢNG VIÊN HƯỚNG DẪN ThS MAI TUẤN KHƠI KHĨA 2016-2020 an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM - - PHẠM THÁI VĨNH : 16110525 PHÙNG ĐẠI HIỆP : 16110331 Đề tài: XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ KHĨA LUẬN TỐT NGHIỆP GIẢNG VIÊN HƯỚNG DẪN ThS MAI TUẤN KHƠI KHĨA 2016-2020 an ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CNTT Độc lập – Tự – Hạnh phúc ******* ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên 1: Phạm Thái Vĩnh MSSV 1: 16110525 Họ tên Sinh viên 2: Phùng Đại Hiệp MSSV 2: 16110331 Ngành: Công nghệ Thông tin Tên đề tài: XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ Họ tên Giáo viên hướng dẫn: ThS Mai Tuấn Khôi NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm an Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Tp Hồ Chí Minh, ngày…tháng…năm 2020 Giáo viên hướng dẫn (Ký & ghi rõ họ tên) an ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CNTT Độc lập – Tự – Hạnh phúc ******* ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên 1: Phạm Thái Vĩnh MSSV 1: 16110525 Họ tên Sinh viên 2: Phùng Đại Hiệp MSSV 2: 16110331 Ngành: Công nghệ Thông tin Tên đề tài: XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ Họ tên Giáo viên phản biện : ThS Nguyễn Minh Đạo NHẬN XÉT Về nội dung đề tài & khối lượng thực hiện: Ưu điểm: Khuyết điểm an Đề nghị cho bảo vệ hay không? Đánh giá loại: Điểm: Tp Hồ Chí Minh, ngày…tháng…năm 2020 Giáo viên phản biện (Ký & ghi rõ họ tên) an LỜI CÁM ƠN Trong trình nghiên cứu đề tài, giảng viên hỗ trợ, hướng dẫn sinh viên Với tất kính trọng, nhóm thực đề tài xin bày tỏ lòng biết ơn đến quý thầy cô theo dõi hướng dẫn suốt thời gian thực đề tài Đầu tiên, nhóm xin gửi lời cảm ơn sâu sắc đến Ban giám hiệu trường Đại học Sư phạm Kỹ Thuật Thành phố Hồ Chí Minh tạo điều kiện, môi trường học tập chất lượng, hiệu cho nhóm phát huy cách tốt nghiên cứu Đồng thời, nhóm xin gửi lời cảm ơn đến Ban Chủ nhiệm khoa Công nghệ Thông tin thầy cô khoa Công nghệ Thông tin - trường Đại học Sư phạm Kỹ thuật thành phố Hồ Chí Minh tạo môi trường học tập làm việc chuyên nghiệp, nhiệt tình giảng dạy nhóm thực đề tài nói riêng sinh viên khoa Cơng nghệ Thơng tin nói chung q trình học tập làm việc trường Đặc biệt, xin gửi lời cảm ơn chân thành đến thầy Mai Tuấn Khôi – giáo viên hướng dẫn Khóa luận tốt nghiệp – Khoa cơng nghệ thông tin – Đại học Sư phạm Kỹ thuật Tp Hồ Chí Minh, hướng dẫn, quan tâm, góp ý ln đồng đồng hành nhóm giai đoạn khó khăn đề tài Với kinh nghiệm thực tiễn cịn thiếu sót kinh nghiệm chun mơn cịn non yếu, báo cáo có thiếu sót hạn chế định Kính mong nhận phản hỏi, đóng góp ý kiến bảo thêm q thầy để nhóm đạt kiến thức hữu ích nhất, nâng cao ý thức để phục vụ cho kỹ sau Xin chân thành cảm ơn! an TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CNTT ****** ĐỀ CƯƠNG KHÓA LUẬN TỐT NGHIỆP Họ tên Sinh viên 1: Phạm Thái Vĩnh MSSV 1: 16110525 Họ tên Sinh viên 2: Phùng Đại Hiệp MSSV 2: 16110331 Thời gian làm khóa luận từ 30/03/2020 đến 14/08/2020 Ngành: Công nghệ thông tin Chuyên ngành: Công nghệ phần mềm Tên đề tài: XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ Họ tên Giáo viên hướng dẫn: ThS Mai Tuấn Khơi Nhiệm vụ thực : Tìm hiểu quy trình xây dựng ứng dụng tảng React Native Tìm hiểu MERN stack ( MongoDB, ExpressJs, ReactNative, NodeJs) ứng dụng vào đồ án Xây dựng ứng dụng tìm nhà trọ Đề cương viết khóa luận : MỤC LỤC Phần MỞ ĐẦU Tính cấp thiết đề tài Mục tiêu đề tài Kết cấu đề tài Phần NỘI DUNG Chương 1: Khảo sát trạng 1.1 Khảo sát số ứng dụng 1.2 Ứng dụng hướng đến Chương 2: Mơ hình hóa thiết kế sở liệu 2.1 Usecase Diagram an 2.2 Chi tiết actor 2.3 Sơ đồ luồng liệu sở liệu nghiệp vụ 2.4 Cơ sở liệu Chương 3: Thiết kế hình giao diện xử lý Chương 4: Lập trình 4.1 Stack lập trình 4.2 Cơ sở liệu MongoDB 4.3 Sơ đồ lớp 4.4 Mơ tả chi tiết lớp 4.5 Trích dẫn thuật toán hay Chương 5: Cài đặt kiểm thử 5.1 Kế hoạch kiểm thử 5.2 Quy trình kiểm thử Phần KẾT LUẬN Tài liệu tham khảo KẾ HOẠCH THỰC HIỆN STT Tuần Thời gian Nhiệm vụ (Công việc dự kiến) thực 1-3 30/03 - 21/04 22/04 – 29/04 - Khảo sát trạng - Thiết kế prototype - Thiết kế UseCase - Mô tả UseCase - Mơ hình hóa u cầu - Thiết kế CSDL - Thiết kế giao diện - Thiết kế xử lý - Tìm hiểu Mobile CrossPlatform ReactNative an Ghi cấu trúc linh hoạt nên MongoDB dùng để lưu trữ liệu có cấu trúc phức tạp đa dạng khơng cố định (hay cịn gọi Big Data) Ưu điểm : Ít Schema hơn: MongoDB sở liệu dựa Document, Collection giữ Document khác Số trường, nội dung kích cỡ Document khác với Document khác Cấu trúc đối tượng rõ ràng Khơng có join phức tạp Khả truy vấn sâu MongoDB hỗ trợ truy vấn động Document sử dụng ngôn ngữ truy vấn dựa Document mà mạnh mẽ SQL MongoDB dễ dàng để mở rộng Việc chuyển đổi/ánh xạ đối tượng ứng dụng đến đối tượng sở liệu không cần thiết Sử dụng nhớ nội để lưu giữ phần công việc, giúp truy cập liệu nhanh [9] 95 an 4.3 SƠ ĐỒ LỚP Hình - Sơ đồ lớp 96 an 4.4 MÔ TẢ CHI TIẾT TỪNG LỚP 4.4.1 Class User 4.4.1.1 Attributes Bảng - Bảng mô tả attributes class user STT Tên thuộc tính _id Username Password Fullname SDT AvatarUrl Kiểu liệu ObjectID String String String Number String TimTroSetting Object TimTroStatus Boolean GoogleAccount Object 10 FacebookAccount Object 11 Role Object Ý nghĩa Unique id cho User Username đăng nhập Password đăng nhập Fullname mà user muốn hiển thị app Số điện thoại user Đường dẫn ảnh user Một object chứa thông tin nhà trọ mà user muốn tìm Biến boolean cho biết user có muốn bật trạng thái tìm trọ khơng Object chứa thông tin user đăng nhập Googe Object chứa thông tin user đăng nhập Facebook Object chứa thông tin quyền user 4.4.1.2 Method Bảng - Bảng mô tả method class user STT Tên phương thức Kiểu liệu Registry Void RegistryWithFB Void RegistryWithGG Void Login Void LoginWithGG Void LoginWithFB Void UpdateTimTroSetti Boolean ng 97 an Ý nghĩa Đăng kí tài khoản thường Đăng kí tài khoản với Facebook Đăng kí tài khoản với Google Đăng nhập với tài khoản thường Đăng nhập với tài khoản Google Đăng nhập với tài khoản Facebook Update thuộc tính TimTroSetting 4.4.2 Class Post 4.4.2.1 Attributes Bảng - Bảng mô tả attributes class Post STT 10 11 12 13 14 Tên thuộc tính _id Title Address DaySubmit RoomPrice RoomArea RoomDeposi ElectricPrice WaterPrice ParkingPrice Gender WifiPrice Description Utilites Kiểu liệu ObjectID String String Date Number String Number Number Number Number String Number String Object 15 16 17 18 IsAprroved RoomImage Coordinates RoomMater Boolean Array Object User Ý nghĩa Unique id cho post Tiêu đề post Địa nhà trọ Ngày đăng Gía phịng Diện tích phịng Tiền đặt cọc Giá điện Giá nước Giá gửi xe Giới tính Giá Internet Mơ tả phịng trọ Object chứa thơng tin tiện ích phịng trọ có Bài viết có duyệt Admin hay chưa Array chứa ảnh phòng Tọa độ phòng User đăng 4.4.2.2 Method - Bảng mô tả method class Post STT Tên phương thức GetPost CreatePost GetPostWithID UpdatePost DeletePost GetPostForMainScreen Kiểu liệu Array Array Array Array Array Array GetPostForBaiDangScreen Array 98 an Ý nghĩa Lấy tất post từ csdl Tạo viết Lấy thông tin viết với ID Update viết Xóa viết Lấy viết từ csdl cho hình Lấy viết từ csdl cho hình đăng 4.4.3 Class Appointment 4.4.3.1 Attributes Bảng - Bảng mô tả attributes class Apointment STT Tên thuộc tính _id Kiểu liệu ObjectID Appionmentdate RoomMaster PeopleBooking PostID Date User User ObjectID Ý nghĩa Unique id hẹn Ngày hẹn User chủ phòng User đặt phòng Id phòng 4.4.3.2 Method Bảng - Bảng mô tả method class Apointment STT Tên phương thức CreateAppointment GetRoomMasterAppointment Kiểu liệu Void Array GetPeopleBookingAppointment Array 99 an Ý nghĩa Tạo hẹn Lấy hẹn user chủ phòng Lấy hẹn user đặt phịng 4.5 TRÍCH DẪN THUẬT TỐN HAY SỬ DỤNG TRONG PHẦN MỀM Mục đích thuật tốn : xác định điểm tọa độ 2D có nằm polygon hay không Code thực thi : Hình - Thuật tốn xác định tọa độ 100 an CHƯƠNG : KIỂM THỬ PHẦN MỀM 5.1 KẾ HOẠCH KIỂM THỬ Chiến lược kiểm tra : o Áp dụng mơ hình chữ V để kiểm tra phần mềm o Dùng Postman để test API tạo để đảm bảo tính xác trước liên kết với phần giao diện o Phần giao diện hồn thành dùng gọi trực tiếp API có phía back-end ( fake API chưa hoàn thành ) để kiểm tra xử lý vấn đề phát sinh o Tiến hành kiểm tra lại toàn ứng dụng bổ sung cập nhập chức o Việc kiểm thử dừng ứng dụng đáp ứng nhu cầu bên kiểm tra khơng có chức phát sinh Các kỹ thuật kiểm tra : o Kiểm tra chức : Chức : chức phải đảm bảo tính đắn thiết bị Giao diện : cho chạy ứng dụng thiết bị khác android ios, kiểm tra tổng quát giao diện ý tỉ lệ, icon, hình ảnh chất lượng hình ảnh Dữ liệu tích hợp liệu : liệu đầu vào phải kiểm tra phía back-end font-end Đối với liệu khơng phải kí tự lưu thư mục riêng quy trình cụ thể o Kiểm tra hiệu suất : Performance profiling : tối ưu hóa Load testing : tối ưu hóa Stress testing : tối ưu hóa Volume testing : tối ưu hóa o Kiểm tra bảo mật kiểm soát truy cập : 101 an Thông tin lưu trữ bảo mật mã hóa thơng tin nhạy cảm mật Dùng token để kiểm soát truy cập cho request Phân quyền rõ ràng truy cập Môi trường kiểm tra : Chia làm môi trường : dev staging o Môi trường dev : Kiểm tra API vừa hoàn thành để kiểm tra hiệu Dùng CDSL để kiểm tra chức nhạy cảm xóa, sửa o Mơi trường staging : Kiểm tra liệu đầu vào sai ứng dụng có phát sinh vấn đề ẩn chưa phát ngăn chặn không Kiểm tra phản hồi người sử dụng 5.2 QUY TRÌNH KIỂM THỬ Quy trình gồm bước : Bước : Lập kế hoạch kiểm soát việc kiểm thử Mục đích: Nhằm định mơ tả loại kiểm tra triển khai thực Được chia làm hoạt động: Thứ nhất: Lập kế hoạch kiểm thử: o Như kế hoạch kiểm thử nêu phần 4.8.1 Thứ hai: Kiểm soát kiểm thử: o Đo lường phân tích kết hoạt động kiểm thử o Theo dõi ghi lại tiến độ tiêu chí kết thúc kiểm thử o Cung cấp thông tin kiểm thử o Tiến hành hành động khắc phục cần thiết o Đưa định Bước : Phân tích Thiết kế 102 an Mục đích: Nhằm định test case bước kiểm tra chi tiết Hoạt động phân tích thiết kế kiểm thử có nhiệm vụ chủ yếu sau đây: o Rà soát yêu cầu cần thiết trước tiến hành kiểm thử tài liệu đặc tả, tài liệu thiết kế, tài liệu giao diện, v.v o Xác định điều kiện kiểm thử o Thiết kế test case o Đánh giá tính khả thi việc kiểm thử yêu cầu hệ thống o Chuẩn bị môi trường test xác định yêu cầu sở hạ tầng công cụ kiểm thử tương ứng Bước : Thực thi test Mục đích: Thực bước kiểm tra thiết kế ghi nhận kết Chia thành hoạt động là: thực test chạy test Thứ nhất: Việc thực test có nhiệm vụ chủ yếu sau đây: o Chuẩn bị test data o Thiết kế phân loại trường hợp kiểm thử dựa theo độ ưu tiên trường hợp kiểm thử o Tự động hóa cho trường hợp kiểm thử thấy cần thiết Thứ hai: Hoạt động chạy test có nhiệm vụ chủ yếu sau đây: o Chạy test case theo bước định trước o Chạy lại case bị failed trước để xác nhận case sửa o So sách kết ghi nhận thực thi với kết mong đợi o Đánh giá kết kiểm thử (Passed/Failed) cho trường hợp kiểm thử o Viết báo cáo lỗi cho trường hợp kết ghi nhận kết mong đợi không giống Bước : Đánh giá kết thực thi báo cáo kết Mục đích: Đánh giá tồn q trình kiểm tra bao gồm xem xét đánh giá kết kiểm tra lỗi, định u cầu thay đổi tính tốn số liệu liên quan, đến trình kiểm tra 103 an Các tiêu chí đánh giá kết thực thi bao gồm: o Số lượng test case tối đa thực thi Passed o Tỷ lệ lỗi giảm xuống mức định o Khi đến deadline Việc kiểm thử kết thúc khi: o Đối chiếu kết thực thi test case so với tiêu chí kết thúc kiểm thử định lúc lập kế hoạch kiểm thử o Từ đó, đánh giá xem liệu có cần phải test thêm hay điều chỉnh tiêu chí kết thúc kiểm thử kế hoạch o Viết báo cáo tóm tắt hoạt động kiểm thử kết kiểm thử cho bên liên quan Bước : Đóng hoạt động kiểm thử Mục đích: Kết thúc hoạt động kiểm thử phần mềm sẵn sàng giao cho khách hàng Lí : o Khi tất thơng tin thu thập đầy đủ cho hoạt động kiểm thử o Khi dự án bị hủy bỏ o Khi mục tiêu đạt o Khi hoạt động bao trì hay cập nhật hệ thống hồn tất Hoạt động đóng kiểm thử bao gồm: o Kiểm tra lại giao đầy đủ cho khách hàng phần cam kết từ đầu o Kiểm tra lại lỗi nghiêm trọng fix tương ứng o Đóng gói tài liệu kiểm thử, kịch kiểm thử, môi trường test v.v để dùng cho mục đích /dự án sau o Đánh giá q trình kiểm thử rút học kinh nghiệm cho dự án tương lại 104 an KẾT LUẬN Những kết đạt : o Xây dựng thành cơng ứng dụng tìm nhà trọ với chức : Đăng ký tài khoản : Đăng ký tài khoản truyền thống Đăng kí tài khoản với External Service Google Đăng nhập : Đăng nhập truyền thống Đăng nhập tài khoản với External Service Google Authentication based token Đăng : Gồm hình tương ứng bước đăng Có sử dụng GeocodingAPI Google Cloud Platform Ngồi đăng thơng tin, người dùng cịn upload ảnh ( tối đa ảnh ) Tìm kiếm trực quan với GoogleMap: Các phòng trọ hiển thị GoogleMap dạng Marker Người dùng xem giá phòng nhấp vào Marker Nhấp xem chi tiết để xem chi tiết phịng đăng Có hỗ trợ lọc giá phịng, giới tính, loại phịng Tìm kiếm với InfiniteScroll hình Đặt lịch hẹn Quản lí đăng : Người dùng xem lại đăng mà đăng có admin duyệt hay chưa Xóa đăng Xem chi tiết đăng : 105 an Người dùng xem tất thông tin đăng Xem thông tin tài khoản người dùng Tìm trọ thụ động : Cho phép người dùng lưu lại khu vực mà họ muốn chuyển đến sinh sống dạng mảng tọa độ, giá thành Khi có đăng mà tọa độ phòng trọ thỏa mãn điều kiện tìm người dùng thơng báo thiết bị người dùng Người dùng bật tắt tính tùy vào nhu cầu Đăng xuất : Đăng xuất nhấn vào nút “Đăng Xuất” Tự động đăng xuất token hết hạn Admin : Duyệt Xóa o Vận dụng thành công loại công nghệ phần mềm đại: ReactNative, NodeJS, MongoDB, Express, RestFul API o Cách hoạt động nhóm hiệu quả, linh hoạt vị trí lĩnh vực cơng nghệ thơng tin Ưu điểm : o Đáp ứng tính đắn tính sẵn sàng cách tốt o Tương tác trực tiếp với map ứng dụng, giúp dễ dàng hình dung nắm bắt nơi o Cài đặt trạng thái tìm trọ cho phép người dùng chọn khu vực muốn nhận thơng báo có trọ xuất khu vực o Sử dụng cơng nghệ đại, có chia cấu trúc Frontend – Backend rõ ràng o Hệ quản trị sở liệu tiên tiến, hiệu cao 106 an Nhược điểm : o Ứng dụng hoạt động chậm o Chưa đưa vào kinh doanh để xem phản hồi thực tế o Chưa tối ưu thiết kế giao diện Hướng phát triển : o Cải tiến tốc độ ứng dụng o Nâng cấp ứng dụng mặt giao diện xử lý o Đưa ứng dụng môi trường kinh doanh thực tế o Hệ thống gợi ý sử dụng 107 an TÀI LIỆU THAM KHẢO [1] Nhà trọ 360 – Tác giả : Bach Phuc Le App Store [2] Ohana – Tác giả : Doong.co Pte Ltd App Store [3] Nhà trọ tốt – Tác giả : Khac Pham App Store [4] Nhà trọ 24/7 – Tác giả : Tran Phuong CH PLAY [5] Tìm trọ - Tác giả : Vo Thao CH PLAY [6] https://techtalk.vn/tong-quan-ve-react-native.html [7] https://viblo.asia/p/mot-cai-nhin-tong-quan-nhat-ve-nodejs-Ljy5VeJ3lra [8] https://viblo.asia/p/nodejs-voi-express-framework-rQOvPKVgkYj [9] https://viblo.asia/p/mongodb-la-gi-co-so-du-lieu-phi-quan-he-bJzKmgoPl9N 108 an S an K L 0 ... TRẠNG NHÀ TRỌ 360 [1] (4.2*/170 đánh giá) Hình - Nhà trọ 360 Hình - Nhà trọ 360 20 an Hình - Nhà trọ 360 Ưu điểm : o Đáp ứng tính tiện dụng : người dùng dễ dàng sử dụng chức tìm trọ lần đầu sử dụng. .. nghệ phần mềm Tên đề tài: XÂY DỰNG ỨNG DỤNG TÌM NHÀ TRỌ Họ tên Giáo viên hướng dẫn: ThS Mai Tuấn Khôi Nhiệm vụ thực : Tìm hiểu quy trình xây dựng ứng dụng tảng React Native Tìm hiểu MERN stack (... TÀI : Xây dựng ứng dụng tìm nhà trọ với React Native, Nodejs, ExpressJs, MongoDB App hướng đến đối tượng người dùng: Người tìm trọ , chủ trọ, người tìm người ghép o Guest : Guest sử dụng tính