(Luận văn thạc sĩ) kết hợp NodeJS với MongoDB cho bài toán xây dựng hệ quản trị cơ sở dữ liệu thời gian thực

79 14 0
(Luận văn thạc sĩ) kết hợp NodeJS với MongoDB cho bài toán xây dựng hệ quản trị cơ sở dữ liệu thời gian thực

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG - ISO 9001:2015 ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN Sinh viên: Lê Thành Công Giảng viên hướng dẫn: TS Nguyễn Trịnh Đơng HẢI PHỊNG - 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG - KẾT HỢP NODEJS VỚI MONGODB CHO BÀI TOÁN XÂY DỰNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU THỜI GIAN THỰC ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN Sinh viên Giảng viên hướng dẫn : Lê Thành Cơng : TS Nguyễn Trịnh Đơng Hải Phịng – 2021 HẢI PHÒNG - 2021 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC QUẢN LÝ VÀ CÔNG NGHỆ HẢI PHÒNG NHIỆM VỤ ĐỀ TÀI TỐT NGHIỆP Sinh viên : Lê Thành Công Mã sinh viên : 1612111012 Lớp : CT2001C Ngành : Công Nghệ Thông Tin Tên đề tài : Kết hợp NodeJS với MongoDB cho toán xây dựng hệ quản trị sở liệu thời gian thực NHIỆM VỤ ĐỀ TÀI Nội dung yêu cầu cần giải nhiệm vụ đề tài tốt nghiệp - Lập trình NodeJS, AnglurJS, Socket.IO, Express Framework - Hệ quản trị sở liệu MongoDB - Kết nối NodeJS, Socket.IO với MongoDB Các tài liệu, số liệu cần thiết Sử dụng số liệu thực tế thu thập mạng internet Địa điểm thực tập tốt nghiệp CÁN BỘ HƯỚNG DẪN ĐỀ TÀI TỐT NGHIỆP Họ tên : Nguyễn Trịnh Đông Học hàm, học vị : Tiến sĩ Đơn vị công tác : Trường Đại học Quản lý Cơng nghệ Hải Phịng Nội dung hướng dẫn : - Lập trình NodeJS, AnglurJS, Socket.IO, Express Framework - Hệ quản trị sở liệu MongoDB - Kết nối NodeJS, Socket.IO với MongoDB Đề tài tốt nghiệp giao ngày 12 tháng 10 năm 2020 Yêu cầu phải hoàn thành xong trước ngày 31 tháng 12 năm 2020 Đã nhận nhiệm vụ ĐTTN Đã giao nhiệm vụ ĐTTN Sinh viên Giảng viên hướng dẫn Hải Phịng, ngày tháng TRƯỞNG KHOA năm 2021 CỘNG HỊA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc - PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN TỐT NGHIỆP Họ tên giảng viên: Nguyễn Trịnh Đông Đơn vị công tác: Khoa Công nghệ Thông tin – Trường ĐHQL&CNHP Họ tên sinh viên: Lê Thành Công Ngành: Công nghệ Thông tin Nội dung hướng dẫn: - Lập trình NodeJS, AnglurJS, Socket.IO, Express Framework - Hệ quản trị sở liệu MongoDB - Kết nối NodeJS, Socket.IO với MongoDB Tinh thần thái độ sinh viên trình làm đề tài tốt nghiệp - Sinh viên chịu khó tìm hiểu kiến thức học liên quan - Nghiêm túc thực theo yêu cầu giáo viên Đánh giá chất lượng đồ án/khóa luận (so với nội dung yêu cầu đề nhiệm vụ Đ.T T.N mặt lý luận, thực tiễn, tính tốn số liệu…) - Sự ứng dụng Hệ quản trị sở liệu MongoDB để phục vụ sở liệu thời gian thực có ý nghĩa thực tế cao Khóa luận trình bày phần kiến thức Chương Chương trình bày kỹ thuật sử dụng NodeJS Socket.IO kết nối với sở liệu MongoDB để tạo cách thức xử lý liệu theo hướng thời gian thực dựa phản hồi tức thời hệ thống sử dụng phương pháp Chương thử nghiệm với toán quản lý xe công ten nơ để minh họa kỹ thuật Khóa luận đạt yêu cầu đề Ý kiến giảng viên hướng dẫn tốt nghiệp Đạt Không đạt Điểm: Hải Phòng, ngày tháng năm 2020 Giảng viên hướng dẫn (Ký ghi rõ họ tên) CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập – Tự – Hạnh phúc - PHIẾU NHẬN XÉT CỦA GIẢNG VIÊN CHẤM PHẢN BIỆN Họ tên giảng viên: ……………………………………………………………… Đơn vị công tác: …………………………………………………………………………… Họ tên sinh viên: …………………………………… Ngành: ……… … Đề tài tốt nghiệp: Phần nhận xét giảng viên chấm phản biện Những mặt hạn chế Ý kiến giảng viên chấm phản biện Được bảo vệ Không bảo vệ Điểm: Hải Phòng, ngày tháng năm 2021 Giảng viên chấm phản biện (Ký ghi rõ họ tên) LỜI CẢM ƠN Lời em xin chân thành cảm ơn thầy, cô khoa Công Nghệ Thông Tin tồn thể người ngơi trường Đại học Dân lập Hải Phòng tạo điều kiện thuận lợi cho em suốt trình học tập trường thời gian thực đồ án tốt nghiệp Đặc biệt, em muốn gửi lời cảm ơn tới Thầy Nguyễn Trịnh Đông giảng viên trực tiếp hướng dẫn tận tình bảo giúp em khắc phục khó khăn, thiếu sót để hồn thành phần đồ án tốt nghiệp từ lý thuyết thực hành sử dụng công cụ Với hiểu biết tìm tịi thân bảo hướng dẫn tận tình giảng viên em cố gắng hồn thành đồ án cách tốt khơng thể tránh thiếu sót Kính mong nhận đóng góp ý kiến từ thầy để em nâng cao bổ sungthêm kiến thức cho thân, hoàn thiện đồ án với kết tốt hoản chỉnh Em xin chân thành cảm ơn! Hải Phòng, ngày tháng năm Sinh viên thực MỤC LỤC GIỚI THIỆU CHƯƠNG 1: KIẾN THỨC NỀN TẢNG 1.1 Đặt vấn đề 1.2 Cơ sở liệu hướng tài liệu 1.3 Giao thức HTTP 1.3.1 Giới thiệu HTTP 1.3.2 Lịch sử phát triển 1.3.3 Nguyên lý hoạt động HTTP 1.3.4 Uniform Resource Locator (URL) 1.3.5 Giao thức TCP/IP 1.4 Giao thức HTTP 2.0 1.4.1 Giới thiệu HTTP 2.0 1.4.2 Nguyên lí hoạt động 1.5 WebSocket 1.5.1 Giới thiệu Socket 1.5.2 Nguyên lí hoạt động Socket 1.5.3 Phân loại Socket 10 1.5.4 Giới thiệu Web Socket 12 1.5.5 Cấu trúc Web Socket 12 1.5.6 Các thuộc tính WebSocket 13 1.5.7 Các kiện WebSocket 14 1.5.8 Các phương thức WebSocket 15 1.6 MongoDB 16 1.6.1 Giới thiệu MongoDB 16 1.6.2 Một số câu lệnh MongoDB 16 1.6.3 Ưu điểm MongoDB 17 1.6.4 Nhược điểm MongoDB 18 1.6.5 Các ứng dụng cần MongoDB 18 1.7 NodeJs 19 1.7.1 Giới thiệu 19 1.7.2 Những ứng dụng nên viết Nodejs 19 1.7.3 Cài đặt NodeJs 19 1.8 Express 21 1.8.1 Giới thiệu Express 21 1.8.2 Cài đặt Express 21 1.9 Resful API 22 1.9.1 Giới thiệu RestFul API 22 1.9.2 Đặc điểm Resful API 22 1.10 Angurlar Js 23 1.10.1 Giới thiệu Angular 23 1.10.2 Các tính 23 CHƯƠNG 2: KẾT HỢP NODEJS VỚI MONGODB 25 2.1 Cơ sở liệu thời gian thực 25 2.1.1 Giới thiệu sơ liệu thơi gian thực 25 2.1.2 So sánh sở liệu thời gian thực sở liệu truyền thống 26 2.1.3 Một số ứng dụng 26 2.2 Sử dụng MongoDB sở liệu thời gian thực với NodeJS 27 2.2.1 Thư viện SocketIO 27 2.2.2 So sánh MongoDb với Firebase 28 2.3 Sử dụng thư viện SocketIO xây dựng ứng dụng sở liệu thời gian thực 32 2.3.1 Thiết lập cấu hình 32 CHƯƠNG 3: THỬ NGHIỆM HỆ THỐNG 36 3.1 Phát biểu toán 36 3.2 Xác định yêu cầu hệ thống 36 3.2.1 Yêu cầu phi chức 36 3.2.2 Yêu cầu chức năng: 37 3.3 Xác định tác nhân, UC sử dụng biểu đồ UC 37 3.3.1 Các tác nhân 37 3.3.2 Các UseCase sử dụng 37 3.4 Biểu đồ use case 39 3.4.1 Biểu đồ use case tổng quát 39 3.4.2 Biểu đồ Use case đăng nhập 40 3.4.3 Biểu đồ Use case quản lý lái xe 41 3.4.4 Biểu đồ Use case quản lý đầu xe 42 3.4.5 Biểu đồ Use case quản lý mooc xe 43 3.4.6 Biểu đồ use case quản lý tuyến đường 44 3.5.7 Biểu đồ cho chức xóa tuyến đường Hình 14: Biểu đồ chức xóa tuyến đường Mơ tả tóm tắt: - Khách hàng chọn chức xóa tuyến đường Hệ thống thơng báo cho người dùng muốn xóa hay khơng Nếu khách hàng đơng ý hệ thống kiểm tra xóa thơng tin Cịn người dùng khơng đồng ý khơng thực xóa 3.5.8 Biểu đồ cho chức thêm đầu xe Hình 15: Biểu đồ chức thêm đầu xe 51 Mô tả tóm tắt: - Khách hàng chọn chức thêm đầu xe Nếu thông tin hệ thống gửi thông báo thêm thành cơng Cịn sai hệ thống yêu cầu nhập lại 3.5.9 Biểu đồ cho chức sửa đầu xe Hình 16: Biểu đồ chức sửa đầu xe Mơ tả tóm tắt: - Khách hàng chọn chức sửa đầu xe Nếu thông tin hệ thống gửi thông báo sửa thành cơng Cịn sai hệ thống u cầu nhập lại thông tin 52 3.5.10 Biểu đồ cho chức xóa đầu xe Hình 17: Biểu đồ chức xóa đầu xe Mơ tả tóm tắt: - Khách hàng chọn chức xóa đầu xe Hệ thống thông báo cho người dùng muốn xóa hay khơng Nếu khách hàng đơng ý hệ thống kiểm tra xóa thơng tin Cịn người dùng khơng đồng ý khơng thực xóa 3.5.11 Biểu đồ cho chức thêm mooc xe Hình 18: Biểu đồ chức thêm mooc xe 53 Mơ tả tóm tắt: - Khách hàng chọn chức thêm mooc xe Nếu thông tin hệ thống gửi thông báo sửa thành cơng Cịn sai hệ thống u cầu nhập lại thông tin 3.5.12 Biểu đồ cho chức sửa mooc xe Hình 19: Biểu đồ chức sửa mooc xe Mô tả tóm tắt: - Khách hàng chọn chức sửa tuyến xe Nếu thông tin hệ thống gửi thông báo sửa thành cơng Cịn sai hệ thống yêu cầu nhập lại thông tin 54 3.5.13 Biểu đồ cho chức xóa mooc xe Hình 20: Biểu đồ chức xóa mooc xe Mơ tả tóm tắt: - Khách hàng chọn chức xóa mooc xe Hệ thống thơng báo cho người dùng muốn xóa hay khơng Nếu khách hàng đơng ý hệ thống kiểm tra xóa thơng tin Cịn người dùng khơng đồng ý khơng thực xóa 3.5.14 Biểu đồ cho chức thêm lệnh điều xe Hình 21: Biểu đồ chức thêm lệnh điều xe 55 Mơ tả tóm tắt: - Khách hàng chọn chức thêm lệnh điều xe Nếu thông tin hệ thống gửi thơng báo sửa thành cơng Cịn sai hệ thống yêu cầu nhập lại thông tin 3.5.15 Biểu đồ cho chức sửa lênh điều xe Hình 22: Biểu đồ chức sửa lệnh điều xe Mơ tả tóm tắt: - Khách hàng chọn chức sửa lệnh xe Nếu thông tin hệ thống gửi thông báo sửa thành công Còn sai hệ thống yêu cầu nhập lại thông tin 56 3.5.16 Biểu đồ cho chức xóa lệnh điều xe Hình 23: Biểu đồ chức xóa lệnh điều xe Mơ tả tóm tắt: - Khách hàng chọn chức xóa lệnh xe Hệ thống thông báo cho người dùng muốn xóa hay khơng Nếu khách hàng đơng ý hệ thống kiểm tra xóa thơng tin Cịn người dùng khơng đồng ý khơng thực xóa 3.5.17 Biểu đồ cho chức thêm điều khiển xe Hình 24: Biểu đồ chức thêm điều khiển xe 57 Mô tả tóm tắt: - Khách hàng chọn chức thêm điều khiển xe Nếu thông tin hệ thống gửi thơng báo sửa thành cơng Cịn sai hệ thống yêu cầu nhập lại thông tin 3.5.18 Biểu đồ cho chức sửa điều khiển xe Hình 25: Biểu đồ chức sửa điều khiển xe Mơ tả tóm tắt: - Khách hàng chọn chức sửa điều khiển xe Nếu thông tin hệ thống gửi thơng báo sửa thành cơng Cịn sai hệ thống yêu cầu nhập lại thông tin 58 3.5.19 Biểu đồ cho chức xóa điều khiển xe Hình 26: Biểu đồ chức xóa điều khiển xe Mơ tả tóm tắt: - Khách hàng chọn chức xóa điều khiển xe Hệ thống thông báo cho người dùng muốn xóa hay khơng Nếu khách hàng đơng ý hệ thống kiểm tra xóa thơng tin Cịn người dùng khơng đồng ý khơng thực xóa 59 3.6 Biểu đồ lớp Điều khiển xe -ObjectId -IDLaixe: ObjectId -IDDauxe: ObjectId -IDMooc: ObjectId +Thêm lệnh điều xe () +Sửa lện điều xe () +Xóa lện điều xe () Đầu xe Mooc xe Lệnh điều xe -ObjectId -Lop: String -Trongtai: String - Trongluong: String +Thêm mooc xe () +Sửa mooc xe () +Xóa đầu xe () -ObjectId -IDLaixe: ObjectId -IDDauxe: ObjectId -IDTuyenduong: ObjectId +Thêm lệnh điều xe () +Sửa lện điều xe () +Xóa lện điều xe () Tuyến đường -ObjectId -Bienkiemsoat: String -Loaixe: String -Congsuatmay: String -Xuatxu: String -Lop: String -Trongtai: String - Trongluong: String -Binhdau: String +Thêm đầu xe () +Sửa đầu xe () +Xóa đầu xe () Nhân viên lái xe -ObjectId -Điemdi: String -Diemden: String -Nhienlieu: -Tienan: -Tienlop -Tiencuoc +Thêm tuyến đường() +Sửa tuyến đường() +Xóa tuyến đường() -ObjectId -Tenlaixe: String -Tuoi: Number -Quequan: String +Thêm tuyến đường() +Sửa tuyến đường() +Xóa tuyến đường() Hình 27: Biểu đồ sở liệu 3.7 Xây dựng sở liệu 3.7.1 Bảng “Laixe” STT Tên thuộc tính ObjectId Kiểu liệu ObjecId Tenlaixe String Tuoi Number Quequan String Mô tả Mã nhân viên lái xe sinh tự động Tên nhân viên lái xe Tuổi nhân viên lái xe Quê quản nhân viên lái xe Bảng 16: Bảng liệu lái xe 3.7.2 Bảng “Dauxe” STT Tên thuộc tính ObjectId Kiểu liệu ObjecId Bienkiemsoat Loaixe Congxuatmay Xuatxu Lop Trongtai Trongluong Binhdau String String String String String String String String Mô tả Mã đầu xe xe sinh tự động Biển kiểm sốt Loại xe Cơng suất máy Xuất xử Số lốp Trọng tải Trọng lượng String Bảng 17: Bảng liệu đầu xe 60 3.7.2 Bảng “Moocxe” STT Tên thuộc tính ObjectId Kiểu liệu ObjecId Taitrong Trongluong Lop String String String Mô tả Mã mooc xe sinh tự động Tải Trọng lượng Số lốp Bảng 1: Bảng liệu mooc xe 3.7.3 Bảng “Tuyenduong” STT Tên thuộc tính ObjectId Kiểu liệu ObjecId Diemdi Diemden Nhienlieu Tienan Tienlop Tiencuoc String String String String String String Mô tả Mã mooc xe sinh tự động Điểm Điểm đến Nhiên liệu Tiền ăn Tiền lốp Tiền cước Bảng 18: Bảng liệu tuyến đường 3.7.4 Bảng “Lenhdieuxe” STT Tên thuộc tính ObjectId Kiểu liệu ObjecId Nguoidieuxe IDDauxe String ObjecId IDLaixe ObjecId IDTuyenduong ObjecId Mô tả Mã lệnh điều xe sinh tự động Tên người điều xe Là ObjectID bảng Dauxe Là ObjectID bảng Laixe Là ObjectID bảng Tuyenduong Bảng 19: Bảng liệu lệnh điều xe 3.7.4 Bảng “Dieukhienxe” STT Tên thuộc tính ObjectId Kiểu liệu ObjecId IDMocxe ObjecId IDDauxe ObjecId IDLaixe ObjecId Mô tả Mã lệnh điều xe sinh tự động Mã bảng mooc xe Mã bảng đầu xe Là mã bảng Laixe Bảng 20: Bảng liệu điều khiển xe 61 3.8 Giao diện chương trình 3.8.1 Giao diện danh sách đầu xe Hình 28: Giao diện danh sách đầu xe 3.8.2 Giao diện danh sách mooc xe Hình 29: Giao điện danh sách mooc xe 62 3.8.3 Giao diện danh sách lái xe Hình 30: Giao diện danh sách lái xe 3.8.4 Giao diện danh sách tuyến đường Hình 31: Giao diện dánh sách tuyến đường 63 KẾT LUẬN Sau 03 tháng thực nghiên cứu đề tài, hướng dẫn tận tình thầy Tiến sỹ Nguyễn Trịnh Đông, đồ án em đạt kết sau: Kết đạt  Tìm hiều hiểu sở liệu MongoDB  Nắm nguyên lý hoạt động WebSocket  Tìm kiểu, nắm bắt kĩ thuật dụng NodeJS Socket.IO kết nối với sở liệu MongoDB để tạo cách thức xử lí liệu theo thời gian thực  Xây dựng website với chức cập nhật, xóa, sửa với chức phân tích Mặt hạn chế Trong thời gian qua, em cố gắng để tìm hiểu thực đề tài Tuy nhiên với kinh nghiệm thời gian hạn chế nên tránh khỏi thiếu sót đồ án Cụ thể:  Phần giao diện cịn chưa đẹp mắt  Vì cơng nghệ mới, thời gian trình độ cịn hạn chế hệ thống xây dựng đồ án dừng mức thử nghiệm Do muốn áp dụng vào thực tiến phải cần có thời gian cơng sức để hồn thiện  Mới dừng lại nghiệp vụ như: quản lý đầu xe, tuyến đường, mooc xe… Hướng phát triển  Xây dựng phần mềm quản lý tồn diện bao gồm việc bảo trì, giám sát xe, giám sát nhiên liệu, quản lý tài xế để đảm bảo an toàn cho tài xế xe, giúp làm giảm đến mức tối thiểu rủi ro đầu tư trình vận hành xe  Cung cấp cho nhà quản lý thông tin cốt yếu việc bảo trì xe can hiệu kinh tế: tổng số nhiên liệu sử dụng, số km đi, mức dầu, mức nước, doanh thu xe, chuyến, theo mốc thời gian 64 TÀI LIỆU THAM KHẢO [1] Nguyễn Văn Vỵ “Phân tích thiết kế hệ thống thông tin đại theo hướng cấu trúc & hương đối tượng” [2] https://nodejs.org/en/ [3] https://morioh.com/p/c466eab81513 [4] https://expressjs.com/ [5] https://mongoosejs.com/ 65 ... kiễn trúc sở liệu thời gian thực 2.1.2 So sánh sở liệu thời gian thực sở liệu truyền thống Sự khác biệt sở liệu truyền thống sở liệu thời gian thực Cơ sở liệu thời gian thực thực chất sở liệu truyền... thiệu sở liệu thời gian thực Trình bày kĩ thuật kết hợp NodeJs với MongoDB thành sở liệu thời gian thực trình bay phần 2.1 Cơ sở liệu thời gian thực 2.1.1 Giới thiệu sơ liệu thơi gian thực Trong thời. .. ĐẠI HỌC QUẢN LÝ VÀ CƠNG NGHỆ HẢI PHỊNG - KẾT HỢP NODEJS VỚI MONGODB CHO BÀI TOÁN XÂY DỰNG HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU THỜI GIAN THỰC ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG

Ngày đăng: 15/06/2021, 10:57

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan