Đăng xuất Luồng sự kiện phụ Mật khẩu không hợp lệ: Khi người dùng nhập sai tên đăng nhập hoặc mật khẩu: a Hệ thống hiển thị lại màn hình đăng nhập kèm dòng thông báo b Quay lại bước
Trang 1Khoa Công nghệ kỹ thuật - Nông nghiệp công nghệ cao
Trình độ đào tạo : Đại học
Ngành : Công nghệ thông tin
Trang 2Em xin gửi lời cảm ơn chân thành và sự tri ân sâu sắc đối với các thầy
cô của trường Đại học Bà Rịa- Vũng Tàu, đặc biệt là các thầy cô khoa Công nghệ kỹ thuật - Nông nghiệp công nghệ cao của trường đã tạo điều kiện cho em có thể được làm đồ án tốt nghiệp Và em cũng xin chân thành
cảm ơn giảng viên TS.Phan Nhật Hoàng đã nhiệt tình hướng dẫn hướng
dẫn em hoàn thành đồ án Trong quá trình làm đồ án, khó tránh khỏi sai sót, rất mong các thầy, cô bỏ qua Đồng thời do trình độ lý luận cũng như kinh nghiệm thực tiễn còn hạn chế nên bài báo cáo không thể tránh khỏi những thiếu sót, em rất mong nhận được ý kiến đóng góp thầy, cô để em học thêm được nhiều kinh nghiệm và sẽ hoàn thành tốt hơn
Em xin chân thành cảm ơn!
Trang 3
Ngày tháng năm
GIÁO VIÊN HƯỚNG DẪN (Ký và ghi rõ họ tên)
Trang 4Trong thời đại công nghiệp 4.0 - thời đại của hệ thống vật lý không gian mạng internet Nghĩa là mọi vật, mọi việc đều liên quan đến công nghệ thông tin Thời đại công nghiệp 4.0 giúp cho mọi việc được tiện lợi hơn thông qua internet, điều này giúp cho mọi người tiết kiệm được thời gian
đi lại
Hiện nay trên thế giới nói chung và Việt Nam nói riêng, đã xuất hiện rất nhiều website học tập trực tuyến Ở đó, người dùng có thể đăng ký, học những khóa học trực tuyến mà không bị phụ thuộc quá nhiều đến thời gian của khóa học Họ có thể học bất cứ lúc nào họ muốn miễn là bài giảng đó vẫn còn tồn tại trên hệ thống Hình thức học trực tuyến này ngày nay đang được mọi người hưởng ứng rất lớn, nhất là trong thời đại công nghiệp số hóa như hiện nay
Để có thể đáp ứng được những yêu cầu của một website học tập trực tuyến cần phải đáp ứng được rất nhiều yếu tố như dữ liệu lưu trữ, giao diện bắt mắt, dễ sử dụng, …
Nắm bắt được xu thế hiện nay, em quyết định chọn đề tài là “Xây dựng
một webíte học tập trực tuyến bằng Asp.net Core” để làm đề tài cho đồ án
tốt nghiệp của em
Em có thể thấy rằng Asp.net Core là mã nguồn web tốt cùng với C# có thể giúp em trong việc đa nền tảng Và do Asp.net là một đứa con của Microsoft nên nó cũng được sự hậu thuẫn mạnh mẽ từ những plugin của Microsoft và Sql server
Đó là lý do em chọn đề tài và mã nguồn này để làm báo cáo cho đồ án tốt nghiệp cảu em
Trang 51.1 G IỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH C# 8
1.2 Đ ẶC TRƯNG CỦA NGÔN NGỮ LẬP TRÌNH C# 8
1.2.1 C# là ngôn ngữ đơn giản 8
1.2.2 C# là ngôn ngữ hiện đại 8
1.2.3 C# là một ngôn ngữ lập trình thuần hướng đối tượng 8
1.2.4 C# là một ngôn ngữ ít từ khóa 8
1.3 C ÁC ƯU ĐIỂM CỦA NGÔN NGỮ LẬP TRÌNH C# 9
1.4 Ứ NG DỤNG CỦA NGÔN NGỮ LẬP TRÌNH C# 9
1.4.1 Ứng dụng trên Windows 9
1.4.2 Ứng dụng Web 9
CHƯƠNG 2 NỀN TẢNG NET 10
2.1 G IỚI THIỆU VỀ NET 10
2.2 C ÁC CÔNG NGHỆ NET CHO PHÁT TRIỂN ỨNG DỤNG 10
2.2.1 Công nghệ dựa trên NET Framework: 10
2.2.2 Công nghệ phát triển ứng dụng mobile: 11
2.2.3 Công nghệ dựa trên NET Core: 11
2.3 C ÁC NỀN TẢNG CÔNG NGHỆ NET 11
2.3.1 .NET Framework 11
2.3.2 .NET Core 11
CHƯƠNG 3 XÂY DỰNG WEBSITE BẰNG ASP.NET CORE 12
3.1 Y ÊU CẦU ĐẶT RA 12
3.2 P HÂN TÍCH THIẾT KẾ HỆ THỐNG 12
3.2.1 Các đối tượng chính có trong Website 12
3.2.2 Các chức năng của hệ thống 12
3.3 P HÂN TÍCH THIẾT KẾ HỆ THỐNG 14
3.4 Đ ẶC TẢ U SE -C ASE 19
3.4.1 Đăng nhập 19
3.4.2 Đăng xuất 20
3.4.3 Đăng ký mới 21
3.4.4 Xem toàn bộ khóa học 22
3.4.5 Xem tổng hợp bài giảng của khóa học 23
3.4.6 Đăng ký khóa học 24
3.4.7 Xem danh mục khóa học đã đăng ký 25
3.4.8 Hủy đăng ký khóa học 26
3.4.9 Xem bài giảng 27
3.4.10 Download bài giảng 28
3.4.11 Phản hồi bài giảng cho người quản trị 29
3.4.12 Xem thông tin cá nhân 30
3.4.13 Chỉnh sửa thông tin của người dùng 31
3.4.14 Người dùng đổi mật khẩu 32
3.4.15 Thêm khóa học mới 33
3.4.16 Đăng xuất khỏi hệ thống 34
Trang 63.4.17 Cập nhật (chỉnh sửa) thông tin khóa học 35
3.4.18 Thêm bài giảng mới 36
3.4.19 Chỉnh sửa (cập nhật) bài giảng 37
3.4.20 Xóa bài giảng 38
3.4.21 Tổng hợp người dùng 39
3.4.22 Xem tổng hợp phản hồi 40
3.4.23 Phân loại phản hồi 41
3.4.24 Xem phản hồi 42
3.4.25 Xác nhận phản hồi 43
3.4.26 Hoàn thành phản hồi 44
3.4.27 Xóa phản hồi 45
3.4.28 Tổng hợp bài giảng 46
3.4.29 Reset mật khẩu/ Quên mật khẩu 47
3.4.30 Tìm kiếm khóa học/ bài giảng 48
3.5 X ÂY DỰNG CƠ SỞ DỮ LIỆU 48
3.5.1 Các lớp đối tượng có trong CSDL 48
3.5.2 Mô hình quan hệ 53
3.6 K ẾT QUẢ 54
3.6.1 Các chức năng của User (Người dùng chưa đăng nhập) 54
3.6.2 Các chức năng của User (Người dùng đã đăng nhập) 60
3.6.3 Các chức năng của Admin 71
3.6.4 Giao diện báo lỗi 78
CHƯƠNG 4 KẾT LUẬN 79
4.1 K ẾT QUẢ ĐẠT ĐƯỢC 79
4.2 H ƯỚNG PHÁT TRIỂN 79
CHƯƠNG 5 TÀI LIỆU THAM KHẢO 80
CHƯƠNG 6 PHỤ LỤC 81
6.1 C ODE XỬ LÝ 81
6.1.1 File AdminController.cs 81
6.1.2 File LessonsController.cs 84
6.1.3 File CoursesController.cs 106
6.1.4 File ReportController.cs 129
6.1.5 File UsersController.cs 143
6.1.6 File HomeController.cs 155
6.1.7 File AdminResponsoitory.cs 166
6.1.8 File Courses_Responsitory.cs 168
6.1.9 File Lessons_Responsitory 174
6.1.10 File Report_Responsitory.cs 182
6.1.11 File Users_Responsitory.cs 189
6.1.12 File SeandEmail.cs 195
6.1.13 File Session_.cs 200
6.1.14 File Admin_Model.cs 203
6.1.15 File Courses_Model 204
6.1.16 File CoursesViewModel.cs 206
6.1.17 File ErrorViewModel.cs 206
Trang 76.1.18 File Lessons_Model.cs 207
6.1.19 File LessonViewModel.cs 209
6.1.20 File RawCourse_Model.cs 210
6.1.21 File ReportModel.cs 212
6.1.22 File ReportViewModel.cs 212
6.1.23 File StatusReport.cs 214
6.1.24 File Users_Courses_Model.cs 214
6.1.25 File Users_Model.cs 215
6.1.26 File Users_Report.cs 217
6.2 S Ơ ĐỒ CẤU TRÚC 218
6.2.1 Xây dựng website bán hàng bằng Asp.net Core 218
6.2.2 Thư mục wwwroot 218
6.2.3 Thư mục Areas 218
6.2.4 Thư mục Controllers 219
6.2.5 Thư mục View 219
6.2.6 Thư mục Migration 220
6.2.7 Thư mục Models 220
6.2.8 Thư mục Services 221
6.3 C ÁC E XTEND SỬ DỤNG TRONG WEBSITE 221
6.3.1 Mailkit 221
6.3.2 AspNetCore.Session 223
Trang 8SVTH: NGUYỄN HOÀNG THIÊN ÂN 8
Chương 1 Ngôn ngữ C#
1.1 Giới thiệu về ngôn ngữ lập trình C#
C# là một ngôn ngữ lập trình hướng đối tượng được phát triển bởi Tập đoàn Microsoft Nó hiện thực hầu hết các tính chất tốt của mô hình hướng đối tượng giống như ngôn ngữ lập trình Java C# là ngôn ngữ được Microsoft phát triển dựa trên 2 ngôn ngữ huyền thoại đó là C++ và Java
C# làm việc chủ yếu trên bộ khung NET (.NET framework) Ngôn ngữ lập trình này có khả năng tạo ra nhiều ứng dụng mạnh mẽ và an toàn cho nền tảng Windows Các thành phần máy chủ, dịch vụ web, ứng dụng di động và nhiều khả năng khác nữa
1.2 Đặc trưng của ngôn ngữ lập trình C#
1.2.1 C# là ngôn ngữ đơn giản
C# loại bỏ một vài sự phức tạp và rối rắm của những ngôn ngữ như Java
và c++, bao gồm việc loại bỏ những macro, những template, đa kế thừa, và lớp cơ sở ảo (virtual base class)
1.2.2 C# là ngôn ngữ hiện đại
Những đặc tính như là xử lý ngoại lệ, thu gom bộ nhớ tự động, những kiểu
dữ liệu mở rộng, và bảo mật mã nguồn là những đặc tính được mong đợi trong một ngôn ngữ hiện đại C# chứa tất cả những đặc tính trên
1.2.3 C# là một ngôn ngữ lập trình thuần hướng đối tượng
Lập trình hướng đối tượng (OOP: Object-oriented programming) là một phương pháp lập trình có 4 tính chất Đó là tính trừu tượng (abstraction), tính đóng gói (encapsulation), tính đa hình (polymorphism) và tính kế thừa (inheritance) C# hỗ trợ cho chúng ta tất cả những đặc tính trên
1.2.4 C# là một ngôn ngữ ít từ khóa
C# là ngôn ngữ sử dụng giới hạn những từ khóa Phần lớn các từ khóa được
sử dụng để mô tả thông tin Một số ưu điểm nổi bật khác của C#
• C# có cấu trúc khá gần gũi với các ngôn ngữ lập trình truyền thống, nên cũng khá dễ dàng tiếp cận và học nhanh với C#
• C# có thể biên dịch trên nhiều nền tảng máy tính khác nhau
• C# được xây dựng trên nền tảng của C++ và Java nên nó được thừa hưởng những ưu điểm của ngôn ngữ đó
Trang 9SVTH: NGUYỄN HOÀNG THIÊN ÂN 9
• C# là một phần của NET Framework nên được sự chống lưng khá lớn đến từ bộ phận này
• C# có IDE Visual Studio cùng nhiều plug-in vô cùng mạnh mẽ
1.3 Các ưu điểm của ngôn ngữ lập trình C#
• C# là ngôn ngữ gần gũi với các ngôn ngữ lập trình thông dụng như C++, Java hay Pascal
• C # được hỗ trợ bởi một cộng đồng các nhà phát triển lớn
• C# có thể được sử dụng để tạo ra hầu hết mọi ứng dụng
1.4 Ứng dụng của ngôn ngữ lập trình C#
1.4.1 Ứng dụng trên Windows
Với sự hỗ trợ của bộ khung NET, C# đã được sử dụng để xây dựng các ứng dụng trên desktop Nhiều ứng dụng phổ biến có thể tham khảo như Microsoft Office, Skype, Photoshop hay Visual Studio
1.4.2 Ứng dụng Web
Ngoài việc xây dựng các ứng dụng trên Windows, C# còn có khả năng tạo
ra nhiều ứng dụng web bằng cách sử dụng asp.net C# có thể làm cho ứng dụng web chạy trơn tru trên một máy chủ
Hình1-1 Ngôn ngữ lập trình C#
Trang 10SVTH: NGUYỄN HOÀNG THIÊN ÂN 10
Chương 2 Nền tảng NET
2.1 Giới thiệu về NET
.NET là một nền tảng (framework) cho phép các ngôn ngữ lập trình khác
có thể sử dụng để xây dựng các ứng dụng được phát triển bởi Microsoft Đây cũng là một nền tảng thực thi ứng dụng và phát triển web chủ yếu trên
hệ điều hành Microsoft Windows
Cốt lõi của nền tảng NET là một bộ những dòng code được viết sẵn (bởi các lập trình viên Microsoft) mà các lập trình viên có thể sử dụng để tạo các phần mềm một cách nhanh chóng hơn Do đó, nền tảng NET được xem là một công cụ bổ sung giúp tiết kiệm thời gian xây dựng, triển khai
và chạy các ứng dụng và dịch vụ Web
2.2 Các công nghệ NET cho phát triển ứng dụng
2.2.1 Công nghệ dựa trên NET Framework:
• Phát triển ứng dụng cho Windows desktop: Windows Forms,
Windows Presentation Foundation (WPF), Universal Windows Platform (UWP)
• Phát triển ứng dụng web: Active Server Page for NET (ASP.NET),
bao gồm ASP.NET MVC, ASP.NET Web Forms, ASP.NET WebPages, SignalR
• Phát triển ứng dụng phân tán, ứng dụng hướng dịch vụ: Windows
Communications Foundation, ASP.NET Web API, ASP.NET Core
• Hỗ trợ làm việc với CSDL: ActiveX Data Object for NET
(ADO.NET)
• Sharepoint
Hình 2.1-1 Net
Trang 11SVTH: NGUYỄN HOÀNG THIÊN ÂN 11
2.2.2 Công nghệ phát triển ứng dụng mobile:
• Xamarin (đa nền tảng)
2.2.3 Công nghệ dựa trên NET Core:
• Phát triển ứng dụng web: ASP.NET Core (bao gồm MVC, API,
Razor Pages, Blazer)
2.3 Các nền tảng công nghệ NET
2.3.1 NET Framework
• NET Framework là nền tảng hoàn toàn dành cho Windows Đây
là nền tảng được sử dụng rộng rãi nhất nếu phát triển ứng dụng chạy trên windows, dù là ứng dụng desktop hay web
• NET Framework là cái nền để trên đó Microsoft xây dựng các bộ
thư viện cho từng công nghệ cụ thể như Windows Forms, WPF, ASP.NET
2.3.2 NET Core
• Net Core có cùng nguyên lý và ý tưởng với NET Framework
nhưng hướng tới hoạt động trên đa nền tảng, tính module hóa và hiệu
suất cao hơn .NET Core có thể triển khai trên Linux, Mac OS và
Windows
• NET Core là một công nghệ mới và chưa đạt được mức độ hỗ trợ
tốt như NET Framework Nhiều thư viện quan trọng trên NET
Framework chưa có bản tương ứng trên NET Core, nhất là mảng
ứng dụng web
Trang 12SVTH: NGUYỄN HOÀNG THIÊN ÂN 12
Chương 3 Xây dựng Website bằng ASP.NET Core
3.1 Yêu cầu đặt ra
• Xây dựng được một Website học tập sử dụng ngôn ngữ C# trên nền tảng ASP.NET Core
• Xây dựng được CSDL dựa trên những thông tin thu thập được
• Biết cách mô tả dữ liệu thu thập được dưới dạng Class Model
• Xây dựng được các chức năng của một ứng dụng website học tập theo yêu cầu đã đặt ra
• Xây dựng được các chức năng cơ bản của quyền Admin website như thêm, sửa, xóa, quản lý thông tin, …
• Xây dựng được một giao diện phù hợp, thân thiện với người sử dụng
• Xây dựng được một giao diện, phân bố đầy đủ các chức năng và thân thiện với người quản lý
• Lưu trữ được thông tin về người dùng đã đăng ký tài khoản (User),
khóa học, bài học…
3.2 Phân tích thiết kế hệ thống
3.2.1 Các đối tượng chính có trong Website
Có 3 đối tượng chính có trong Website:
• Guest (người dùng chưa đăng nhập)
• User (người dùng đã đăng ký tài khoản)
• Xem nội dung bài giảng
• Xem tổng hợp khóa học có trong hệ thống
• Xem tổng hợp khóa học đã đăng ký
• Hủy đăng ký khóa học đã đăng ký
• Báo cáo nội dung bài học
• Reset mật khẩu
• Download nội dung bài giảng
• Nhận mail đổi mật khẩu
Trang 13SVTH: NGUYỄN HOÀNG THIÊN ÂN 13
• Nhận mail reset mật khẩu
• Nhận mail đăng ký thành công
• Thêm bài giảng vào khóa học
• Xóa bài giảng khỏi khóa học
• Xem toàn bộ User đã đăng ký vào hệ thống
• Xem nội dung bài giảng
• Xem tổng hợp khóa học
• Xem tổng hợp bài giảng
• Xem tổng hợp bài giảng theo khóa học
• Xem tổng hợp phản hồi
• Xem phản hồi theo phân loại
• Xem phản hồi của bài học
• Nhận mail phản hồi của user về khóa học
• Chỉnh sửa bài giảng
• Thống kê số lượng phản hồi theo bài giảng
• Xem thông tin của User đã đăng ký tài khoản
• Đăng xuất khỏi hệ thống
• Tìm kiếm khóa học
• Tìm kiếm bài giảng
• Xem số lượng User đã đăng ký khóa học
3.2.3 Khách hàng chưa đăng nhập (Guest)
• Xem tổng hợp khóa học có trong hệ thống
• Xem tổng hợp bài giảng của khóa học
• Đăng ký tài khoản/ mật khẩu
• Đăng nhập
• Tìm kiếm khóa học
• Tìm kiếm bài giảng
Trang 14SVTH: NGUYỄN HOÀNG THIÊN ÂN 14
3.3 Phân tích thiết kế hệ thống
3.3.1 Sơ đồ Use-Case
3.3.1.1 Sơ đồ Use-Case tổng quát
3.3.1.2
Trang 15SVTH: NGUYỄN HOÀNG THIÊN ÂN 15
Trang 16SVTH: NGUYỄN HOÀNG THIÊN ÂN 16
3.3.1.3 Sơ đồ Use-Case chi tiết
a Nhóm đối tượng Guest
Trang 17SVTH: NGUYỄN HOÀNG THIÊN ÂN 17
b Nhóm đối tượng User
Trang 18SVTH: NGUYỄN HOÀNG THIÊN ÂN 18
c Nhóm đối tượng Admin
Trang 19SVTH: NGUYỄN HOÀNG THIÊN ÂN 19
3.4 Đặc tả Use-Case
3.4.1 Đăng nhập
Tên Use-Case Đăng nhập
Mô tả
Use-Case cho phép người dùng chưa đăng nhập vào hệ thống website để thực hiển các chức năng của mình
Điều kiện kích hoạt Khi người dùng chọn chức năng đăng nhập từ trang chủ của website
Actor Người dùng chưa đăng nhập vào hệ thống
Tiền điều kiện Admin hoặc người dùng đã có tài khoản trên hệ thống website
Hậu điều kiện Người dùng đăng nhập thành công
Luồng sự kiện chính
a) Website hiện thị trang đăng nhập b) Người dùng nhập tên đăng nhập và mật khẩu
c) Hệ thống kiểm tra và hiển thị thông tin đăng nhập
d) Nếu thành công sẽ chuyển về trang chủ cùng với session là người dùng
e) Kết thúc use-case
Trang 20SVTH: NGUYỄN HOÀNG THIÊN ÂN 20
3.4.2 Đăng xuất
Luồng sự kiện phụ
Mật khẩu không hợp lệ: Khi người dùng nhập
sai tên đăng nhập hoặc mật khẩu:
a) Hệ thống hiển thị lại màn hình đăng nhập kèm dòng thông báo
b) Quay lại bước 2 trong luồng sự kiện chính
Tên Use-Case Đăng xuất
Mô tả Use-Case cho phép Admin hoặc người dùng đã đăng nhập vào website để có thể kết thúc phiên
Tiền điều kiện Admin hoặc người dùng đã có tài khoản trên hệ thống website
Hậu điều kiện Người dùng đăng nhập thành công
Luồng sự kiện chính
a) Người dùng nhấn vào nút đăng xuất nằm
ở trên màn hình website b) Hệ thống sẽ clear session của Admin hoặc người dùng đã đăng nhập và trả về màn hình trang chủ website
c) Kết thúc use-case
Luồng sự kiện phụ không
Trang 21SVTH: NGUYỄN HOÀNG THIÊN ÂN 21
3.4.3 Đăng ký mới
Tên Use-Case Đăng ký mới
Mô tả Use-Case cho phép người dùng đăng ký mới tài khoản, mật khẩu
Điều kiện kích hoạt Khi người dùng nhấn vào nút đăng ký mới trên
• Người dùng nhấn vào nút đăng ký mới
• Hệ thống sẽ chuyển sang trang đăng ký tài khoản mới
• Người dùng nhập các thông tin mà hệ thống yêu cầu
• Hệ thống sẽ kiểm tra thông tin người dùng
• Nếu thành công sẽ chuyển về trang chủ cùng với session là người dùng
b) Quay lại bước 3 trong luồng sự kiện chính
Trang 22SVTH: NGUYỄN HOÀNG THIÊN ÂN 22
3.4.4 Xem toàn bộ khóa học
Tên Use-Case Xem toàn bộ khóa học
Mô tả
Use-Case cho phép người dùng chưa đăng ký tài khoản, người dùng đã đăng ký tài khoản, Admin xem toàn bộ khóa học có trong hệ thống
Điều kiện kích hoạt
Khi người dùng nhấn vào Tổng hợp khóa học
ở thanh Navigation Bar
Admin nhấn vào Phần Tổng hợp khóa học ở phần Menu điều hướng
Actor Người dùng có hoặc chưa có tài khoản của
3 Kết thúc use-case
Luồng sự kiện phụ không
Trang 23SVTH: NGUYỄN HOÀNG THIÊN ÂN 23
3.4.5 Xem tổng hợp bài giảng của khóa học
Tên Use-Case Xem tổng hợp bài giảng của khóa học
Mô tả Use-Case cho phép người dùng đã có tài khoản hoặc chưa có tài khoản xem toàn bộ bài giảng
có trong khóa học
Điều kiện kích hoạt Khi người dùng nhấn vào xem bài giảng ở phần khóa học
Actor Người dùng có hoặc chưa có tài khoản của
2 Ở trang “Tổng hợp khóa học” người
dùng nhấn vào nút Xem chi tiết để vào trang “Tổng hợp nội dung bài giảng của khóa học”
3 Hệ thống sẽ chuyển người dùng đến trang tổng hợp khóa học
4 Kết thúc use-case
Luồng sự kiện phụ không
Trang 24SVTH: NGUYỄN HOÀNG THIÊN ÂN 24
3.4.6 Đăng ký khóa học
Tên Use-Case Đăng ký khóa học
Mô tả Use-Case cho phép người dùng đã đăng nhập vào hệ thống để đăng ký khóa học
Điều kiện kích hoạt Khi người dùng nhấn vào nút đăng ký ở trang “Tổng hợp bài giảng của khóa học”
Actor Người dùng đã đăng nhập vào hệ thống
1 Người dùng nhấn vào nút đăng ký ở
trang “Tổng hợp bài giảng của khóa học”
2 Hệ thống sẽ kiểm tra người dùng đã đăng nhập vào hệ thống hay chưa
3 Nếu người dùng đã đăng nhập vào hệ thống thì hệ thống sẽ lưu khóa học này
vào phần “Khóa học đã đăng kí” và
load lại trang hiện tại
4 Kết thúc use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống
1 Hệ thống chuyển đến trang đăng nhập
để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 25SVTH: NGUYỄN HOÀNG THIÊN ÂN 25
3.4.7 Xem danh mục khóa học đã đăng ký
Tên Use-Case Xem tổng hợp khóa học đã đăng ký
Mô tả
Use-Case cho phép người dùng đã đăng nhập vào hệ thống để xem tổng hợp khóa học đã đăng ký
Điều kiện kích hoạt Khi người dùng chọn vào phần khóa học đã đăng ký ở phần menu của người dùng
Actor Người dùng đã đăng nhập vào hệ thống
Trang 26SVTH: NGUYỄN HOÀNG THIÊN ÂN 26
3.4.8 Hủy đăng ký khóa học
Tên Use-Case Hủy đăng ký khóa học
Mô tả
Use-Case cho phép người dùng đã đăng nhập vào hệ thống và đã đăng ký khóa học để hủy đăng ký khóa học
Điều kiện kích hoạt Khi người dùng nhấn vào nút Hủy đăng ký ở
trang “Tổng hợp bài giảng của khóa học”
Actor Người dùng đã đăng nhập vào hệ thống
website
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống
website và đã đăng ký khóa học từ trước
Hậu điều kiện Khóa học ở phần “Tổng hợp khóa học đã đăng ký” sẽ bị xóa khỏi danh sách
Luồng sự kiện chính
1 Người dùng nhấn vào nút đăng ký ở
trang “Tổng hợp bài giảng của khóa học”
2 Hệ thống sẽ kiểm tra người dùng đã đăng nhập vào hệ thống hay chưa
3 Nếu người dùng đã đăng nhập vào hệ thống thì hệ thống sẽ xóa khóa học này
khỏi “Khóa học đã đăng ký của người dùng” và load lại trang hiện tại
4 Kết thúc use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống
1 Hệ thống chuyển đến trang đăng nhập
để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 27SVTH: NGUYỄN HOÀNG THIÊN ÂN 27
3.4.9 Xem bài giảng
Tên Use-Case Xem bài giảng
Mô tả Use-Case cho phép người dùng đã đăng nhập vào hệ thống để xem bài giảng
Điều kiện kích hoạt Khi người dùng nhấn vào nút “xem bài giảng”
Actor Người dùng đã đăng nhập vào hệ thống
1 Người dùng nhấn vào nút xem bài giảng
2 Hệ thống sẽ kiểm tra người dùng đã đăng nhập vào hệ thống hay chưa
3 Nếu đã đăng nhập thì sẽ chuyển người dùng sang trang bài giảng
4 Kết thúc use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống
1 Hệ thống chuyển đến trang đăng nhập để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 28SVTH: NGUYỄN HOÀNG THIÊN ÂN 28
3.4.10 Download bài giảng
Tên Use-Case Download bài giảng
Mô tả Use-Case cho phép người dùng đã đăng nhập vào hệ thống download bài giảng
Điều kiện kích hoạt Khi người dùng nhấn vào nút “Download bài giảng” ở trang bài giảng
Actor Người dùng đã đăng nhập vào hệ thống
Người dùng chưa đăng nhập vào hệ thống
1 Hệ thống chuyển đến trang đăng nhập
để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 29SVTH: NGUYỄN HOÀNG THIÊN ÂN 29
3.4.11 Phản hồi bài giảng cho người quản trị
Tên Use-Case Phản hồi bài giảng
Mô tả
Use-Case cho phép người dùng đã đăng nhập vào hệ thống gửi phản hồi về bài giảng cho người quản trị
Điều kiện kích hoạt Khi người dùng nhấn vào nút “gửi báo cáo cho người quản trị.”
Actor Người dùng đã đăng nhập vào hệ thống
1 Ở trang bài giảng, người dùng nhấn vào
nút “gửi báo cáo cho người quản trị.”
2 Hệ thống sẽ kiểm tra người dùng đã đăng nhập vào hệ thống hay chưa
3 Nếu thành công, hệ thống sẽ chuyển
sang trang “gửi báo cáo về bài học”
4 Ở trang “gửi báo cáo về bài học”, người
dùng nhập đầy đủ những thông tin theo form mà hệ thống đã yêu cầu để gửi báo cáo về bài học cho người quản trị
5 Sau khi hoàn tất, người dùng nhấn vào
Người dùng chưa đăng nhập vào hệ thống:
1 Hệ thống chuyển đến trang đăng nhập
để người dùng đăng nhập vào hệ thống
Trang 30SVTH: NGUYỄN HOÀNG THIÊN ÂN 30
3.4.12 Xem thông tin cá nhân
2 Quay lại use-case đăng nhập
Người dùng không nhập đầy đủ thông tin mà form phản hồi yêu cầu:
• Hệ thống sẽ đưa ra thông báo ở những phần mà người dùng nhập thiếu Và yêu cầu người dùng nhập đầy đủ trước khi
nhấn vào nút gửi
• Quay trở lại bước 6 ở luồng sự kiện
chính
Tên Use-Case Xem thông tin cá nhân
Mô tả
Use-Case cho phép người dùng đã đăng nhập vào hệ thống xem thông tin cá nhân của bản thân
Điều kiện kích hoạt Khi người dùng nhấn Xem thông tin ở phần
menu người dùng
Actor Người dùng đã đăng nhập vào hệ thống website
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website
Hậu điều kiện Hệ thống sẽ đưa người dùng đến trang “Xem thông tin cá nhân” của người dùng
Luồng sự kiện chính
1 Ở phần Menu người dùng, khi người
dùng nhấn vào “Xem thông tin cá nhân”
2 Hệ thống sẽ chuyển sang trang “Xem thông tin cá nhân” của người dùng”
3 Kết thúc use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống:
1 Hệ thống chuyển đến trang đăng nhập để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 31SVTH: NGUYỄN HOÀNG THIÊN ÂN 31
3.4.13 Chỉnh sửa thông tin của người dùng
Tên Use-Case Chỉnh sửa thông tin cá nhân của người dùng
Mô tả Use-Case cho phép người dùng đã đăng nhập vào hệ thống thực hiện chỉnh sửa thông tin cá nhân Điều kiện kích
hoạt
Khi người dùng nhấn vào nút chỉnh sửa thông tin cá
nhân ở phần “Thông tin người dùng”
Actor Người dùng đã đăng nhập vào hệ thống website
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website Hậu điều kiện Hệ thống sẽ cập nhật thông tin mới của người dùng
Luồng sự kiện
chính
1 Ở trang “Thông tin người dùng”, người
dùng chọn vào nút chỉnh sửa thông tin cá nhân
2 Hệ thống sẽ chuyển sang trang chỉnh sửa thông tin cá nhân và cho người dùng thay đổi những thông tin cần thay đổi Và xác nhận bằng việc nhập đúng mật khẩu của người dùng
3 Nếu thành công hệ thống sẽ lưu lại thông tin
cá nhân mà người dùng mới nhập
4 Kết thúc use-case
Luồng sự kiện
phụ
TH 1: Người dùng chưa đăng nhập vào hệ thống:
1 Hệ thống chuyển đến trang đăng nhập để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
TH 2: Người dùng nhập không đầy đủ những thông
tin mà hệ thống yêu cầu
• Hệ thống đưa ra thông báo yêu cầu người dùng nhập đầy đủ thông tin
• Quay lại bước 2 của luồng sự kiện chính
TH 3: Người dùng nhập sai mật khẩu xác nhận
1 Hệ thống sẽ đưa ra thông báo yêu cầu người dùng nhập đúng mật khẩu hiện tại của tài khoản
2 Quay lại bước 3 ở luồng sự kiện chính
Trang 32SVTH: NGUYỄN HOÀNG THIÊN ÂN 32
3.4.14 Người dùng đổi mật khẩu
Tên Use-Case Đổi mật khẩu
Mô tả
Use-Case cho phép người dùng đã đăng nhập vào hệ thống thực hiện đổi mật khẩu của người
dùng
Điều kiện kích hoạt Khi người dùng nhấn vào đổi mật khẩu ở menu người dùng
Actor Người dùng đã đăng nhập vào hệ thống website
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website
Hậu điều kiện
Hệ thống sẽ cập nhật lại mật khẩu của người dùng và gửi mail thông báo đổi mật khẩu đến cho người dùng
4 Nếu thành công, hệ thống sẽ cập nhật lại mật khẩu và gửi thông báo xác nhận thành công cho người dùng
5 Kết thúc use-case
Luồng sự kiện phụ
TH 1: Người dùng nhập sai mật khẩu cũ
1 Hệ thống sẽ đưa ra thông báo yêu cầu người dùng nhập lại toàn bộ form
2 Quay lại bước 3 của luồng sự kiện chính
TH 2: Mật khẩu mới và xác nhận mật khẩu
Trang 33SVTH: NGUYỄN HOÀNG THIÊN ÂN 33
3.4.15 Thêm khóa học mới
Tên Use-Case Thêm khóa học mới
Mô tả Use-case cho phép Admin thêm mới một khóa học
Điều kiện kích hoạt Khi người dùng dưới quyền Admin nhấn vào “Thêm khóa học mới”
Actor Người dùng đã đăng nhập vào hệ thống website
dưới quyền Admin
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website dưới quyền Admin
Hậu điều kiện Hệ thống sẽ lưu trữ khóa học mới thêm vào
CSDL
Luồng sự kiện chính
1 Admin nhấn vào “Thêm khóa học mới”
ở menu bên trái
2 Hệ thống yêu cầu nhập đầy đủ thông tin theo form hệ thống yêu cầu
3 Nếu thành công, hệ thống sẽ đưa ra thông
báo Thêm mới khóa học thành công
4 Kết thúc use-case
Luồng sự kiện phụ
Nhập không đầy đủ thông tin mà form yêu cầu
1 Hệ thống sẽ đưa ra thông báo yêu cầu nhập đầy đủ thông tin theo form yêu cầu
2 Quay lại bước 2 của luồng sự kiện chính
Trang 34SVTH: NGUYỄN HOÀNG THIÊN ÂN 34
3.4.16 Đăng xuất khỏi hệ thống
Tên Use-Case Đăng xuất
Mô tả
Use-case cho phép người dùng và Admin đã đăng nhập vào hệ thống đăng xuất ra khỏi hệ thống
Điều kiện kích hoạt Khi ngươi dùng/Admin nhấn vào nút đăng xuất
Actor Người dùng và Admin đã đăng nhập vào hệ
thống
Tiền điều kiện Người dùng và Admin đã đăng nhập vào hệ thống
Hậu điều kiện Tài khoản người dùng/Admin sẽ được đăng xuất ra khỏi hệ thống
Luồng sự kiện chính
• Ở menu điều hướng của người dùng/ Admin,
khi mà người dùng/admin nhấn vào nút đăng xuất
• Tài khoản của người dùng/Admin sẽ được
đăng xuất khỏi hệ thống và kết thúc phiên làm việc
• Kết thúc use-case
Luồng sự kiện phụ không
Trang 35SVTH: NGUYỄN HOÀNG THIÊN ÂN 35
3.4.17 Cập nhật (chỉnh sửa) thông tin khóa học
Tên Use-Case Chỉnh sửa thông tin khóa học
Mô tả Use-case cho phép Admin cập nhật lại thông tin khóa học
Điều kiện kích hoạt Khi Admin nhấn vào nút chỉnh sửa ở trang “Tổng hợp các khóa học”
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website dưới quyền Admin
Hậu điều kiện Hệ thống sẽ cập nhật lại thông tin khóa học vào
CSDL
Luồng sự kiện chính
1 Ở trang “Tổng hợp khóa học”, khi nhấn
vào nút Chỉnh sửa , hệ thống sẽ chuyển
sang trang “Chỉnh sửa thông tin khóa học”
2 Hệ thống sẽ yêu cầu điền đầy đủ thông tin theo form yêu cầu
3 Nếu thành công hệ thống sẽ chuyển sang
trang “Tổng hợp khóa học”
4 Kết thúc use-case
Luồng sự kiện phụ
Nhập không đủ hay không phù hợp những thông
tin của khóa học
1 Hệ thống sẽ yêu cầu nhập lại những thông tin còn thiếu hay không phù hợp bằng việc xuất thông báo ra màn hình
2 Quay trở lại bước 2 ở luồng sự kiện chính
Trang 36SVTH: NGUYỄN HOÀNG THIÊN ÂN 36
3.4.18 Thêm bài giảng mới
Tên Use-Case Thêm bài giảng mới
Mô tả Use-case cho phép Admin thêm mới bài giảng vào khóa học đã chọn
Điều kiện kích hoạt
Khi người dùng dưới quyền Admin nhấn vào
“Thêm bài giảng mới” ở trang “Tổng hợp bài giảng của khóa học”
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website dưới quyền Admin
Hậu điều kiện Hệ thống sẽ thêm bài giảng mới vào CSDL
Luồng sự kiện chính
1 Ở trang “Tổng hợp bài giảng của khóa học” dưới quyền Admin, khi nhấn vào
Thêm bài giảng mới
2 Hệ thống sẽ chuyển Admin sang trang
Thêm mới bài giảng
3 Admin phải nhập đầy đủ thông tin mà form yêu cầu
4 Nếu thành công hệ thống sẽ lưu khóa học mới vào CSDL và đưa người dùng trở lại
trang “Tổng hợp bài giảng của khóa học”
Trang 37SVTH: NGUYỄN HOÀNG THIÊN ÂN 37
3.4.19 Chỉnh sửa (cập nhật) bài giảng
Tên Use-Case Chỉnh sửa bài giảng
Mô tả Use-case cho phép Admin chỉnh sửa bài giảng
Điều kiện kích hoạt Khi người dùng dưới quyền Admin nhấn vào nút “Cập nhật bài giảng”
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website dưới quyền Admin
Hậu điều kiện Hệ thống sẽ cập nhật lại dữ liệu bài giảng trên
CSDL
Luồng sự kiện chính
1 Ở trang “Tổng hợp bài giảng khóa học” nhấn vào nút Sửa hoặc ở trang “Bài giảng” nhấn vào nút Cập nhật/ chỉnh sửa
4 Nếu thành công hệ thống sẽ đưa người
dùng về trang “Bài giảng”
5 Kết thúc use-case
Luồng sự kiện phụ
Thông tin nhập vào không hợp lệ hoặc thiếu
1 Hệ thống sẽ đưa ra thông báo thông tin nhập vào không phù hợp hoặc không đủ thông tin
2 Quay trở lại bước 3 của luồng sự kiện chính
Trang 38SVTH: NGUYỄN HOÀNG THIÊN ÂN 38
3.4.20 Xóa bài giảng
Tên Use-Case Xóa bài giảng
Mô tả Use-case cho phép Admin xóa bài giảng khỏi khóa học
Điều kiện kích hoạt Khi Admin nhấn vào nút Xóa ở trang “Tổng hợp bài giảng khóa học”
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website
dưới quyền Admin
Hậu điều kiện Hệ thống sẽ xóa bài giảng khỏi CSDL
Luồng sự kiện chính
1 Ở trang “Tổng hợp bài giảng khóa học”
khi Admin nhấn vào nút Xóa
2 Hệ thống sẽ xóa bài giảng mà Admin vừa chọn khỏi CSDL và reload lại trang
“Tổng hợp bài giảng khóa học”
3 Kết thúc Use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống:
1 Hệ thống chuyển đến trang đăng nhập để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 39SVTH: NGUYỄN HOÀNG THIÊN ÂN 39
3.4.21 Tổng hợp người dùng
Tên Use-Case Tổng hợp người dùng
Mô tả Use-case cho phép Admin xem tất cả người dùng có trong hệ thống
Điều kiện kích hoạt Khi người dùng dưới quyền Admin nhấn vào “Tổng hợp người dùng” ở Menu điều hướng
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website dưới quyền Admin
Hậu điều kiện Hệ thống trả về trang “Tổng hợp người dùng”
Luồng sự kiện chính
1 Dưới quyền Admin, khi người dùng nhấn
vào Tổng hợp người dùng ở phần Menu
điều hướng, hệ thống sẽ chuyển người
dùng đến trang “Tổng hợp người dùng”
2 Kết thúc Use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống:
1 Hệ thống chuyển đến trang đăng nhập để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập
Trang 40SVTH: NGUYỄN HOÀNG THIÊN ÂN 40
3.4.22 Xem tổng hợp phản hồi
Tên Use-Case Xem tổng hợp phản hồi
Mô tả Use-case cho phép Admin xem tổng hợp phản hồi có trên hệ thống
Điều kiện kích hoạt Khi người dùng dưới quyền Admin nhấn vào “Tổng hợp phản hồi” trên thanh Menu
Tiền điều kiện Người dùng đã đăng nhập vào hệ thống website dưới quyền Admin
Hậu điều kiện Hệ thống trả về trang “Tổng hợp phản hồi”
Luồng sự kiện chính
1 Dưới quyền Admin, khi người dùng nhấn
vào Tổng hợp phản hồi ở phần Menu điều
hướng, hệ thống sẽ chuyển người dùng
đến trang “Tổng hợp phản hồi”
2 Kết thúc Use-case
Luồng sự kiện phụ
Người dùng chưa đăng nhập vào hệ thống:
1 Hệ thống chuyển đến trang đăng nhập để người dùng đăng nhập vào hệ thống
2 Quay lại use-case đăng nhập