ĐẠ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
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!
i
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.
ii
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
iii
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
iv
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
v
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
vi
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
vii
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
viii
Đặ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
1
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.
2
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
3
Phần thi ngữ pháp và đọc hiểu
Cấu trúc Số câu Nội dung Mục
Mục 1 16
Phần 2(Ngữ pháp và đọc hiểu) 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
2 Mục 5 Đọ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
1 Mục 6 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 Mục 1 7 Có thể hiểu được nội dung khi nghe một
hiểu đ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
4
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)
5
• 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 để
6
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.
7
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:
8
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 ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện
Đăng ký UC01 Không Người dùng 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 Người dùng đang ở trang đăng kí hệ thống Người dùng đăng kí thành công - 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
Cao
Mức độ ưu tiên 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
9
Biểu đồ tuần tự
2. Ca sử dụng đăng nhập Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt Tiền điều kiện Hậu điều kiện Luồng sự kiện
Đăng nhập UC02 Không Người dùng Người dùng đăng nhập với tài khoản đã có Người dùng đang ở trang đăng nhập Người dùng trở về trang chủ - 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
- Thông tin không hợp lệ hệ thống sẽ xuất ra thông Luồng thay thế: báo cho người dùng
10
- Thông tin tài khoản không chính xác xuất ra thông báo
Cao
Mức độ ưu tiên 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ự
11
3. Ca sử dụng bình luận khóa học
Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện
Luồng thay thế Bình luận khóa học UC05 Đăng nhập Người dùng Người dung tiến hành nhập ý kiến bản thân ở dưới bài học Người dùng đã đăng nhập và đang ở trang học bài Hoàn thành bình luận khóa học - 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 - 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 Trung bình
Mức độ ưu tiên 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ự
12
4. Ca sử dụng thi thử Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiều điều kiện Hậu điều kiện Luồng sự kiện Thi thử UC09 Đăng nhập Người dùng Người dùng thực hiện thi thử theo trình độ và bài thi mong muốn Đăng nhập Người dùng hoàn thành bài thi với kết quả - 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
- Người dùng không thực hiện thi thử Trung bình
Luồng thay thế Mức độ ưu tiên 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ự
13
5. Ca sử dụng lưu lịch sử thi
Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt Tiền điều kiện Hậu điều kiện Luồng sự kiện
Luồng thay thế Mức độ ưu tiên Yêu cầu phi chức năng Xem lịch sử thi UC10 Đăng nhập Người dùng Người dùng thực hiện xem thông tin lịch sử thi Đăng nhập Xuất hiện kết quả thi thử - 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 - Người dùng không xem lịch sử thi Trung bình 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ự
14
6. Ca sử dụng quản trị khóa học
Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị liên quan đến khóa học UC17 Đăng nhập với tư cách là Admin Quản trị viên Quản trị thực hiện thao tác liên quan đến thông tin khóa học Đăng nhập hệ thống với tư cách là quản trị viên Thông tin về khóa học được thực hiệ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 Yêu cầu phi chức năng Trung bình 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
15
• Biểu đồ tuần tự
Sửa khóa học
• Biểu đồ hoạt động
16
• Biểu đồ tuần tự
Xóa khóa học
• Biểu đồ hoạt động
17
• Biểu đồ tuần tự
7. Ca sử dụng quản trị chương học
Tên ca sử dụng ID Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị liên quan đến chương học UC17 Quản trị thực hiện thao tác liên quan đến thông tin chương học Đăng nhập hệ thống với tư cách là quản trị viên Thông tin về chương học được thực hiện - Admin đăng nhập và đang ở trang hiển thị thông
18
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
Trung bình
Mức độ ưu tiên 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ự
19
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
20
• Biểu đồ tuần tự
8. Ca sử dụng quản trị bài học
Tên ca sử dụng ID Mô tả tóm tắt Quản trị liên quan đến bài học UC17 Quản trị thực hiện thao tác liên quan đến thông tin bài học
21
Tiền điều kiện Hậu điều kiện Luồng sự kiện Đăng nhập hệ thống với tư cách là quản trị viên Thông tin về bài học được thực hiệ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
Trung bình
Mức độ ưu tiên 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ự
22
Sửa bài học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
23
Xóa bài học
• Biểu đồ hoạt động
• Biểu đồ tuần tự
24
9. Ca sử dụng quản trị đề thi
Tên ca sử dụng ID Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị liên quan đến đề thi UC17 Quản trị thực hiện thao tác liên quan đến thông tin đề thi Đăng nhập hệ thống với tư cách là quản trị viên Thông tin về bài học được thực hiệ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
Trung bình
Mức độ ưu tiên 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
25
• Biểu đồ tuần tự
Sửa câu hỏi
• Biểu đồ hoạt động
26
• Biểu đồ tuần tự
Xóa câu hỏi
• Biểu đồ hoạt động
27
• Biểu đồ tuần tự
Import đề thi
• Biểu đồ hoạt động
28
• Biểu đồ tuần tự
Sao chép đề thi
• Biểu đồ hoạt động
29
• Biểu đồ tuần tự
Chọn từ ngân hàng đề thi • Biểu đồ hoạt động
30
• 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.
31
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
32
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
33
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
34
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
35
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
36
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
37
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
38
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
39
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
40
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
41
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
42
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.
43
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
Đầ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 để
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
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 có một số kĩ năng nhất định để hoàn thành dự án . 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. 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
44
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.
45
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 ID Ca sử dụng trước Tác nhân Mô tả tóm tắt Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị bài viết UC14 Đăng nhập với tư cách là Admin Quản trị viên Quản trị thao tác với những bài viết trong hệ thống Đăng nhập hệ thống với tư cách là quản trị viên Nội dung bài viết được cập nhật - 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 Yêu cầu phi chức năng Trung bình Không
5. Ca sử dụng quản trị thông tin giảng viên
Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị thông tin giảng viên UC15 Đăng nhập với tư cách là Admin Quản trị viên 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 Đăng nhập hệ thống với tư cách là quản trị viên Thông tin giảng viên được cập nhật - 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
Trung bình
Mức độ ưu tiên Yêu cầu phi chức năng Không
6. Ca sử dụng hỗ trợ
46
Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị hỗ trợ UC16 Đăng nhập với tư cách là Admin Quản trị viên 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 Đăng nhập hệ thống với tư cách là quản trị viên Thông tin giảng viên được cập nhật - 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 Yêu cầu phi chức năng Trung bình Không
7. Ca sử dụng liên quan đến đơn hàng
Tên ca sử dụng ID Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Quản trị liên quan đến đơn hàng UC21 Quản trị thực hiện thao tác liên quan đến thông tin đơn hàng Đăng nhập hệ thống với tư cách là quản trị viên Thông tin về đơn hàng được thực hiệ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
Trung bình
Mức độ ưu tiên 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 ID Ca sử dụng trước Tác nhân Cập nhật thông tin UC03 Đăng nhập Người dùng
47
Mô tả tóm tắt Tiền điều kiên Hậu điều kiện Luồng sự kiện Người dùng nhập thông tin cần thay đổi Người dùng đã đăng nhập Các thông tin mới được cập nhật - 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 Trung bình
Mức độ ưu tiên 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 ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Kích hoạt khóa học UC06 Đăng nhập Người dùng 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. Người dùng đã đăng nhập và đang ở trang kích hoạt Kích hoạt thành công và có thể học khóa học đó - Người dùng đã đăng nhập và đang ở trang kích Tiền điều kiên Hậu điều kiện Luồng sự kiện 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
Trung bình
Mức độ ưu tiên 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 ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Gửi phản hồi UC07 Không Người dùng 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 Đang ở đang gửi phản hồi Thông tin được gửi đi
48
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ệ - Hệ thống sẽ xuất thông báo nếu thông tin không Luồng thay thế
Mức độ ưu tiên hợp lệ 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 ID Ca sử dụng trước Tác nhân Mô tả tóm tắt
Tiền điều kiện Hậu điều kiện Luồng sự kiện Mua khóa học UC08 Đăng nhập Người dùng Người dùng thực hiện mua khóa học học Người dùng đã đăng nhập Người dùng mua khóa học thành công - 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 Yêu cầu phi chức năng Trung bình Không
12. Ca sử dụng trả lời bình luận
Tên ca sử dụng ID Ca sử dụng trước Tác nhân Mô tả tóm tắt Tiền điều kiện Hậu điều kiện Luồng sự kiện Trả lời bình luận UC13 Đăng nhập Người dùng Quản trị viên vào trả lời thắc mắc của học viên Đã đăng nhập với tư cách là quản trị viên Trả lời bình luận thành công - Admin đã đăng nhập và ở trang trả lời bình luận - Admin nhập bình luận
49
- Hệ thống kiểm tra tính hợp lệ và cập nhật bình luận
Luồng thay thế Mức độ ưu tiên Yêu cầu phi chức năng - Không cập nhật trả lời bình luận Trung bình Không
2. Cơ sở dữ liệu
Bảng Teacher:
Bảng hỗ trợ:
ID Name(thông tin họ và tên) Image(hình ảnh của giảng viên) Experience(Kinh nghiệm giảng dạy) Education(Trình độ học vấn) Level(Trình độ tiếng Nhật) Int Primarykey nvarchar(250) nvarchar(250) nvarchar(250) nvarchar(250) nvarchar(250)
ID Name(Tên người dùng gửi phản hồi Email(Địa chỉ Email của người gửi) Phone(Số điện thoại người gửi phàn hồi) Title(Tiêu đề gửi) Int primarykey nvarchar(250) nvarchar(250) nvarchar(250) nvarchar(250)
50
nvarchar(4000) nvarchar(250) Content(Nội dung thắc mắc hoặc báo sự cố) Status(Tình trạng: được giải đáp hoặc chưa được giải đáp)
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 Image(hình ảnh học viên) Name(tên học viên) Content Int primarykey nvarchar(250) nvarchar(250) 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) RoleId(id của quyền người dùng) nvarchar(128) foreign key nvarchar(128) foreign key
Bảng lưu thông tin về các quyền trong hệ thống:
51
nvarchar(128) primary key nvarchar(256)
Id(id của quyền thực hiện) Name(tên quyền thực hiện) Bảng lưu thông tin người dùng:
Id Email EmailConfirmed PasswordHash PhoneNumber UserName FullName Birthday Level Address Nation nvarchar(128) primary key nvarchar(256) bit nvarchar(MAX) nvarchar(MAX) nvarchar(256) nvarchar(350) datetime nvarchar(250) nvarchar(450) nvarchar(450)
Bảng lưu thông tin đơn hàng khóa học:
52
Id NameOrder CreateDate Price Status ReceiveAddress PhoneNumber ActiveCode UserId CourseId Int primary key nvarchar(450) datetime nvarchar(250) nvarchar(50) nvarchar(550) nvarchar(150) nvarchar(150) nvarchar(128) foreign key Int foreign key
Bảng lưu thông tin khóa học:
ID Name Decription Time Price LinkVideo Int primarykey nvarchar(250) nvarchar(550) nvarchar(250) nvarchar(250) nvarchar(650)
53
nvarchar(550)
UrlVideo Bảng lưu thông tin chương
ID Name IDCourse Int primarykey nvarchar(450) Int foreign key
Bảng lưu thông tin các bài học:
ID Name UrlVideo Content Status IDChapter Int primary key nvarchar(550) nvarchar(550) ntext nvarchar(150) Int foreign key
Bảng lưu thông tin bình luận sau mỗi khóa học:
ID Content CreateDate Int primary key nvarchar(650) Datetime
54
LessionID UserId Int 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 Content UserId CommentID CreateDate Int primary key nvarchar(550) nvarchar(128) foreign key int datetime
Bảng lưu thông tin Mondai:
ID Content LevelId PartId Int primary key nvarchar(MAX) Int foreign key Int foreign key
Bảng lưu thông tin phần thi:
ID Int primary key
55
Name nvarchar(650)
Bảng lưu thông tin câu hỏi trong các phần thi:
Int primary key nvarchar(MAX) nvarchar(1150) nvarchar(1150) nvarchar(1150) nvarchar(1150) nvarchar(1150) int nvarchar(MAX) Int foreign key Int foreign key ID Content OptionA OptionB OptionC OptionD CorrectAnswer Score Gerneral ExamID MondaiID
Bảng lưu thông tin về kì thi:
ID Int primary key
56
Name CreatedDate Decription LevelId Duraction LinkAudio nvarchar(550) datetime nvarchar(MAX) int nvarchar(50) 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
Int primary key nvarchar(250) nvarchar(250) datetime nvarchar(250) int int ntext nvarchar(550)
ID Title Image StartDate Author View IDCategory Body Decription 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:
57
ID GoiBunpou Dokkai Choukai CreatedDate ExamID UserID Int primary key int int int datetime Int foreign key nvarchar(128) foreign key
58
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
59