Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 124 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
124
Dung lượng
10,41 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Ệ THÔNG TIN ỨNG DỤNG CÔNG NGHỆ MEAN STACK XÂY DỰNG MẠNG XÃ HỘI DU LỊCH GVHD:NGUYỄN MINH ĐẠO SVTT:TRẦN HUỲNH PHIÊU MSSV:15110276 SVTT:NGUYỄN MINH THÔNG MSSV:15110323 S K C0 7 Tp Hồ Chí Minh, năm 2019 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 TRẦN HUỲNH PHIÊU: 15110276 NGUYỄN MINH THÔNG: 15110323 Đề tài: ỨNG DỤNG CÔNG NGHỆ MEAN STACK XÂY DỰNG MẠNG XÃ HỘI DU LỊCH KHỐ LUẬN TỐT NGHIỆP KỸ SƯ CƠNG NGHỆ THƠNG TIN GIẢNG VIÊN HƯỚNG DẪN ThS NGUYỄN MINH ĐẠO Khoá 2015 – 2019 ĐH SƯ PHẠM KỸ THUẬT TP HCM CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CƠNG NGHỆ THÔNG TIN Độc lập – Tự – Hạnh phúc ******* ******* PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Họ tên Sinh viên : TRẦN HUỲNH PHIÊU MSSV 1: 15110276 Họ tên Sinh viên : NGUYỄN MINH THÔNG MSSV 2: 15110323 Ngành: Công nghệ Thông tin Tên đề tài: Ứng dụng Công nghệ MEAN Stack xây dựng Mạng xã hội du lịch Họ tên Giảng viên hướng dẫ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 Đề nghị cho bảo vệ hay không ? Đánh giá loại : Điểm : Tp Hồ Chí Minh, ngày tháng Giảng viên hướng dẫn (Ký & ghi rõ họ tên) năm 2019 ĐH SƯ PHẠM KỸ THUẬT TP HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM KHOA CÔNG NGHỆ THÔNG TIN Độc lập – Tự – Hạnh phúc ******* ******* PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN Họ tên Sinh viên : TRẦN HUỲNH PHIÊU MSSV 1: 15110276 Họ tên Sinh viên : NGUYỄN MINH THÔNG MSSV 2: 15110323 Ngành: Công nghệ Thông tin Tên đề tài: Ứng dụng Công nghệ MEAN Stack xây dựng Mạng xã hội du lịch Họ tên Giảng viên phản biện: 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 Đề nghị cho bảo vệ hay không ? Đánh giá loại : Điểm : Tp Hồ Chí Minh, ngày tháng 2019 Giảng viên phản biện (Ký & ghi rõ họ tên) năm LỜI CẢM ƠN Lời đầu tiên, Nhóm thực đề tài xin gửi lời cảm ơn, lời chúc sức khỏe đến tập thể quý giảng viên khoa Công nghệ Thông tin trường Đại học Sư phạm Kỹ thuật Tp Hồ Chí Minh tạo mơi trường học tập thuận lợi cho sinh viên khoa Cơng nghệ thơng tin nói chung mơn Cơng nghệ phần mềm nói riêng hồn thành tốt đề tài đưa Nhóm thực đề tài xin bày tỏ lịng biết ơn đến Thạc sĩ Nguyễn Minh Đạo Giảng viên hướng dẫn Khố luận Tốt nghiệp Kỹ sư Cơng nghệ Thơng tin, có hướng dẫn định hướng rỏ ràng đầy tâm huyết giúp chúng tơi có đủ kiến thức phương pháp phù hợp để thực đề tài Song song suốt trình thực đề tài ThS Nguyễn Minh Đạo đưa nhiều gợi ý mang ý nghĩa thực tế tính ứng dụng cao giúp cho đề tài bám sát với nhu cầu thực tế người sử dụng mang đến kết không sản phẩm thực tế mà cịn giúp thành viên nhóm thực đề tài học tập đúc kết nhiều kinh nghiệm cho công việc kỹ sư Công nghệ Thông tin tương lai Q trình hồn thành đề tài “Ứng dụng Công nghệ MEAN Stack xây dựng Mạng xã hội Du lịch” nhận hỗ trợ tận tình quý thầy cô, bạn bè Tiếp theo phần mềm tiếp tục xây dựng hoàn thiện sau hồn thành khố luận, mong nhận quan tâm tiếp tục quý thầy cô hướng dẫn tiếp tục xây dựng phần mềm Trân trọng cảm ơn! MỤC LỤC DANH MỤC CÁC HÌNH .7 DANH MỤC CÁC BẢNG 11 PHẦN 1: MỞ ĐẦU 14 1.1 TÍNH CẤP THIẾT VÀ MỤC TIÊU ĐỀ TÀI 14 1.1.1 Tính cấp thiết đề tài 14 1.1.2 Mục tiêu đề tài 15 1.2 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU .15 1.3 KHẢO SÁT HIỆN TRẠNG 16 PHẦN 2: NỘI DUNG 21 2.1 CHƯƠNG 1: MƠ HÌNH MEAN STACK 21 2.1.1 2.2 Tổng quan 21 CHƯƠNG 2: NODEJS 23 2.2.1 Tổng quan & công dụng 23 2.2.2 Nguyên tắc hoạt động 24 2.2.3 Ưu điểm 26 2.2.4 Khuyết điểm .26 2.3 CHƯƠNG 3: EXPRESSJS 26 2.3.1 Tổng quan 26 2.3.2 Công dụng 27 2.4 CHƯƠNG 4: ANGULAR 27 2.4.1 Tổng quan công dụng .27 2.4.2 Mơ hình 28 2.5 CHƯƠNG 5: MONGODB 29 2.5.1 Tổng quan 29 2.5.2 Đặc trưng 30 2.5.3 Ưu điểm 31 2.5.4 Nhược điểm 31 2.6 CHƯƠNG 6: XÂY DỰNG WEBSITE “MẠNG XÃ HỘI DU LỊCH” .32 2.6.1 Xác định định yêu cầu, chức thiết kế hệ thống 32 2.6.2 Đặc tả chức .34 2.6.3 Sơ đồ thiết kế liệu No-SQL .58 2.6.4 Sơ đồ (Sequence Diagram) 62 2.6.5 Thiết kế giao diện 78 2.6.8 Quy trình kiểm thử .115 PHẦN 3: KẾT QUẢ 118 3.1 KẾT QUẢ ĐẠT ĐƯỢC .118 3.2 ƯU ĐIỂM & NHƯỢC ĐIỂM .120 3.2.1 Ưu điểm 120 3.2.2 Nhược điểm 120 3.2.3 Đánh giá chung 121 3.3 ĐỊNH HƯỚNG PHÁT TRIỂN 121 TÀI LIỆU THAM KHẢO .122 DANH MỤC CÁC HÌNH Hình Sơ đồ hoạt động Mean Stack Hình Sơ đồ hoạt động NodeJs Hình Các thành phần angular Hình Cách hoạt động thành phần angular Hình Sơ đồ chức (Usecase) tổng quát Hình Sơ đồ chức (Usecase) cho Actor: Người dùng Hình Sơ đồ chức (Usecase) cho Actor: Khách tham quan Hình Sơ đồ chức (Usecase) cho Actor: Thành viên Hình Sơ đồ chức (Usecase) cho Actor: Quản trị viên Hình 10 Sơ đồ chức (Usecase) cho Actor: Hướng dẫn viên Hình 11 Sơ đồ thiết kế sở liệu No-SQL Hình 12 Sơ đồ cho chức năng: Xem nội dung Tour đóng góp Hình 13 Sơ đồ cho chức năng: Xem nội dung Tour sẵn sàng Hình 14 Sơ đồ cho chức năng: Gửi đóng góp Hình 15 Sơ đồ cho chức năng: Xem thống kê xu hướng du lịch Hình 16 Sơ đồ cho chức năng: Lọc viết theo tiêu chí cụ thể Hình 17 Sơ đồ cho chức năng: Lọc viết theo đồ du lịch Hình 18 Sơ đồ cho chức năng: Xem viết Hình 19 Sơ đồ cho chức năng: Đăng ký Hình 20 Sơ đồ cho chức năng: Đăng nhập Hình 21 Sơ đồ cho chức năng: Xem thơng tin cá nhân Hình 22 Sơ đồ cho chức năng: Cập nhật thông tin cá nhân Hình 23 Sơ đồ cho chức năng: Quản lý viết cá nhân Hình 24 Sơ đồ cho chức năng: Thêm viết Hình 25 Sơ đồ cho chức năng: Chỉnh sửa viết Hình 26 Sơ đồ cho chức năng: Xem thơng báo Hình 27 Sơ đồ cho chức năng: Bình luận viết Hình 28 Sơ đồ cho chức năng: Vote viết Hình 29 Sơ đồ cho chức năng: Like bình luận Hình 30 Sơ đồ cho chức năng: Đóng góp Tour Hình 31 Sơ đồ cho chức năng: Đăng ký tham gia Tour Hình 32 Sơ đồ cho chức năng: Quản lý Tour đăng ký Hình 33 Sơ đồ cho chức năng: Phân quyền thành viên Hình 34 Sơ đồ cho chức năng: Quản lý danh sách viết Hình 35 Sơ đồ cho chức năng: Phê duyệt viết Hình 36 Sơ đồ cho chức năng: Thẩm định Tour Hình 37 Sơ đồ cho chức năng: Quản lý danh sách Tour Hình 38 Sơ đồ cho chức năng: Xác nhận thu phí Hình 39 Sơ đồ cho chức năng: Thêm Tour Hình 40 Sơ đồ cho chức năng: Chỉnh sửa Tour Hình 41 Sơ đồ cho chức năng: Mở đăng ký Tour tạo Hình 42 Sơ đồ cho chức năng: Xoá Tour tạo Hình 43 Sơ đồ cho chức năng: Mở lại Tour cũ Hình 44 Giao diện tổng quát khung ứng dụng (Header & Navigation Bar) Hình 45 Giao diện hộp thoại Đăng nhập, Đăng ký (Header & Navigation Bar) Hình 46 Giao diện hộp thoại Chuyển đổi ngơn ngữ (Header & Navigation Bar) Hình 47 Giao diện hộp thoại Thơng báo (Header & Navigation Bar) Hình 48 Giao diện hộp thoại Chức người dùng sau đăng nhập (Header & Navigation Bar) Hình 49 Giao diện Trang chủ (phần 1) Hình 50 Giao diện Trang chủ (phần 2) Hình 51 Giao diện Đăng nhập Hình 52 Giao diện Đăng ký Hình 53 Giao diện Xem viết theo Vùng miền Việt Nam Hình 54 Giao diện Xem viết theo thể loại Hình 55 Giao diện Tìm kiếm Hình 56 Giao diện Xem xu hướng tìm kiếm Hình 57 Giao diện Chính sách sử dụng Hình 58 Giao diện Đóng góp ý kiến Hình 59 Giao diện Xem viết (Trang 1) Hình 60 Giao diện Xem viết (Trang 2) Hình 61 Giao diện Xem nội dung Tour (Trang 1) Hình 62 Giao diện Xem nội dung Tour (Trang 2) Hình 63 Giao diện Xem nội dung Tour (Trang 3) Hình 64 Giao diện Xem, cập nhật thơng tin cá nhân Hình 65 Giao diện Quản lý viết cá nhân Hình 66 Giao diện Thêm viết (Trang 1) Hình 67 Giao diện Thêm viết (Trang 2) Hình 68 Giao diện Chỉnh sửa viết (Trang 1) Hình 69 Giao diện Chỉnh sửa viết (Trang 2) Hình 70 Giao diện Chỉnh sửa viết (Trang 3) Hình 71 Giao diện Quản lý Tour đăng ký Hình 72 Giao diện Đăng ký tham gia Tour (Thơng thường) Hình 73 Giao diện Đăng ký tham gia Tour (Hết chổ) Hình 74 Giao diện Đăng ký tham gia Tour (Chưa đăng nhập) Hình 75 Giao diện Đóng góp Tour (tài khoản thơng thường) Hình 76 Giao diện Đóng góp Tour (tài khoản thẩm định chuyến đi) Hình 77 Giao diện Đóng góp Tour (tài khoản tạo Tour) Hình 78 Giao diện Người quản trị quản lý viết Hình 79 Giao diện Xem trước viết Hình 80 Giao diện Phê duyệt viết Hình 81 Giao diện Từ chối viết Hình 82 Giao diện Thêm Tour (Trang 1) Hình 83 Giao diện Thêm Tour (Trang 2) Hình 84 Giao diện Thêm Tour (Trang 3) Hình 85 Giao diện Thêm Tour (Trang 4) Hình 86 Giao diện Thêm Tour (Trang 5) Hình 87 Giao diện Quản lý danh sách Tour Hình 88 Giao diện Hộp thoại Thông tin chi tiết Tour (Trang 1) Hình 89 Giao diện Hộp thoại Thơng tin chi tiết Tour (Trang 2) Hình 90 Giao diện Hộp thoại Thơng tin chi tiết Tour (Trang 3) Hình 91 Giao diện Hộp thoại Thông tin chi tiết Tour (Trang 4) Hình 92 Giao diện Hộp thoại Thơng tin chi tiết Tour (Trang 5) Hình 93 Giao diện Hộp thoại Mở lại Tour Hình 94 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 1) Hình 88 Giao diện Hộp thoại Thơng tin chi tiết tour (Trang 1) Hình 89 Giao diện Hộp thoại Thông tin chi tiết tour (Trang 2) 109 Hình 90 Giao diện Hộp thoại Thơng tin chi tiết tour (Trang 3) Hình 91 Giao diện Hộp thoại Thơng tin chi tiết tour (Trang 4) 110 Hình 92 Giao diện Hộp thoại Thông tin chi tiết tour (Trang 5) Bảng 82 Các đối tượng giao diện Hộp thoại thông tin chi tiết Tour STT Loại Ý nghĩa Tab Title Image Text Thông tin mơ tả Text Thơng tin chi phí thời lượng Image Hình ảnh địa điểm Layout Danh sách mốc lịch trình Layout Layout Text 10 Layout Thông tin thành viên huỷ đăng ký tour 11 Layout Thông tin thành viên đăng ký 12 Layout Danh sách mục cần chuẩn bị 13 Layout Danh sách phân công cụ thể Danh sách tab nội dung Ảnh bìa Danh sách thành viên tham gia hoạt động lịch trình Danh sách đóng góp Thơng tin giới hạn thành viên, số vị trí trống 111 Hình 93 Giao diện Hộp thoại Mở lại Tour Bảng 83 Các đối tượng giao diện Hộp thoại Mở lại Tour STT Loại Ý nghĩa Text Input Tên chuyến Datepicker Chọn lại mốc thời gian Timepicker Chọn lại mốc thời gian 2.6.5.26 Giao diện Chỉnh sửa Tour Hình 94 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 1) 112 Hình 95 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 2) Hình 96 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 3) Hình 97 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 4) 113 Hình 98 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 5) Hình 99 Giao diện Hộp thoại Chỉnh sửa Tour (Trang 6) Bảng 84 Các đối tượng giao diện Hộp thoại Chỉnh sửa tour STT Loại Ý nghĩa Tab Title Button Huỷ thay đổi Button Lưu thay đổi Text Input Thay đổi tên Text Input Thay đổi mơ tả Button Tải lên ảnh bìa Layout Các địa điểm chọn Selectbox Các tab phân loại nội dung thay đổi Chọn tỉnh để tải danh sách địa điểm 114 Thêm địa điểm Button Selectbox 10 (Multiplechoice) Datepicker 11 Lựa chọn để thêm địa điểm Thay đổi mốc thời gian Timepicker 12 Number Input Thay đổi số lượng tham gia 13 Number Input Thay đổi phí đăng ký 14 Selectbox Thay đổi dẫn đoàn 15 Text Input Thay đổi thơng tin liên hệ dẫn đồn 16 Layout Thay đổi kế hoạch chi tiết 17 Button Thêm kế hoạch chi tiết 18 Text 19 Layout Thay đổi chuẩn bị vật dụng 20 Button Thêm vật dụng cần chuẩn bị 21 Layout Kinh phí tính theo kế hoạch chi tiết Các thành viên nằm danh sách phụ trách công việc Selectbox 22 (Multiplechoice) Thêm thành viên đăng ký tham gia tour vào hỗ Selectbox 23 (Multiplechoice) 2.6.8 Thêm hướng dẫn viên vào danh sách phụ trách trợ công việc Quy trình kiểm thử - Về kiểm thử nhóm thực đề tài thực theo kết hợp số mơ hình phát triển phần mềm bao gồm: Waterfall Agile (Scrum) cụ thể phân chia loại test phân công công việc sau: Bảng 85 Các hình thức kiểm thử sản phẩm STT Nội dung Mô tả Người lập trình tự Khi lập trình chức năng, module người lập trình kiểm thử chức chủ động đề trường hợp lỗi để kiểm tra ràng buộc vừa hoàn thành liệu xử lý tương ứng (Diễn suốt Quá trình tương đương với trình kiểm tra Unit trình lập trình) Test Tích hợp chức Cơng việc thực vào chủ nhật hàng tuần sau kiểm thử thành viên nhóm chia sẻ kết thực 115 (Diễn suốt công việc kết hợp lại code (merge code) thông quan Git trình lập trình Sau kết hợp code kiểm tra lại tất chức xây dựng hai thành viên để đảm bảo q trình kết hợp diễn xác Các kiểm tra lần kiểm tra không gắt gao bước bên mà tập trung xác định tất chức hoạt động sau kết hợp code Các module toàn hệ thống (thông thường Kiểm thử chéo theo module (Diễn suốt trình lập trình hình chức năng) phân công cho thành viên nhóm thực hiện, sau thành viên hồn thành, thành viên lại kiểm tra module theo yêu cầu sản phẩm đề Thời gian kiểm tra không cố định tùy theo độ phức tạp module mà có thời gian lập trình kiểm thử khác Trước thời điểm chạy demo tiến độ thực project, tất thành viên nhóm tập trung lại kiểm tra tất Kiểm thử tổng thể phần nội dung thực theo hệ thống yêu (Diễn trước cầu chức đề Quá trình kiểm tra phải đảm lần demo sản phẩm) bảo yêu cầu tối thiểu tất chức hoạt động với mục tiêu đề chúng chức tích hợp lại với khơng phát sinh lỗi - Về phân công công việc q trình kiểm thử: tất thành viên nhóm thực đề tài tham gia vào trình kiểm thử bao gồm: kiểm thử hàm, chức thân định nghĩa hoạt động mục đích xây dựng không phát sinh lỗi, kiểm tra chức thành viên lại thực hoạt động với yêu cầu sản phẩm đề - Một số giai đoạn trình kiểm thư kiểm thử tích hợp kiểm thử tồn hệ thống khơng có phân công thành viên phụ trách cụ thể mà thay vào tất thành viên nhóm ngồi lại để tích hợp, hướng dẫn lẫn cách thức chức xây dựng, thay đổi so với kế hoạch đề để đạt mục tiêu cuối - Các bước quy trình kiểm thử nhóm thực gặp phải vấn đề thời gian số lần kiểm thử Với chức phải thực lặp lại lần kiểm thử 116 thành viên lập trình thành viên lại Tuy nhiên lại xây dựng ưu thành viên nhóm hiểu hoạt động tất chức toàn hệ thống cách bám sát thực tế hình dung kết chức 117 PHẦN 3: KẾT QUẢ 3.1 KẾT QUẢ ĐẠT ĐƯỢC - Sau hồn thành đề tài “Ứng dụng Cơng nghệ MEAN Stack xây dựng Mạng xã hội Du lịch” sinh viên thực đề tài tìm hiểu kiến thức chuyên mơn cốt lõi mơ hình lập trình ứng dụng web MEAN Stack áp dụng kiến thức chuyên môn vào thực tế thực sản phẩm mạng xã hội phù hợp với số đặc trưng mơ hình - Nhóm thực đề tài tìm hiểu sở liệu phi quan hệ (No-SQL) MongoDB tổ chức liệu thành tài liệu (document) có định dạng JSON với đa dạng kiểu liệu cho trường (field) tài liệu tương tự sở liệu quan hệ SQL có sở hữu yếu tố khác biệt đặc trưng họ sở liệu phi quan hệ như: tổ chức liệu thêm tự trường, khơng bị ràng buộc khóa chính, khóa ngoại, xây dựng sẵn với hệ thống câu lệnh, biểu thức truy vấn đa dạng, đáp ứng hầu hết yêu cầu lập trình viên nói chung Trong q trình sử dụng MongoDB nhóm thực đề tài tìm hiểu thêm sử dụng dịch vụ lưu trữ đám mây Amazon (Amazon Web Services) để lưu trữ sở liệu truy vấn sở liệu suốt trình làm việc nhóm thành viên Đây yếu tố hữu ích q trình nghiên cứu, học tập làm việc xây dựng sản phẩm phần mềm với nhóm lớn sử dụng nguồn tài nguyên cho thao tác kiểm thử lập trình - Nhóm thực đề tài tìm hiểu tảng mã nguồn mở NodeJS thư viện ExpressJS dùng cho tảng để xây dựng Server từ đơn giản đến phức tạp, tăng dần chức Trong trình tìm hiểu NodeJS ứng dụng vào xây dựng Server thực tế nhóm thực đề tài gặp phải khó khăn quản lý xử lý liệu bất đồng (asynchronous), cấu hình chia sẻ tài nguyên Cross Origin Resources Sharing (CORS),… sau khắc phục vấn đề sinh viên nhóm hiểu lý thuyết đề hiểu phương án khắc phục số trường hợp phát sinh vấn đề định Đồng thời với vấn đề đặt xử lý liệu người dùng, quản lý phiên đăng nhập, … nhóm thực đề tài tìm hiểu thêm thư viện hỗ trợ lập trình ứng dụng Server NodeJS như: “bcrypt” – mã hóa chuỗi, “JWT (Json Web Token)” – khởi tạo quản lý Token mã hóa, “mongodb”, “mongoose” – tương tác sở liệu MongoDB… Từ 118 dễ dàng nhận thấy đa dạng thư viện, mã nguồn mở xây dựng sẵn cho ngơn ngữ lập trình Javascript, lập trình viên sử dụng NodeJS khơng cần lập trình mà cịn cần phải có khả học hỏi đa dạng thư viện, chức hỗ trợ để tối giản hóa q trình lập trình mình, nâng cao hiệu suất công việc - Với xây dựng giao diện ứng dụng người dùng kiến thức trọng tâm nghiên cứu ứng dụng nhóm thực đề tài framework Angular Q trình sử dụng Angular ngồi tập trung vào thành phần Component Services thành phần bổ sung chức Pipe, chế Binding Data, Directive module hỗ trợ lập trình HttpModule, RouterModule thành phần quan trọng khơng Angular giúp đơn giản hóa cơng đoạn lập trình ứng dụng web phía người dùng Ngồi sử dụng Angular từ phiên thứ trở việc nghiên cứu ngơn ngữ lập trình Typescript yêu cầu quan trọng tất dịng lệnh xử lý lập trình lập trình viên Angular phải sử dụng ngơn ngữ Sau q trình tìm hiểu Typescipt với việc lập trình kiện, hàm xử lý cho giao diện, xử lý liệu trước chuyển đến Server, xử lý liệu nhận từ Server, lập trình hàm chức đảm bảo bảo mật ứng dụng nhóm thực có kinh nghiệm tảng với ngơn ngữ lập trình cho trình tiếp tục nghiên cứu tìm hiểu cơng nghệ có ứng dụng ngơn ngữ lập trình Typescipt - Về q trình thực sản phẩm “Mạng xã hội Du lịch” nhóm thực đề tài tìm hiểu thêm kiến thức thực tế ứng dụng thư viện có để xây dựng giao diện, sử dụng nguồn tài nguyên miễn phí cung cấp cho ứng dụng web đồng thời có khả tùy biến lại tài nguyên miễn phí đáp ứng với nhu cầu thực tế mà ứng dụng đề Song song suốt trình thực đề tài trình nhóm thực đề tài ứng dụng sản phẩm hữu ích quản lý dự án như: GitHub – quản lý phiên bản, lập trình nhóm, Azure DevOps – quản lý, phân cơng cơng việc theo mơ hình Scrum từ có rút học bám sát thực tế cơng việc lập trình viên, nâng cao kỹ làm việc thực tế môi trường doanh nghiệp sau 119 3.2 ƯU ĐIỂM & NHƯỢC ĐIỂM 3.2.1 Ưu điểm - MEAN Stack mơ hình phát triển ứng dụng web mới, cịn chiếm ưu so với mơ hình thiết kế ứng dụng web khác Việc lựa chọn nghiên cứu phù hợp cho vị trí cơng việc trở thành xu hướng tương lai - Với MEAN Stack tốc độ xử lý sản phẩm nhanh với cấu thành từ thành phần lựa chọn với ưu tốc độ xử lý - Ứng dụng thiết kế phần giao diện với Angular giúp nâng cao trải nghiệm người dùng mà hạn chế số lần tải lại giao diện tốc độ chuyển trang (không xét đến lấy nội dung từ Server) nhanh phục thuộc vào phần cứng máy người dùng mà không phục thuộc vào tốc độ internet - Cơ sở liệu với MongoDB có tốc độ truy xuất liệu nhanh linh hoạt, phù hợp cho vấn đề liệu lớn (big-data) xu hướng cách mạng Công nghiệp 4.0 - Toàn ứng được viết ngơn ngữ lập trình Javasrcipt (Typescript phát triển mở rộng dựa Javascript) đơn giản hóa q trình lập trình cho lập trình viên phải thao tác với ngơn ngữ lập trình cho ứng dụng phía Client Server - Cộng đồng sử dụng ngơn ngữ lập trình Javascript phổ biến tồn giới với số lượng lớn từ mà sử dụng mơ hình MEAN Stack có lượng tài liệu tham khảo, tài nguyên mã nguồn đa dạng 3.2.2 Nhược điểm - Việc sử dụng Javascript ngôn ngữ lập trình chung cho tồn ứng dụng mơ hình MEAN u cầu lập trình viên phải có kinh nghiệm mức độ để nắm bắt xử lý bất đồng bộ, quản lý luồng liệu - Việc sử dụng sở liệu phi quan hệ (No-SQL) khơng đảm bảo ràng buộc tồn vẹn cho thơng tin quan trọng MEAN Stack khó khăn để áp dụng vào ứng dụng giao dịch, ngân hàng, cụ thể ứng dụng yêu cầu toàn vẹn thông tin bảng lẫn – đặc trưng sở liệu quan hệ SQL 120 3.2.3 Đánh giá chung - Việc phát triển công nghệ, đặc biệt cơng nghệ nhóm ngành cơng nghệ thông tin không ngừng, giải pháp công nghệ mới, tối ưu nhanh chóng lựa chọn thay xu hướng cơng nghệ có trước cịn nhiều hạn chế MEAN Stack với lựa chọn lập trình tồn ứng dụng với ngơn ngữ lập trình Javascript với sử dụng thành phần tảng, sở liệu, thư viện mang tính linh hoạt cao, tốc độ nhanh xu hướng, lựa chọn mang tính cập nhật, thay đổi cho lập trình viên giai đoạn phát triển - MEAN Stack ứng dụng tốt vào ứng dụng web có yêu cầu sau: tốc độ truy vấn nhanh, lượng liệu lưu trữ truy xuất lớn, liệu lưu trữ có xu hướng không đồng thay đổi theo trước hợp khác nhau, khơng địi hỏi yếu tố bảo mật, tồn vẹn q cao Điển hình lựa chọn ứng dụng web API chia sẻ tin tức, Mạng xã hội, ghi liệu phân tích, vẽ biểu đồ, … 3.3 ĐỊNH HƯỚNG PHÁT TRIỂN - Về nội dung tìm hiểu mơ hình MEAN Stack, nội dung chuyên môn, kiến thức sử dụng ngơn ngữ lập trình tiếp tục nhóm thực đề tài tiếp tục nghiên cứu trình lập trình thực tế - Về sản phẩm “Mạng xã hội Du lịch” hoàn thành chức trở thành “xương sống” ứng dụng triển khai lên mơi trường thực tế cho phép nhóm nhỏ sử dụng để chia sẻ nội dung xây dựng chuyến tập thể Nhưng để so sánh với với ứng dụng có thị trường sản phẩm cịn hạn chế mặt chức lượng tài nguyên cung cấp để hoạt động với lượng truy cập lớn Cần mở rộng đội ngủ phát triển kiến thức chuyên môn muốn đưa ứng dụng vào hoạt động cho giá trị thu cụ thể 121 S K L 0 TÀI LIỆU THAM KHẢO [1] Team Coding DOJO, YOUR GUIDE TO MEAN, What is MEAN Stack? [2] Sabastián Peyrott, A Brief History of Javascript, 2017 [3] Maximilian Schwarzmuller, Udemy Course, S Angular & Node – The MEAN Stack Guide [4] CodeCondo, Good Reasons to use MEAN Stack in your next web project, 2015 [5] Priyesh Patel, What exactly is Node.js?, 2018 [6] NodeJS Document, Event Loop & Overview Blocking vs Non – Blocking [7] Ankit Singh, Top Javascript Concepts a Node.js Beginner must know, 2015 [8] Kiran Malvi, The Positive and Negative Aspects of Node.js Web App Development, 2018 [9] MDN Web Docs, Express/Node Introduction, 2018 [10] Angular Docs, Angular Release & Component & Template & Architecture & Dependency Injection [11] Ravi Kiran, Angular Data Binding – Interpolation and Property Binding, 2018 [12] MongoDB Docs, MongoDB Query Documents 122 ... module giúp ích trình xây dựng ứng dụng Web thực tế - Vấn đề thứ hai đề tài đặt ứng dụng mơ hình MEAN Stack vào xây dựng sản phẩm cụ thể, ? ?Mạng xã hội Du lịch? ?? Sản phẩm hoàn thành phải ứng dụng. .. CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM TRẦN HUỲNH PHIÊU: 15110276 NGUYỄN MINH THÔNG: 15110323 Đề tài: ỨNG DỤNG CÔNG NGHỆ MEAN STACK XÂY DỰNG MẠNG XÃ HỘI DU LỊCH KHOÁ LUẬN... 15110323 Ngành: Công nghệ Thông tin Tên đề tài: Ứng dụng Công nghệ MEAN Stack xây dựng Mạng xã hội du lịch Họ tên Giảng viên phản biện: NHẬN XÉT Về nội dung đề tài khối