Professional Documents
Culture Documents
18T1021354 KLTN
18T1021354 KLTN
18T1021354 KLTN
KHOÁ LUẬN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
XÂY DỰNG WEBAPP HỖ TRỢ HỌC TIẾNG
ANH ONLINE BẰNG ASP .NET CORE MVC
Huế, 05 – 2022
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN
----------
KHOÁ LUẬN
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
XÂY DỰNG WEBAPP HỖ TRỢ HỌC TIẾNG
ANH ONLINE BẰNG ASP .NET CORE MVC
Huế, 05 – 2022
XÂY DỰNG WEBAPP HỖ TRỢ HỌC TIẾNG ANH ONLINE BẰNG ASP .NET CORE
LỜI CẢM ƠN
Đầu tiên, em xin được gửi lời cảm ơn đến thầy Trần Công Mẫn trong thời
gian qua đã giúp em hoàn thành bài khoá luận này, cũng như chỉ bảo và giúp đỡ
em rất nhiều về học tập và cuộc sống.
Và ngoài ra, em cũng rất biết ơn đến các giảng viên của Trường Đại học
Khoa Học nói chung và các giảng viên trong suốt thời gian 4 năm học đại học
của em nói riêng. Cảm ơn quý thầy cô đã tạo điều kiện, tiền đề cơ sở cho con
đường học tập cũng như công việc sau này của em được tốt đẹp. Với những kiến
thức, phương pháp học tập và kỹ năng sống được thầy cô truyền dạy đã giúp em
phát triển. Một lần nữa, em xin chân thành cảm ơn các thầy cô – những người
cha/người mẹ trên giảng đường học tập của chúng em.
Em cũng xin được cảm ơn bạn bè, đã luôn tạo điều kiện, quan tâm, giúp
đỡ, động viên em trong suốt quá trình học tập và hoàn thành khoá luận tốt
nghiệp.
Với vốn kiến thức và kỹ năng của em, cùng với khoảng thời gian được cho
phép, em đã cố gắng hoàn thành bài khóa luận đúng tiến độ. Với những thứ em
đang sở hữu kiến thức hay kỹ năng đều vẫn còn hạn hẹp và chưa được mài dũa
nhiều, thiếu sót là không thể tránh khỏi, cũng như mắc những sai sót trong bài
báo cáo. Sự đóng góp, ý kiến của thầy cô là lời chỉ bảo quý giá mà em rất mong
muốn được nhận để hoàn thiện bài báo cáo này tốt hơn.
Em xin chân thành cảm ơn!
MỤC LỤC
MỤC LỤC.................................................................................................................ii
DANH MỤC HÌNH ẢNH.......................................................................................iii
CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI.................................................................1
1. Thực trạng và bài toán đề ra:.........................................................................1
2. Giới thiệu về các công nghệ của bài toán:.....................................................2
2.1. Giới thiệu về C#:.................................................................................2
2.2. Giới thiệu về .NET Framework:.........................................................4
2.3. Giới thiệu về .NET Core:....................................................................6
2.4. Giới thiệu về ASP .NET Core:............................................................8
2.5. Giới thiệu về mô hình MVC.............................................................12
2.6. Giới thiệu về ASP.NET Core MVC..................................................17
CHƯƠNG II: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG......................................22
1. Mô tả bài toán:.............................................................................................22
2. Phân tích thiết kệ hệ thống:..........................................................................23
2.1. Biểu đồ Usecase:...............................................................................23
2.2. Thiết kế cơ sở dữ liệu........................................................................40
2.3. Sơ đồ hoạt động (Activity Diagram).................................................41
2.4. Sơ đồ tuần tự (Sequence Diagram)...................................................45
2.5. Thiết kế giao diện hệ thống...............................................................50
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TƯƠNG LAI........................................55
1.1 Kết luận......................................................................................................55
1.2 Hướng phát triển tương lai.........................................................................55
TÀI LIỆU THAM KHẢO.......................................................................................57
DANH MỤC HÌNH ẢNH
Khoá luận tốt nghiệp – SVTH: Hoàng Xuân Quốc Việt iii
XÂY DỰNG WEBAPP HỖ TRỢ HỌC TIẾNG ANH ONLINE BẰNG ASP .NET CORE
Từ thực trạng này, một web-app học tiếng Anh online sẽ đáp nhu cầu của
mọi người. Đây là nơi mọi người có thể dễ dàng học tập và phát triển kỹ năng
tiếng anh.
Bài toán được thiết kế trên các công cụ, công nghệ, ngôn ngữ lập trình
như sau:
i) Ngôn ngữ lập trình: C#, Javascript, CSS, HTML.
ii) Công nghệ được ứng dụng: ASP .NET CORE MVC, Entity Framework,
Linq.
iii) Công vụ lập trình: Visual Studio 2022 Preview.
iv) Hệ quản trị cơ sở dữ liệu: SQL Server.
2. Giới thiệu về các công nghệ của bài toán:
2.1. Giới thiệu về C#:
C# (hay C sharp) là một ngôn ngữ lập trình đơn giản, được phát triển bởi
đội ngũ kỹ sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện đại,
hướng đối tượng và được xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là
C++ và Java.
Trong các ứng dụng Windows truyền thống, mã nguồn chương trình được
biên dịch trực tiếp thành mã thực thi của hệ điều hành.
Trong các ứng dụng sử dụng .NET Framework, mã nguồn chương trình (C#,
VB.NET) được biên dịch thành mã ngôn ngữ trung gian MSIL (Microsoft
intermediate language).
Sau đó mã này được biên dịch bởi Common Language Runtime (CLR) để
trở thành mã thực thi của hệ điều hành. Hình bên dưới thể hiện quá trình chuyển
đổi MSIL code thành native code.
Tuy ít từ khóa song C# vẫn rất mạnh mẽ. Lập trình viên có thể sử dụng nó
để thực hiện mọi nhiệm vụ.
Mã nguồn mở: C# là một trong những ngôn ngữ lập trình mã nguồn mở,
được phát triển, điều hành một cách độc lập với Microsoft. Đây là một
trong những nét độc đáo khiến ngôn ngữ này được biết đến và ưa chuộng
rộng rãi.
Đa nền tảng: C# là ngôn ngữ được sử dụng trong lập trình trên nhiều nền
tảng. Các ứng dụng hoặc website được xây dựng bằng ngôn ngữ này có
thể hoạt động tốt trên nhiều nền tảng như Windows, Linux và Mac.
Tiến hóa: C# vẫn đang được nâng cấp và cho ra mắt các phiên bản mới
với nhiều tính năng vượt trội và khả năng làm việc mạnh mẽ hơn. Hiện
C# có thể làm việc với console, điện toán đám mây, phần mềm học
máy,...
2.2. Giới thiệu về .NET Framework:
.NET Framework là một trong những nền tảng hỗ trợ lập trình do Microsoft
phát triển và được chạy trên chủ yếu trên hệ điều hành Window. .NET
Framework được tạo ra từ Framework Class Library (FCL) - một thư viện ngôn
ngữ lập trình và Common Language Runtime (CLR) – bộ thực thi ngôn ngữ
chung.
;ư\
cập, kết nối các CSDL, cấu trúc dữ liệu; Lập trình giao diện,… Những đặc
trưng này khiến nó trở thành nền tảng chính được rất nhiều lập trình viên
lựa chọn.
Nǎng suất làm việc cao: Lập trình, thiết kế ứng dụng với .NET tiết kiệm
r ất nhiều thời gian bởi nó cung cấp sẵn khá nhiều thành phần dùng trong
thiết kế. Chỉ cần bạn biết cách sử dụng cũng như tùy biến những đoạn
code có sẵn này cho phù hợp với dự án của mình, việc lập trình sẽ trở nên
đơn giản hơn bao giờ hết.
Biến đổi linh hoạt nhờ kiến trúc “ghép nối lỏng”: .NET được thiết kế,
xây dựng với khả năng biến đổi linh hoạt nhờ cấu trúc ‘ghép nối lỏng’.
Điều này mang lại nhiều lợi thế về năng suất.
Đa ngôn ngữ: .NET là nền tảng hỗ trợ cho đa ngôn ngữ. Lập trình viên có
thể sử dụng nền tảng này để tạo lập các ứng dụng web bằng nhiều ngôn
ngữ lập trình khác nhau mà vẫn đảm bảo khả năng tích hợp của nó.
Bảo mật cao: .NET có phần kiến trúc bảo mật được thiết kế theo dạng từ
dưới lên. Điều này giúp bảo vệ dữ liệu cũng như các ứng dụng khỏi sự đe
dọa của hacker thông qua mô hình bảo mật tinh vi là evidence-based.
Tận dụng các dịch vụ sẵn có trong hệ điều hành: Windows sở hữu rất
nhiều dịch vụ có khả năng hoạt động trên mọi nền tảng như truy cập dữ
liệu, mô hình dạng đối tượng thành phần, giao diện người dùng tương tác,
bảo mật tích hợp và cả giám sát giao dịch. .NET tận dụng những dịch vụ
này để đơn giản hóa cách sử dụng, giúp lập trình trên nền tảng này trở nên
dễ dàng hơn.
2.3. Giới thiệu về .NET Core:
.NET Core là một nền tảng phát triển đa mục đích, mã nguồn mở được
duy trì bởi Microsoft và cộng đồng .NET trên GitHub. Đó là nền tảng chéo (hỗ
trợ Windows, macOS và Linux) và có thể được sử dụng để xây dựng các ứng
dụng thiết bị, đám mây và IoT.
Dotnet command, được sử dụng để khởi chạy các ứng dụng .NET Core và
các lệnh CLI. Nó chọn thời gian chạy và lưu trữ thời gian chạy, cung cấp
chính sách tải lắp ráp và khởi chạy các ứng dụng và công cụ.
Các ứng dụng ASP.NET Core có thể chạy trên .NET Core hoặc trên .NET
Framework hoàn chỉnh.
Nó đã được thiết kế để cung cấp một framework tối ưu cho các ứng dụng
để triển khai tới cloud hoặc chạy on-premises.
Bạn có thể phát triển và chạy các ứng dụng đa nền tảng từ ASP.NET
Core trên Windows, Mac và Linux.
Hiệu suất nâng cao: Công ty phát triển ASP.NET coi ứng dụng hoạt
động tốt như thế nào là yếu tố chính trong khi lựa chọn khung để phát
triển ứng dụng. Và trong trường hợp này, ASP.NET Core nhanh hơn
nhiều so với ASP.NET MVC và đã cho thấy kết quả tuyệt vời so với các
khung công tác khác. Một lý do cho hiệu suất nhanh chóng của khuôn khổ
là thực tế là hệ thống tự động tối ưu hóa các mã của nó để cải thiện hiệu
suất.
Hỗ trợ đa nền tảng: Cần đảm bảo rằng ứng dụng sẽ hoạt động tốt trên
mọi nền tảng khi tiến hành phát triển ứng dụng. ASP.NET Core là đa nền
tảng và chạy trên Windows, Linux, Mac và tất cả các thiết bị khác. Do đó,
hệ thống cho phép các nhà phát triển chọn bất kỳ hệ điều hành nào để
thuận tiện cho họ vì nó cực kỳ linh hoạt.
Ít mã hơn: Chất lượng của mã xác định chất lượng của một ứng
dụng. ASP.NET Core cho phép các nhà phát triển viết ít câu lệnh hơn. Do
đó, cấu trúc mã trở nên dễ dàng hơn và ít phải viết mã hơn. Điều này làm
cho việc phát triển ứng dụng dành cho thiết bị di động trở nên hiệu quả về
mặt chi phí đối với các tổ chức. Ngoài ra, nó cũng cung cấp nhiều quyền
kiểm soát hơn cho các nhà phát triển khi quy trình có liên quan và đơn
giản hóa việc gỡ lỗi.
Bảo trì dễ dàng: ASP.NET yêu cầu ít mã hơn và ít mã hơn sẽ dễ bảo trì
hơn. Các nhà phát triển có thể dễ dàng tối ưu hóa mã trong ASP.NET
Core và tiết kiệm thời gian bảo trì ứng dụng.
Hỗ trợ phát triển ứng dụng web dựa trên đám mây: Một lợi ích khác
của ASP.NET Core là nó cung cấp các kiểu phát triển ứng dụng khác
nhau và ứng dụng web dựa trên đám mây. Vì vậy, cách tiếp cận này là
phù hợp nhất cho các doanh nghiệp và doanh nghiệp đã sẵn sàng để mở
rộng. Phát triển dựa trên đám mây cung cấp cho các ứng dụng web tính
linh hoạt, khả năng truy cập, tích hợp dễ dàng hơn, bảo vệ dữ liệu và hơn
thế nữa.
Utility Frameworks: Chứa những thứ cảm tưởng như không liên quan
đến Asp.net Core: Identity và Entity Framework. Khối này chứa những
framework hỗ trợ cho ứng dụng, bao gồm bảo mật và cơ sở dữ liệu.
Platform: Là những gì tạo nên nền tảng chung nhất mà mọi loại ứng
dụng Asp.net Core đều cần sử dụng đến.
Hình 1.4 Thành phần của ASP .NET Core
Được xây dựng chỉ để dành cho Được xây dựng dành cho cả Windows,
Windows. Mac và Linux.
Có thể chạy được trên .Net Framework Có thể chạy trên .Net Core và Full .Net
hay được gọi là Full .Net Framework. Framework.
Asp.Net hỗ trợ Web Forms, Asp.Net Asp.Net Core hỗ trợ cho các trang Web
MVC và ASP.NET web Pages. MVC, Web API và Asp.Net được thêm
vào ban đầu trong .Net Core 2.0, không
Chỉ sử dụng IIS phụ thuộc vào Asp.Net Core không phụ thuộc vào IIS và
System.web.dll. System.web.dll.
Sử dụng ngôn ngữ C#, VB, WCF, WPF Chỉ hỗ trợ ngôn ngữ C#, F# và VB trong
và WF. thời gian ngắn, không hỗ trợ WCF, WPF
và WF. Tuy nhiên, Asp.Net Core lại có
thể hỗ trợ cho các thư viện WCP có sẵn.
Asp.Net MVC có thêm các ứng dụng như Asp.Net Core đang hỗ trợ
Web.config, Global.asax, Application Appsettings.json, không hỗ trợ tệp
Start. Web.config và Global.asax.
Hỗ trợ vùng chứa không được đánh giá Hỗ trợ vùng chứa phù hợp cho các triển
quá cao. khai như Docker.
Tất cả các phiên bản chính thức đều được Hỗ trợ Core từ Visual Studio 2015 cập
hỗ trợ. nhật lần thứ 3
Người dùng cần biên dịch lại sau khi thay Khi làm mới Core Browser sẽ tự động
đổi mã. biên dịch và thực thi mã mà không cần
phải dịch lại.
Model: Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng và
là cầu nối giữa 2 thành phần bên dưới là View và Controller. Một model
là dữ liệu được sử dụng bởi chương trình. Đây có thể là cơ sở dữ liệu,
hoặc file XML bình thường hay một đối tượng đơn giản. Chẳng hạn như
biểu tượng hay là một nhân vật trong game.
View: Đây là phần giao diện (theme) dành cho người sử dụng. View là
phương tiện hiển thị các đối tượng trong một ứng dụng. Chẳng hạn như
hiển thị một cửa sổ, nút hay văn bản trong một cửa sổ khác. Nó bao gồm
bất cứ thứ gì mà người dùng có thể nhìn thấy được.
Controller: Là bộ phận có nhiệm vụ xử lý các yêu cầu người dùng đưa
đến thông qua View. Một controller bao gồm cả Model lẫn View. Nó
nhận input và thực hiện các update tương ứng.1.3.3 Luồng xử lý trong mô
hình MVC
Khi một yêu cầu của từ máy khách (Client) gửi đến Server. Thì bị
Controller trong MVC chặn lại để xem đó là URL request hay sự kiện.
Sau đó, Controller xử lý input của user rồi giao tiếp với Model trong
MVC. Model chuẩn bị data và gửi lại cho Controller.
Cuối cùng, khi xử lý xong yêu cầu thì Controller gửi dữ liệu trở lại View
và hiển thị cho người dùng trên trình duyệt.
Ưu điểm
Tạo mô hình chuẩn cho từng dự án, từ đó tiếp cận với ứng dụng dễ dàng
hơn ngay cả với những người không có chuyên môn.
Hỗ trợ quá trình phát triển nhanh chóng nhờ các bộ phận hoạt động độc
lập với nhau. Từ đó các lập trình viên dễ dàng hát triển, quản lý, vận
hành, bảo trì trên từng bộ phận mà không làm ảnh hưởng đến toàn hệ
thống, đồng thời dễ dàng kiểm soát được luồng xử lý của ứng dụng.
Trình tự xử lý rõ ràng, dễ dàng kiểm tra, rà soát lỗi phần mềm trước khi
thông tin trích xuất sau cùng hiển thị trước người dùng, từ đó đảm bảo
chất lượng và độ uy tín của thông tin cao hơn.
Sở hữu bộ control ưu việt trên nền tảng các ngôn ngữ lập trình hiện đại
như CSS, HTML, Javascript với nhiều hình thức khác nhau.
Có khả năng cung cấp đồng thời nhiều khung View lưu trữ dữ liệu. Nhờ
đó tiết kiệm được diện tích băng thông một cách tối ưu, đặc biệt trong
trường hợp có nhiều yêu cầu được thực hiện thì kích thước càng tệp càng
lớn.
Mô hình MVC truyền tải dữ liệu nhưng không định dạng lại dữ liệu, từ đó
trạng thái dữ liệu được bảo tồn và sử dụng cho những lần sau này.
Mô hình có kết cấu tương đối đơn giản, dễ hiểu, xử lý những nghiệp vụ
đơn giản.
Nhược điểm
Chỉ phù hợp với những dự án lớn, không thích hợp việc phát triển các ứng
dụng nhỏ vì mô hình này yêu cầu người dùng phải lưu trữ một số lượng
lớn các file dữ liệu khác nhau. Điều đó tạo nên sự cồng kềnh và phức tạp
trong quá trình phát triển cũng như thời gian trung chuyển dữ liệu.
Phân chia công việc và tác vụ không đồng đều giữa các layer, vì phần
Model phải đảm nhiệm hầu hết các tác vụ quan trọng.
Việc hiển thị của layer View phải phụ thuộc vào cả Controller và Model
nên sự hỗ trợ cho quá trình kiểm thử không quá tốt bởi dù trên lý thuyết
chúng độc lập với nhau. Nếu không thể nhận yêu cầu và cũng không có
dữ liệu được xử lý để hiển thị thì View cũng không hiển thị được gì. Để
tiến hành kiểm thử trên View, chúng ta cần giả lập cả Controller và
Model.
Đối với các ứng dụng phức tạp, đòi hỏi quy trình xử lý nghiệp vụ thì
MVC cũng không phải là lựa chọn tối ưu.
Hiện nay mô hình MVC được áp dụng nhiều và phổ biến trên toàn Thế
Giới, hầu như tất cả các công ty viết phần mềm, lập trình web app hiện
nay đều phải ít nhất 1 lần ứng dụng mô hình MVC. Để việc triển khai dự
án cho đội nhóm diễn ra nhanh chóng và chuyên nghiệp hơn thì nên áp
dụng mô hình MVC rất tốt.
2.6. Giới thiệu về ASP.NET Core MVC
ASP.NET Core MVC là tên gọi của framework trong ASP.NET Core
thực thi mô hình kiến trúc MVC. Framework này giúp phát triển nhiều loại ứng
dụng khác nhau, từ ứng dụng web truyền thống đến ứng dụng đơn trang hoặc
Web API.
Hình 1.8 S
ơ đồ hoạt động ứng dụng kiến trúc MVC trong ASP.NET Core
Routing: sẽ xác định URL và điều khiển thông tin tương ứng với URL
mà người dùng web nhập vào. Tất cả các cấu hình Routing của một
ứng dụng ASP.NET MVC được lưu trữ trong RouteTable, nó đóng vai
trò định tuyến các URL để xác định các lớp xử lý tương ứng khi có
request được gửi đến từ người dùng web.
Model validation: ASP.NET Core MVC hỗ trợ ràng buộc dữ liệu cho
các thuộc tính trong model của bạn, các thuộc tính sẽ được kiểm tra ở
client xem có hợp lệ không trước khi giá trị của thuộc tính đó được gửi
về server. Cũng như trên server trước khi action của controller gọi.
Filters: Filters giúp các lập trình viên đóng gói “cross-cutting
concerns”. giống như là xử lý ngoại lệ và phân quyền. Filter được kích
hoạt để chạy trước và sau các action của controller. Ví dụ về phân
quyền [Authorize] được đặt trước action.
Areas: Khi một website ASP.NET MVC trở nên quá lớn quá và phức
tạp,số Controller chắc chắn sẽ tăng lên, với nhiều controller như vậy
bạn sẽ thấy chúng có thể thuộc về một nhóm như phần Administrator,
phần sản phẩm, phần nhóm sản phẩm… Areas cho phép bạn chia các
Controllers,models và views tới các vị trí khác nhau trong solution với
cùng một thư mục độc lập.
Web APIs: Ngoài việc là một nền tảng tuyệt vời để xây dựng các trang
web. ASP.NET Core MVC hỗ trợ rất nhiều cho việc xây dựng API
Web. Bạn có thể xây dựng các dịch vụ tiếp cận nhiều khách hàng bao
gồm trình duyệt web và thiết bị di động.
Tag Helpers: Tag Helpers cho phép mã phía máy chủ tham gia vào việc
tạo và hiển thị các phần tử HTML trong các tệp razor. Đây là một số
khái niệm cơ bản trong ASP.NET Core MVC cho người mới học cần
nắm rõ để có thể hiểu hết bản chất khi xây dựng ứng dụng.
View Components
Vị trí cao nhất trong cửa sổ Solution Explorer là thư mục gốc của dự án
được lồng trong một thư mục solution. Visual Studio dùng khái niệm
solution để làm việc với nhiều dự án, trong trường hợp này chỉ có một dự
án. Tại thư mục này chúng ta sẽ tìm thấy một tập tin solution (có phần mở
rộng .sln).
Kế tiếp thư mục gốc dự án là tập tin quan trọng nhất của dự án, tập
tin HelloASPDonetCoreMVC.csproj.
Vì dự án ta đang dùng mô hình MVC nên các thư mục quan trọng tiếp
theo của chúng ta sẽ là các thư mục Controllers, Models và Views chứa
các tập tin dùng để xây dựng dự án.
Thư mục Properties chứa tập tin launchSettings.json kiểm soát cách
Visual Studio sẽ chạy và debug ứng dụng.
Thư mục wwwroot là thư mục đặc biệt cho phép các trình duyệt web có
thể truy cập trực tiếp đến nội dung bên trong nó như các tập tin CSS, JS,
hình ảnh hay các tập tin HTML. Các trình duyệt sẽ không thể truy cập
được các tập tin này nếu chúng ở bên thư mục wwwroot.
Properties và wwwroot được xem như là hai thư mục đặc biệt, được đặt
phía trên cửa sổ Solution Explorer, gần mục dự án và không tuân theo thứ
tự các chữ cái. Phía trên hai thư mục này có hai mục đặc biệt hơn gọi
là Dependencies và Connected Servives chứa các thành phần phụ thuộc
đến dự án như các gói NuGet, các dịch vụ từ xa, các thành phần hướng
client.
Tập tin appsettings.json cung cấp thông tin cấu hình ứng dụng tại thời
điểm thực thi hay thời điểm biên dịch.
Cuối cùng là tập tin Program.cs kiểm soát cấu hình và quá trình khởi
động của ứng dụng tại thời điểm thực thi.
vựng của tôi và người dùng chọn đáp án đúng. Nếu đúng Score tăng
lên 1, nếu sai Score về 0.
Quản trị hệ thống của website khi đăng nhặp vào hệ thống:
Quản trị viên có thể quản lý thông tin của từ vựng: Hiển thị giao diện
danh sách từ vựng, quản trị viên có thể sửa từ vựng, tìm kiếm và xóa
từ vựng.
Quản trị viên có thể quản lý thông tin của khách hàng (user): Hiển thị
giao diện danh sách khách hàng (user), quản trị viên có thể sửa từ
vựng, tìm kiếm và xóa từ vựng.
Quản trị viên có thể quản lý tài khoản truy cập sử dụng hệ thống: Hiển
thị giao diện, quản trị viên có thể quản lý quyền truy cập và tài khoản
được truy cập.
2. Phân tích thiết kệ hệ thống:
Xác định Actor
User (người sử dụng hệ thống).
Admin (người quản trị hệ thống).
2.1. Biểu đồ Usecase:
- Usecase cho khách hàng:
Quản lý thông tin tài khoản: Cập nhật thông tin cá nhân, thay đổi mật
khẩu.
Quản lý danh sách từ vựng của mình: Thêm từ vựng, xóa từ vựng.
Quản lý từ vựng: Tìm kiếm và xem thông tin chi tiết từ vựng.
Sử dụng Quiz-game: Chơi Quiz-game.
- Usecase cho Admin:
Quản lý từ vựng: Thêm, sửa, xóa, xem thông tin, tìm kiếm.
Quản lý thông tin khách hàng: Thêm, xóa, xem thông tin, tìm kiếm
khách hàng.
Quản lý tài khoản truy cập hệ thống: Thêm, sửa, xóa thông tin tài khoản
truy cập hệ thống.
Dòng sự kiện: Usecase bắt đầu khi người dùng chọn chức năng “Cập nhật
thông tin tài khoản” ở giao diện tài khoản.
Dòng sự kiện chính:
Bước 1: Người dùng chọn chức năng “Cập nhật thông tin tài khoản”.
Bước 2: Hiển thị giao diện cập nhật thông tin tài khoản.
Bước 3: Người dùng nhập thông tin tài khoản.
Bước 4: Người dùng nhấn “Lưu”
Bước 5: Hệ thống kiểm tra thông tin hợp lệ hay chưa, sau đó lưu dữ liệu và
thông báo lưu thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người dùng thoát trang cập nhật thông tin tài khoản.
Usecase dừng lại.
Dòng sự kiện 2: Thông tin không hợp lệ. Hệ thống báo lỗi. Quay lại bước 3.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Người dùng phải đăng nhập tài khoản.
Điều kiện hoàn tất: Chuyển về giao diện trang chủ. Thông báo thành công.
Đặc tả Usecase đổi mật khẩu tài khoản
Tóm tắt: Usecase này cho phép người dùng đổi mật khẩu tài khoản của
mình.
Dòng sự kiện: Usecase bắt đầu khi người dùng chọn chức năng đổi mật
khẩu bằng cách nhấn nút đổi mật khẩu ở giao diện tài khoản.
Dòng sự kiện chính:
Bước 1: Người dùng chọn chức năng “Đổi mật khẩu”.
Bước 2: Hiển thị giao diện đổi mật khẩu tài khoản.
Bước 3: Người dùng nhập mật khẩu cũ, mật khẩu mới, xác nhận mật khẩu.
Bước 4: Người dùng nhấn “Lưu”
Bước 5: Hệ thống kiểm tra thông tin hợp lệ hay chưa, sau đó lưu dữ liệu và
thông báo lưu thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người dùng thoát trang đổi mật khẩu tài khoản. Usecase
dừng lại.
Dòng sự kiện 2: Thông tin không hợp lệ. Hệ thống báo lỗi. Quay lại bước 3.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Người dùng phải đăng nhập tài khoản.
Điều kiện hoàn tất: Chuyển về giao diện trang chủ. Thông báo thành công.
Quản lý danh sách từ vựng
Dòng sự kiện: Usecase bắt đầu khi người dùng nhập vào thanh tìm kiếm và
nhấn nút “Search” trong giao diện “List”
Dòng sự kiện chính:
Bước 1: Người dùng nhấn vào nút “List”.
Bước 2: Người dùng nhập vào thanh tìm kiếm.
Bước 3. Nhấn nút “Search”.
Bước 4: Hệ thống hiển thị danh sách từ vựng của tôi.
Các dòng sự kiện khác: Không có.
Các yêu cầu đặc biệt: Không có.
Điều kiện tiên quyết: Người dùng phải đăng nhập tài khoản.
Điều kiện hoàn tất: Hiện thị danh sách từ vựng. Nếu trống là không tìm
thấy.
Đặc tả Usecase xóa từ vựng trong danh sách
Tóm tắt: Usecase này cho phép người dùng xóa từ vựng trong danh sách từ
vựng của tôi.
Dòng sự kiện: Usecase bắt đầu khi người dùng nhập vào thanh tìm kiếm và
nhấn nút “Delete” của từ vựng tương ứng trong giao diện “List”
Dòng sự kiện chính:
Bước 1: Người dùng nhấn vào nút “Delete” ứng với từ vựng muốn xóa.
Bước 2: Hiển thị thông báo xác nhận.
Bước 3: Nhấn xác nhận đẻ xóa, hủy để hủy bỏ thao tác.
Các dòng sự kiện khác: Không có.
Các yêu cầu đặc biệt: Không có.
Điều kiện tiên quyết: Người dùng phải đăng nhập tài khoản.
Điều kiện hoàn tất: Hiện thị danh sách từ vựng. Nếu trống là không tìm
thấy.
Quản lý từ vựng
Bước 3: Hệ thống hiển thị danh sách từ vựng ứng với keyword tìm kiếm.
Các dòng sự kiện khác: Không có.
Các yêu cầu đặc biệt: Không có.
Điều kiện tiên quyết: Không có.
Điều kiện hoàn tất: Hiện thị danh sách từ vựng. Nếu trống là không tìm
thấy
Sử dụng Quiz-game
Bước 1: Người quản trị chọn chức năng thêm tài khoản người dùng bằng
cách bấm nút thêm ở trang quản lý tài khoàn người dùng.
Bước 2: Hệ thống hiển thì form thêm tài khoản người dùng.
Bước 3: Người quản trị nhập thông tin tài khoản.
Bước 4: Người quản trị nhấn thêm
Bước 5: Hệ thống kiểm tra thông tin hợp lệ hay chưa, sau đó lưu dữ liệu và
thông báo lưu thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người quản trị thoát trang thêm tài khoản người dùng.
Usecase dừng lại.
Dòng sự kiện 2: Thông tin không hợp lệ. Hệ thống báo lỗi. Quay lại bước 3.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Không có
Điều kiện hoàn tất: Chuyển về trang quản lý tài khoản người dùng. Thông
báo thêm thành công.
Đặc tả Usecase sửa tài khoản người dùng
Tóm tắt: Usecase này cho phép người quản trị chỉnh sửa thông tin tài khoản
người dùng.
Dòng sự kiện: Usecase bắt đầu khi người quản trị chọn sửa tài khoản người
dùng bằng cách bấm nút sửa tương ứng với tài khoản người dùng cần chỉnh
sửa.
Dòng sự kiện chính:
Bước 1: Người quản trị chọn sửa tài khoản người dùng bằng cách bấm nút
sửa tương ứng với tài khoản người dùng cần chỉnh sửa.
Bước 2: Hệ thống hiển thị form chỉnh sửa thông tin tài khoản người dùng.
Bước 3: Người quản trị chỉnh sửa thông tin.
Bước 4: Người quản trị nhấn cập nhật.
Bước 5: Hệ thống kiểm tra dữ liệu hợp lệ hay chưa sau đó lưu dữ liệu và
thông báo cập nhật thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người quản trị thoát trang chỉnh sửa tài khoản người dùng.
Usecase dừng lại.
Dòng sự kiện 2: Thông tin không hợp lệ, thông báo không hợp lệ và quay lại
bước 3.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Phải có ít nhất một tài khoản người dùng.
Điều kiện hoàn tất: Chuyển về trang quản lý tài khoản người dùng. Thông
báo cập nhật thành công.
Đặc tả Usecase xóa tài khoản người dùng:
Tóm tắt: Usecase này cho phép người quản trị xóa tài khoản người dùng.
Dòng sự kiện: Usecase bắt đầu khi người quản trị chọn xóa tài khoản người
dùng bằng cách nhấn nút xóa tương ứng với tài khoản người dùng.
Dòng sự kiện chính:
Bước 1: Người quản trị chọn xóa tài khoản người dùng bằng cách nhấn nút
xóa tương ứng với tài khoản người dùng.
Bước 2: Hệ thống hiển thị form xóa tài khoản.
Bước 3: Người quản trị nhấn nút xóa tài khoản.
Bước 4: Hệ thống cập nhật dữ liệu và thông báo xóa thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người quản trị chọn hủy xóa tài khoản. Usecase kết thúc.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Phải có ít nhất một tài khoản người dùng.
Điều kiện hoàn tất: Thông báo xóa tài khoản thành công.
Dòng sự kiện: Usecase bắt đầu khi người quản trị chọn chức năng quản lý
danh sách người dùng.
Dòng sự kiện chính:
Bước 1: Người quản trị chọn chức năng quản lý danh sách người dùng.
Bước 2: Nhấn nút “Gán quyền”.
Bước 3: Chọn hoặc bỏ chọn quyền.
Bước 4: Nhấn lưu.
Bước 5: Hệ thống kiểm tra thông tin hợp lệ hay chưa, sau đó lưu dữ liệu và
thông báo lưu thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người quản trị thoát trang thêm từ vựng người dùng.
Usecase dừng lại.
Dòng sự kiện 2: Thông tin không hợp lệ. Hệ thống báo lỗi. Quay lại bước 3.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Phải có ít nhất 1 tài khoản người dùng.
Điều kiện hoàn tất: Chuyển về trang quản lí tài khoản người dùng.
Quản lý quyền truy cập
Dòng sự kiện: Usecase bắt đầu khi người quản trị chọn chức năng thêm
quyền truy cập bằng cách nhấn nút thêm ở trang quản lý quyền truy cập.
Dòng sự kiện chính:
Bước 1: Người quản trị chọn chức năng thêm quyền truy cập bằng cách bấm
nút thêm ở trang quản lý tài khoàn người dùng.
Bước 2: Hệ thống hiển thì form thêm quyền truy cập.
Bước 3: Người quản trị nhập thông tin quyền truy cập.
Bước 4: Người quản trị nhấn thêm
Bước 5: Hệ thống kiểm tra thông tin hợp lệ hay chưa, sau đó lưu dữ liệu và
thông báo lưu thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người quản trị thoát trang thêm quyền truy cập người dùng.
Usecase dừng lại.
Dòng sự kiện 2: Thông tin không hợp lệ. Hệ thống báo lỗi. Quay lại bước 3.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Không có
Điều kiện hoàn tất: Chuyển về trang quản lý quyền truy cập. Thông báo
thêm thành công.
Đặc tả Usecase xóa quyền truy cập:
Tóm tắt: Usecase này cho phép người quản trị xóa quyền truy cập.
Dòng sự kiện: Usecase bắt đầu khi người quản trị chọn xóa quyền truy cập
bằng cách nhấn nút xóa tương ứng với quyền truy cập.
Dòng sự kiện chính:
Bước 1: Người quản trị chọn xóa quyền truy cập bằng cách nhấn nút xóa
tương ứng với quyền truy cập.
Bước 2: Hệ thống hiển thị form xóa tài khoản.
Bước 3: Người quản trị nhấn nút xóa tài khoản.
Bước 4: Hệ thống cập nhật dữ liệu và thông báo xóa thành công.
Các dòng sự kiện khác:
Dòng sự kiện 1: Người quản trị chọn hủy xóa tài khoản. Usecase kết thúc.
Các yêu cầu đặc biệt: Không có
Điều kiện tiên quyết: Phải có ít nhất một quyền truy cập.
Điều kiện hoàn tất: Thông báo xóa quyền truy cập thành công.
2.2. Thiết kế cơ sở dữ liệu
Hình 2.13 Sơ đồ hoạt động quản lý thêm từ vựng vào danh sách
Hình 2.14 Sơ đồ hoạt động quản lý danh sách từ vựng của tôi
Tuy hệ thống đã được hoàn thành nhưng chỉ với một khoản thời gian ngắn
thực hiện dự án thì không thể nói là nó đã hoàn thiện. Dự án xây dựng trang
website đi chợ online còn những thiếu xót, sự cố tồn tại đồng thời cũng là những
tiềm năng để phát triển và hoàn thiện.
Xây dựng các Quiz-game đơn giản giúp khách hàng dễ dàng học
tiếng Anh mà không bị chán.
Tạo các trang Blog về phương pháp học tiếng Anh...
Và còn nhiều chức năng khác...
Những ý kiến nêu trên là những hướng phát triển dự án này trong thời gian
tới và em rất mong những được những nhận xét và góp ý của các thầy, cô giáo
về những ý kiến trên để có thể có được những nhìn nhận, kinh nghiệm về việc
phát triển các dự án sau này.
[1] https://docs.microsoft.com/vi-vn/aspnet/core/tutorials/first-mvc-app/
start-mvc?view=aspnetcore-6.0&tabs=visual-studio
[2] https://docs.microsoft.com/en-us/aspnet/core/mvc/views/view-
components?view=aspnetcore-6.0
[3]
https://docs.microsoft.com/en-us/dotnet/api/system.security.claims.claims
identity?view=net-6.0
[4] https://docs.microsoft.com/en-us/aspnet/core/mvc/controllers/areas?
view=aspnetcore-6.0
[5]
https://docs.microsoft.com/en-us/dotnet/api/microsoft.entityframeworkcor
e.dbcontext?view=efcore-6.0
[6] https://docs.microsoft.com/en-us/aspnet/core/security/authentication/
identity?view=aspnetcore-6.0&tabs=visual-studio
[7] https://docs.microsoft.com/en-us/aspnet/core/security/authorization/
claims?view=aspnetcore-6.0
[8] https://docs.microsoft.com/en-us/aspnet/core/fundamentals/app-state?
view=aspnetcore-6.0
[9] https://docs.microsoft.com/en-us/aspnet/mvc/overview/older-
versions/mvc-music-store/mvc-music-store-part-3
[10] https://github.com/teduinternational/eShopSolution