ĐỒ ÁN THIẾT KẾ WEBSITE HỖ TRỢ NỘP VÀ CHẤM BÀI THÍ NGHIỆM ONLINE Nội dung chính của đề tài là trình bày các vấn đề liên quan hệ thống thí nghiệm online, sau đó đưa ra phương hướng giải quyết vấn đề. Đồ án được viết dựa trên nền tảng của ASP.NET MVC và cơ sở dữ liệu MongoDB. Nội dung chi tiết được trình bày qua 3 phần của báo cáo: Chương 1. Tổng quan hệ thống: Chương này sẽ giới thiệu tổng quan về hệ thống thí nghiệm online, mô tả hệ thống và các tính năng của hệ thống, đồng thời nêu ra lý thuyết về ASP.NET MVC và MongoDB, so sánh giữa SQL và NoSQL, giữa MongoDB và MySQL để thấy những ưu điểm rõ rệt của MongoDB Chương 2. Phân tích và thiết kế hệ thống: Trong chương này sẽ trình bày chi tiết các sơ đồ cần có của hệ thống, bao gồm: sơ đồ chức năng, các sơ đồ usecase và các biểu đồ hoạt động, đồng thời cũng nêu ra thuật toán xủa lý để đưa dữ liệu lên hệ thống. Chương 3. Kết quả đạt được và thử nghiệm: trình bày cơ bản về chức năng của hệ thống thông qua giao diện
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN ĐIỆN TỬ - VIỄN THÔNG
ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
THIẾT KẾ WEBSITE HỖ TRỢ NỘP VÀ CHẤM BÀI THÍ NGHIỆM ONLINE
Sinh viên thực hiện: Hà Huy Đông Lớp ĐT04 K59
Đỗ Toàn Thắng Lớp ĐT05 K59
Giảng viên hướng dẫn: ThS.Vũ Song Tùng
Hà Nội, 6-2019
Trang 3ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP
(Dùng cho giảng viên hướng dẫn)
Tên giảng viên đánh giá:
Họ và tên Sinh viên: MSSV:
Tên đồ án:
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây:
Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5)
Có sự kết hợp giữa lý thuyết và thực hành (20)
1
Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết
(bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng dụng của đồ
án
1 2 3 4 5
2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5
3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5
4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt được 1 2 3 4 5
Có khả năng phân tích và đánh giá kết quả (15)
5 Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống 1 2 3 4 5
6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được
7 Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận để đề xuất
hướng giải quyết có thể thực hiện trong tương lai
1 2 3 4 5
Kỹ năng viết quyển đồ án (10)
8
Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và đẹp
mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứ tự và được
giải thích hay đề cập đến trong đồ án, có căn lề, dấu cách sau dấu chấm,
dấu phẩy v.v), có mở đầu chương và kết luận chương, có liệt kê tài liệu
tham khảo và có trích dẫn đúng quy định
1 2 3 4 5
9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận
logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5
Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp)
10a
Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải SVNC khoa
học giải 3 cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước)
từ giải 3 trở lên/ Có đăng ký bằng phát minh sáng chế
5
10b
Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên cứu
khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyến khích
trong các kỳ thi quốc gia và quốc tế khác về chuyên ngành như TI contest
2 10c Không có thành tích về nghiên cứu khoa học 0
Điểm tổng quy đổi về thang 10
Trang 4Nhận xét khác (về thái độ và tinh thần làm việc của sinh viên)
Ngày: … / … / 20…
Người nhận xét
(Ký và ghi rõ họ tên)
Trang 5ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP
(Dùng cho cán bộ phản biện)
Giảng viên đánh giá:
Họ và tên sinh viên: MSSV:
Tên đồ án:
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có sự kết hợp giữa lý thuyết và thực hành (20) 1 Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng dụng của đồ án 1 2 3 4 5 2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5 3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5 4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt được 1 2 3 4 5 Có khả năng phân tích và đánh giá kết quả (15) 5 Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống 1 2 3 4 5 6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được phân tích và đánh giá thỏa đáng 1 2 3 4 5 7 Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận để đề xuất hướng giải quyết có thể thực hiện trong tương lai 1 2 3 4 5 Kỹ năng viết quyển đồ án (10) 8 Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứ tự và được giải thích hay đề cập đến trong đồ án, có căn lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương và kết luận chương, có liệt kê tài liệu tham khảo và có trích dẫn đúng quy định 1 2 3 4 5 9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5 Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp) 10a Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng phát minh sáng chế 5 10b Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên cứu khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyến khích trong các kỳ thi quốc gia và quốc tế khác về chuyên ngành như TI contest 2 10c Không có thành tích về nghiên cứu khoa học 0 Điểm tổng /50 Điểm tổng quy đổi về thang 10 Nhận xét khác của cán bộ phản biện
Trang 6
Ngày: … / … / 20…
Người nhận xét
(Ký và ghi rõ họ tên)
Trang 7ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP
(Dùng cho giảng viên hướng dẫn)
Tên giảng viên đánh giá:
Họ và tên Sinh viên: MSSV:
Tên đồ án:
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có sự kết hợp giữa lý thuyết và thực hành (20) 1 Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng dụng của đồ án 1 2 3 4 5 2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5 3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5 4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt được 1 2 3 4 5 Có khả năng phân tích và đánh giá kết quả (15) 5 Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống 1 2 3 4 5 6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được phân tích và đánh giá thỏa đáng 1 2 3 4 5 7 Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận để đề xuất hướng giải quyết có thể thực hiện trong tương lai 1 2 3 4 5 Kỹ năng viết quyển đồ án (10) 8 Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứ tự và được giải thích hay đề cập đến trong đồ án, có căn lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương và kết luận chương, có liệt kê tài liệu tham khảo và có trích dẫn đúng quy định 1 2 3 4 5 9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5 Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp) 10a Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng phát minh sáng chế 5 10b Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên cứu khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyến khích trong các kỳ thi quốc gia và quốc tế khác về chuyên ngành như TI contest 2 10c Không có thành tích về nghiên cứu khoa học 0 Điểm tổng /50 Điểm tổng quy đổi về thang 10 Nhận xét khác (về thái độ và tinh thần làm việc của sinh viên)
Trang 8
Ngày: … / … / 20…
Người nhận xét
(Ký và ghi rõ họ tên)
Trang 9ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP
(Dùng cho cán bộ phản biện)
Giảng viên đánh giá:
Họ và tên sinh viên: MSSV:
Tên đồ án:
Chọn các mức điểm phù hợp cho sinh viên trình bày theo các tiêu chí dưới đây: Rất kém (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có sự kết hợp giữa lý thuyết và thực hành (20) 1 Nêu rõ tính cấp thiết và quan trọng của đề tài, các vấn đề và các giả thuyết (bao gồm mục đích và tính phù hợp) cũng như phạm vi ứng dụng của đồ án 1 2 3 4 5 2 Cập nhật kết quả nghiên cứu gần đây nhất (trong nước/quốc tế) 1 2 3 4 5 3 Nêu rõ và chi tiết phương pháp nghiên cứu/giải quyết vấn đề 1 2 3 4 5 4 Có kết quả mô phỏng/thưc nghiệm và trình bày rõ ràng kết quả đạt được 1 2 3 4 5 Có khả năng phân tích và đánh giá kết quả (15) 5 Kế hoạch làm việc rõ ràng bao gồm mục tiêu và phương pháp thực hiện dựa trên kết quả nghiên cứu lý thuyết một cách có hệ thống 1 2 3 4 5 6 Kết quả được trình bày một cách logic và dễ hiểu, tất cả kết quả đều được phân tích và đánh giá thỏa đáng 1 2 3 4 5 7 Trong phần kết luận, tác giả chỉ rõ sự khác biệt (nếu có) giữa kết quả đạt được và mục tiêu ban đầu đề ra đồng thời cung cấp lập luận để đề xuất hướng giải quyết có thể thực hiện trong tương lai 1 2 3 4 5 Kỹ năng viết quyển đồ án (10) 8 Đồ án trình bày đúng mẫu quy định với cấu trúc các chương logic và đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, được đánh số thứ tự và được giải thích hay đề cập đến trong đồ án, có căn lề, dấu cách sau dấu chấm, dấu phẩy v.v), có mở đầu chương và kết luận chương, có liệt kê tài liệu tham khảo và có trích dẫn đúng quy định 1 2 3 4 5 9 Kỹ năng viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic và có cơ sở, từ vựng sử dụng phù hợp v.v.) 1 2 3 4 5 Thành tựu nghiên cứu khoa học (5) (chọn 1 trong 3 trường hợp) 10a Có bài báo khoa học được đăng hoặc chấp nhận đăng/đạt giải SVNC khoa học giải 3 cấp Viện trở lên/các giải thưởng khoa học (quốc tế/trong nước) từ giải 3 trở lên/ Có đăng ký bằng phát minh sáng chế 5 10b Được báo cáo tại hội đồng cấp Viện trong hội nghị sinh viên nghiên cứu khoa học nhưng không đạt giải từ giải 3 trở lên/Đạt giải khuyến khích trong các kỳ thi quốc gia và quốc tế khác về chuyên ngành như TI contest 2 10c Không có thành tích về nghiên cứu khoa học 0 Điểm tổng /50 Điểm tổng quy đổi về thang 10 Nhận xét khác của cán bộ phản biện
Trang 10
Ngày: … / … / 20…
Người nhận xét
(Ký và ghi rõ họ tên)
Trang 11Lời nói đầu
Từ xưa đến nay, nhân loại đã không ngừng học hỏi, tìm tòi và nghiên cứu để tạo
ra những sản phẩm nhằm phục vụ cho sinh hoạt hằng ngày hay phục vụ cho mục đích nghiên cứu Cùng với sự phát triển nhanh của công nghệ, hàng loạt ứng dụng được nghiên cứu và đưa vào sử dụng Không chỉ giúp khắc phục các hạn chế về mặt thời gian, không gian, nó còn được xem là trợ thủ đắc lực để chúng ta làm việc nhanh, hiệu quả và chính xác
Qua những trải nghiệm thực tế suốt quá trình học tập tại trường Đại học Bách Khoa Hà Nội, kèm theo đó là mong muốn được học tập, nghiên cứu và vận dụng kiến
thức đã được học, chúng em đã lựa chọn đề tài:“ Thiết kế website hỗ trợ nộp và chấm bài thí nghiệm online ” để làm đồ án tôt nghiệp của mình Với những chức năng mà hệ
thống mang lại, nó có thể giúp đỡ các bạn sinh viên trong quá trình học tập, cũng như các thầy cô làm việc hiệu quả hơn
Chúng em xin gửi lời cảm ơn chân thành tới ThS Vũ Song Tùng, Viện Điện tử - Viễn thông, trường Đại học Bách Khoa Hà Nội đã định hướng nghiên cứu, động viên và hướng dẫn tận tình và tạo điều kiện tốt nhất cho chúng em trong suốt quá trình thực hiện
Chúng em xin chân thành cảm ơn!
Hà Nội, ngày 09 tháng 06 năm 2019
Trang 12
LỜI CAM ĐOAN
Chúng tôi là Hà Huy Đông, mã số sinh viên 20141062, sinh viên lớp điện tử 4, khóa K59; Đỗ Toàn Thắng, mã số sinh viên 20144184, sinh viên lớp điện tử 5, khóa K59 Người hướng dẫn là ThS. Vũ Song Tùng Chúng tôi xin cam đoan toàn bộ nội
dung được trình bày trong đồ án Thiết kế website hỗ trợ nộp và chấm bài thí nghiệm online là kết quả quá trình tìm hiểu và nghiên cứu của chúng tôi Các kết quả được nêu trong đồ án là hoàn toàn trung thực, phản ánh đúng kết quả thực tế Mọi thông tin trích dẫn đều tuân thủ các quy định về sở hữu trí tuệ; các tài liệu tham khảo được liệt kê rõ ràng Chúng tôi xin chịu hoàn toàn trách nhiệm với những nội dung được viết trong đồ án này
Hà Nội, ngày 09 tháng 06 năm 2019
Người cam đoan
Hà Huy Đông Đỗ Toàn Thắng
Trang 13Mục lục
Danh mục ký hiệu và chữ viết tắt i
Danh mục hình vẽ ii
Danh mục bảng biểu iv
ABSTRACT vi
Phần mở đầu 1
Đặt vấn đề 1
Mục đích nghiên cứu 1
Phương pháp nghiên cứu 1
Chương 1 Tổng quan hệ thống 3
1.1 Tổng quan 3
1.1.1 Mô tả hệ thống và các hoạt động trên hệ thống 3
1.1.2 Ưu điểm so với hoạt động thí nghiệm truyền thống 5
1.1.3 Các tính năng hỗ trợ bài thí nghiệm 5
1.2 Cơ sở lý thuyết 6
1.2.1 Giới thiệu về ASP.NET MVC 6
1.2.2 Giới thiệu về NoSQL và MongoDB 10
1.3 Kết luận 16
Chương 2 Phân tích và thiết kế hệ thống 17
2.1 Phân tích về hệ thống thí nghiệm online 17
2.1.1 Sơ đồ phân cấp chức năng 17
2.1.2 Sơ đồ Usecase 18
2.1.3 Biểu đồ hoạt động 22
2.2 Một số thuật toán được sử dụng 29
2.2.1 Thuật toán tạo bài tập 29
2.2.2 Thuật toán chuẩn hóa họ tên 33
2.3 Thiết kế cơ sở dữ liệu 34
2.3.1 Thiết kế cơ sở dữ liệu theo cấu trúc SQL 34
2.3.2 Thiết kế cơ sở dữ liệu theo cấu trúc NoSQL 34
2.3.3 So sánh 2 phương pháp thiết kế cơ sở dữ liệu 35
2.4 Kết luận 36
Trang 14Chương 3 Kết quả đạt được và kiểm thử 37
3.1 Một số hình ảnh giao diện 37
3.2 Kết luận 41
Kết luận 42
Danh mục tài liệu tham khảo 43
Trang 15i
Danh mục ký hiệu và chữ viết tắt
MVC Model-View-Controller Mẫu kiến trúc phần mềm để tạo lập
giao diện người dùng trên máy tính
SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc
NoSQL Non Structured Query
Language
Ngôn ngữ truy vấn phi cấu trúc
XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng
JSON JavaScript Object Notation Kiểu dữ liệu mở trong Javascript có
dạng text
dạng nhị phân RDBMS Relational Database
Management System
Hệ quản trị cơ sở dữ liệu quan hệ
Trang 16ii
Danh mục hình vẽ
Hình 1 1 Mô hình tổng quan hệ thống 5
Hình 1 2 Các mô hình lập trình web 7
Hình 1 3 Mô hình MVC 7
Hình 1 4 Sự phát triển của ASP 8
Hình 1 5 ASP.NET với Web Forms và MVC 8
Hình 1 6 Sự phát triển của ASP.NET MVC 9
Hình 1 7 Mô phỏng cơ chế hoạt động của ASP.NET MVC 10
Hình 1 8 Sự gia tăng của dữ liệu 11
Hình 1 9 Tỉ lệ sử dụng của các hệ quản trị cơ sở dữ liệu 14
Hình 1 10 MongoDB 14
Hình 2 1 Sơ đồ chức năng hệ thống………17
Hình 2 2 Usecase đăng nhập 18
Hình 2 3 Usecase quản lý danh sách 19
Hình 2 4 Usecase soạn thảo thí nghiệm 20
Hình 2 5 Usecase làm thí nghiệm 21
Hình 2 6 Biểu đồ đăng nhập 23
Hình 2 7 Biểu đồ lập danh sách sinh viên 24
Hình 2 8 Biểu đồ hoạt động thêm giáo viên 25
Hình 2 9 Biểu đồ lập danh sách môn học 26
Hình 2 10 Biểu đồ kiểm tra kết quả thí nghiệm 27
Hình 2 11 Biểu đồ đánh giá kết quả 28
Hình 2 12 Thuật toán thêm các trường bài tập 30
Hình 2 13 Thuật toán xóa trường thêm bài tập 31
Hình 2 14 Thuật toán upload dữ liệu bài tập 32
Hình 2 15 Lưu đồ thuật toán chuẩn hóa họ tên 33
Hình 2 16 Sơ đồ cơ sở dữ liệu theo cấu trúc SQL 34
Hình 2 17 Các colection 35
Hình 3 1 Giao diện trang chủ……….37
Trang 17iii
Hình 3 2 Giao diện Login 38
Hình 3 3 Giao diện Admin 38
Hình 3 4 Giao diện giáo viên thêm mới bài thí nghiệm 39
Hình 3 5 Giao diện sinh viên 40
Hình 3 6 Giao diện sinh viên làm bài thí nghiệm 40
Hình 3 7 Giao diện giáo viên xem bài làm của sinh viên 41
Trang 18iv
Danh mục bảng biểu
Bảng 1 1 Một số lệnh cơ bản trên MongoDB và MySQL 15
Bảng 2 1 Mô tả usecase đăng nhập ở hình 3.2………18
Bảng 2 2 Bảng mô tả usecase quản lý danh sách ở hình 3.3 19
Bảng 2 3 Bảng mô tả usecase soạn thảo thí nghiệm 20
Bảng 2 4 Bảng mô tả usecase làm thí nghiệm 21
Trang 19v
Tóm tắt đồ án
Nội dung chính của đề tài là trình bày các vấn đề liên quan hệ thống thí nghiệm online, sau đó đưa ra phương hướng giải quyết vấn đề Đồ án được viết dựa trên nền tảng của ASP.NET MVC và cơ sở dữ liệu MongoDB Nội dung chi tiết được trình bày qua 3 phần của báo cáo:
Chương 1 Tổng quan hệ thống: Chương này sẽ giới thiệu tổng quan về hệ thống thí nghiệm online, mô tả hệ thống và các tính năng của hệ thống, đồng thời nêu ra lý thuyết về ASP.NET MVC và MongoDB, so sánh giữa SQL và NoSQL, giữa MongoDB
và MySQL để thấy những ưu điểm rõ rệt của MongoDB
Chương 2 Phân tích và thiết kế hệ thống: Trong chương này sẽ trình bày chi tiết các sơ đồ cần có của hệ thống, bao gồm: sơ đồ chức năng, các sơ đồ usecase và các biểu
đồ hoạt động, đồng thời cũng nêu ra thuật toán xủa lý để đưa dữ liệu lên hệ thống
Chương 3 Kết quả đạt được và thử nghiệm: trình bày cơ bản về chức năng của
hệ thống thông qua giao diện
Trang 20Chapter 1: Overview of systems: This chapter will give an overview of the system
to support reporting and scoring online experiments, describe the system and features of the system, and describe the theory of ASP.NET MVC and MongoDB, and compare between SQL and NoSQL, between MongoDB and MySQL to see the obvious advantages of MongoDB
Chapter 2: Analysis and design system: In this chapter, present detailed diagrams
of the system, including: functional diagrams, usecase diagrams and operational diagrams, as well as outlined the algorithm to put data on the system
Chapter 3 Achievements and testing: basic presentation of the system's functions through the interface
Trang 21Là một sinh viên viện Điện tử viễn thông, với những kiến thức đã được học cùng với mong muốn thiết kế một hệ thống thí nghiệm giúp cho cán bộ giảng viên và sinh viên
có thể tiết kiệm được thời gian, công sức, tiền bạc, cùng với sự hướng dẫn của ThS Vũ
Song Tùng chúng em đã chọn đề tài: “Thiết kế website hỗ trợ nộp và chấm bài thí
nghiệm online " làm đồ án tốt nghiệp
Mục đích nghiên cứu
Đề tài được nghiên cứu và thực hiện với mục đích áp dụng các kiến thức đã học trên ghế nhà trường để thiết kế ra một sản phẩm để làm đồ án tốt nghiệp cũng như giúp đỡ được một phần nào đó các bạn sinh viên và giảng viên hướng dẫn trong quá trình nộp
và chấm bài báo cáo thí nghiệm
Phương pháp nghiên cứu
Trong đề tài này, chúng em đã sử dụng các phương pháp nghiên cứu:
• Phương pháp tham khảo tài liệu: bằng cách thu thập thông tin từ sách, tạp chí
về thiết kế website và từ mạng internet
• Phương pháp quan sát: khảo sát một số website hiện có như: giaovu, vst
Trang 22+ Hỗ trợ sinh viên làm và nộp online các bài báo cáo thí nghiệm
+ Hỗ trợ giảng viên phụ trách thí nghiệm trong việc chấm bài và thống kê kết quả
PHÂN CÔNG CÔNG VIỆC
Thời gian Sinh viên thực hiện Công việc
4/3 Đỗ Toàn Thắng Nhận đề tài: Thiết kế website hỗ trợ nộp và
chấm bài thí nghiệm online
Hà Huy Đông 4/3- 15/3 Đỗ Toàn Thắng Tìm hiểu đề tài đưa ra một số giải pháp để
thực hiện đề tài
Hà Huy Đông 15/3- 31/3 Đỗ Toàn Thắng Bước đầu xây dựng các View, Controller cơ
bản
Hà Huy Đông 1/4- 12/5 Đỗ Toàn Thắng Xây dựng các thuật toán tạo bài tập, upload
và làm bài tập
Hà Huy Đông Xây dựng mô hình hệ thống và cấu trúc cơ
sở dữ liệu 12/5- 31/5 Đỗ Toàn Thắng Xây dựng thuật toán chuẩn hoá và sửa lỗi hệ
thống
Hà Huy Đông Hoàn thiện layout, giao diện hệ thống 1/6- 9/6 Đỗ Toàn Thắng Hoàn thiện báo cáo
Hà Huy Đông
Trang 233
Chương 1 Tổng quan hệ thống
Trong chương này mô tả tổng quan về hệ thống và các hoạt đông trên hệ thống, các
ưu điểm của hệ thống so với hệ thống thí nghiệm truyền thống Đồng thời, trình bày cơ
sở lý thuyết về ASP.NET MVC và những điểm mạnh của nó, trình bày về NoSQL và MongoDB cũng như so sánh với các ngôn ngữ truy vấn SQL Sau đây là nội dung chi tiết
1.1 Tổng quan
1.1.1 Mô tả hệ thống và các hoạt động trên hệ thống
Thí nghiệm là hoạt động bắt buộc của một số môn đặc thù, yêu cầu sinh viên tìm hiểu và thực hành các kiến thức được học trong quá trình học lý thuyết
Các đối tượng liên quan đến hoạt động thí nghiệm gồm có:
• Sinh viên thí nghiệm (ĐT1): Đối tượng cần thực hiện các bài thí nghiệm theo chương trình môn học Theo truyền thống, việc thực hiện được tiến hành trên phòng thí nghiệm chỉ định của Viện
• Người quản lý Thí nghiệm (ĐT2): Là người có nhiệm vụ thực hiện giờ thực hành thí nghiệm, quản lý cấp phát trang thiết bị, trông quản phòng thí nghiệm, điểm danh theo dõi lớp và chấm điểm kết quả thí nghiệm Là người nắm chuyên môn, đảm trách thao tác vận hành các thiết bị thí nghiệm, giải đáp thắc mắc, hướng dẫn tiến trình để sinh viên có thể hoàn thành các bước thí nghiệm Người soạn thảo chương trình thí nghiệm Là người soạn các bước, các tiến trình để sinh viên thực hiện
• Người quản trị hệ thống (ĐT3): Là người có nhiệm vụ tạo và cập nhật dữ liệu cho hệ thống Đối tượng này có chức năng thêm bớt danh sách các môn học, tạo
ra danh sách các lớp sinh viên (ĐT1) và giáo viên phụ trách (ĐT2)
Dưới đây (Hình 1.1) là mô hình tổng quan hệ thống, từ đó xác định được nhiệm vụ cần thực hiện trong hệ thống, giúp xác định rõ đầu vào cũng như đầu ra
Mô tả hoạt động
• Đối với đối tượng sinh viên:
- Đăng nhập: Mỗi sinh viên đăng kí học phần có yêu cầu thí nghiệm sẽ được quản trị viên (admin) cung cấp 1 account để đăng nhập vào hệ thống Sau khi
Trang 244
đăng nhập sinh viên có thể tham khảo tài liệu TN của học phần tương ứng mà
GV quản lí lớp thí nghiệm đã up lên
- Làm báo cáo thí nghiệm: Khi kết thúc quá trình thí nghiệm (3 buổi), sinh viên đăng nhập vào hệ thống và hoàn thành mẫu báo cáo thí nghiệm ứng với từng môn học Sau khi nộp bài, hệ thống sẽ hiển thị kết quả mà sinh viên đạt được
• Đối với đối tượng giáo viên quản lí thí nghiệm:
- Đăng nhập: Mỗi giáo viên quản lí thí nghiệm sẽ được quản trị viên (admin) cung cấp 1 account để đăng nhập vào hệ thống Account này phù hợp với danh sách phân công công việc của Viện đã phân công
- Gửi tài liệu thí nghiệm: Sau khi soạn thảo chương trình thí nghiệm, đối tượng soạn các bước, các tiến trình để sinh viên thực hiện sau đó tổng hợp thành tài liệu thí nghiệm và form báo cáo thí nghiệm mẫu đối với từng học phần và gửi lên hệ thống
- Khi thời hạn hoàn thành báo cáo thí nghiệm của sinh viên kết thúc, hệ thống
sẽ tổng hợp và gửi kết quả của sinh viên cho đối tượng
• Đối với đối tượng admin
Dựa vào danh sách đăng kí lớp học của sinh viên và danh sách phân công công việc của mỗi học kì, admin sẽ thực hiện các chức năng:
- Tạo danh sách học phần: Thêm các danh sách học phần mới và xóa đi các học phần kì này không mở đăng kí
- Tạo danh sách lớp sinh viên: Xóa các acc cũ sau mỗi học kì Tạo mới acc cho các sinh viên và giáo viên quản lí và phân quyền cho phù hợp
• Hệ thống: Nhận dữ liệu từ các đối tượn trên và xử lí kết quả
Sau khi các đối tượng thực hiện nhiệm vụ của mình, hệ thống xử lí và đưa ra kết quả của sinh viên giúp cho giáo viên quản lí thí nghiệm thực hiện công việc của mình nhanh hơn
Trang 255
Hình 1 1 Mô hình tổng quan hệ thống
1.1.2 Ưu điểm so với hoạt động thí nghiệm truyền thống
Từ những chức năng trên, có thể thấy Hệ thống nộp và chấm điểm báo cáo thí nghiệm online có các ưu điểm sau so với hoạt động thí nghiệm truyền thống:
- Hiệu quả hơn về mặt thời gian với sinh viên làm thí nghiệm
- Hiệu quả hơn về truyền đạt thông tin, kỹ năng và kiến thức
- Giảm thời gian đánh giá kết quả, theo dõi tiến trình đối với Cán bộ quản lý lớp thí nghiệm
- Hiệu quả giảng dạy và hướng dẫn đối với Cán bộ hướng dẫn
- Đánh giá sinh viên chính xác hơn
- Sinh viên có điều kiện thực hiện bài thí nghiệm linh hoạt hơn về thời gian, và
kế hoạch học tập
- Tiết kiệm các chi phí in ấn tài liệu trong quá trình báo cáo, hướng dẫn thí nghiệm
1.1.3 Các tính năng hỗ trợ bài thí nghiệm
- Kiểm tra tức thời kết quả làm thí nghiệm trong các hoạt động; tính toán, mô phỏng, đo lường và trả lời tương tác kiến thức
- Lưu trữ và thể hiện cho sinh viên các nội dung hướng dẫn, chỉ dẫn thực hành Truy xuất tham khảo đến nội dung kiến thức lý thuyết
Trang 266
- Kho lưu trữ và thể hiện cho sinh viên các sơ đồ mạch là đối tượng thí nghiệm
và các tính toán liên quan
- Kho lưu trữ học liệu về hướng dẫn sử dụng thiết bị thí nghiệm, sử dụng phần mềm mô phỏng và phần mềm thiết kế
- Môi trường chia sẻ thông tin và hướng dẫn thực hiện đề tài có ứng dụng mạch điện tử
- Hỗ trợ soạn thảo chương trình, bài thí nghiệm và cập nhật các yêu cầu và hướng dẫn thí nghiệm với sinh viên
1.2 Cơ sở lý thuyết
1.2.1 Giới thiệu về ASP.NET MVC
Những ai yêu thích lập trình web sử dụng công nghệ ASP.NETcủa Microsoft thì chắc chắn một điều là ai cũng phải biết đến Webform, một công nghệ khá cũ của Microsoft giúp lập trình web Tuy nhiên với công nghệ ASP.Net webform thì có rất nhiều nhược điểm và một trong nhược điểm đáng chú ý là giao diện webform phải sử dụng toolbox sẵn có, do đó mất linh hoạt trong việc điều khiển giao diện
Vì vậy, “ông lớn” Microsoft đã cho ra đời 1 công nghệ lập trình web mới đó
là ASP.NET MVC với rất nhiều ưu điểm
1.1.1.1 Tổng quan mô hình MVC
Trước khi đi vào tìm hiểu về mô hình MVC cần tìm hiểu khái quát cấu trúc cơ bản của mô hình lập trình web hiện nay
Cấu trúc lập trình web được minh họa trong hình 1.2
Trong lập trình web chia ra 3 tầng như sau:
- Presentation Layer (tầng 3): tầng này giúp hiển thị giao diện
- Business Logic Layer (tầng 2): tầng này chứa các hàm thực thi, giúp xử lý sự kiện xảy ra trên tầng Presentation Layer
- Data Access Layer (tầng 1): tầng này chứa hàm kết nối với các hệ quản trị cở
sở dữ liệu như SQL Server, Mysql, Oracle …
• Theo như hình mô tả, cấu trúc cổ điển là 3 tầng này trộn vào nhau hay còn gọi
là cấu trúc One – Tier Khi làm việc với cấu trúc One – Tier khó khăn trong việc chỉnh sửa code hay chỉnh sửa giao diện vì các tầng này bi trộn vào nhau
• Tiếp đó, cấu trúc Two – Tier ra đời, tuy nhiên vẫn chưa giải quyết vấn đề của cấu trúc One – Tier gặp phải đó là việc chỉnh sửa code hay giao diện gặp khó khăn vì tầng 2 và tầng 3 vẫn chưa tách biệt khỏi nhau
• Vì vậy cấu trúc Three – Tier đã ra đời và giải quyết tất cả các vần đề mà One – Tier, Two – Tier gặp phải Lúc này 3 tầng đã tách biệt nhau ra do đó việc chỉnh sửa code hay giao diện sẽ trở nên dễ dàng hơn giúp cho ứng dụng tối ưu hóa nhất
Trang 27• Model: ở phần trước đã nhắc lại về 3 tầng trong mô hình Three – Tier thì trong
đó gồm có 2 tầng Data Access Layer và tầng Business Logic Layer Hai tầng này
là hai tầng tương đương với tầng model trong mô hình MVC
• View: là tầng giao diện, hiển thị dữ liệu được truy xuất từ tầng model Tầng này tương đương với tầng Presentation Layer trong cấu trúc Three – Tier
Trang 288
• Controller: đây là tầng giúp kết nối giữa tầng model và tầng view trong mô hình MVC, có nghĩa là nếu phía client yêu cầu hiển thị dữ liệu thì controller gọi giữ liệu từ model và trả về cho view vì view tương tác trực tiếp với client
Ví dụ: User yêu cầu hiển thị thông tin cá nhân của user
1 User gửi một yêu cầu tới controller
2 Controller nhận yêu cầu, xử lý yêu cầu, nếu yêu cầu cần truy xuất dữ liệu
thì controller sẽ gửi yêu đó xuống tầng model để truy xuất dữ liệu
3 Tầng model sẽ lấy dữ liệu từ database sau đó truyền dữ liệu qua tầng view thông qua tầng controller để tầng view hiển thị dữ liệu cho User
4 User sẽ thấy thông tin hiển thị ở giao diện và cụ thể ở đây là tầng view
1.2.1.2 Tổng quan về mô hình lập trình web ASP.NET MVC
Hình 1 4 Sự phát triển của ASP
Hình mô tả phía trên cho thấy trước khi ASP.NET MVC ra đời thì ASP.NET webform là 1 framework lập trình web khá quen thuộc đối với những tín đồ của ASP.NET Tuy nhiên, khi ASP.NET MVC xuất hiện thì dường như ASP.NET webform bị lãng quên
-Khái niệm về ASP.NET
Hình 1 5 ASP.NET với Web Forms và MVC
ASP.NET là 1 framwork lập trình web được cung cấp bởi Microsoft và nó sử dụng ngôn ngữ C# làm ngôn ngữ phát triển ASP.NET bao gồm 2 model đó là Web Forms và MVC
Trang 299
Nhược điểm khi lập trình với ASP.NET Web Forms:
• Web Forms không có sự tách biệt rõ ràng 3 tầng trong mô hình lập trình web
• Trong Web Forms có sử dụng 1 đối tượng View State mà đối tượng này làm cho trang web bị tăng kích thước vì vậy làm giảm hiệu năng của ứng dụng
• Giao diện của Web Forms được thiết kế dựa trên những toolbox có sẵn mà web forms cung cấp mà hiện nay đa phần designer sử dụng html, css để thiết kế website vì nó gây khó khăn trong việc thiết kế web hiện nay, việc thiết kế trở nên mất linh hoạt
Với những khó khăn như vậy thì Microsoft đã cho ra đời ASP.NET MVC
+ Cơ chế hoạt động và những ưu điểm trong lập trình web với ASP.NET MVC
ASP.NET MVC là 1 framework lập trình web mới của microsoft, công nghệ này ứng dụng mô hình MVC vào trong ASP.NET
Hình 1 6 Sự phát triển của ASP.NET MVC
Qua hình mô tả phía trên cho thấy tuy ASP.NET MVC ra đời năm 2009 nhưng
mà tính tới năm 2013 thì nó đã được update lên tới phiên bản ASP.NET MVC 5, đây cũng là 1 trong những ưu điểm của ông lớn Microsoft cập nhật công nghệ liên tục Và mới đây thì ASP.NET cũng đã cho ra đời 1 công nghệ mới đó là ASP.NET core 1.0 Với
sự cập nhật thường xuyên như vậy đã giúp cho ASP.NET MVC ngày nay phát triển mạnh mẽ không thua kém gì các công nghệ lập trình web sử dụng Java và Php
-Cơ chế hoạt động của ASP.NET MVC
Trang 3010
Hình 1 7 Mô phỏng cơ chế hoạt động của ASP.NET MVC
-Dựa vào hình mô phỏng phía trên khái quát sơ qua cơ chế hoạt động của ASP.NET MVC
Bước 1: User gửi 1 yêu cầu tới server bằng cách truyền vào 1 URL trong browser Bước 2: Yêu cầu đó được gửi tới controller đầu tiên, controller sẽ xử lý yêu cầu, nếu yêu cầu cần truy xuất dữ liệu thì controller sẽ chuyển qua tầng model
Bước 3: Tại tầng model, dữ liệu được truy xuất từ database và sau đó truyền qua view thông qua controller
Bước 4: Controller sẽ giúp dữ liệu được chuyển từ model qua view
Bước 5: View là tầng cuối cùng giao tiếp với User, mọi dữ liệu sẽ được hiển thị cho User thông qua tầng View
-Những ưu điểm mà ASP.NET MVC mạng lại:
+Do sử dụng mô hình MVC nên trong ASP.Net MVC đã tách biệt được các tầng trong
mô hình lập trình web vì vậy giúp tối ưu ứng dụng và dễ dàng trong việc viết code, giao diện
+Giao diện trong ASP.Net MVC sử dụng công nghệ thiết kế web HTML, CSS nền việc thiết kế giao diện trở nên dễ dàng và giúp cho designer linh hoạt trong việc thiết
kế
+ASP.Net MVC không sử dụng view state vì vậy trang web không bị tăng kích thước
do đó hiệu năng hoạt động không bị bị giảm
ASP.Net MVC đã khắc phục được các nhược điểm của web forms vì vậy web forms hiện nay không còn được dùng phổ biến nữa
1.2.2 Giới thiệu về NoSQL và MongoDB
1.2.2.1 Giới thiệu về NoSQL
Khi làm việc với database, đã quá quen với SQLServer, MySQL, PostgreSQL, Oracle Điểm chung của những database này là sử dụng ngôn ngữ SQL để truy vấn
dữ liệu Nhưng có 1 dạng database khác với những đặc tính khác biệt được gọi chung dưới cái tên là NoSQL Hãy cùng tìm hiểu xem nó là cái gì, và tại sao nó lại rất phát triển và được nhiều người quan tâm đến vậy
Trang 3111
a Khái niệm về NoSQL
Thuật ngữ NoSQL được giới thiệu lần đầu vào năm 1998 sử dụng làm tên gọi chung cho các lightweight open source relational database (cơ sở dữ liệu quan hệ nguồn mở nhỏ) nhưng không sử dụng SQL cho truy vấn Vào năm 2009, Eric Evans, nhân viên của Rackspace giới thiệu lại thuật ngữ NoSQL trong một hội thảo về cơ sở
dữ liệu nguồn mở phân tán Thuật ngữ NoSQL đánh dấu bước phát triển của thế hệ database mới: distributed (phân tán) + non-relational (không ràng buộc) Đây là 2 đặc tính quan trọng nhất
-Tại sao lại cần phải có NoSQL:
• Sở dĩ người ta phát triển NoSQL xuất phát từ yêu cầu cần những database có khả năng lưu trữ dữ liệu với lượng cực lớn, truy vấn dữ liệu với tốc độ cao mà không đòi hỏi quá nhiều về năng lực phần cứng cũng như tài nguyên hệ thống
và tăng khả năng chịu lỗi
• Đây là những vấn đề mà các relational database không thể giải quyết được
• Lượng dữ liệu mà các hệ thống cần phải xử lý giờ đây ngày 1 lớn Ví dụ như Google, Facebook phải lưu trữ và xử lý một lượng dữ liệu cực lớn mỗi ngày
Hình 1 8 Sự gia tăng của dữ liệu
• Atomicity: Độc lập data state trong các operation
• Consistency: chấp nhận tính nhất quán yếu, có thể không thấy ngay được sự thay đổi mặc dù đã cập nhật dữ liệu