Post on 02-Jan-2021
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Tiến Thắng
HỆ THỐNG HỌC TIẾNG NHẬT TRỰC TUYẾN
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
HÀ NỘI – 2020
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
Vũ Tiến Thắng
HỆ THỐNG HỌC TIẾNG NHẬT TRỰC TUYẾN
KHÓA LUẬN TỐT NGHIỆP HỆ CHÍNH QUY
Ngành: Công nghệ thông tin
Cán bộ hướng dẫn: PGS.TS Nguyễn Việt Anh
HÀ NỘI – 2020
i
LỜI CẢM ƠN Lời đầu tiên, cho phép tôi gửi lời cảm ơn chân thành đến thầy Nguyễn Việt Anh –
người đã hướng dẫn tận tình và đưa ra những chỉ dẫn hiệu quả trong quá trình tôi làm
khóa luận. Thầy đã chỉ bảo tôi rất nhiệt tình và nghiêm túc để có thể hoàn thành khóa luận
tốt nghiệp một cách tốt nhất có thể.
Tiếp theo tôi xin chân thành cảm ơn Khoa Công Nghệ thông tin đã tạo ra môi
trường học tập tốt, giúp tôi hoàn thiện những kĩ năng chuyên môn cũng như kĩ năng mềm,
tạo ra sân chơi bổ ích và lành mạnh trong thời gian học tập tại đây để sẵn sàng cho cho
con đường sự nghiệp sau này để thỏa mãn với đam mê của bản thân.
Tôi cũng cảm ơn tập thể K61-C-CLC để đã đồng hành cùng tôi trong 4 năm qua,
nơi lưu giữ những kỉ niệm vui buồn thời sinh siên, cũng là động lực giúp tôi học tập hăng
say hơn trong thời gian vừa qua – một thời gian chắc chắn là tôi không thể quên trong
cuộc đời mình.
Cuối cùng tôi cũng gửi lời cảm ơn đến gia đình, điểm tựa vững chắc nhất trong
cuộc đời đã tạo điều kiện hết sức cho tôi học hành và luôn mong tôi trưởng thành từng
ngày.
Tôi xin chân thành cảm ơn!
ii
TÓM TẮT
Khóa luận trình bày việc xây dựng hệ thống học tiếng Nhật trực tuyến trên nền tảng Web
sử dụng công nghệ ASP.NET. Hệ thống cung cấp các bài giảng miễn phí và mất phí theo
từng trình độ. Khi học viên đã mua khóa học thì có thể học thoải mái những video trong
khóa học đó. Nội dung bài giảng được xây dựng bám sát nội dung thi thực tế nên học viên
có thể yên tâm về chất lượng của bài học. Hệ thống cung cấp chức năng phản hồi để giải
đáp mọi thắc mắc của người dùng quan tâm và cũng có thể trao đổi nội dung liên quan
đến bài học qua phần bình luận ngay bên dưới bài học. Hệ thống có những bài viết rất hay
liên quan đến cách học tiếng Nhật và văn hóa Nhật Bản giúp học viên có thêm niềm đam
mê với tiếng Nhật. Ngoài ra có các bài thi thử theo từng trình độ có cấu trúc và nội dung
tương tự như đề thi thực tế giúp học viên có thể làm quen với áp lực thi thật và tìm ra
thiếu sót để có hướng ôn tập phù hợp. Hàng tuần quản trị viên sẽ có những bài viết liên
quan đến tiếng Nhật và văn hóa Nhật Bản để mọi người cùng đọc. Hiện tại hệ thống đang
xây dựng trên nền tảng Web và sắp tời có thể phát triển thêm trên các nền tảng khác, có
thể xây dựng thêm những tính năng phù hợp hơn với nhu cầu của người dùng.
Từ khóa: Hệ thống học tiếng Nhật trực tuyến.
iii
LỜI CAM ĐOAN Tôi xin cam đoạn mọi nội dung liên quan đến khóa luận đều do bản thân tôi thực
hiện dưới sự hướng dẫn của thầy Nguyễn Việt Anh. Mọi tài liệu tham khảo đều được ghi
rõ nguồn gốc rõ ràng và không có hành vi sao chép tài liệu hay công trình của người khác.
Nếu phát hiện hành vi sai phạm tôi xin chịu hoàn toàn trách nhiệm trước khoa công nghệ
thông tin và trường đại học công nghệ.
Hà Nội, ngày tháng năm 2020
Sinh viên
Vũ Tiến Thắng
iv
Mục lục
LỜI CẢM ƠN ....................................................................................................................... i
TÓM TẮT ............................................................................................................................ ii
LỜI CAM ĐOAN ............................................................................................................... iii
Mục lục ............................................................................................................................... iv
Danh sách hình vẽ............................................................................................................... vi
Danh sách bảng biểu ......................................................................................................... viii
Đặt vấn đề ............................................................................................................................ 1
Vấn đề hiện tại .................................................................................................................. 1
Mục tiêu ............................................................................................................................ 1
Phương pháp...................................................................................................................... 1
Nội dung .......................................................................... Error! Bookmark not defined.
Kết quả dự kiến ................................................................................................................. 2
Cấu trúc khóa luận ............................................................................................................ 2
Chương 1. Cơ sở lý thuyết ................................................................................................... 3
1.1 Thông tin về bài thi và các cấp độ trong tiếng Nhật ................................................... 3
1. 2 Nội dung bài học ........................................................................................................ 5
1.3 Mô hình MVC ............................................................................................................. 5
1.4 Khái quát về ASP.NET MVC ..................................................................................... 5
1.5 Entity Framework........................................................................................................ 6
1.6 Razor ........................................................................................................................... 6
1.7 Identity User ................................................................................................................ 6
1.8 AJAX ........................................................................................................................... 6
1.9 LINQ ........................................................................................................................... 7
1.10 Bootrap ...................................................................................................................... 7
1.11 Jquery ........................................................................................................................ 7
Chương 2. Phân tích thiết kế hệ thống ................................................................................ 8
2.1 Phân tích các ca sử dụng ............................................................................................. 8
2.2 Kiến trúc hệ thống ..................................................................................................... 31
2.3 Cấu trúc thư mục dự án ............................................................................................. 32
v
2.4 Thiết kế cơ sở dữ liệu ................................................................................................ 33
2.5 Tầng xử lý dữ liệu ..................................................................................................... 34
2.6 Các controller chính .................................................................................................. 34
2.7 Cơ chế xác thực và phân quyền ................................................................................ 35
2.8 Ajax ........................................................................................................................... 36
2.9 Validate thông qua Model trong ASP.NET .............................................................. 37
Chương 3. Triển khai thực nghiệm.................................................................................... 38
3.1 Thực hiện học bài ...................................................................................................... 38
3.2 Thực hiện thi thử ....................................................................................................... 39
3.3 Khu vực quản trị viên ................................................................................................ 40
3.4 Khu vực học viên ...................................................................................................... 41
3.5 Giao diện bài viết liên quan đến tiếng Nhật .............................................................. 42
3.6 Trang hỗ trợ người dùng ........................................................................................... 42
3.7 Trang thông tin giảng viên ........................................................................................ 42
Chương 4. Kết luận ............................................................................................................ 44
4.1 Lý thuyết ............................................................................................................... 44
4.2 Kỹ năng ..................................................................................................................... 44
4.3 Công nghệ ................................................................................................................. 44
4.4 Nhược điểm ............................................................................................................... 44
4.5 Kế hoạch phát triển ................................................................................................... 44
Chương 5. Phụ lục ............................................................................................................. 46
1. Chức năng ................................................................................................................. 46
2. Cơ sở dữ liệu ............................................................................................................ 50
Tài liệu tham khảo ............................................................................................................. 59
vi
Danh sách hình vẽ Hình 2. 1 Biểu đồ Use Case của quản trị viên ...................................................................... 8
Hình 2. 2 Biểu đồ Use Case của học viên ............................................................................ 9
Hình 2. 3 Biểu đồ Sequence đăng ký ................................. Error! Bookmark not defined.
Hình 2. 4 Biểu đồ Sequence đăng nhập .............................. Error! Bookmark not defined.
Hình 2. 5 Biểu đồ Sequence bình luận khóa học ................ Error! Bookmark not defined.
Hình 2. 6 Biểu đồ Sequence thi thử .................................... Error! Bookmark not defined.
Hình 2. 7 Biểu đồ Sequece lưu lịch sử thi .......................... Error! Bookmark not defined.
Hình 2. 8 Biểu đồ Sequence thêm khóa học ....................... Error! Bookmark not defined.
Hình 2. 9 Biểu đồ Sequece sửa khóa học ........................... Error! Bookmark not defined.
Hình 2. 10 Biểu đồ Sequence xóa khóa học ....................... Error! Bookmark not defined.
Hình 2. 11 Biểu đồ Sequence thêm chương học ................ Error! Bookmark not defined.
Hình 2. 12 Biểu đồ Sequence sửa chương học ................... Error! Bookmark not defined.
Hình 2. 13 Biểu đồ Sequence xóa chương học ................... Error! Bookmark not defined.
Hình 2. 14 Biểu đồ Sequence thêm bài học........................ Error! Bookmark not defined.
Hình 2. 15 Biểu đồ Sequence sửa bài học .......................... Error! Bookmark not defined.
Hình 2. 16 Biểu đồ Sequence xóa bài học .......................... Error! Bookmark not defined.
Hình 2. 17 Biểu đồ Sequence sao chép đề thi .................... Error! Bookmark not defined.
Hình 2. 18 Biểu đồ Sequence chọn từ ngân hàng ............... Error! Bookmark not defined.
Hình 2. 19 Biểu đồ Sequence Import đề thi ....................... Error! Bookmark not defined.
Hình 2. 20 Cấu trúc dự án................................................................................................... 32
Hình 2. 21 Cấu trúc cơ sở dữ liệu ....................................................................................... 33
Hình 2. 22 Các class xử lý cơ sở dữ liệu ............................................................................ 34
Hình 2. 23 Các Controller cho người dùng ........................................................................ 34
Hình 2. 24 Các controller cho quản trị viên ....................................................................... 35
Hình 2. 25 Cơ chế xác thực ................................................................................................ 35
Hình 2. 26 Cơ chế phân quyền ........................................................................................... 36
Hình 2. 27 Kiểm tra quyền và đăng nhập tại tầng View .................................................... 36
Hình 2. 28 Sử dụng Ajax .................................................................................................... 37
Hình 2. 29 Validate thông qua Model ................................................................................ 37
Hình 3. 1 Giao diện trang bài học ....................................................................................... 38
Hình 3. 2 Phần thi từ vựng ................................................................................................. 39
vii
Hình 3. 3 Phần thi ngữ pháp và đọc hiểu ........................................................................... 40
Hình 3. 4 Phần thi nghe hiểu .............................................................................................. 40
Hình 3. 5 Giao diện quản lý đề thi ...................................................................................... 41
Hình 3. 6 Giao diện quản lý liên quan đến bài học ............................................................ 41
Hình 3. 7 Quản lý thông tin cá nhân ................................................................................... 42
Hình 3. 8 Hình ảnh bài viết liên quan đến tiếng Nhật ........................................................ 42
Hình 3. 9 Hình ảnh trang hỗ trợ người dùng ...................................................................... 42
Hình 3. 10 Hình ảnh trang giới thiệu giảng viên ................................................................ 43
viii
Danh sách bảng biểu Bảng 1. 1 Cấu trúc phần thi từ vựng N5 ............................................................................... 3
Bảng 1. 2 Cấu trúc phần thi ngữ pháp và đọc hiểu N5 ......................................................... 4
Bảng 1. 3 Cấu trúc phần thi nghe hiểu N5 ........................................................................... 5
Bảng 1. 4 Cấu trúc phần thi từ vựng N3 ............................ Error! Bookmark not defined.
Bảng 1. 5 Cấu trúc phần thi ngữ pháp và đọc hiểu N3 ....... Error! Bookmark not defined.
Bảng 1. 6 Cấu trúc phần thi nghe hiểu N3 ......................... Error! Bookmark not defined.
Bảng 1. 7 Cấu trúc phần thi từ vựng, đọc hiểu, ngữ pháp N1 ........... Error! Bookmark not
defined.
Bảng 1. 8 Cấu trúc phần thi nghe hiểu N1 ......................... Error! Bookmark not defined.
Bảng 2. 1 Mô tả ca sử dụng đăng ký .................................................................................... 9
Bảng 2. 2 Mô tả ca sử dụng đăng nhập .............................................................................. 11
Bảng 2. 3 Bảng mô tả ca sử dụng bình luận khóa học ....................................................... 12
Bảng 2. 4 Bảng mô tả ca sử dụng thi thử ........................................................................... 13
Bảng 2. 5 Bảng mô tả ca sử dụng lưu lịch sử bài thi .......................................................... 14
Bảng 2. 6 Bảng mô tả ca sử dụng quản trị khóa học .......................................................... 15
Bảng 2. 7 Bảng mô tả ca sử dụng quản trị chương học ...................................................... 19
Bảng 2. 8 Bảng mô tả ca sử dụng quản trị bài học ............................................................. 22
Bảng 2. 9 Bảng mô tả ca sử dụng liên quan đến quản trị đề thi ......................................... 25
1
Đặt vấn đề 1. Vấn đề hiện tại
Ngày nay nhu cầu lao động biết tiếng Nhật ngày càng tăng do Nhật Bản có tình
trạng dân số già hóa và Việt Nam là điểm đến lý tưởng cho các doanh nghiệp Nhật Bản.
Về cơ bản có những lý do sau: có nhiều sự tương đồng về văn hóa, có lịch sử giao lưu lâu
đời và nhân lực Việt Nam rất nhiều và chi phí không cao. Vì lý do đó mà việc làm cho
người biết tiếng Nhật càng nhiều. Nhưng vấn đề lớn đối với họ là ít có thời gian cho việc
học tiếng vì thời gian đi làm chiếm tương đối lớn thời gian trong ngày. Việc học ở trung
tâm tiếng Nhật thì mất thời gian cho việc đi lại và chi phí khá đắt.
2. Mục tiêu
Với những vấn đề trên, tôi quyết định xây dựng hệ thống học tiếng Nhật trực
tuyến giúp các học viên có thể học mọi lúc mọi nơi khi có thời gian rảnh và chi phí khá rẻ
so với học truyền thống. Việc học trực tuyến có rất nhiều ưu điểm như chi phí thấp, có
thể học mọi lúc mọi nơi miễn là có kết nối internet. Bên cạnh đó việc học trực tuyến tồn
tại một số khuyết điểm như: hạn tương tác với giáo viên, tinh thần học sẽ bị ảnh hưởng
bởi bì không có sự thúc dục của giảng viên. Với những ưu, nhược điểm trên thì hệ thống
sẽ cố gắng khắc phục những nhược điểm để đạt được hiệu quả trong hoạt động giảng dạy.
3. Phương pháp
Hệ thống sử dụng ASP.NET MVC để phát triển với các tầng như Model(chứa các
phương thức thao tác với cơ sở dữ liệu), Controller(tiếp nhận yêu cầu từ người dùng và
trả kết quả cho View), View(hiển thị dữ liệu và tương tác với hành động người dùng).
Ngoài ra, tôi còn sử dụng Entity Framework để tự động tạo ra những Model ứng với các
bảng trong cơ sở dữ liệu. Việc xây dựng View sử dụng Bootrap – framework HTML,
CSS, JS phổ biến để phát triển các trang web responsive và các ứng dụng ưu tiên nền
tảng Mobile. Để tăng trải ngiệm của người dùng thì tôi có sử dụng AJAX, những vấn đề
liên quan đến bảo mật thì được giải quyết bằng Identity User tích hợp trong ASP.NET.
4. Nội dung hệ thống cung cấp
Hệ thống gồm nhiều đối tượng người dùng như là quản trị viên và học viên với
những quyền hạn riêng. Học viên có thể xem những bài học miễn phí và sử dụng những
bài học trả phí sau khi mua khóa học. Ngoài ra, học viên sẽ được thi những đề thi theo
từng cấp độ có cấu trúc và độ khó tương tự đề thi thật để đánh giá trình độ bản thân. Sau
mỗi khóa học thì học viên có thể bình luận trực tiếp dưới bài học về nội dung thắc mắc
hoặc góp và sẽ được quản trị viên trả lời ở thời gian gần nhất. Ngoài ra hệ thống cung cấp
chức năng gửi phản hồi những nội dung cần thiết. Quản trị viên sẽ chịu trách nhiệm quản
2
trị nội dung trên hệ thống như hệ thống bài viết về tiếng Nhật và nội dung liên quan đến
văn hóa Nhật Bản, thông tin người dùng, các đơn hàng đăng kí mua khóa học tiếng Nhật,
nội dung đề thi và bài học. Phần đề thi được xây dựng theo khung chuẩn theo chương
trình thực tế thì thời gian, nội dung và tính điểm. Quản trị viên là người trực tiếp trả lời
những nội dung thắc mắc của người dùng.
5. Kết quả dự kiến
Dự kiến hệ thống ban đầu sẽ phát triển hoàn thiện các chức năng đã nêu với số
lượng người dùng bao gồm cả hai nhóm là học viên và quản trị viên, tất cả các trình độ
đều có các bài học và đề thi tiêu biểu.
Hiện nay có nhiều nền tảng triển khai học trực tuyến như Moodle, … Những nền
tảng này đều rất nổi tiếng nhưng vẫn tồn tại những nhược điểm như giao diện khó thay
đổi và việc phát triển phụ thuộc rất nhiều vào khuôn mẫu có sẵn nên khó tùy biến và phát
triển thêm những tính năng mà người dùng cần.
6. Cấu trúc khóa luận
Chương 1 Cơ sở lý thuyết giới thiệu những công nghệ sử dụng và thông tin bài thi, trình
độ cho từng cấp độ tiếng Nhật
Chương 2 Phân tích thiết hệ thống bao gồm những thông tin đặc tả và thiết kế chức năng,
cơ sở dữ liệu của hệ thống
Chương 3 Triển khai thực nghiệm gồm những hình ảnh thực tế những gì đã làm được.
Chương 4 Kết luận gồm những kết quả đã đạt được, các biện pháp liên quan đến kĩ năng,
công nghệ, nhược điểm hiện tại và hướng phát triển trong tương lại.
Chương 5 Phụ lục gồm những mô tả ca sử dụng và thông tin các bảng cơ sở dữ liệu chưa
được nêu ở các phần trước
Tài liệu tham khảo sẽ gồm những link tài liệu cụ thể được dùng để tham khảo trong quá
trình xây dụng hệ thống.
3
Chương 1. Cơ sở lý thuyết
Trong chương này tôi sẽ trình bày thông tin bài thi, nội dung bài học tiếng Nhật và những
công nghệ được áp dụng để xây dựng nên hệ thống học tiếng Nhật.
1.1 Thông tin về bài thi và các cấp độ trong tiếng Nhật
Các cấp độ trong tiếng Nhật: [1]
• Trình độ cao sơ cấp (Trình độ N5, N4)
Người học có thể hiểu được câu văn, đoạn văn đơn giản được sử dụng trong sinh
hoạt hàng và trong lớp học.
• Trình độ trung cấp (Trình độ N3)
Người học có thể đọc hiểu những thông tin khái quát nhất có trong báo chí và
nghe hiểu những hội thoại hàng ngày với tốc độ nói tự nhiên. Với trình độ này học
viên có thể bắt đầu hiểu và sử dụng tiếng Nhật trong công việc.
• Trình độ thượng cấp(Trình độ N2, N1)
Ở trình độ này người học có thể đọc và nghe hiểu những tình huống phức tạp như
nội dung báo chí và tin tức. Ở trình độ này học viên có thể đáp ứng được những
công việc cần khả năng tiếng Nhật tốt và được nhiều nhà tuyển dụng săn đón.
Điểm đat ở trình độ N5
• Điểm đạt trên trên 80(Tối đa 180)
• Điểm kiến thức ngôn ngữ đọc hiểu: Trên 38(Tối đa 120)
• Điểm nghe hiểu: Trên 19(Tối đa 60)
Cấu trúc đề thi N5
Phần thi từ vựng
Cấu trúc Mục Số câu Nội dung
Phần 1(Từ vựng) Mục 1 12 Cách đọc những từ được viết bằng Hán
tự
Mục 2 8 Những từ được viết bằng Hiragana sẽ
được viết sang Hán tự hoặc Katakana
như thế nào
Mục 3 10 Tùy theo mạch văn tìm những từ được
qui định phù hợp về mặt ngữ nghĩa
Mục 4 5 Tìm cách diễn đạt, từ gần nghĩa với từ
đã cho
Bảng 1. 1 Cấu trúc phần thi từ vựng N5
4
Phần thi ngữ pháp và đọc hiểu
Cấu trúc Mục Số câu Nội dung
Phần 2(Ngữ pháp
và đọc hiểu)
Mục 1 16 Có thể phán đoán được hình thức ngữ
pháp nào phù hợp với nội dung câu văn
Mục 2 5 Có thể tạo được câu văn mạch lạc về ý
nghĩa và đúng cú pháp
Mục 3 5 Có thể phán đoán được câu nào phù hợp
với với dòng chảy của đoạn văn
Mục 4 3 Đọc và hiểu được những nội dung của
một văn bản khoảng 80 chữ Hán tự đơn
giản về ngữ cảnh, các vấn đề liên quan
đến học tập, cuộc sống hay công việc
Mục 5 2 Đọc và hiểu được văn bản khoảng 250
Hán tự đơn giản về đề tài liên quan đến
cuộc sống hàng ngày
Mục 6 1 Có thể tìm ra những thông tin trong các
bản tin, bản hướng dẫn có khoảng 250
Hán tự cơ bản
Bảng 1. 2 Cấu trúc phần thi ngữ pháp và đọc hiểu N5
Phần thi nghe hiểu
Cấu trúc Mục Số câu Nội dung
Phần 3 Nghe
hiểu
Mục 1 7 Có thể hiểu được nội dung khi nghe một
đoạn văn, một đoạn hội thoại. Nghe nắm
bắt được thông tin cần thiết, giải quyết
chủ đề mang tính cụ thể và có thể biết
được cái thích hợp tiếp theo
Mục 2 6 Có thể hiểu được nội dung khi nghe một
đoạn văn, một đoạn hội thoại. Phải nghe
cái được chị thị từ trước, có khả năng
nghe lược những điểm chính
Mục 3 5 Vừa nhìn hình vừa nghe giải thích để lựa
chọn đáp án thích hợp
5
Mục 4 6 Nghe câu thoại ngắn chằng hạn như một
câu hỏi rồi chọn đáp án tương ứng
Bảng 1. 3 Cấu trúc phần thi nghe hiểu N5
1. 2 Nội dung bài học
Với mỗi bài học chúng ta có các phần như
• Chữ Hán
• Từ vựng
• Ngữ pháp
• Đọc hiểu
• Nghe hiểu
Trong từng phần học thì sẽ có video và tài liệu cụ thể liên quan đến phần bài học đó.
1.3 Mô hình MVC
Mô hình MVC là mô hinh phổ biến hiện nay được chưa làm 3 lớp xử lý Model – View –
Controller.[2]
• Model : nơi chứa những nghiệp vụ tương tác dữ liệu hoặc hệ quản trị cơ sở dữ
liệu. Nó bao gồm các class/function xử lý nghiệp vụ như kết nối database, truy
xuất dữ liệu, thêm, sửa, xóa dữ liệu trong database
• View: nơi chứa giao diện của hệ thống như trang chủ, trang khóa học, trang bài
thi, ….Nó sẽ đảm nhận vai trò hiển thị dữ liệu cho người dùng và giúp người dùng
tương tác với hệ thống
• Controller: là nơi tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ
gồm các class/function xử lý nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần
thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó cho người dùng
nhờ lớp View
1.4 Khái quát về ASP.NET MVC
ASP.NET MVC là một framework web được phát triển bởi Microsoft, thực thi mô hình
MVC, cho phép các lập trình viên xây dựng các Web động. Nó cho phép ta sử dụng đầy
đủ tính năng của ngôn ngữ lập trình C#. [3]
Cách hoạt động
Dựa trên nền tảng ASP.NET, ASP.NET MVC cho phép các nhà phát triển phần mềm xây
dựng các ứng dụng web như là một cấu thành 3 vai trò: Model, View và Controller. Mô
hình MVC định nghĩa ứng dụng Web với 3 tần logic.
• Model (tầng business – business layer)
6
• View (tầng hiển thị – display layer)
• Controller (điều khiển đầu vào – input control)
1.5 Entity Framework
Entity Framework (EF) là một framework ánh xạ quan hệ đối tượng (ORM) dành cho
ADO.NET, là 1 phần của .NET Framework. EF cho phép các nhà phát triển Web tương
tác với dữ liệu quan hệ theo phương pháp hướng đối tượng đặc trưng. Lợi ích lớn nhất
của EF là giúp lập trình viên giảm thiểu việc lập trình mã nguồn cần thiết để truy cập và
tương tác với cơ sở dữ liệu. EF được Microsoft hỗ trợ phát triển lâu dài và bền vững, vì
vậy EF là 1 framework mạnh nhất hiện nay để phát triển ứng dụng Web với sự hỗ trợ
đông đảo của các nhà phát triển Web. [4]
Có một số tính năng nổi bật của Entity Framework như:
• Code First + Migration
• Change Tracker API
• Lazy Loading, Eager Loading, Explicit Loading
Trong hệ thống thì có sử dụng Code Firt from database để tạo ra các class tương ứng với
các bảng trong Database.
1.6 Razor
Razor là một trong các công cụ tạo giao diện được hỗ trợ trong ASP.NET MVC. Nó cho
phép bạn viết HTML và code ở phần server dùng C# hoặc Visual Basic. Razor sử dụng
C# có phần mở rộng là .cshtml. [5]
Cú pháp của Razor có đặc điểm như sau:
• Nhỏ gọn: cú pháp của nó rất nhỏ gọn cho phép bạn giảm thiểu số lượng kí tự và tổ
hợp phím cần thiết để viết mã.
• Dễ học: cú pháp rất dễ học. Người viết có thể sử dụng C# hoặc Visual Basic.
• Thông minh: cú pháp hỗ trợ những câu lênh trong Visual Studio
1.7 Identity User
Identity User [6] là thành phần của ASP.NET, nó cung cấp đầy đủ các tính năng và đa
dạng về Authencation. Ví dụ như: Tạo tài khoản, đăng nhập, cập nhật thông tin các nhận.
Ngoài ra nó còn hỗ trợ những tính năng như đăng nhập với các tài khoản Gmail,
Facebook, Twitter.
Về tính năng phân quyền, Identity hỗ trợ các thao tác liên quan đến quyền của người
dùng. Nói một cách ngắn gọn, Identity là công cụ rất tốt trong việc liên quan đến xác thực
và phân quyền
1.8 AJAX
AJAX[7] (Asynchronous JavaScript and XML) trong các ứng dụng web được sử dụng để
7
cập nhật một phần của trang web và lấy dữ liệu từ máy chủ bất đồng bộ. AJAX giúp cải
thiện hiệu năng của ứng dụng web và làm cho ứng dụng thân thiện với người dùng hơn.
1.9 LINQ
LINQ[8] là viết tắt của Language Integration Query. Ngôn ngữ truy vấn của Microsoft
được tích hợp đầy đủ và cung cấp truy cập dữ liệu dễ dàng từ các đối tượng trong bộ nhớ,
cơ sở dữ liệu, tài liệu XML và nhiều hơn nữa. Thông qua một bộ các tiện ích mở rộng,
LINQ có thể tích hợp các truy vấn trong C # và Visual Basic. Hướng dẫn này cung cấp
một cái nhìn sâu sắc hoàn toàn về LINQ với các ví dụ và mã hóa phong phú. Toàn bộ
hướng dẫn được chia thành các chủ đề khác nhau với chủ đề phụ mà người mới bắt đầu
có thể chuyển dần sang các chủ đề phức tạp hơn của LINQ.
1.10 Bootrap
Bootstrap[9] là công cụ mã nguồn mở để phát triển với HTML, CSS và JS. Nó giúp
chúng ta nhanh chóng tạo nguyên mẫu cho ý tưởng của bản thân hoặc xây dựng toàn bộ
ứng dụng hệ thống lưới đáp ứng, các thành phần dựng sẵn mở rộng và các plugin mạnh
mẽ được xây dựng trên jQuery.
1.11 Jquery
Jquery[10] là một thư viện JavaScript nhanh, nhỏ và giàu tính năng. Nó làm cho mọi thứ
như chuyển đổi và thao tác tài liệu HTML, xử lý sự kiện, hoạt hình và Ajax đơn giản hơn
nhiều với API dễ sử dụng, hoạt động trên vô số trình duyệt. Với sự kết hợp giữa tính linh
hoạt và khả năng mở rộng, jQuery đã thay đổi cách hàng triệu người viết JavaScript.
8
Chương 2. Phân tích thiết kế hệ thống 2.1 Phân tích các ca sử dụng
Hệ thống có hai đối tượng người sử dụng chính là quản trị viên và học viên.
Quản trị viên là người có quyền hạn cao nhất và quản trị mọi nội dung trên hệ thống.
Những nội dung mà người này quản trị gồm có nội dung bài học, đề thi, các đơn hàng,
bài viết, trả lời các phản hồi của học viên, thông tin giảng viên.
Học viên có thể mua các khóa học theo yêu cầu. Sau khi thanh toán thành công, hệ thống
sẽ gửi mã kích hoạt và có thể học được sau khi kích hoạt khóa học. Ngoài ra, học viên có
thể tham gia các bài thi thử để đánh giá năng lực của bản thân, đặt câu hỏi sau mỗi bài
học để quản trị viên vào giải đáp.
Hệ thống còn cung cấp các thông tin giảng viên, các bài viết về việc học tiếng Nhật và
đất nước Nhật Bản để mọi người có thêm niềm say mê với tiếng Nhật. Sau đây là biểu đồ
các ca sử dụng đối với từng người dùng.
Ca sử dụng của quản trị viên:
Hình 2. 1 Biểu đồ Use Case của quản trị viên
Ca sử dụng của học viên:
9
Hình 2. 2 Biểu đồ Use Case của học viên
1. Ca sử dụng đăng ký
Tên ca sử dụng Đăng ký
ID UC01
Ca sử dụng trước Không
Tác nhân Người dùng
Mô tả tóm tắt Người dùng đăng kí tài khoản sử dụng hệ thống với
những thông tin được yêu cầu
Tiền điều kiện Người dùng đang ở trang đăng kí hệ thống
Hậu điều kiện Người dùng đăng kí thành công
Luồng sự kiện - Người dùng ở trang đăng kí tài khoản
- Người dùng nhập thông tin đăng ký
- Kiểm tra tính hợp lệ của dữ liệu, nếu hợp lệ thì gửi
yêu cầu tạo tài khoản
Luồng thay thế - Dữ liệu không hợp lê: Thông báo để người dùng
nhập lại
- Dữ liệu chưa đầy đủ: Thống báo để người dùng
nhập lại
Mức độ ưu tiên Cao
Yêu cầu phi chức năng Không
Bảng 2. 1 Mô tả ca sử dụng đăng ký
Biểu đồ hoạt động
10
Biểu đồ tuần tự
2. Ca sử dụng đăng nhập
Tên ca sử dụng Đăng nhập
ID UC02
Ca sử dụng trước Không
Tác nhân Người dùng
Mô tả tóm tắt Người dùng đăng nhập với tài khoản đã có
Tiền điều kiện Người dùng đang ở trang đăng nhập
Hậu điều kiện Người dùng trở về trang chủ
Luồng sự kiện - Người dùng ở trang đăng nhập
- Người dùng nhập thông tin tài khoản yêu cầu
- Hệ thống kiếm tra và đăng nhập thành công nếu
thông tin chính xác
Luồng thay thế:
- Thông tin không hợp lệ hệ thống sẽ xuất ra thông
báo cho người dùng
11
- Thông tin tài khoản không chính xác xuất ra thông
báo
Mức độ ưu tiên Cao
Yêu cầu phi chức năng Không
Bảng 2. 2 Mô tả ca sử dụng đăng nhập
Biểu đồ hoạt động
Biểu đồ tuần tự
12
3. Ca sử dụng bình luận khóa học
Tên ca sử dụng Bình luận khóa học
ID UC05
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
Mô tả tóm tắt Người dung tiến hành nhập ý kiến bản thân ở dưới bài
học
Tiền điều kiện Người dùng đã đăng nhập và đang ở trang học bài
Hậu điều kiện Hoàn thành bình luận khóa học
Luồng sự kiện - Người dùng ở trang học bài
- Tiến hành nhập thông tin bình luận
- Hệ thống kiểm tra tính hợp lệ và gửi bình luận
Luồng thay thế - Người dùng nhập thông tin không hợp lệ,hệ thống
xuất ra thông báo
- Bình luận không được thực hiện
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 3 Bảng mô tả ca sử dụng bình luận khóa học
Biểu đồ hoạt động
Biểu đồ tuần tự
13
4. Ca sử dụng thi thử
Tên ca sử dụng Thi thử
ID UC09
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
Mô tả tóm tắt Người dùng thực hiện thi thử theo trình độ và bài thi
mong muốn
Tiều điều kiện Đăng nhập
Hậu điều kiện Người dùng hoàn thành bài thi với kết quả
Luồng sự kiện - Người dùng chọn trình độ thích hợp và xuất hiện
các đề thi tương ứng
- Người dùng chọn đề thi và tiến hành làm bài
- Các phần thi có tính giờ và kết quả sẽ xuất hiện
sau khi hết thời gian làm bài
Luồng thay thế - Người dùng không thực hiện thi thử
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 4 Bảng mô tả ca sử dụng thi thử
Biểu đồ hoạt động
Biểu đồ tuần tự
14
5. Ca sử dụng lưu lịch sử thi
Tên ca sử dụng Xem lịch sử thi
ID UC10
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
Mô tả tóm tắt Người dùng thực hiện xem thông tin lịch sử thi
Tiền điều kiện Đăng nhập
Hậu điều kiện Xuất hiện kết quả thi thử
Luồng sự kiện - Người dùng đã đăng nhập và ở trang lịch sử thi
- Màn hình xuất hiện thông tin lịch sử thi
Luồng thay thế - Người dùng không xem lịch sử thi
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 5 Bảng mô tả ca sử dụng lưu lịch sử bài thi
Biểu đồ hoạt đồng
Biểu đồ tuần tự
15
6. Ca sử dụng quản trị khóa học
Tên ca sử dụng Quản trị liên quan đến khóa học
ID UC17
Ca sử dụng trước Đăng nhập với tư cách là Admin
Tác nhân Quản trị viên
Mô tả tóm tắt Quản trị thực hiện thao tác liên quan đến thông tin
khóa học
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin về khóa học được thực hiện
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị
thông tin khóa học
- Admin chọn những trước chức năng thêm, sửa,
xóa với thông tin liên quan đến khóa học
- Hệ thống kiểm tra hợp lệ và thực hiện hành
động nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không
hợp lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 6 Bảng mô tả ca sử dụng quản trị khóa học
Thêm khóa học
• Biểu đồ hoạt động
16
• Biểu đồ tuần tự
Sửa khóa học
• Biểu đồ hoạt động
17
• Biểu đồ tuần tự
Xóa khóa học
• Biểu đồ hoạt động
18
• Biểu đồ tuần tự
7. Ca sử dụng quản trị chương học
Tên ca sử dụng Quản trị liên quan đến chương học
ID UC17
Mô tả tóm tắt Quản trị thực hiện thao tác liên quan đến thông tin
chương học
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin về chương học được thực hiện
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị thông
19
tin chương học
- Admin chọn những trước chức năng thêm, sửa,
xóa với thông tin liên quan đến chương học
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không hợp
lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 7 Bảng mô tả ca sử dụng quản trị chương học
Thêm chương học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
20
Sửa chương học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
Xóa chương học
• Biểu đồ hoạt động
21
• Biểu đồ tuần tự
8. Ca sử dụng quản trị bài học
Tên ca sử dụng Quản trị liên quan đến bài học
ID UC17
Mô tả tóm tắt Quản trị thực hiện thao tác liên quan đến thông tin bài
học
22
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin về bài học được thực hiện
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị thông
tin bài học
- Admin chọn những trước chức năng thêm, sửa,
xóa với thông tin liên quan đến bài học
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không hợp
lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 8 Bảng mô tả ca sử dụng quản trị bài học
Thêm bài học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
23
Sửa bài học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
24
Xóa bài học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
25
9. Ca sử dụng quản trị đề thi
Tên ca sử dụng Quản trị liên quan đến đề thi
ID UC17
Mô tả tóm tắt Quản trị thực hiện thao tác liên quan đến thông tin đề
thi
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin về bài học được thực hiện
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị thông
tin đề thi
- Admin chọn những trước chức năng thêm, sửa, xóa
với thông tin liên quan đến đề thi
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không hợp lệ
và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
Bảng 2. 9 Bảng mô tả ca sử dụng liên quan đến quản trị đề thi
Thêm câu hỏi
• Biểu đồ hoạt động
26
• Biểu đồ tuần tự
Sửa câu hỏi
• Biểu đồ hoạt động
27
• Biểu đồ tuần tự
Xóa câu hỏi
• Biểu đồ hoạt động
28
• Biểu đồ tuần tự
Import đề thi
• Biểu đồ hoạt động
29
• Biểu đồ tuần tự
Sao chép đề thi
• Biểu đồ hoạt động
30
• Biểu đồ tuần tự
Chọn từ ngân hàng đề thi
• Biểu đồ hoạt động
31
• Biểu đồ tuần tự
Các ca sử dụng còn lại tham khảo [Phụ lục]
2.2 Kiến trúc hệ thống
Hệ thống được tổ chức theo mô hình MVC
View chứa các file .chtml chứa giao diện liên quan
Controller đóng vai trò nhận yêu cầu của người dùng và trả về View dữ liệu tương ứng
DAO Service cung cấp các phương thức thao tác với cơ sở dữ liệu.
32
2.3 Cấu trúc thư mục dự án
Hình 2. 3 Cấu trúc dự án
Giải thích cấu trúc thư mục:
App_Data: nơi chứa những dữ liệu của ứng dụng
App_Start: nơi chứa những file được sử dụng khi khởi động ứng dụng
33
Area: khu vực tự định nghĩa cho từng nhóm người dùng ở trong dự án này là định nghĩa
những View, Controller, Model, Dao cho Admin(người quản trị thệ thống)
Common: nơi chứa những function(hàm) được sử lại nhiều lần
Content: nơi chứa những file ảnh, mp3, mp4 của dự án.
Controller: chứa những class để tiếp nhận yêu cầu của người dùng và trả về những kết
quả đúng nhất theo yêu cầu của người dùng
Dao: chứa những hàm thao tác với dữ liệu như việc đọc, tạo, sửa, xóa dữ liệu theo yêu
cầu của người dùng
Model: chứa những class tương ứng với các bảng trong cơ sở dữ liệu
Template: chứa những thư mục js, images, css, font phục vụ cho việc trang trí giao diện
View: chứa toàn bộ các trang của hệ thống trừ phần giao diện của Admin gồm có những
trang như (Account, Blog, Course, Exam, Home, Manage, Support, Teacher, User)
Web.config: chứa thông tin cấu hình hệ thống như chuỗi kết nối đến cơ sở dữ liệu và các
thông tin liên quan đến cài đặt khác.
2.4 Thiết kế cơ sở dữ liệu
Liên quan đến nội dung bài học, trong mỗi khóa học sẽ được chia thành nhiều chương
học, trong từng chương học sẽ có những bài học về từ vựng, ngữ pháp, hán tự, đọc hiểu,
nghe hiểu, bài hội thoại áp dụng những kiến thức đã học. Về phần bài thi, mỗi trình độ sẽ
có nhiều đề thi. Các đề thi sẽ được chia làm 4 phần từ vựng, ngữ pháp, đọc hiểu và nghe
hiểu. Trong từng phần thi sẽ có các mondai với số lượng câu khác nhau tùy theo từng
trình độ.
Hình 2. 4 Cấu trúc cơ sở dữ liệu
34
Quan hệ giữa Course và Chapter: 1 : n
Quan hệ giữa Chapter và Lession: 1 : n
Quan hệ giữa Lession và Comment: 1 : n
Quan hệ giữa Comment và Reply: 1: n
Quan hệ giữa Exam và Question: m : n, Exam và Level: n : 1
Quan hệ giữa Mondai và Question: 1: n, Mondai và Level: n : 1
Quan hệ AspNetUser và Order: 1 : n, AspNetUser và Reply: 1 : n, User và Comment: 1:n
Quan hệ Post và CategoryPost: n : 1
2.5 Tầng xử lý dữ liệu
Các class sẽ thực hiện việc thêm, sửa, xóa và đọc các dữ liệu trong bảng tương ứng. Việc
đọc dữ liệu đó được hỗ trợ bởi LINQ đã được nêu trong lý thuyết trên.
Hình 2. 5 Các class xử lý cơ sở dữ liệu
2.6 Các controller chính
Các controller chính trong hệ thống sẽ tiếp nhận yêu cầu từ người dùng và trả về kết quả
hợp lý nhất.
Các controller cho người dùng không phải quản trị viên
Hình 2. 6 Các Controller cho người dùng
35
Các controller cho quản trị viên
Hình 2. 7 Các controller cho quản trị viên
2.7 Cơ chế xác thực và phân quyền
Việc xác thực và phân quyền trong hệ thống được hỗ trợ bởi Identity. Đối với những
hành động cần đăng nhập để thưc hiện thì sẽ thêm [Authorize] vào trước Controller đó.
Những hành động cần xác định nhóm người dùng cụ thể thì ta dùng User.Inrole(“tên
quyền ngươi dùng”).
Hình 2. 8 Cơ chế xác thực
Với những vùng quản trị của Admin thì cần có quyền Admin với có thể truy cập
36
Hình 2. 9 Cơ chế phân quyền
Với những video khóa học không miễn phí thì chỉ những học viên đã mua khóa học mới
có thể dùng được
Hình 2. 10 Kiểm tra quyền và đăng nhập tại tầng View
2.8 Ajax
Có sử dụng Ajax để tăng trải nghiệm người dùng trong hệ thống. Nó được sử dụng trong
phần bình luận dưới mỗi video
37
Hình 2. 11 Sử dụng Ajax
2.9 Validate thông qua Model trong ASP.NET
Model trong ASP.NET có thể kiểm tra sự hợp lệ của dữ liệu một cách rất đơn giản. Các
trường hợp có thể kiểm: kiểm tra rỗng, độ dài lớn nhất và nhỏ nhất, kiểm tra thỏa mãn
regex với dữ liệu email hoặc số điện thoại, …. Ngoài ra nó còn hỗ trợ những kiểm tra do
người dùng tự định nghĩa. Dưới dây là một số ví dụ mô tả những điều trên.
Hình 2. 12 Validate thông qua Model
38
Chương 3. Triển khai thực nghiệm 3.1 Thực hiện học bài
Thêm thực hiện đăng nhập và đăng kí tài khoản.
Sau khi người dùng đăng nhập hệ thống thì sẽ có những khóa học tương ứng với từng
trình độ. Nội dung những bài học gồm có video và slide bài giảng. Dưới mỗi bài học có
phần bình luận để học viên tiện phản hồi
Chọn khóa học
Chọn bài học
Hình 3. 1 Giao diện trang bài học
Bình luận khóa học
39
3.2 Thực hiện thi thử
Sau khi đăng nhập, người dùng chọn đề thi theo từng trình độ mình muốn làm, đề thi bao
gồm 3 phần thi liên tiếp: Từ vựng, Ngữ pháp và đọc hiểu, Nghe hiểu.
Chọn đề thi theo trình độ mong muốn
Phần thi từ vựng
Hình 3. 2 Phần thi từ vựng
40
Phần thi ngữ pháp và đọc hiểu
Hình 3. 3 Phần thi ngữ pháp và đọc hiểu
Phần thi nghe hiểu
Hình 3. 4 Phần thi nghe hiểu
3.3 Khu vực quản trị viên
Quản trị viên quản lý những thông tin liên quan đến bài thi, bài học, bài viết, đơn hàng,
Giao diện quản lý đề thi với những chức năng như thêm câu hỏi, Import đề thi từ file
excel, sao chép đề thi, chọn từ ngân hàng câu hỏi
41
Hình 3. 5 Giao diện quản lý đề thi
Giao diện quản lý bài học với thao tác thêm, sửa, xóa các bài học
Hình 3. 6 Giao diện quản lý liên quan đến bài học
3.4 Khu vực học viên
Học viên quản lý thông tin liên quan đến khóa học đã mua, thông tin cá nhân, mật khẩu
42
Hình 3. 7 Quản lý thông tin cá nhân
3.5 Giao diện bài viết liên quan đến tiếng Nhật
Hình 3. 8 Hình ảnh bài viết liên quan đến tiếng Nhật
3.6 Trang hỗ trợ người dùng
Hình 3. 9 Hình ảnh trang hỗ trợ người dùng
3.7 Trang thông tin giảng viên
43
Hình 3. 10 Hình ảnh trang giới thiệu giảng viên
Hiện tại hệ thống có 20 bài viết, 10 đề thi, 80 bài học. Trong thời gian tới sẽ tiếp tục cập
nhật thêm để phục tốt cho nhu cầu người học.
44
Chương 4. Kết luận
4.1 Lý thuyết
Trong quá trình xây dựng hệ thống học tiếng Nhật trực tuyến, tôi đã học được
những lí thuyết về quá trình phát triển phần mềm và các kiến thức liên quan đến web.
Về qui trình phát triển phần mềm, tôi học được cách định nghĩa các yêu cầu, cách
mô tả các chức năng, cơ sở dữ liệu, thiết kế các biểu đồ ca sử dụng, biểu đồ tuần tự, qui
trình thực hiện cài đặt các thiết kế hệ thống.
Ngoài ra, tôi còn học được nguyên kiến thức liên quan đến web như mô hình
MVC, cách tạo các giao diện web, tạo các hành vi tương tác với giao diện web. Quá trình
đó cũng giúp tôi không ngại học hỏi thêm công nghệ mới và nuôi dưỡng thêm niềm đam
mê với lập trình. Đó là những trải nghiệm hết sức quí giá trong quá trình làm hệ thống
hiện tại.
4.2 Kỹ năng
Khi thực hiện hệ thống ngoài bên cạnh những lý thuyết cần phải có, còn đòi hỏi tôi
có một số kĩ năng nhất định để hoàn thành dự án .
Đầu tiên, kĩ năng phân tích và giải quyết vấn đề, đây là kĩ năng rất quan trọng để
giải quyết với mọi tình huống. Nó giúp tôi giải quyết những vấn đề gặp phải trong khi
làm khóa luận.
Tiếp theo là kĩ năng lên kế hoạch. Khi tạo được một bản kế hoạch đầy đủ nó giúp
tôi chủ động trong phần việc của mình và đảm bảo công việc luôn diễn ra theo đúng kế
hoạch.
Và cuối đề hoàn thành trọn vẹn khóa luận nhất có thể là kĩ năng trình bày. Nó giúp
tôi hệ thống kiến thức một cách đầy đủ và giúp người khác hiểu hơn về kiến thức của bản
thân. Đó là kĩ năng tôi thấy rất quan trọng và rèn luyện nhiều không chỉ trong quá trình
làm khóa luận mà cả trong thời gian sắp tới
4.3 Công nghệ
Hệ thống có sử dụng một số công nghệ như sau:
• Client: HTML, CSS, Jquery, AJAX
• Server: C#, ASP.NET
• ORM: Entity Framework
• Database: SQL Server
4.4 Nhược điểm
Hiện tại hệ thống đã hoàn thiện những chức năng so với thiết kế. Bên cạnh đó vẫn
tồn tại một số khuyết điểm về nền tảng, hiệu năng và nội dung.
Nội dung liên quan đến bài học và tiếng Nhật cần phải cập nhật thêm với để đáp
ứng đủ nhu cầu người học với đủ các trình độ. Ngoài ra, cần bổ sung những bài viết về
tiếng Nhật, những kĩ năng đi thi để học viên có thể đạt được trình độ mong muốn một
cách nhanh nhất.
Hệ thống mới chỉ đáp ứng được người sử dụng trên nền tảng web, thiếu nền tảng
di động. Một nền tảng rất phổ biến và được ưa chuộng hiện nay. Ngoài ra hiệu suất của
hệ thống cần cải thiện thêm.
4.5 Kế hoạch phát triển
45
Trong thời gian tới, tôi sẽ tiếp tục phát triển thêm các tính năng mới, tăng cường
chất lượng dạy học.
Về nội dung giảng dạy và bài thi, sẽ bổ sung đầy đủ các kiến thức liên quan đến
các trình độ tiếng Nhật và cập nhật những nội dung mới nhất liên quan đến ôn luyện và
thi cử.
Chúng tôi sẽ phát triển thêm trên nền tảng Mobile. Nền tảng thu hút khá nhiều
người dùng và chiếm nhiều thời gian sử dụng của người học. Học trên nền tảng này sẽ
tạo được bước tiến quan trọng cho trình độ học viên.
Hệ thống chắc chắn sẽ có số lượng người dùng và lượng truy cập tăng theo từng
ngày. Đây cũng là bài toán chúng tôi sẽ giải quyết thời gian để hệ thống hoạt động vơi
hiệu suất cao nhất đáp ứng được trải nghiệm của người dùng.
46
Chương 5. Phụ lục 1. Chức năng
4. Ca sử dụng quản trị bài viết
Tên ca sử dụng Quản trị bài viết
ID UC14
Ca sử dụng trước Đăng nhập với tư cách là Admin
Tác nhân Quản trị viên
Mô tả tóm tắt Quản trị thao tác với những bài viết trong hệ thống
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Nội dung bài viết được cập nhật
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị danh
sách bài viết
- Admin chọn những trước chức năng thêm, sửa,
xóa với những bài viết muốn thao tác
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không hợp
lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
5. Ca sử dụng quản trị thông tin giảng viên
Tên ca sử dụng Quản trị thông tin giảng viên
ID UC15
Ca sử dụng trước Đăng nhập với tư cách là Admin
Tác nhân Quản trị viên
Mô tả tóm tắt Quản trị thao tác với những thông tin liên quan đến
giảng viên trong hệ thống
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin giảng viên được cập nhật
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị thông
tin giảng viên
- Admin chọn những trước chức năng thêm, sửa,
xóa với những giảng viên muốn thao tác
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không hợp
lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
6. Ca sử dụng hỗ trợ
47
Tên ca sử dụng Quản trị hỗ trợ
ID UC16
Ca sử dụng trước Đăng nhập với tư cách là Admin
Tác nhân Quản trị viên
Mô tả tóm tắt Quản trị viên trả lời thắc mắc qua địa chị email có
sẵn và chọn đã trả lời trên hệ thống
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin giảng viên được cập nhật
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị thông
tin hỗ trợ
- Admin cập tình hình hỗ trợ sau khi trả lời thắc
mắc
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế - Không thực hiện thao tác nếu dữ liệu không hợp
lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
7. Ca sử dụng liên quan đến đơn hàng
Tên ca sử dụng Quản trị liên quan đến đơn hàng
ID UC21
Mô tả tóm tắt Quản trị thực hiện thao tác liên quan đến thông tin
đơn hàng
Tiền điều kiện Đăng nhập hệ thống với tư cách là quản trị viên
Hậu điều kiện Thông tin về đơn hàng được thực hiện
Luồng sự kiện - Admin đăng nhập và đang ở trang hiển thị thông
tin đơn hàng
- Admin chọn những trước chức năng thêm, sửa,
xóa với thông tin liên quan đến đơn hàng
- Hệ thống kiểm tra hợp lệ và thực hiện hành động
nếu dữ liệu hợp lệ
Luồng thay thế: - Không thực hiện thao tác nếu dữ liệu không hợp
lệ và xuất ra thông báo
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
8. Ca sử dụng cập nhật thông tin cá nhân
Tên ca sử dụng Cập nhật thông tin
ID UC03
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
48
Mô tả tóm tắt Người dùng nhập thông tin cần thay đổi
Tiền điều kiên Người dùng đã đăng nhập
Hậu điều kiện Các thông tin mới được cập nhật
Luồng sự kiện - Người dùng ở trang cập nhật thông tin
- Hệ thống kiểm tra tính hợp lệ của dữ liệu và cập
nhật thông tin thay đổi
Luồng thay thế - Người dùng nhập thông tin không hợp lệ, hệ
thống sẽ xuất ra thông báo và không cập nhật
thông tin
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
9. Ca sử dụng kích hoạt khóa học
Tên ca sử dụng Kích hoạt khóa học
ID UC06
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
Mô tả tóm tắt Người dùng tiến hành kích hoạt khóa với những
thông tin được yêu cầu.
Tiền điều kiên Người dùng đã đăng nhập và đang ở trang kích hoạt
Hậu điều kiện Kích hoạt thành công và có thể học khóa học đó
Luồng sự kiện - Người dùng đã đăng nhập và đang ở trang kích
hoạt
- Tiến hành nhập mã kích hoạt và chọn khóa học
kích hoạt
- Hệ thống kiểm tra thông tin và kích hoạt nếu
thông tin chính xác
Luồng thay thế - Hệ thống sẽ thông báo nếu thông tin nhập không
hợp lệ hoặc không chính xác
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
10. Ca sử dụng gửi phản hồi
Tên ca sử dụng Gửi phản hồi
ID UC07
Ca sử dụng trước Không
Tác nhân Người dùng
Mô tả tóm tắt Người dùng nhập thông tin phản hồi với những hình
thức qui định sẵn
Tiền điều kiện Đang ở đang gửi phản hồi
Hậu điều kiện Thông tin được gửi đi
49
Luồng sự kiện - Người dùng nhập những thông tin được yêu cầu
- Hệ thống sẽ gửi phản hồi nếu thông tin hợp lệ
Luồng thay thế - Hệ thống sẽ xuất thông báo nếu thông tin không
hợp lệ
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
11. Ca sử dụng mua khóa học
Tên ca sử dụng Mua khóa học
ID UC08
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
Mô tả tóm tắt Người dùng thực hiện mua khóa học
học
Tiền điều kiện Người dùng đã đăng nhập
Hậu điều kiện Người dùng mua khóa học thành công
Luồng sự kiện - Người dùng kích button mua khóa
học
- Hệ thống xuất hiện màn hình với
thông tin về giá và tài khoản người
nhận tiền
- Người dùng kích đăng kí mua
- Hệ thống thông báo mua thành
công
Luồng thay thế - Người dùng không chọn mua khóa
học
- Hệ thống thông báo nếu người
dùng đã mua khóa học rồi
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
12. Ca sử dụng trả lời bình luận
Tên ca sử dụng Trả lời bình luận
ID UC13
Ca sử dụng trước Đăng nhập
Tác nhân Người dùng
Mô tả tóm tắt Quản trị viên vào trả lời thắc mắc của học viên
Tiền điều kiện Đã đăng nhập với tư cách là quản trị viên
Hậu điều kiện Trả lời bình luận thành công
Luồng sự kiện - Admin đã đăng nhập và ở trang trả lời bình luận
- Admin nhập bình luận
50
- Hệ thống kiểm tra tính hợp lệ và cập nhật bình
luận
Luồng thay thế - Không cập nhật trả lời bình luận
Mức độ ưu tiên Trung bình
Yêu cầu phi chức năng Không
2. Cơ sở dữ liệu
Bảng Teacher:
ID Int Primarykey
Name(thông tin họ và tên) nvarchar(250)
Image(hình ảnh của giảng viên) nvarchar(250)
Experience(Kinh nghiệm giảng dạy) nvarchar(250)
Education(Trình độ học vấn) nvarchar(250)
Level(Trình độ tiếng Nhật) nvarchar(250)
Bảng hỗ trợ:
ID Int primarykey
Name(Tên người dùng gửi phản hồi nvarchar(250)
Email(Địa chỉ Email của người gửi) nvarchar(250)
Phone(Số điện thoại người gửi phàn hồi) nvarchar(250)
Title(Tiêu đề gửi) nvarchar(250)
51
Content(Nội dung thắc mắc hoặc báo sự cố) nvarchar(4000)
Status(Tình trạng: được giải đáp hoặc chưa được giải
đáp)
nvarchar(250)
Bảng cảm nhận của học viên:
Lưu thông tin phản hồi của học viên về mọi điều liên quan đến trung tâm:
• Image(hình ảnh học viên)
• Name(tên học viên)
• Content(Nội dung cảm nhận của học viên sau quãng thời gian theo học ở trung
tâm)
ID Int primarykey
Image(hình ảnh học viên) nvarchar(250)
Name(tên học viên) nvarchar(250)
Content Nchar(4000)
Bảng lưu thông tin về Id của quyền, Id của người dùng trong hệ thống:
UserId(id của người dùng) nvarchar(128) foreign key
RoleId(id của quyền người dùng) nvarchar(128) foreign key
Bảng lưu thông tin về các quyền trong hệ thống:
52
Id(id của quyền thực hiện) nvarchar(128) primary key
Name(tên quyền thực hiện) nvarchar(256)
Bảng lưu thông tin người dùng:
Id nvarchar(128) primary key
Email nvarchar(256)
EmailConfirmed bit
PasswordHash nvarchar(MAX)
PhoneNumber nvarchar(MAX)
UserName nvarchar(256)
FullName nvarchar(350)
Birthday datetime
Level nvarchar(250)
Address nvarchar(450)
Nation nvarchar(450)
Bảng lưu thông tin đơn hàng khóa học:
53
Id Int primary key
NameOrder nvarchar(450)
CreateDate datetime
Price nvarchar(250)
Status nvarchar(50)
ReceiveAddress nvarchar(550)
PhoneNumber nvarchar(150)
ActiveCode nvarchar(150)
UserId nvarchar(128) foreign key
CourseId Int foreign key
Bảng lưu thông tin khóa học:
ID Int primarykey
Name nvarchar(250)
Decription nvarchar(550)
Time nvarchar(250)
Price nvarchar(250)
LinkVideo nvarchar(650)
54
UrlVideo nvarchar(550)
Bảng lưu thông tin chương
ID Int primarykey
Name nvarchar(450)
IDCourse Int foreign key
Bảng lưu thông tin các bài học:
ID Int primary key
Name nvarchar(550)
UrlVideo nvarchar(550)
Content ntext
Status nvarchar(150)
IDChapter Int foreign key
Bảng lưu thông tin bình luận sau mỗi khóa học:
ID Int primary key
Content nvarchar(650)
CreateDate Datetime
55
LessionID Int
UserId nvarchar(128) foreign key
Bảng chứa thông tin phản hồi ở mỗi bình luận luận:
Gồm thông tin như:
• Content (Nội dung trả lời bình luận)
• UserId(Id của người dùng)
• CommentID (Id của comment)
• CreateDate(Ngày tạo)
Id Int primary key
Content nvarchar(550)
UserId nvarchar(128) foreign key
CommentID int
CreateDate datetime
Bảng lưu thông tin Mondai:
ID Int primary key
Content nvarchar(MAX)
LevelId Int foreign key
PartId Int foreign key
Bảng lưu thông tin phần thi:
ID Int primary key
56
Name nvarchar(650)
Bảng lưu thông tin câu hỏi trong các phần thi:
ID Int primary key
Content nvarchar(MAX)
OptionA nvarchar(1150)
OptionB nvarchar(1150)
OptionC nvarchar(1150)
OptionD nvarchar(1150)
CorrectAnswer nvarchar(1150)
Score int
Gerneral nvarchar(MAX)
ExamID Int foreign key
MondaiID Int foreign key
Bảng lưu thông tin về kì thi:
ID Int primary key
57
Name nvarchar(550)
CreatedDate datetime
Decription nvarchar(MAX)
LevelId int
Duraction nvarchar(50)
LinkAudio nvarchar(MAX)
Bảng level lưu thông tin trình độ gồm có Id và tên trình(N1, N2, N3, N4, N5)
Bảng lưu thông tin bài viết
ID Int primary key
Title nvarchar(250)
Image nvarchar(250)
StartDate datetime
Author nvarchar(250)
View int
IDCategory int
Body ntext
Decription nvarchar(550)
Bảng CategoryPost lưu Id và tên thể loại bài viết:
Bảng lưu thông tin lịch sử thi:
58
ID Int primary key
GoiBunpou int
Dokkai int
Choukai int
CreatedDate datetime
ExamID Int foreign key
UserID nvarchar(128) foreign key
59
Tài liệu tham khảo [1] – Giới thiệu về bài thi và các cấp độ tiếng Nhật https://ichigo.edu.vn/cach-tinh-diem-
va-cau-truc-de-thi-jlpt/#CAU_TRUC_DE_THI_JLPT_N5
[2] – Mô hình MVC https://www.tutorialspoint.com/design_pattern/mvc_pattern.htm
[3] – ASP.NET MVC https://docs.microsoft.com/en-us/aspnet/mvc/overview/getting-
started/introduction/getting-started
[4] – Entity Framework https://www.entityframeworktutorial.net/what-is-
entityframework.aspx
[5] – Razor https://www.tutorialsteacher.com/mvc/razor-syntax
[6] – Identity User https://docs.microsoft.com/en-
us/aspnet/core/security/authentication/identity?view=aspnetcore-3.1&tabs=visual-studio
[7] – AJAX https://www.tutorialspoint.com/ajax/index.htm
[8] – LINQ https://www.tutorialsteacher.com/linq/linq-tutorials
[9] – Bootstrap https://getbootstrap.com/docs/4.5/getting-started/introduction/
[10] - Jquery https://www.tutorialspoint.com/jquery/index.htm