1. Trang chủ
  2. » Luận Văn - Báo Cáo

XÂY DỰNG HỆ THỐNG KIỂM TRA NĂNG LỰC TIẾNG ANH

96 1 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 96
Dung lượng 6,8 MB

Cấu trúc

  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG (19)
    • 1.1. TỔNG QUAN VỀ PHP VÀ LARAVEL FRAMEWORK (19)
    • 1.2. TỔNG QUAN VỀ RESTful API (21)
    • 1.3. TỔNG QUAN VỀ ReactJS (24)
    • 1.4. CÔNG CỤ SỬ DỤNG (28)
  • CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG (31)
    • 2.1. KHẢO SÁT BÀI TOÁN THỰC TẾ (31)
      • 2.1.1. Tổng quan hiện trạng (31)
      • 2.1.2. Cấu trúc bài kiểm tra (33)
      • 2.1.3. Tham khảo đánh giá năng lực theo mức điểm (33)
    • 2.2. PHÂN TÍCH CHỨC NĂNG (34)
      • 2.2.1. Các chức năng của Khách (34)
      • 2.2.2. Các chức năng của Thành viên (34)
      • 2.2.3. Các chức năng của Quản lý (35)
      • 2.2.4. Các chức năng của Quản trị viên (35)
    • 2.3. SƠ ĐỒ CA SỬ DỤNG (36)
      • 2.3.1. Các tác nhân trong hệ thống (36)
      • 2.3.2. Sơ đồ ca sử dụng tổng quát của hệ thống (36)
      • 2.3.3. Sơ đồ ca sử dụng đăng ký tài khoản của Khách (38)
      • 2.3.4. Sơ đồ ca sử dụng của Thành viên (38)
      • 2.3.5. Sơ đồ ca sử dụng của Quản lý (39)
      • 2.3.6. Sơ đồ ca sử dụng của Quản trị viên (41)
    • 2.4. ĐẶC TẢ CA SỬ DỤNG (43)
      • 2.4.1. Đặc tả ca sử dụng Đăng ký (43)
      • 2.4.2. Đặc tả ca sử dụng Đăng nhập (44)
      • 2.4.4. Đặc tả ca sử dụng Tạo đề thi (45)
      • 2.4.5. Đặc tả ca sử dụng Tạo bài thi (45)
      • 2.4.6. Đặc tả ca sử dụng Làm bài thi (46)
      • 2.4.7. Đặc tả ca sử dụng Quản lý kết quả các bài thi (47)
      • 2.4.8. Đặc tả ca sử dụng Quản lý người dùng (47)
      • 2.4.9. Đặc tả ca sử dụng Quản lý các bài viết, mẹo (48)
      • 2.4.10. Đặc tả ca sử dụng Quản lý liên hệ (48)
    • 2.5. SƠ ĐỒ HOẠT ĐỘNG (49)
      • 2.5.1. Sơ đồ hoạt động của khách (49)
      • 2.5.2. Sơ đồ hoạt động của thành viên (50)
      • 2.5.3. Sơ đồ hoạt động của quản lý (51)
      • 2.5.4. Sơ đồ hoạt động của quản trị viên (52)
    • 2.6. KIẾN TRÚC HỆ THỐNG (53)
    • 2.7. SƠ ĐỒ LỚP (53)
    • 2.8. THIẾT KẾ CƠ SỞ DỮ LIỆU (55)
      • 2.8.1. Chi tiết các bảng dữ liệu (55)
      • 2.8.2. Sơ đồ quan hệ cơ sở dữ liệu (62)
  • CHƯƠNG 3: TRIỂN KHAI VÀ CHẠY THỬ NGHIỆM (64)
    • 3.1. MÔI TRƯỜNG TRIỂN KHAI (64)
    • 3.2. KẾT QUẢ DEMO VÀ HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH (67)
    • 3.3. ĐÁNH GIÁ (93)
  • KẾT LUẬN (4)
  • TÀI LIỆU THAM KHẢO (96)

Nội dung

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP NGÀNH: CÔNG NGHỆ THÔNG TIN CHUYÊN NGÀNH: CÔNG NGHỆ PHẦN MỀM ĐỀ TÀI: XÂY DỰNG HỆ THỐNG KIỂM TRA NĂNG LỰC TIẾNG ANH Người hướng dẫn: THS. NGUYỄN THỊ MINH HỶ Sinh viên thực hiện: TRẦN HỮU TRUNG Số thẻ sinh viên: 102150142 Lớp : 15T2 Đà Nẵng, 12 / 201 9 NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN .......................................................................................................... ............................................. ......................................................................................................... ............................................ .. .......................................................................................................... ............................................. ........................................................... ....................................................................... ..................... .......................................................................................................... ............................................. ............. ................................................................................................. ......................................... .......................................................................................................... ............ ................................. .......................................................................................................... ............................................. ........................................................................ ................................................................ ............... .......................................................................................................... ............................................. .......................... .......................................................................................... ................................... .......................................................................................................... ......................... .................... .......................................................................................................... ............................................. ..................................................................................... ........................................................ .......... .......................................................................................................... ............................................. ....................................... ................................................................................... ............................. .......................................................................................................... ...................................... ....... .......................................................................................................... ............................................. .................................................................................................. ................................................. .... .................. ............................. ...................................................... .............................. ................... Đà Nẵng, ngày … tháng 12 năm 2019 G i ảng viên hướng d ẫn Ths. Nguyễn Thị Minh Hỷ NHẬN XÉT CỦA NGƯỜI PHẢN BIỆN .......................................................................................................... ............................................. ......................................................................................................... ............................................ .. .......................................................................................................... ............................................. ........................................................... ....................................................................... ..................... .......................................................................................................... ............................................. ............. ................................................................................................. ......................................... .......................................................................................................... ............ ................................. .......................................................................................................... ............................................. ........................................................................ ................................................................ ............... .......................................................................................................... ............................................. .......................... .......................................................................................... ................................... .......................................................................................................... ......................... .................... .......................................................................................................... ............................................. ..................................................................................... ........................................................ .......... .......................................................................................................... ............................................. ....................................... ................................................................................... ............................. .......................................................................................................... ...................................... ....... .......................................................................................................... ............................................. ................................................................................................. ......... .......................... .................. Đà Nẵng, ngày … tháng 12 năm 2019 PHI Ế U DUY Ệ T Đ Ồ ÁN T Ố T NGHI Ệ P I. Ph ầ n dành cho Sinh viên 1. H ọ và tên: TR Ầ N H Ữ U TRUNG 2. Mã Sinh viên : 102150142 3. L ớ p: 15T2 4. Tên đ ề tài: Xây d ự ng h ệ th ố ng ki ể m tra năng l ự c Ti ế ng Anh 5. S ố đi ệ n tho ạ i: 0966581498 6. E - mail : tranhuutrung1408@gmail.com 7. H ọ và tên GVHD: ThS . Nguy ễ n Th ị Minh H ỷ II. Ph ầ n dành cho H ộ i đ ồ ng STT N ộ i dung đánh giá K ế t lu ậ n 1. Trình bày báo cáo theo đúng m ẫ u qui đ ị nh c ủ a Khoa 2. Không có s ự sao chép n ộ i dung báo cáo và chương trình đã có 3. Biên d ị ch mã ngu ồ n và ch ạ y đư ợ c chương trình 4. Có k ị ch b ả n th ự c hi ệ n v ớ i d ữ li ệ u th ử nghi ệ m 5. K ế t qu ả th ự c hi ệ n chương trình đúng theo báo cáo 6. Có s ự đóng góp, phát tri ể n c ủ a tác gi ả trong đ ồ án Ý ki ế n khác: ..................................................................... .. .... . ....... .. ....... .. ....... .. .................................................................. .... .. ....... .. ....... .. ...................................................................... .. .... . ....... .. ....... .. ....... .. ...................................................................... . K ế t lu ậ n:  Đ ạ t yêu c ầ u  Ph ả i s ử a ch ữ a l ạ i  Không đ ạ t yêu c ầ u Đà N ẵ ng, ngày tháng 12 năm 2019 Ch ủ t ị ch H ộ i đ ồ ng (Ký và ghi h ọ tên) Cán b ộ duy ệ t ki ể m tra (Ký và ghi h ọ tên) TÓM TẮT Tên đề tài: Xây dựng hệ th ống kiểm tra năng lực Tiếng Anh Sinh viên thực hiệ n: Trần Hữu Trung Số thẻ SV: 102150142 Lớp: 15T2 Hệ thống kiểm tra năng lực tiếng Anh cung cấp cho các trung tâm, công ty , nhóm giải pháp để đánh giá năng lực của học viên, nhân viên , thành viên thông qua những bài kiểm tra một cách nhanh chóng, tiết kiệm thời gian cũng như chi phí. Bên cạnh đó hệ thống cũng cung cấp một số thông tin, bài viết, các bài thi thử và các mẹo để khách có thể có được kiến thức về những bài thi. Các bộ đề thi và câu hỏi được người quản lý tạo ra và nhập vào hệ thống , sau đó tạo các bài thi với các thông tin cụ thể như đề thi được sử dụng , mời các cá nhân tham gia bài thi thông qua email cá nhân hoặc email của công ty. Các cá nhân được mời tham gia sẽ nhìn thấy được thông tin bài thi sau khi đăng nhập vào hệ thống. Kết thúc mỗi lần thi, người quản lý có thể thống kê danh sách số lượng ngườ i tham gia, kết quả chi tiết của từ ng người và thống kê , lưu trữ kết quả đó một các nhanh chóng, dễ dàng. ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN CỘNG HÒA XÃ HÔI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP Họ tên sinh viên: TRẦN HỮU TRUNG Số thẻ sinh viên: 102150142 Lớp: 15T2 Khoa: Công nghệ thông tin Ngành: Công nghệ thông tin 1. Tên đề tài đồ án: Xây dựng hệ thống kiểm tra năng lực Tiếng Anh 2. Đề tài thuộc diện: ☐ Có ký kết thỏa thuận sở hữu trí tuệ đối với kết quả thực hiện 3. Các số liệu và dữ liệu ban đầu: Không có. 4. Nội dung các phần thuyết minh và tính toán: Nội dung của thuyết minh gồm : Mở đầu: Phần mở đầu của luận văn, giới thiệu về nhu cầu thực tế và lý do thực hiện đề tài, đồng thời giới thiệu sơ lược về đề tài và mục tiêu phải đạt được. Chương 1 . Cơ sở lý thuyết : trình bày những lý thuyết học được và đã áp dụng vào hệ thống. Chương 2 . Phân tích và thiết k ế : trình bày các hồ sơ phân tích và hồ sơ thiết kế trong xây dựng hệ thống và luồng hoạt động của hệ thống. Chương 3 . Triển khai và đánh giá kết quả : mô tả cách cài đặ t, vận hành hệ thố ng và đánh giá kết quả đạt được. 5. Các bản vẽ, đồ thị ( ghi rõ các loại và kích thước bản vẽ ): Không có. 6. Họ tên người hướng dẫn: THS. NGUYỄN THỊ MINH HỶ 7. Ngày giao nhiệm vụ đồ án: ……../……./ 201 9 8. Ngày h oàn thành đồ án: ……../……./ 2019 Đà Nẵng, ngày tháng 12 năm 201 9 Trưởng Bộ môn …………………….. Người hướng dẫn i L Ờ I C Ả M ƠN Lời đầu tiên, e m xin phép gửi lời cảm ơn chân thành và sâu sắc đến các Thầy C ô trong Khoa Công nghệ thông tin, cũng như tất cả các Thầy C ô trong trường Đại học Bách khoa – Đại học Đà Nẵng – những người đã dìu dắt, dạy dỗ và truyền đạt kiến thức, kinh nghiệm quý báu của mình trong suốt quá trình em học tập và nghiên cứu tại trường. Em xin bày tỏ tình cảm và lòng biết ơn chân thành tới C ô giáo Ths . Nguyễn Thị Minh Hỷ , người đã từng bước hướng dẫn, giúp đỡ tậ n tình và tạo điều kiện thuận lợi nhất cho em trong quá trình thực hiện đồ án tốt nghiệp của mình. Nhờ đó em đã hoàn thành đồ án đúng tiến độ và tích lũy cho mình nhiều kiến thức quý báu. Con xin gửi lời cảm ơn to lớn nhất đến cha, mẹ và gia đình. Cha, mẹ và gia đình đã luôn ở bên con, là nguồn động lực không mệt mỏi và là chỗ dựa tinh thần vững chắc giúp con vượt qua những khó khăn để hoàn thành đề tài này. Trong quá trình thực hiện đồ án sẽ không tránh khỏi những thiếu sót , em rất mong nhận được sự thông cảm, góp ý và tận tình chỉ bảo của quý Thầy C ô cũng như tất cả các bạn để đề tài được hoàn thiện hơn cũng như tích lũy được thêm nhiều kinh nghiệm bổ ích cho công việc tương lai của mình. Một lần nữa em xin gửi lời cảm ơn chân thành đến tất cả mọi n gười đã giúp đỡ em hoàn thiện đồ án này ! Trần Hữu Trung ii CAM ĐOAN Em xin cam đoan: 1. Nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực tiếp của Cô giáo Th S . Nguyễn Thị Minh Hỷ. 2. Các tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả, tên công trình, thời gian, địa điểm công bố. Nếu có những sao chép không hợp lệ, vi phạm quy chế đào tạo , em xin chịu hoàn toàn trách nhiệm. Đà Nẵng, ngày tháng 12 năm 201 9 Sinh viên thực hiện Trần Hữu Trung iii M Ụ C L Ụ C L Ờ I C Ả M ƠN ................................ ................................ ................................ ............................ i CAM ĐOAN ................................ ................................ ................................ .............................. ii M Ụ C L Ụ C ................................ ................................ ................................ ................................ iii DANH SÁCH CÁC B Ả NG ................................ ................................ ................................ ...... v DANH SÁCH CÁC HÌNH V Ẽ ................................ ................................ ............................... vi DANH SÁCH CÁC KÝ HI Ệ U, CH Ữ VI Ế T T Ắ T ................................ ................................ ix Trang GI Ớ I THI Ệ U Đ Ề TÀI ................................ ................................ ................................ .............. 1 CHƯƠNG 1: CƠ S Ở LÝ THUY Ế T VÀ CÔNG C Ụ S Ử D Ụ NG ................................ ........ 4 1.1. T Ổ NG QUAN V Ề PHP VÀ LARAVEL FRAMEWORK ................................ ............ 4 1.2. T Ổ NG QUAN V Ề RESTful API ................................ ................................ ................... 6 1. 3. T Ổ NG QUAN V Ề ReactJS ................................ ................................ ............................ 9 1.4. CÔNG C Ụ S Ử D Ụ NG ................................ ................................ ................................ . 13 CHƯƠNG 2: PHÂN TÍCH VÀ THI Ế T K Ế H Ệ TH Ố NG ................................ ................ 16 2.1. KH Ả O SÁT BÀI TOÁN TH Ự C T Ế ................................ ................................ ............ 16 2.1.1. T ổ ng quan hi ệ n tr ạ ng ................................ ................................ ............................ 16 2.1.2. C ấ u trúc bài ki ể m tra ................................ ................................ ............................. 18 2. 1.3. Tham kh ả o đánh giá năng l ự c theo m ứ c đi ể m ................................ ...................... 18 2.2. PHÂN TÍCH CH Ứ C NĂNG ................................ ................................ ........................ 19 2.2.1. Các ch ứ c năng c ủ a Khách ................................ ................................ ..................... 19 2.2.2. Các ch ứ c năng c ủ a Thành viên ................................ ................................ ............. 19 2.2.3. Các ch ứ c năng c ủ a Qu ả n lý ................................ ................................ ................... 20 2.2.4. Các ch ứ c năng c ủ a Qu ả n tr ị viên ................................ ................................ .......... 20 2.3. SƠ Đ Ồ CA S Ử D Ụ NG ................................ ................................ ................................ 21 2.3.1. Các tác nhân trong h ệ th ố ng ................................ ................................ .................. 21 2.3.2. Sơ đ ồ ca s ử d ụ ng t ổ ng quát c ủ a h ệ th ố ng ................................ .............................. 21 2.3.3. Sơ đ ồ ca s ử d ụ ng đăng ký tài kho ả n c ủ a Khách ................................ ................... 23 2.3.4. Sơ đ ồ ca s ử d ụ ng c ủ a Thành viên ................................ ................................ ......... 23 2.3.5. Sơ đ ồ ca s ử d ụ ng c ủ a Qu ả n lý ................................ ................................ ............... 24 2.3.6. Sơ đ ồ ca s ử d ụ ng c ủ a Qu ả n tr ị viên ................................ ................................ ...... 26 2.4. Đ Ặ C T Ả CA S Ử D Ụ NG ................................ ................................ ............................. 28 2.4.1. Đ ặ c t ả ca s ử d ụ ng Đăng ký ................................ ................................ ................... 28 2.4.2. Đ ặ c t ả ca s ử d ụ ng Đăng nh ậ p ................................ ................................ ................ 29 iv 2.4.3. Đ ặ c t ả ca s ử d ụ ng Qu ả n lý tài kho ả n ................................ ................................ ..... 29 2.4.4. Đ ặ c t ả ca s ử d ụ ng T ạ o đ ề thi ................................ ................................ ................. 30 2.4.5. Đ ặ c t ả ca s ử d ụ ng T ạ o bài thi ................................ ................................ ................ 30 2.4.6. Đ ặ c t ả ca s ử d ụ ng Làm bài thi ................................ ................................ ............... 31 2.4.7. Đ ặ c t ả ca s ử d ụ ng Qu ả n lý k ế t qu ả các bài thi. ................................ ..................... 32 2.4.8. Đ ặ c t ả ca s ử d ụ ng Qu ả n lý ngư ờ i dùng ................................ ................................ . 32 2.4.9. Đ ặ c t ả ca s ử d ụ ng Qu ả n lý các bài vi ế t, m ẹ o ................................ ........................ 33 2.4.10. Đ ặ c t ả ca s ử d ụ ng Qu ả n lý liên h ệ ................................ ................................ ....... 33 2.5. SƠ Đ Ồ HO Ạ T Đ Ộ NG ................................ ................................ ................................ . 34 2.5.1. Sơ đ ồ ho ạ t đ ộ ng c ủ a khách ................................ ................................ ................... 34 2.5.2. Sơ đ ồ ho ạ t đ ộ ng c ủ a thành viên ................................ ................................ ............ 35 2.5.3. Sơ đ ồ ho ạ t đ ộ ng c ủ a qu ả n lý ................................ ................................ ................. 36 2.5.4. Sơ đ ồ ho ạ t đ ộ ng c ủ a qu ả n tr ị viên ................................ ................................ ......... 37 2.6. KI Ế N TRÚC H Ệ TH Ố NG ................................ ................................ ........................... 38 2.7. S Ơ Đ Ồ L Ớ P ................................ ................................ ................................ ................. 38 2.8. THI Ế T K Ế CƠ S Ở D Ữ LI Ệ U ................................ ................................ ...................... 40 2.8.1. Chi ti ế t các b ả ng d ữ li ệ u ................................ ................................ ........................ 40 2.8.2. Sơ đ ồ quan h ệ cơ s ở d ữ li ệ u ................................ ................................ .................. 47 CHƯƠNG 3: TRI Ể N KHAI VÀ CH Ạ Y TH Ử NGHI Ệ M ................................ ................. 49 3.1. MÔI TRƯ Ờ NG TRI Ể N KHAI ................................ ................................ .................... 49 3.2. K Ế T QU Ả DEMO VÀ HƯ Ớ NG D Ẫ N S Ử D Ụ NG CHƯƠNG TRÌNH ..................... 52 3.3. ĐÁNH GIÁ ................................ ................................ ................................ .................. 78 K Ế T LU Ậ N ................................ ................................ ................................ ............................. 79 TÀI LI Ệ U THAM KH Ả O ................................ ................................ ................................ ..... 81 v DANH SÁCH CÁC B Ả NG B ả ng 2.1. Đ ặ c t ả ca s ử d ụ ng đăng ký ................................ ................................ ....................... 28 B ả ng 2.2. Đ ặ c t ả ca s ử d ụ ng đăng nh ậ p ................................ ................................ ................... 29 B ả ng 2.3. Đ ặ c t ả ca s ử d ụ ng qu ả n lý tài kho ả n ................................ ................................ ........ 29 B ả ng 2.4. Đ ặ c t ả ca s ử d ụ ng t ạ o đ ề thi ................................ ................................ ..................... 30 B ả ng 2.5. Đ ặ c t ả ca s ử d ụ ng t ạ o bài thi ................................ ................................ .................... 30 B ả ng 2.6. Đ ặ c t ả ca s ử d ụ ng làm bài thi ................................ ................................ ................... 31 B ả ng 2.7. Đ ặ c t ả ca s ử d ụ ng qu ả n lý k ế t qu ả các bài thi ................................ .......................... 32 B ả ng 2.8. Đ ặ c t ả ca s ử d ụ ng qu ả n lý ngư ờ i dùng ................................ ................................ ..... 32 B ả ng 2.9. Đ ặ c t ả ca s ử d ụ ng qu ả n lý các bài vi ế t, m ẹ o ................................ ............................ 33 B ả ng 2.10. Đ ặ c t ả ca s ử d ụ ng qu ả n lý liên h ệ ................................ ................................ .......... 33 B ả ng 2.11. B ả ng d ữ li ệ u user ................................ ................................ ................................ ... 40 B ả ng 2.12. B ả ng d ữ li ệ u role ................................ ................................ ................................ .... 41 B ả ng 2.13. B ả ng d ữ li ệ u company ................................ ................................ ........................... 41 B ả ng 2.14. B ả ng d ữ li ệ u exam_question ................................ ................................ .................. 41 B ả ng 2.15. B ả ng d ữ li ệ u part ................................ ................................ ................................ .... 42 B ả ng 2.16. B ả ng d ữ li ệ u question ................................ ................................ ............................ 42 B ả ng 2.17. B ả ng d ữ li ệ u answer ................................ ................................ ............................... 43 B ả ng 2.18. B ả ng d ữ li ệ u participant ................................ ................................ ......................... 43 B ả ng 2.19. B ả ng d ữ li ệ u exam ................................ ................................ ................................ 44 B ả ng 2.20. B ả ng d ữ li ệ u report ................................ ................................ ................................ 44 B ả ng 2.21. B ả ng d ữ li ệ u result ................................ ................................ ................................ . 45 B ả ng 2.22. B ả ng d ữ li ệ u exam_question_score ................................ ................................ ....... 45 B ả ng 2.23. B ả ng d ữ li ệ u score_ mapping ................................ ................................ .................. 46 B ả ng 2.24. B ả ng d ữ li ệ u contact ................................ ................................ .............................. 46 B ả ng 2.25. B ả ng d ữ li ệ u slide ................................ ................................ ................................ .. 46 B ả ng 2.26. B ả ng d ữ li ệ u category ................................ ................................ ............................ 47 B ả ng 2.27. B ả ng d ữ li ệ u article ................................ ................................ ................................ 47 vi DANH SÁCH CÁC HÌNH V Ẽ Hình 1.1. Ví d ụ v ề mã PHP nhúng trong HTML ................................ ................................ ...... 4 Hình 1.2. Mô hình MVC ................................ ................................ ................................ ........... 5 Hình 1.3. C ấ u trúc t ổ ch ứ c thư m ụ c và file trong Laravel. ................................ ........................ 6 Hình 1.4. Mô t ả RESTful API ................................ ................................ ................................ .... 6 Hình 1.5. Các phương th ứ c HTTP c ủ a RESTful API ................................ ................................ 7 Hình 1.6. Ho ạ t đ ộ ng c ủ a RESTful API ................................ ................................ ..................... 8 Hình 1.7. Jordan Walke, ngư ờ i sáng l ậ p ra ReactJS ................................ ................................ .. 9 Hình 1.8. Component trong ReactJS. ................................ ................................ ...................... 10 Hình 1.9. S ử d ụ ng state trong Component ................................ ................................ ............... 11 Hình 1.10. Sơ đ ồ vòng đ ờ i c ủ a component trong ReactJS ................................ ...................... 11 Hình 1.11. Công c ụ draw.io ................................ ................................ ................................ ..... 14 Hình 1 .12. Công c ụ Editor VSCode ................................ ................................ ......................... 14 Hình 1.13. Công c ụ Postman ................................ ................................ ................................ .... 15 Hình 2.1. Sơ đ ồ ca s ử d ụ ng t ổ ng quát c ủ a h ệ th ố ng ................................ ................................ . 22 Hình 2.2. Sơ đ ồ ca s ử d ụ ng đăng ký tài kho ả n c ủ a Khách ................................ ....................... 23 Hình 2.3. Sơ đ ồ ca s ử d ụ ng qu ả n lý tài kho ả n trong h ệ th ố ng. ................................ ............... 23 Hình 2.4. Sơ đ ồ ca s ử d ụ ng qu ả n lý bài thi c ủ a thành viên. ................................ ..................... 23 Hình 2.5. Sơ đ ồ ca s ử d ụ ng qu ả n lý k ế t qu ả thi cá nhân c ủ a thành viên. ................................ . 24 Hình 2.6. Sơ đ ồ ca s ử d ụ ng qu ả n lý đ ề thi ................................ ................................ ............... 24 Hình 2.7. Sơ đ ồ ca s ử d ụ ng qu ả n lý bài thi ................................ ................................ .............. 25 Hình 2.8. Sơ đ ồ ca s ử d ụ ng qu ả n lý k ế t qu ả các bài thi ................................ ........................... 25 Hình 2.9. Sơ đ ồ ca s ử d ụ ng qu ả n lý ngư ờ i dùng trong h ệ th ố ng ................................ .............. 26 Hình 2.10. Sơ đ ồ ca s ử d ụ ng qu ả n lý đ ề thi m ẫ u . ................................ ................................ ..... 26 Hình 2.11. Sơ đ ồ ca s ử d ụ ng qu ả n lý các bài vi ế t, tips ................................ ............................ 27 Hình 2.12. Sơ đ ồ ca s ử d ụ ng qu ả n lý báo cáo th ố ng kê các bài thi m ẫ u ................................ .. 27 Hình 2.13. Sơ đ ồ ca s ử d ụ ng qu ả n lý liên h ệ ................................ ................................ ............ 28 Hình 2.14. Sơ đ ồ ho ạ t đ ộ ng các ch ứ c năng c ủ a khách. ................................ ............................ 34 Hình 2.15. Sơ đ ồ ho ạ t đ ộ ng các ch ứ c năng c ủ a thành viên. ................................ ..................... 35 Hình 2.16. Sơ đ ồ ho ạ t đ ộ ng các ch ứ c năng c ủ a qu ả n lý ................................ ........................... 36 Hình 2.17. Sơ đ ồ ho ạ t đ ộ ng các ch ứ c năng c ủ a qu ả n tr ị viên ................................ .................. 37 Hình 2.18. Sơ đ ồ ki ế n trúc h ệ th ố ng ................................ ................................ ........................ 38 Hình 2.19. Sơ đ ồ l ớ p h ệ th ố ng. ................................ ................................ ................................ . 39 Hình 2.20. Sơ đ ồ quan h ệ cơ s ở d ữ li ệ u ................................ ................................ ................... 48 Hình 3.1. Lưu tr ữ mã ngu ồ n trên github ................................ ................................ .................. 4 9 vii Hình 3.2. Môi trư ờ ng Node.js ................................ ................................ ................................ .. 49 Hình 3.3. Trình qu ả n lý thư vi ệ n npm ................................ ................................ ...................... 50 Hình 3.4. Trình qu ả n lý các gói, thư vi ệ n trong PHP ................................ ............................... 50 Hình 3.5. Wampserver ................................ ................................ ................................ .............. 50 Hình 3.6. Ngôn ng ữ back - end s ử d ụ ng ................................ ................................ ..................... 51 Hình 3.7. Ngôn ng ữ font - end s ử d ụ ng ................................ ................................ ...................... 51 Hình 3.8. H ệ qu ả n tr ị cơ s ở d ữ li ệ u ................................ ................................ .......................... 51 Hình 3.9. Môi trư ờ ng heroku deploy b ả n production ................................ .............................. 52 Hình 3.10. Màn hình chính c ủ a h ệ th ố ng ................................ ................................ ................. 53 Hình 3.11. Màn hình đăng ký dành cho cá nhân ................................ ................................ ...... 54 Hình 3.12. Màn hình đăng ký dành cho các trung tâm, công ty ho ặ c nhóm ............................ 54 Hình 3.13. Email thông báo đăng ký tài kho ả n cá nhân thành công và yêu c ầ u xác th ự c ....... 55 Hình 3.14. Email thông báo đăng ký tài kho ả n công ty thành công và yêu c ầ u xác th ự c ........ 55 Hình 3.15. Màn hình đăng nh ậ p vào h ệ th ố ng ................................ ................................ ......... 56 Hình 3.16. Màn hình qu ả n lý tài kho ả n cá nhân ................................ ................................ ....... 56 Hình 3.17. Màn hình danh sách các bài thi đư ợ c m ờ i tha m d ự ................................ ................ 57 Hình 3.18. Màn hình t ổ ng quan đ ề thi trư ớ c khi b ắ t đ ầ u làm bài ................................ ............ 57 Hình 3.19. Màn hình chính làm bài thi ................................ ................................ ..................... 58 Hình 3.20. Xem b ả ng câu tr ả l ờ i đã ch ọ n ................................ ................................ ................. 58 Hình 3.21. Màn hình hi ể n th ị k ế t qu ả đi ể m sau khi k ế t thúc ................................ .................... 59 Hình 3.22. Email thông báo đi ể m sau khi k ế t thúc làm bài thi ................................ ................ 59 Hình 3.23. Màn hình th ố ng kê k ế t qu ả các bài thi đã tham gia ................................ ................ 60 Hình 3.24. Màn hình th ố ng kê k ế t qu ả các bài thi đã tham gia ................................ ................ 60 Hình 3.25. Màn hình chi ti ế t k ế t qu ả các bài thi đã tham gia ................................ ................... 61 Hình 3.26. Màn hình danh sách các bài thi th ử ................................ ................................ ........ 61 Hình 3.27. Màn hình hi ể n th ị thông tin v ề ch ứ ng ch ỉ ................................ ............................... 62 Hình 3.28. Màn hình danh sách bài vi ế t, m ẹ o ................................ ................................ .......... 62 Hình 3.29. Màn hình hi ể n th ị chi ti ế t bài vi ế t ................................ ................................ ........... 63 Hình 3.30. Màn hình qu ả n lý chung c ủ a qu ả n tr ị viên ................................ ............................ 63 Hình 3.31. Màn hình qu ả n lý ngư ờ i dùng ................................ ................................ ............... 64 Hình 3.32. Màn hình ch ỉ nh s ử a thông tin ngư ờ i dùng trong h ệ th ố ng ................................ ..... 64 Hình 3.33. Màn hình qu ả n lý các trung tâm, công ty có trong h ệ th ố ng ................................ .. 65 Hình 3.34. Màn hình qu ả n lý đ ề thi ................................ ................................ .......................... 65 Hình 3.35. Màn hình t ạ o m ớ i đ ề thi ................................ ................................ ......................... 66 Hình 3.36. Màn hình xóa đ ề thi ................................ ................................ ................................ 66 Hì nh 3.37. Màn hình chi ti ế t c ủ a m ộ t đ ề thi ................................ ................................ ............. 67 Hình 3.38. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 1 cho đ ề thi ................................ ......... 67 viii Hình 3.39. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 2 c ủ a đ ề thi ................................ .......... 68 Hình 3.40. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 3 c ủ a đ ề thi ................................ .......... 68 Hì nh 3.41. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 4 c ủ a đ ề thi ................................ .......... 69 Hình 3.42. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 5 c ủ a đ ề thi ................................ .......... 69 Hình 3.43. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 6 c ủ a đ ề thi ................................ .......... 70 Hình 3.44. Màn hình t ạ o, ch ỉ nh s ử a câu h ỏ i cho ph ầ n 7 c ủ a đ ề thi ................................ .......... 70 Hình 3.45. Màn hình danh sách b ả ng đ ố i chi ế u đi ể m ................................ .............................. 71 Hình 3.46. Màn hình chi ti ế t c ủ a m ộ t b ả ng đ ố i chi ế u đi ể m ................................ ..................... 71 Hình 3.47. Màn hình qu ả n lý bài thi m ẫ u ................................ ................................ ................. 72 Hình 3.48. Màn hình t ạ o đ ề thi m ẫ u cho h ệ th ố ng ................................ ................................ ... 72 Hình 3.49. Màn hình qu ả n lý bài thi ................................ ................................ ......................... 73 Hình 3.50. Màn hình t ạ o bài thi m ớ i ................................ ................................ ........................ 73 Hình 3.51. Màn hình qu ả n lý báo cáo, th ố ng kê v ề bài thi ................................ ....................... 74 Hình 3.52. Màn hình hi ể n th ị chi ti ế t báo cáo, th ố ng kê ................................ .......................... 74 Hình 3.53. Màn hình qu ả n lý danh sách các cá nhân đã tham gia các bài thi .......................... 75 Hình 3.54. Màn hình th ố ng kê chi ti ế t các l ầ n thi c ủ a m ộ t cá nhân ................................ ......... 75 Hình 3.55. Màn hình g ử i yêu c ầ u, th ắ c m ắ c ................................ ................................ ............. 76 Hình 3.56. Màn hình qu ả n lý danh sách các liên h ệ ................................ ................................ 76 Hình 3.57. Màn hình xem chi ti ế t liên h ệ ................................ ................................ ................. 77 Hình 3.58. Màn hình qu ả n lý các bài vi ế t, m ẹ o ................................ ................................ ........ 77 Hình 3.59. Màn hình thêm m ớ i bài vi ế t, m ẹ o ................................ ................................ .......... 78 Hình 3.60. Màn hình xóa bài vi ế t ................................ ................................ ............................. 78 ix DANH SÁCH CÁC KÝ HI Ệ U, CH Ữ VI Ế T T Ắ T Từ V iết tắt của Diễn giải API Application Programming Interface Giao diện lập trình ứng dụng RESTful RE presentational S tate T ransfer Một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản MVC Model - View - Controller Mô hình - Giao diện - Bộ điều khiển DB Database Cơ sở dữ liệu HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản CSS Cascading Style Sheets Điều khiển cách hiện thị nội dung trang web DOM Document Object Model Mô hình đối tượng tài liệu URI Uniform Resource Identifier Định dạng tài nguyên thống nhất JSX JavaScript XML Một loại cú pháp mở rộng dành cho ngôn ngữ JavaScript viết theo kiểu XML SQL Structured Query Language Ngôn ngữ truy vấn cấu trúc JSON JavaS cript Object Notation Kiểu dữ liệu mở trong javascript XML eXtensible Markup Language Ngôn ngữ đánh dấu mở rộng TOEIC Test of English for International Communication Bài kiểm tra tiếng anh cho giao tiếp quốc tế Framework : là một thư viện các lớp đã được xây dựng hoàn chỉnh, bộ khung để phát triển các Phần mềm ứng dụng. Có thể ví Framework như tập các “ Vật liệu” ở từng lĩnh vực cho người lập trình viên, thay vì họ phải mất nhiều thời gian để tự thiết kế trước khi dùng. Do vậy, người lập trình viên chỉ cần tìm hiểu và khai thác các vật liệu này rồi thực hiện để gắn kết chúng lại với nhau, tạo ra sản phẩm . Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 1 GI Ớ I THI Ệ U Đ Ề TÀI 1. Lý do chọn đề tài Với tốc độ phát triển kinh tế như hiện nay, sự giao lưu và hội nhập toàn cầu khiến việc hiểu biết và sử dụng tiếng Anh như là yêu cầu cơ bản dù bạn muốn hoặc đã làm việc trong công ty trong nước hay nước ngoài . Tiếng Anh được coi là ngôn ngữ quốc tế số một trên thế giới. Hàng triệu người từ các nền văn hóa khác nhau đều nỗ lực trau dồi kiến thức, khả năng tiếng Anh của mình mỗi ngày. Ở Việt Nam, tiếng Anh cũng đã chiếm được vị trí quan trọng kể từ khi đất nước thực hiện các chính sách mở c ửa hội nhập với các nước trong khu vực cũng như trên Thế giới. Ở nhiều lĩnh vực khác nhau trong xã hội như kinh tế, chính trị, khoa học, du lịch,vv… đều rất cần những người có trình độ tiếng Anh giỏi. Người ta học và sử dụng tiếng Anh với nhiều mục đích kh ác nhau trong các lĩnh vực của họ. Hiện tại, các trung tâm tiếng Anh, các công ty thường tổ chức đánh giá học viên, nhân viên của họ không chỉ thông qua trình độ chuyên môn mà còn đánh giá cao khả năng sử dụng tiếng Anh của nhân viên mình. Qua đó, họ đã tổ chức các kỳ thi kiểm tra về năng lực tiếng Anh cho nhân viên bằng các phương pháp thủ công thông qua giấy và phải c hờ đợi thời gian chấm thi mới đánh giá được, việc đó mất rất nhiều thời gian và chi phí tùy theo quy mô . Cùng với đó, trong bối cảnh của sự bùng nổ công nghệ thông tin nói chung và mạng Internet nói riêng , công nghệ đang hiện diện mọi lúc mọi n ơ i trong toàn bộ khía cạnh của đời sống xã hội. Đặc biệt, Công nghệ thông tin đóng vai trò quan trọng không thể thiếu trong quá trình quản trị, điều hành các hoạt động của mỗi doanh nghiệp , những công việc, thủ tục hành chính thủ công ngày xưa đã dần được s ố hóa mà cụ thể là các trang web. Bằng cách này, các thủ tục được thực hiện nhanh hơn, chính xác hơn, ít tốn công sức, nhân lực hơn và đặc biệt giảm chi phí đi rất nhiều. Chính vì vậy nhiều công ty đã thực hiện số hóa các công tác quản lý và mang lại hiệu quả cao. Vì những lí do trên, em đã quyết định chọn đề tài “ Xây dựng hệ thống kiểm tra năng lực Tiếng Anh ” làm đề tài tốt nghiệp của mình. 2. Mục đích của đề tài “ Xây dựng hệ thống kiểm tra năng lực Tiếng Anh ” với mục đích xây dựng một hệ thống đơn giản, thân thiện , dễ sử dụng chạy trên nền tảng web , tạo ra một hệ thống có thể hỗ trợ cho các trung tâm, công ty , nhóm thực hiện các bài thi để kiểm tra trình độ Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 2 tiếng Anh của nhân viên, thành viên một cách nhanh chóng, tiện lợi, kết hợp thống kê số liệu các bài thi, số lượng người tham gia, quản lý và lưu trữ kết quả thi tốt hơn trên hệ thống thay vì phải lưu trữ trên giấy như cũ . Hệ t hống cho phép người dùng đăng ký làm thành viên, qua đó có thể làm các bài thi mẫu, rèn luyện khả năng làm bài thi. Ngoài ra, hệ thống còn cung cấp cho người dùng các kiến thức về các chứng chỉ, cấu trúc của các bài thi, các mẹo để đạt được kết quả cao, các câu hỏi mẫu thông qua các bài viết, các mẹo thi. 3. Nội dung của đề tài Những nội dung công việc cần thực hiện để hoàn thành đề tài bao gồm: - Tìm hiểu bài toán kiểm tra năng lực tiếng Anh thực tế. - Tìm hiểu và phân tích UML. - Phân tích và thiết kế hệ thống thông tin. - Thiết kế cơ sở dữ liệu cho hệ thống. - Tìm hiểu và nghiên cứu, áp dụng các ngôn ngữ, công cụ lập trình PHP, Javascript với framework Laravel và ReactJS, cách thức xây dựng WebAPI theo cơ chế RESTful. - Nghiên cứu và ứng dụng MySQL làm nền tảng cơ sở dữ liệu. - Xây dựng ứng dụng với cá c chức năng chính - Viết báo cáo. 4. Phạm vi sử dụng đề tài Ứng dụng được sử dụng tại các trung tâm tiếng Anh, các công ty, tổ chức hoặc nhóm có nhu cầu kiểm tra năng lực tiếng Anh cho học viên, nhân viên và thành viên của mình. Và các cá nhân muốn tìm hiểu và làm thử để nâng cao kỹ năng làm bài của mình với dạng bài thi kiểm tra năng lực tiếng Anh. 5. Bố cục của báo cáo Đồ án được chia làm 3 chương chính: Với chương thứ nhất đi vào tìm hiểu và nghiên cứu cơ sở lý thuyết để thực hiệ n áp dụng vào đề tài. Tìm hiều công cụ và ngôn ngữ lập trình. T rong chương thứ hai đi vào quá trình khảo sát hiện trạng thực tế, phân tích và thiết kế hệ thống thông tin, xác định các tác nhân chính của hệ thống, thiết kế và x ây dựng cơ sở dữ liệu . Tiếp nối chương thứ hai, chương thứ ba sẽ đi vào quá trình triển khai hệ thống, thực hiện xây dựng mã nguồn chương trình và chạy thử nghiệm . Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 3 Đề tài được đánh giá lại qua phần kết luận, đưa ra các đánh giá kết quả về những vấn đề đã gải quyết, những vấn đề chưa giải quyết được và các giải pháp cho để cải tiến, khắc phục những vấn đề đó. Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 4 CHƯƠNG 1 : CƠ S Ở LÝ THUY Ế T VÀ CÔNG C Ụ S Ử D Ụ NG 1.1. T Ổ NG QUAN V Ề PHP VÀ LARAVEL FRAMEWORK PHP ( Hypertext Preprocessor ) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở , dùng cho mục đích tổng quát . Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML và xuất ra trình duyệt web theo yêu cầu của người sử dụng. PHP cho phép xây dựng ứng dụng web trên mạng internet tương tác với mọi cơ sở dữ liệu như: MySQL, Oracle,… Ngôn ngữ lập trình PHP được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã n hanh chóng trở thành một ngôn ngữ lập trình phổ biến nhất thế giới. Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc. , công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp . PHP chỉ phân tích các đoạn mã nằm trong những dấu giới hạn của nó. Bất cứ mã nào nằm ngoài những dấu giới hạn đều được xuất ra trực tiếp không thông qua xử lý bởi PHP. Các dấu giới hạn thường dùng nhất là , tương ứng với dấu giới hạn mở và đóng. Các dấu giới hạn và cũng đôi khi được sử dụng. Cách viết dấu giới hạn dạng thẻ ngắn cũng có thể được dùng để thông báo bắt đầu đoạn mã PHP, là . Hình 1.1. Ví d ụ v ề mã PHP nhúng trong HTML Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 5  Mô hình MVC trong PHP MVC là viết tắt của Model – View – Controller. Là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm. Nói cho dễ hiểu, nó là mô hình phân bố source code thành 3 phần, mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác . Để từ đó chúng ta có thể giải quyết các công việc một các nhanh gọn và dễ dàng hơn. Hình 1.2 . Mô hình MVC − Thành phần:  Controller : Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model .  Model : Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…  View : Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó là tập hợp c ác form hoặc các file HTML.  Laravel Là một PHP framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm trúc model - Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 6 view - controller (MVC). Những tính năng nổi bật của L aravel ba o gồm cú pháp dễ hiểu, rõ ràng , một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng . Hình 1.3 . C ấ u trúc t ổ ch ứ c thư m ụ c và file trong Laravel. 1.2. T Ổ NG QUAN V Ề RESTful API  Định nghĩa: RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web (thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP. Hình 1.4 . Mô t ả RESTful API Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 7 API ( A pplication P rogramming I nterface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML. REST ( RE presentational S tate T ransfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, R EST gửi một yêu cầu HTTP như GET, POST, PUT, DELETE, vv đến một URL để xử lý dữ liệu. RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau. Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource. RESTf ul không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API . Hình 1.5 . Các phương th ứ c HTTP c ủ a RESTful API  Hoạt động REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng. Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 8  GET (SELECT): Trả về một Resource hoặc một danh sách Resource.  POST (CREATE): Tạo mới một Resource.  PUT (UPDATE): Cập nhật thông tin cho Resource.  DELETE (DELETE): Xoá một Resource. Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa. Hình 1.6 . Ho ạ t đ ộ ng c ủ a RESTful API Sau quá trình gọi API việc trả về những mã trạng thái cụ thể k hi nhận và phiên dịch một HTTP Request, Server sẽ gửi tín hiệu phản hồi là một HTTP Response là một trong số các loại trạng thái sau:  200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE.  201 Created – Trả về khi một Resouce vừa đượ c tạo thành công.  204 No Content – Trả về khi Resource xoá thành công.  304 Not Modified – Client có thể sử dụng dữ liệu cache.  400 Bad Request – Request không hợp lệ  401 Unauthorized – Request cần có auth.  403 Forbidden – B ị từ chối không cho phép.  404 Not Found – Không tìm thấy resource từ URI .  405 Method Not Allowed – Phương thức không cho phép với user hiện tại.  410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ. Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 9  415 Unsupported Media Type – Không hỗ trợ kiểu Resource này.  422 Unprocess able Entity – Dữ liệu không được xác thực  429 Too Many Requests – Request bị từ chối do bị giới hạn 1.3. T Ổ NG QUAN V Ề ReactJS React (Hay ReactJS, React.js) là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng. Nó được tạo ra bởi Jordan Walke , một kỹ sư phần mềm tại Facebook. Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP). Re act lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012. Nó được mở mã nguồn (open - sourced) tại JSConf US tháng 5 năm 2013. Hình 1. 7 . Jordan Walke, ngư ờ i sáng l ậ p ra ReactJS - Đặc tính của ReactJS:  Tư tưởng của ReactJS là xây dựng lên các components có tính tái sử dụng, dễ dàng cho việc chia nhỏ vấn đề, testing. Nó giúp chúng ta dễ dàng quản lý , mở rộng hệ thống .  ReactJS luôn giữ các components ở trạng thái stateless (nhiều nhất có thể) khiến ta dễ dàng quản lí bởi nó chẳng khác gì một trang static HTML. Bản thân các components này không có trạng thái (state) nó nhận đầu vào từ bên ngoài và chỉ hiển thị ra dựa vào các đầu vào đó, điều này giải thích tại sao n ó mang tính tái sử dụng và dễ dàng cho việc test.  Các đặc trưng của ReactJS: - Component:  Là một đoạn mã ngắn có ý nghĩa thể hiện một chức năng hay đối tượng nhất định, có thể tái sử dụng. Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 10  Một ứng dụng React có thể sử dụng hàng chục, hoặc hàng trăm cá c component liên kết và tương tác với nhau.  Ta có thể tạo ra một component bằng cách extends từ Component như sau : Hình 1.8 . Component trong ReactJS .  Phương thức quan trọng nhất là render(), phương thức này được trigger khi component đã sẵn sàng để được render lên trên trang . Trong hàm này, sẽ trả về mô tả cho việc bạn muốn React render cái gì lên trên trang . Hàm rend er chính là mô tả cụ thể của giao d iện người dùng tại bất cứ thời điểm nào. Vì thế nếu dữ liệu thay đổi, React sẽ quan tâm đến việc cập nhật lại giao diện với dữ liệu tương ứng. - Props:  Thông tin được truyền từ component này sang component khác được gọi là props.  Props của một component có thể là một object, function, string, number …. Nó chứa thông tin về thành phần đó. - State:  Một component trong React có 2 cách để lấy thông tin props và state. Không như props, state của 1 component không được truyền từ bên ngoài vào. Một component sẽ tự qu yết định state của chính nó. Để tạo ra state cho component, ta sẽ phải khai báo nó trong hàm constructor . Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 11 Hình 1.9 . S ử d ụ ng state trong Component  This.state ở đây là một đối tượng. Để truy cập đến các state ta sử dụng cú pháp: this.state.name_of_property . Và cách phổ biến để thay đổi state của một component là dùng hàm setState(). - Lifecycle : Hình 1.10. Sơ đ ồ vòng đ ờ i c ủ a component trong ReactJS  Một thành phần đặc trưng không kém Props và State của React đó là LifeCycle. LifeCycle là những phương thức được viết sẵn truy cập đến từng thời điểm trong một vòng đời của component, từ đó chúng ta có thể triển khai ý tưởng một cách dễ dàng mà linh động.  contructor(props): Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 12 Hàm này là hàm khởi tạo, là hàm chạy ngay sau khi componen t được tạo ra, đầu vào của hàm này là props (tức là thuộc tính của component được dùng để truyền dữ liệu từ bên ngoài vào). Trong hàm này chúng ta cũng có thể khởi tạo state cho component.  componentWillMount: Trước khi render thì sẽ gọi đến hàm này. Ở đây chúng ta có thể đăng kí các biến toàn cục và có thể dựa vào props tính toán và setState nếu có.  render Là hàm bắt buộc, vì đây là đầu ra của component. Nó chịu trách nhiệm trả về một đối tượng JSX những gì chúng ta muốn hiển thị ra bên ngoài.  componentDidMount: Là hàm được gọi ngay sau khi giao diện được render xong, có nghĩa là khi giao diện hiện lên sẽ gọi hàm này. Trong hàm này chúng ta có thể dùng để lấy dữ liệu từ api, server… và setState dữ liệu ra.  componentWillRecieveProps(nextProps): Hàm này được gọi đến mỗi khi props thay đổi. Do vậy được sử dụng để thay đổi trạng thái của các component phụ thuộc vào props và sử dụng các kết quả, khởi tạo các biến có tính chất bất đồng bộ .  shouldComponentUpdate (nextProps, nextState) : Hàm này được gọi khi state và props thay đổi và sẽ trả về kết quả true/false, chúng ta sử dụng hàm này để xử lý xem có cần update component hay không. Mặc định hàm này sẽ trả về true.  componentWillUpdate (nextProps, nextState) : Hàm này được gọi dựa vào kết quả của hàm shouldComponentUpdate, nếu trả về false thì hàm này sẽ không được gọi .  componentDidUpdate (prevProps, prevState) : Hàm này được gọi ngay sau khi component được render lại .  componentWillUnmount: Hàm này được gọi khi component loại bỏ DOM, thực hiện các thao t ác dọn dẹp, loại bỏ những phần tử dư thừa và hủy các timer…  Ưu điểm và nhược điểm của ReactJS : - Ưu điểm:  ReactJs cực kì hiệu quả: Reactjs tạo ra cho chính nó DOM ảo – nơi mà các component thực sự tồn tại trên đó. Điều này sẽ giúp cải thiện hiệu suất rất nhiều. Xây dựng hệ thống kiểm tra năng lực Tiếng Anh SVTH: Trần Hữu Trung GVHD : Ths. Nguyễn Thị Minh Hỷ 13 Reactjs cũng tính toán những thay đổi nào cần cập nhật lên DOM và chỉ thực hiện chúng. Điều này giúp Reactjs tránh những thao tác cần trên DOM mà nhiều chi phí.  ReactJ s giúp việc viết các đoạn code JS dễ dàng hơn: Nó dùng cú pháp đặc biệt là JSX (Javascript mở rộng) cho phép ta trộn giữa code HTML và Javascript. Ta có thể thêm vào các đoạn HTML vào trong hàm render mà không cần phải nối chuỗi. Đây là đặc tính thú vị của Reactjs. Nó sẽ chuyển đổi các đoạn HTML thành các hàm khởi tạo đối tượng HTML bằng bộ biến đổi JSX.  Reactjs có nhiều công cụ phát triển: Khi bạn bắt đầu Reactjs, đừng quên cài đặt ứng

CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ SỬ DỤNG

TỔNG QUAN VỀ PHP VÀ LARAVEL FRAMEWORK

PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể dễ dàng nhúng vào trang HTML và xuất ra trình duyệt web theo yêu cầu của người sử dụng PHP cho phép xây dựng ứng dụng web trên mạng internet tương tác với mọi cơ sở dữ liệu như: MySQL, Oracle,… Ngôn ngữ lập trình PHP được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình phổ biến nhất thế giới

Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp

PHP chỉ phân tích các đoạn mã nằm trong những dấu giới hạn của nó Bất cứ mã nào nằm ngoài những dấu giới hạn đều được xuất ra trực tiếp không thông qua xử lý bởi PHP Các dấu giới hạn thường dùng nhất là , tương ứng với dấu giới hạn mở và đóng Các dấu giới hạn và cũng đôi khi được sử dụng Cách viết dấu giới hạn dạng thẻ ngắn cũng có thể được dùng để thông báo bắt đầu đoạn mã PHP, là

Hình 1.1 Ví dụ về mã PHP nhúng trong HTML

 Mô hình MVC trong PHP

MVC là viết tắt của Model – View – Controller Là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Nói cho dễ hiểu, nó là mô hình phân bố source code thành 3 phần, mỗi thành phần có một nhiệm vụ riêng biệt và độc lập với các thành phần khác Để từ đó chúng ta có thể giải quyết các công việc một các nhanh gọn và dễ dàng hơn

 Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng… Chẳng hạn thành phần này sẽ nhận request từ url và form để thao tác trực tiếp với Model

 Model: Đây là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…

 View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images… Hiểu một cách đơn giản, nó là tập hợp các form hoặc các file HTML

Là một PHP framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển các ứng dụng web theo kiếm trúc model- view-controller (MVC) Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu, rõ ràng , một hệ thống đóng gói modular và quản lý gói phụ thuộc, nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng

Hình 1.3 Cấu trúc tổ chức thư mục và file trong Laravel.

TỔNG QUAN VỀ RESTful API

RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web

(thiết kế Web services) để tiện cho việc quản lý các resource Nó chú trọng vào tài nguyên hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái tài nguyên được định dạng và được truyền tải qua HTTP

Hình 1.4 Mô tả RESTful API

API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần khác API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ liệu phổ biến như JSON hay XML

REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu, một kiểu kiến trúc để viết API Nó sử dụng phương thức HTTP đơn giản để tạo cho giao tiếp giữa các máy Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, PUT, DELETE, vv đến một URL để xử lý dữ liệu

RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng web để quản lý các resource RESTful là một trong những kiểu thiết kế API được sử dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng web để quản các resource RESTful không quy định logic code ứng dụng và không giới hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngôn ngữ hoặc framework nào cũng có thể sử dụng để thiết kế một RESTful API

Hình 1.5 Các phương thức HTTP của RESTful API

REST hoạt động chủ yếu dựa vào giao thức HTTP Các hoạt động cơ bản nêu trên sẽ sử dụng những phương thức HTTP riêng

 GET (SELECT): Trả về một Resource hoặc một danh sách Resource

 POST (CREATE): Tạo mới một Resource

 PUT (UPDATE): Cập nhật thông tin cho Resource

 DELETE (DELETE): Xoá một Resource

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa

Hình 1.6 Hoạt động của RESTful API

Sau quá trình gọi API việc trả về những mã trạng thái cụ thể khi nhận và phiên dịch một HTTP Request, Server sẽ gửi tín hiệu phản hồi là một HTTP Response là một trong số các loại trạng thái sau:

 200 OK – Trả về thành công cho những phương thức GET, PUT, PATCH hoặc DELETE

 201 Created – Trả về khi một Resouce vừa được tạo thành công

 204 No Content – Trả về khi Resource xoá thành công

 304 Not Modified – Client có thể sử dụng dữ liệu cache

 400 Bad Request – Request không hợp lệ

 401 Unauthorized – Request cần có auth

 403 Forbidden – Bị từ chối không cho phép

 404 Not Found – Không tìm thấy resource từ URI

 405 Method Not Allowed – Phương thức không cho phép với user hiện tại

 410 Gone – Resource không còn tồn tại, Version cũ đã không còn hỗ trợ

 415 Unsupported Media Type – Không hỗ trợ kiểu Resource này

 422 Unprocessable Entity – Dữ liệu không được xác thực

 429 Too Many Requests – Request bị từ chối do bị giới hạn

TỔNG QUAN VỀ ReactJS

React (Hay ReactJS, React.js) là một thư viện Javascript mã nguồn mở để xây dựng các thành phần giao diện có thể tái sử dụng Nó được tạo ra bởi Jordan Walke, một kỹ sư phần mềm tại Facebook Người bị ảnh hưởng bởi XHP (Một nền tảng thành phần HTML cho PHP) React lần đầu tiên được triển khai cho ứng dụng Newsfeed của Facebook năm 2011, sau đó được triển khai cho Instagram.com năm 2012 Nó được mở mã nguồn (open-sourced) tại JSConf US tháng 5 năm 2013

Hình 1.7 Jordan Walke, người sáng lập ra ReactJS

 Tư tưởng của ReactJS là xây dựng lên các components có tính tái sử dụng, dễ dàng cho việc chia nhỏ vấn đề, testing Nó giúp chúng ta dễ dàng quản lý, mở rộng hệ thống

 ReactJS luôn giữ các components ở trạng thái stateless (nhiều nhất có thể) khiến ta dễ dàng quản lí bởi nó chẳng khác gì một trang static HTML Bản thân các components này không có trạng thái (state) nó nhận đầu vào từ bên ngoài và chỉ hiển thị ra dựa vào các đầu vào đó, điều này giải thích tại sao nó mang tính tái sử dụng và dễ dàng cho việc test

 Các đặc trưng của ReactJS:

 Là một đoạn mã ngắn có ý nghĩa thể hiện một chức năng hay đối tượng nhất định, có thể tái sử dụng

 Một ứng dụng React có thể sử dụng hàng chục, hoặc hàng trăm các component liên kết và tương tác với nhau

 Ta có thể tạo ra một component bằng cách extends từ Component như sau:

 Phương thức quan trọng nhất là render(), phương thức này được trigger khi component đã sẵn sàng để được render lên trên trang Trong hàm này, sẽ trả về mô tả cho việc bạn muốn React render cái gì lên trên trang Hàm render chính là mô tả cụ thể của giao diện người dùng tại bất cứ thời điểm nào Vì thế nếu dữ liệu thay đổi, React sẽ quan tâm đến việc cập nhật lại giao diện với dữ liệu tương ứng

 Thông tin được truyền từ component này sang component khác được gọi là props

 Props của một component có thể là một object, function, string, number … Nó chứa thông tin về thành phần đó

 Một component trong React có 2 cách để lấy thông tin props và state Không như props, state của 1 component không được truyền từ bên ngoài vào Một component sẽ tự quyết định state của chính nó Để tạo ra state cho component, ta sẽ phải khai báo nó trong hàm constructor

Hình 1.9 Sử dụng state trong Component

 This.state ở đây là một đối tượng Để truy cập đến các state ta sử dụng cú pháp: this.state.name_of_property Và cách phổ biến để thay đổi state của một component là dùng hàm setState()

Hình 1.10 Sơ đồ vòng đời của component trong ReactJS

 Một thành phần đặc trưng không kém Props và State của React đó là LifeCycle LifeCycle là những phương thức được viết sẵn truy cập đến từng thời điểm trong một vòng đời của component, từ đó chúng ta có thể triển khai ý tưởng một cách dễ dàng mà linh động.

Hàm này là hàm khởi tạo, là hàm chạy ngay sau khi component được tạo ra, đầu vào của hàm này là props (tức là thuộc tính của component được dùng để truyền dữ liệu từ bên ngoài vào) Trong hàm này chúng ta cũng có thể khởi tạo state cho component

Trước khi render thì sẽ gọi đến hàm này Ở đây chúng ta có thể đăng kí các biến toàn cục và có thể dựa vào props tính toán và setState nếu có

Là hàm bắt buộc, vì đây là đầu ra của component Nó chịu trách nhiệm trả về một đối tượng JSX những gì chúng ta muốn hiển thị ra bên ngoài

Là hàm được gọi ngay sau khi giao diện được render xong, có nghĩa là khi giao diện hiện lên sẽ gọi hàm này Trong hàm này chúng ta có thể dùng để lấy dữ liệu từ api, server… và setState dữ liệu ra

Hàm này được gọi đến mỗi khi props thay đổi Do vậy được sử dụng để thay đổi trạng thái của các component phụ thuộc vào props và sử dụng các kết quả, khởi tạo các biến có tính chất bất đồng bộ

Hàm này được gọi khi state và props thay đổi và sẽ trả về kết quả true/false, chúng ta sử dụng hàm này để xử lý xem có cần update component hay không Mặc định hàm này sẽ trả về true

Hàm này được gọi dựa vào kết quả của hàm shouldComponentUpdate, nếu trả về false thì hàm này sẽ không được gọi

Hàm này được gọi ngay sau khi component được render lại

Hàm này được gọi khi component loại bỏ DOM, thực hiện các thao tác dọn dẹp, loại bỏ những phần tử dư thừa và hủy các timer…

 Ưu điểm và nhược điểm của ReactJS:

 ReactJs cực kì hiệu quả: Reactjs tạo ra cho chính nó DOM ảo – nơi mà các component thực sự tồn tại trên đó Điều này sẽ giúp cải thiện hiệu suất rất nhiều

Reactjs cũng tính toán những thay đổi nào cần cập nhật lên DOM và chỉ thực hiện chúng Điều này giúp Reactjs tránh những thao tác cần trên DOM mà nhiều chi phí

CÔNG CỤ SỬ DỤNG

- Quá trình phân tích và thiết kế UML thì công cụ draw.io (link truy cập trên website: https://www.draw.io/) được sử dụng Công cụ này giúp chúng ta có thể dễ dàng thao tác và sử dụng để tạo các sơ đồ ca sử dụng, sơ đồ hoạt động,…

Hình 1.11 Công cụ draw.io

- Quá trình xây dựng mã chương trình, công cụ, editor được dùng là VSCode, đặc điểm nổi bật là đơn giản, gọn nhẹ, dễ dàng cài đặt, hỗ trợ nhiều hệ điều hành cũng như nhiều ngôn ngữ lập trình khác nhau

Hình 1.12 Công cụ Editor VSCode

- Quá trình kiểm tra, test và chạy thử các API đã được viết chương trình trước khi áp dụng để gọi từ các request ở website, công cụ được sử dụng là Postman

PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

KHẢO SÁT BÀI TOÁN THỰC TẾ

Ngày nay, với sự giao lưu và hội nhập kinh tế toàn cầu khiến việc hiểu biết và sử dụng tiếng Anh như là yêu cầu cơ bản không chỉ những công ty đa quốc gia mà ngay những công ty trong nước cũng cần đội ngũ nhân viên biết tiếng Anh để họ có thể giao dịch và mở rộng quan hệ thương mại với các công ty ở các quốc gia khác Đứng trước sự phát triển chóng mặt của các quốc gia trên thế giới, dẫn đến xu hướng làm việc cũng có sự thay đổi theo Song hành với sự phát triển của công nghệ hiện đại, tiếng Anh đã đóng một vai trò hết sức quan trọng, dù cho ở bất kỳ một lĩnh vực nào đi chăng nữa

Tiếng Anh là một ngôn ngữ quốc tế được sử dụng phổ biến ở trên 53 quốc gia và vùng lãnh thổ và ở nước ta được coi là một môn học bắt buộc, gắn liền với 12 năm đèn sách Để tìm kiếm một công việc chất lượng, lương cao đòi hỏi bạn phải nắm vững một khả năng giao tiếp nhất định Và đó cũng là lý do vì sao rất nhiều các trường đại học, cao đẳng hiện nay, đều áp dụng mô hình giảng dạy nhiều nội dung bằng tiếng Anh như là một quy chuẩn đầu ra bắt buộc mỗi sinh viên cần có trước khi tốt nghiệp ra trường

Và đối với các công ty, tổ chức cũng vậy, họ thường tổ chức các bài kiểm tra năng lực Tiếng Anh định kỳ dành cho nhân viên, thành viên để phục vụ các mục đích khác nhau

Hiện nay có rất nhiều phương pháp, dạng đề thi dùng để kiểm tra năng lực Tiếng Anh mỗi cá nhân Đó có thể là phương pháp truyền thống thông qua giấy, hay có thể là phương pháp hiện đại ứng dụng công nghệ thông qua các bài thi trực tuyến, nhưng việc áp dụng công nghệ vào đã mang lại hiệu quả rất rõ rệt, giảm chi phí, thời gian tổ chức, kết quả thi được biết nhanh chóng sau mỗi lần thi mà không phải đợi, giảm bớt sai sót trong quá trình chấm thi

Trước đây tại Việt Nam, nhiều công ty, doanh nghiệp, tổ chức… thường sử dụng chứng chỉ tiếng Anh phân chia theo cấp độ A, B, C (chứng chỉ ABC) như một tiêu chí ngoại ngữ để đưa ra quyết định về tuyển dụng, bổ nhiệm, sắp xếp nhân sự hay bố trí nhân viên tu nghiệp tại nước ngoài Tuy nhiên trong những năm gần đây, chứng chỉ TOEIC nổi lên như một tiêu chuẩn phổ biến hơn để đánh giá trình độ thông thạo tiếng Anh của người lao động Xuất phát từ thực tế đó, nhiều trường Đại học, Cao đẳng đã đưa TOEIC vào chương trình giảng dạy và lựa chọn bài thi TOEIC để theo dõi sự tiến bộ trong việc học tiếng Anh đối với sinh viên theo từng học kỳ, năm học hoặc sử dụng làm chuẩn đầu ra tiếng Anh cho sinh viên tốt nghiệp

TOEIC có tên đầy đủ là Test of English for International Communication , là bài kiểm tra được thiết kế nhằm đánh giá khả năng sử dụng tiếng Anh trong các tình huống thường ngày của các đối tượng muốn sinh sống và làm việc trong môi trường quốc tế Tuy là bài thi đánh giá khả năng tiếng Anh nhưng nguồn gốc của TOEIC lại xuất phát từ Nhật Bản, hay chính xác hơn là viện ETS trụ sở tại Nhật Yasuo Kitaoka là người tiên phong trong việc đề ra ý tưởng và triển khai bài thi TOEIC Sau một thời gian thuyết phục Bộ Giáo dục của Nhật, năm 1977, ETS (trụ sở Nhật) bắt tay vào việc biên soạn đề Năm 1979, bài thi TOEIC đầu tiên được cho ra đời

Cho đến nay, trải qua hơn 30 năm, TOEIC đã trở thành bài kiểm tra đánh giá khả năng tiếng Anh trong môi trường công sở phổ biến nhất trên thế giới, với hàng triệu người tham dự kỳ thi TOEIC mỗi năm Theo thống kê từ trang web của ETS, có gần 14.000 công ty và tổ chức ở 150 quốc gia trên toàn thế giới công nhận bằng TOEIC Tại Việt Nam, kỳ thi TOEIC được dùng làm chuẩn đầu ra của hơn 127 trường đại học, cao đẳng và là tiêu chuẩn đánh giá tuyển dụng của hơn 350 tập đoàn, doanh nghiệp trên khắp cả nước Đề thi TOEIC không yêu cầu kiến thức hay từ vựng quá chuyên môn Mọi nội dung chỉ xoay quanh các tình huống thường gặp trong môi trường công sở thuộc nhiều lĩnh vực khác nhau như tài chính, du lịch, nhân sự, sản xuất, vân vân Chính nhờ đặc điểm này mà TOEIC ngày càng phổ biến ở Việt Nam, và trở thành tiêu chuẩn đánh giá khả năng thông thạo tiếng Anh của người lao động TOEIC hiện đã gần như thay thế hẳn các chứng chỉ ngoại ngữ quốc gia A, B, C để các công ty, tổ chức, và doanh nghiệp đưa ra tiêu chí tuyển dụng Trong khi nhà tuyển dụng còn chưa biết gì về ứng cử viên ngoài

CV của họ, thì chứng chỉ TOEIC là "vũ khí" khá lợi hại để gây ấn tượng tốt và vượt qua nhiều ứng cử viên khác Nhiều trường đại học và cao đẳng nổi tiếng và uy tín như Đại Học Kinh tế, Đại Học Bách Khoa cũng chọn TOEIC làm chuẩn đầu ra tiếng Anh cho sinh viên nhằm chuẩn bị hành trang cần thiết để đi tìm việc sau này

Qua đó có thể thấy rằng bài thi TOEIC là một bài thi được sử dụng rộng rãi và là phương pháp phổ biến để thực hiện Vì thế hệ thống kiểm tra năng lực Tiếng Anh cung cấp phương pháp kiểm tra cho các trung tâm, công ty, tổ chức, các nhóm với định dạng đề thi theo bài thi TOEIC

2.1.2 Cấu trúc bài kiểm tra

Bài thi TOEIC được dùng phổ biến hai kỹ năng hiện tại là một bài kiểm tra trắc nghiệm bao gồm 02 phần: phần thi Listening (nghe hiểu) gồm 100 câu, thực hiện trong

45 phút và phần thi Reading (đọc hiểu) cũng gồm 100 câu nhưng thực hiện trong 75 phút Tổng thời gian làm bài là 120 phút (2 tiếng), chi tiết như sau:

- Phần thi Nghe hiểu (100 câu / 45 phút): Gồm 4 phần nhỏ được đánh số từ Part 1 đến Part 4 Người tham gia thi phải lần lượt lắng nghe các đoạn hội thoại ngắn, các đoạn thông tin, các câu hỏi với các ngữ âm khác nhau như: Anh – Mỹ, Anh – Anh, Anh – Canada & Anh – Úc để trả lời

- Phần thi Đọc hiểu (100 câu / 75 phút): Gồm 3 phần nhỏ được đánh số từ Part

5 đến Part 7 tương ứng với 3 loại là câu chưa hoàn chỉnh, nhận ra lỗi sai và đọc hiểu các đoạn thông tin Người tham gia thi không nhất thiết phải làm tuần tự mà có thể chọn câu bất kỳ để làm trước

- Mỗi câu hỏi đều cung cấp 4 phương án trả lời A-B-C-D (trừ các câu của part 2 chỉ có

3 phương án trả lời A-B-C) Nhiệm vụ của người tham gia thi là phải chọn ra phương án trả lời đúng nhất và dùng bút chì để tô đậm ô đáp án của mình Bài thi TOEIC không đòi hỏi kiến thức và vốn từ vựng chuyên ngành mà chỉ tập trung với các ngôn từ sử dụng trong công việc và giao tiếp hàng ngày

2.1.3 Tham khảo đánh giá năng lực theo mức điểm

- TOEIC 850 – 990 điểm: Có khả năng giao tiếp tiếng Anh rất tốt Sử dụng gần như người bản ngữ dù tiếng Anh không phải tiếng mẹ đẻ.

- TOEIC 650 – 850 điểm: Có khả năng giao tiếp tiếng Anh tốt Là yêu cầu đối với cấp trưởng phòng, quản lý điều hành cao cấp, giám đốc trong môi trường làm việc quốc tế.

- TOEIC 450 – 650 điểm: Có khả năng giao tiếp tiếng Anh khá Là yêu cầu chung đối với sinh viên tốt nghiệp Đại học hệ đào tạo 4-5 năm; nhân viên, trưởng nhóm tại các doanh nghiệp có yếu tố nước ngoài.

- TOEIC 300 – 450 điểm: Có khả năng hiểu & giao tiếp tiếng Anh mức độ trung bình

Là yêu cầu đối với học viên tốt nghiệp các trường nghề, cử nhân các trường Cao đẳng (hệ đào tạo 3 năm)

- TOEIC 100 – 300 điểm: Trình độ cơ bản Khả năng giao tiếp tiếng Anh kém.

PHÂN TÍCH CHỨC NĂNG

Hệ thống kiểm tra năng lực tiếng Anh cung cấp cho các trung tâm Tiếng Anh, công ty giải pháp để đánh giá năng lực của học viên, nhân viên thông qua những bài kiểm tra một cách nhanh chóng, tiết kiệm thời gian cũng như chi phí Bên cạnh đó hệ thống cũng cung cấp một số thông tin, bài viết, các bài thi thử và các mẹo để khách có thể có được kiến thức về những bài thi

Hệ thống phục vụ cho 4 loại người dùng: Người quản trị, Người quản lý, Thành viên và Khách Các chức năng theo từng nhóm người dùng sẽ được mô tả dưới đây

2.2.1 Các chức năng của Khách

Chức năng này cho phép khách có thể đăng ký tài khoản vào hệ thống để sử dụng, và được chia làm hai trường hợp:

 Trường hợp thứ nhất là đăng ký tài khoản cho trung tâm, công ty, nhóm

 Trường hợp thứ hai là đăng ký tài khoản cá nhân

- Chức năng gửi liên hệ, yêu cầu

Chức năng này cho phép khách có thể gửi bất kì câu hỏi, thắc mắc liên quan đến hệ thống để quản trị viên xử lý, khắc phục

- Chức năng xem cấu trúc đề thi

Chức năng này cho phép khách có thể xem được chi tiết cấu trúc của một đề thi, các dạng câu hỏi trong từng đề thi, thời gian thực hiện bài thi

- Chức năng xem các bài viết liên quan, các mẹo

Chức năng này cho phép khách có thể xem được chi tiết các bài viết liên quan đến vấn đề, cách học, cách ôn tập tiếng Anh hiệu quả, bên cạnh đó khách cũng có thể xem qua các mẹo giúp tăng điểm thi, các ví dụ mẫu

- Chức năng xem thông tin các chứng chỉ

Chức năng này cho phép khách có thể có được cái nhìn tổng quát về các chứng chỉ liên quan, các mức điểm qua đó xác định được năng lực hiện tại của bản thân.

2.2.2 Các chức năng của Thành viên

- Chức năng đăng nhập/đăng xuất

Chức năng này cho phép thành viên có thể đăng nhập vào hệ thống để thực hiện các chức năng của mình và đăng xuất khỏi hệ thống khi không còn sử dụng hệ thống

- Chức năng quản lý tài khoản

Chức năng này cho phép thành viên có thể xem và chỉnh sửa các thông tin cá nhân đăng ký trong hệ thống như Họ tên, ngày sinh, ảnh đại diện, … Và quản lý bảo mật cá nhân thông qua việc thay đổi, cập nhật mật khẩu đăng nhập

- Chức năng quản lý các bài thi

Chức năng này cho phép thành viên xem được danh sách các bài thi do trung tâm, công ty của mình tổ chức thi, hoặc các bài thi được mời tham gia thi, hay là các bài thi mẫu có trong hệ thống

- Chức năng quản lý kết quả thi của cá nhân

Chức năng này cho phép thành viên có thể xem lại chi tiết kết quả, đối chiếu so sánh đáp án và xem số lượng các câu đúng, câu sai mà mình đã thực hiện làm bài kiểm tra

- Chức năng xem lại lịch sử các lần thi và thống kê

Chức năng này cho phép thành viên có thể xem tất cả các bài thi cũng như các bài thi thử mình đã tham gia, thực hiện Bên cạnh đó, thành viên có thể xem thống kê về kết quả của mình từ đó có thể biết được trình độ của mình có được cải thiện hay không

2.2.3 Các chức năng của Quản lý

- Chức năng quản lý bộ đề thi

Chức năng này cho phép quản lý có thể tạo ra các bộ đề, gồm có tạo các phần thi, các câu hỏi trong các phần, tạo ra một đề thi hoàn chỉnh cho trung tâm hoặc công ty của mình Ngoài ra, người quản lý còn tạo ra bảng đối chiếu kết quả thi chi tiết để có thể xác định được số điểm của mỗi thành viên khi nộp bài

- Chức năng quản lý các bài thi

Chức năng này cho phép quản lý tạo ra các bài thi thông qua việc tạo tên bài thi, chọn bộ đề sử dụng, mời danh sách các người dùng được phép thực hiện bài thi Ngoài ra, quản lý cũng có thể cập nhật lại trạng thái hiển thị bài thi, trạng thái hiển thị đáp án có cho phép xem đáp án sau khi thi hay không

- Chức năng quản lý kết quả các bài thi và thống kê

Chức năng này cho phép quản lý có thể thống kê được số liệu của các bài thi bao gồm: số người tham gia, kết quả thi chi tiết của từng người, bên cạnh đó quản lý cũng có thể xem được số liệu thống kê kết quả từ các bài thi trước của một nhân viên, và xuất báo cáo ra file excel kết quả thi theo từng bài thi

2.2.4 Các chức năng của Quản trị viên

- Chức năng quản lý người dùng

Chức năng này cho phép quản trị viên quản lý được tất cả người dùng, các công ty, nhóm đã đăng ký tồn tại trong hệ thống: Xác nhận đăng ký tài khoản, chỉnh sửa thông thông tin, xóa, khóa một tài khoản bất kì

- Chức năng quản lý đề thi mẫu

Chức năng này cho phép quản trị viên tạo mới ra các đề thi mẫu để các thành viên đã đăng ký tài khoản trong hệ thống có thể thực hiện kiểm tra Cập nhật trạng thái hiển thị của các đề thi mẫu và có thể xóa các đề thi mẫu đã tạo trong hệ thống

- Chức năng quản lý bài viết, mẹo

SƠ ĐỒ CA SỬ DỤNG

2.3.1 Các tác nhân trong hệ thống

Hệ thống có 4 tác nhân là Quản trị viên, Quản lý, Thành viên và Khách:

- Quản trị viên: Là người có mọi quyền trong hệ thống, ngoại trừ chức năng quản lý các đề thi, bảng điểm đối chiếu kết quả, thống kê của các trung tâm, công ty, nhóm

- Quản lý: Là người đại diện cho các trung tâm, công ty, tổ chức hay nhóm, có chức năng quản lý các đề thi, bảng điểm đối chiếu kết quả, tạo ra các bài thi, thống kê kết quả của thành viên

- Thành viên: Là người đã có tài khoản hợp lệ trong hệ thống, là người có thể thực hiện các bài thi mẫu của hệ thống, các bài thi mà được mời tham dự

- Khách: Là người chưa có tài khoản trong hệ thống, ghé thăm tìm hiểu về hệ thống

2.3.2 Sơ đồ ca sử dụng tổng quát của hệ thống

Sơ dồ dưới đây thể hiện các hệ thống chức năng chính đối với từng tác nhân sử dụng

Hình 2.1 Sơ đồ ca sử dụng tổng quát của hệ thống

2.3.3 Sơ đồ ca sử dụng đăng ký tài khoản của Khách

Hình 2.2 Sơ đồ ca sử dụng đăng ký tài khoản của Khách 2.3.4 Sơ đồ ca sử dụng của Thành viên

Hình 2.3 Sơ đồ ca sử dụng quản lý tài khoản trong hệ thống

Hình 2.5 Sơ đồ ca sử dụng quản lý kết quả thi cá nhân của thành viên

2.3.5 Sơ đồ ca sử dụng của Quản lý

Hình 2.6 Sơ đồ ca sử dụng quản lý đề thi

Hình 2.7 Sơ đồ ca sử dụng quản lý bài thi

Hình 2.8 Sơ đồ ca sử dụng quản lý kết quả các bài thi

2.3.6 Sơ đồ ca sử dụng của Quản trị viên

Hình 2.9 Sơ đồ ca sử dụng quản lý người dùng trong hệ thống

Hình 2.10 Sơ đồ ca sử dụng quản lý đề thi mẫu

Hình 2.11 Sơ đồ ca sử dụng quản lý các bài viết, tips

Hình 2.12 Sơ đồ ca sử dụng quản lý báo cáo thống kê các bài thi mẫu

Hình 2.13 Sơ đồ ca sử dụng quản lý liên hệ

ĐẶC TẢ CA SỬ DỤNG

2.4.1 Đặc tả ca sử dụng Đăng ký

Bảng 2.1 Đặc tả ca sử dụng đăng ký

Tên ca sử dụng Đăng ký

Mô tả Cho phép khách đăng ký để trở thành thành viên của hệ thống

(bao gồm tạo Tài khoản cho công ty và tài khoản cá nhân) Điều kiện kích hoạt Người sử dụng truy cập hệ thống nhưng chưa có tài khoản

Chọn mục Signup/Đăng ký

1 Khách nhập các thông tin đăng ký: email, tên, và mật khẩu, xác nhận mật khẩu

2 Bấm vào button Signup/Đăng ký

3 Hệ thống kiểm tra dữ liệu

4 Thông báo kết quả đăng ký

Nếu các thông tin hợp lệ, thông báo đăng ký thành công Gửi yêu cầu xác nhận thông qua email đã đăng ký, đồng thời gửi email thông báo có đăng ký mới đến tài khoản Quản trị viên

1 Người dùng nhập các thông tin đăng ký không hợp lệ

2 Hệ thống kiểm tra dữ liệu nhập vào là sai

3 Các thông tin trùng lặp, đã tồn tại trong hệ thống

4 Thông báo lỗi ra màn hình

2.4.2 Đặc tả ca sử dụng Đăng nhập

Bảng 2.2 Đặc tả ca sử dụng đăng nhập

Tên ca sử dụng Đăng nhập

Tác nhân Thành viên, Quản lý, Quản trị viên

Mô tả Cho phép thành viên, quản lý hoặc quản trị viên đăng nhập vào hệ thống để thực hiện các chức năng của mình Điều kiện kích hoạt Thành viên, quản lý hoặc quản trị viên truy cập hệ thống nhưng chưa đăng nhập Chọn mục Login/Đăng nhập

1 Người dùng nhập các thông tin email và mật khẩu

2 Bấm nút Login/Đăng nhập

3 Hệ thống kiểm tra dữ liệu nhập là đúng

Kết quả Đưa đến trang chủ của hệ thống

1 Người dùng không nhập các thông tin email và mật khẩu

2 Hệ thống kiểm tra dữ liệu nhập email và mật khẩu sai

3 Thông báo lỗi ra màn hình

2.4.3 Đặc tả ca sử dụng Quản lý tài khoản

Bảng 2.3 Đặc tả ca sử dụng quản lý tài khoản

Tên ca sử dụng Quản lý tài khoản

Tác nhân Thành viên, Quản lý, Quản trị viên

Cho phép thành viên, quản lý hoặc quản trị viên đăng nhập vào hệ thống để quản lý tài khoản cá nhân của mình bao gồm chỉnh sửa thông tin cá nhân và mật khẩu Điều kiện kích hoạt Thành viên, quản lý hoặc quản trị viên đăng nhập vào hệ thống

Chọn mục Profile/Tài khoản cá nhân

1 Người dùng nhập các thông tin cá nhân và mật khẩu muốn chỉnh sửa

2 Bấm nút Update/Cập nhật

3 Hệ thống kiểm tra dữ liệu nhập là đúng

4 Thực hiện cập nhật thông tin

Kết quả Đưa đến trang quản lý tài khoản

1 Người dùng nhập không chính xác các thông tin cá nhân và mật khẩu

2 Hệ thống kiểm tra dữ liệu nhập vào là sai

3 Thông báo lỗi ra màn hình

2.4.4 Đặc tả ca sử dụng Tạo đề thi

Bảng 2.4 Đặc tả ca sử dụng tạo đề thi

Tên ca sử dụng Tạo đề thi

Tác nhân Quản lý, Quản trị viên

Mô tả Cho phép người quản trị viên tạo đề thi thử và người quản lý tạo các đề thi cho công ty của mình Điều kiện kích hoạt

Người quản trị viên, quản lý công ty đăng nhập vào hệ thống Chọn mục exam-questions/ Đề thi nhấn vào button Add new/

1 Người quản lý hoặc người quản trị viên nhập các thông tin đề thi: Tên đề thi và mô tả

2 Sau đó chọn bảng đối chiếu kết quả score mapping

3 Chọn vào từng part để thêm các câu hỏi

Kết quả Đưa đến trang danh sách đề thi

1 Người dùng nhập các thông tin đề thi không hợp lệ

2 Hệ thống kiểm tra dữ liệu nhập vào là sai

3 Thông báo lỗi ra màn hình

2.4.5 Đặc tả ca sử dụng Tạo bài thi

Bảng 2.5 Đặc tả ca sử dụng tạo bài thi

Tên ca sử dụng Tạo bài thi

Tác nhân Người quản lý

Mô tả Cho phép người quản lý tạo bài thi để kiểm tra năng lực cho nhân viên, học viên của mình Điều kiện kích hoạt Người quản lý đăng nhập vào hệ thống

Chọn mục exams/ Bài thi nhấn vào button Add new/Tạo mới

Các bước thực hiện 1 Người dùng nhập các thông tin đề thi: Tên bài thi và mô tả

2 Sau đó chọn đề thi áp dụng cho bài thi

3 Nhập danh sách hoặc format email công ty để mời tham gia bài thi

Kết quả Đưa đến trang danh sách bài thi

1 Quản lý nhập các thông tin bài thi không hợp lệ

2 Hệ thống kiểm tra dữ liệu nhập vào là sai

3 Thông báo lỗi ra màn hình

2.4.6 Đặc tả ca sử dụng Làm bài thi

Bảng 2.6 Đặc tả ca sử dụng làm bài thi

Tên ca sử dụng Làm bài thi

Mô tả Cho phép thành viên chọn một đề thi trong danh sách bài thi hoặc đề thi thử và thực hiện làm bài thi Điều kiện kích hoạt Thành viên đăng nhập vào hệ thống, chọn mục Practice Test/

Bài thi hoặc Sample Exams/ Bài thi thử

1 Thành viên truy cập vào danh sách bài thi hoặc danh sách các bài thi thử

2 Người dùng chọn một trong các bài thi hiện trong danh sách đó

3 Tiến hành làm bài và nộp bài

Sau khi người dùng nộp bài, hiển thị điểm bài thi lên màn hình Gửi mail thông báo chi tiết kết quả đến người dùng đó thông qua email mà họ đã đăng ký trước đó

Trường hợp lỗi 1 Người dùng chọn làm bài khi chưa đăng nhập

2 Hệ thống hiển thị trang không tìm thấy

2.4.7 Đặc tả ca sử dụng Quản lý kết quả các bài thi

Bảng 2.7 Đặc tả ca sử dụng quản lý kết quả các bài thi

Tên ca sử dụng Quản lý kết quả các bài thi

Tác nhân Người quản lý

Cho phép người quản lý kết quả các bài thi, xem được toàn bộ thông tin chi tiết về các bài thi, số người tham gia, kết quả của từng người tham gia đó Điều kiện kích hoạt Người quản lý đăng nhập vào hệ thống

Chọn mục Report/Báo cáo ở thanh sidebar

1 Người dùng chọn mục Report để xem toàn bộ các bài thi 2.Sau đó chọn một bài thi muốn biết thông tin chi tiết

3 Xem toàn bộ thông tin chi tiết về bài thi đó

Kết quả Đưa đến trang danh sách báo cáo kết quả thi

Trường hợp lỗi 1 Lỗi khi không có dữ liệu để hiển thị

3 Thông báo lỗi ra màn hình

2.4.8 Đặc tả ca sử dụng Quản lý người dùng

Bảng 2.8 Đặc tả ca sử dụng quản lý người dùng

Tên ca sử dụng Quản lý người dùng

Tác nhân Người quản trị viên

Mô tả Cho phép người quản trị viên quản lý được toàn bộ thông tin về các thành viên, người dùng trong hệ thống Điều kiện kích hoạt Người quản trị viên đăng nhập vào hệ thống

Chọn mục Users/Người dùng ở thanh sidebar

1 Người chọn mục Users để xem toàn bộ danh sách các tài khoản trong hệ thống

2 Chọn vào từng người dùng để thực hiện các thay đổi

3 Quản trị viên có thể xóa hoặc khóa một tài khoản bất kỳ

3 Lưu lại thông tin đã chỉnh sửa

Kết quả Đưa đến trang danh sách người dùng

Trường hợp lỗi 1 Lỗi do không có dữ liệu để hiển thị

2 Thông báo lỗi ra màn hình

2.4.9 Đặc tả ca sử dụng Quản lý các bài viết, mẹo

Bảng 2.9 Đặc tả ca sử dụng quản lý các bài viết, mẹo

Tên ca sử dụng Quản lý các bài viết, mẹo

Tác nhân Người quản trị viên

Mô tả Cho phép người quản trị viên tạo ra các bài viết, các mẹo thi để khách và các thành viên có thể tìm hiểu Điều kiện kích hoạt Người quản trị viên đăng nhập vào hệ thống

Chọn mục Article/Bài viết ở thanh sidebar

1 Quản trị viên chọn mục article để xem toàn bộ danh sách các bài viết, tips hiện có trong hệ thống

2 Quản trị viên chọn Add/Thêm mới để thêm một bài viết mới

3 Quản trị viên có thể chỉnh sửa thông tin bài viết, xóa hoặc thay đổi trạng thái hiển thị của bài viết, mẹo

Kết quả Đưa đến trang danh sách bài viết, mẹo

Trường hợp lỗi 1 Lỗi do không có dữ liệu để hiển thị

2 Thông báo lỗi ra màn hình

2.4.10 Đặc tả ca sử dụng Quản lý liên hệ

Bảng 2.10 Đặc tả ca sử dụng quản lý liên hệ

Tên ca sử dụng Quản lý liên hệ

Tác nhân Người quản trị viên

Mô tả Cho phép người quản trị viên quản lý tất cả liên hệ, thắc mắc yêu cầu từ Khách, Thành viên gửi đến cho hệ thống Điều kiện kích hoạt Người quản trị viên đăng nhập vào hệ thống

Chọn mục Contact/ Liên hệ ở thanh sidebar

1 Quản trị viên chọn mục Contact để xem toàn bộ danh sách toàn bộ các liên hệ đang đợi xử lý và đã xử lý tồn tại trong hệ thống

2 Ở trong bảng liên hệ đang đợi xử lý, quản trị viên có thể xem chi tiết thông tin chi tiết về liên hệ đó và thực hiện xử lý liên hệ

3 Ở trong bảng liên hệ đã xửa lý, quản trị viên có thể xóa các liên hệ bất kỳ

Kết quả Xử lý các liên hệ

Trường hợp lỗi 1 Lỗi do không có dữ liệu để hiển thị

2 Thông báo lỗi ra màn hình.

SƠ ĐỒ HOẠT ĐỘNG

2.5.1 Sơ đồ hoạt động của khách

Hình 2.14 Sơ đồ hoạt động các chức năng của khách

2.5.2 Sơ đồ hoạt động của thành viên

Hình 2.15 Sơ đồ hoạt động các chức năng của thành viên

2.5.3 Sơ đồ hoạt động của quản lý

Hình 2.16 Sơ đồ hoạt động các chức năng của quản lý

2.5.4 Sơ đồ hoạt động của quản trị viên

Hình 2.17 Sơ đồ hoạt động các chức năng của quản trị viên

KIẾN TRÚC HỆ THỐNG

Đây là ứng dụng có sự tương tác trên môi trường web và hệ thống sẽ được xây dựng theo mô hình client-server và dựa trên kiến trúc RESTful Trong đó server nắm vai trò chính trong xử lý logic nghiệp vụ và quản trị cơ sở dữ liệu, phía clients có trình duyệt web.

Hình 2.18 Sơ đồ kiến trúc hệ thống

- Web browser: Chính là trình duyệt của người dùng hệ thống web

- Server: Chính là nơi lưu trữ, xử lý các nghiệp vụ logic

- Database: Là nơi lưu trữ cơ sở dữ liệu

- Request: Chính là những yêu cầu dữ liệu gửi lên để yêu cầu xử lý

- Response: Chính là những phản hồi trả lời cho những yêu cầu được gửi lên

Nhờ vào kiến trúc như vậy, chúng ta có thể triển khai môi trường client trên nhiều nền tảng khác nhau, các xử lý liên quan đến nghiệp vụ tập trung, dễ dàng nâng cấp hoặc thay đổi.

SƠ ĐỒ LỚP

Một lớp (class) là một tập hợp các đối tượng có cùng cấu trúc, cùng hành vi Sơ đồ lớp thể hiện thuộc tính và phương thức của một số lớp chính trong hệ thống, mô tả cái nhìn tĩnh của mô hình hoặc một phần của mô hình, miêu tả những thuộc tính và hành vi một cách chi tiết Dựa vào những phân tích về chức năng, hệ thống có những thành phần và quan hệ được mô tả trong sơ đồ dưới đây:

THIẾT KẾ CƠ SỞ DỮ LIỆU

Cơ sở dữ liệu luôn giữ vai trò rất quan trọng trong mọi hệ thống Tất cả dữ liệu trên hệ thống đều được lưu vào các bảng trong cơ sở dữ liệu Giữa các bảng có những mối quan hệ nhất định được liên kết bằng cách tham chiếu đến khóa chính của bảng khác

Từ phân tích yêu cầu, thiết kế sơ đồ lớp, hệ thống có sơ đồ cơ sở dữ liệu quan hệ được thiết kế tương ứng như sau:

2.8.1 Chi tiết các bảng dữ liệu

- Bảng User: Là bảng dữ liệu người dùng, chứa thông tin của người dùng trong hệ thống

Bảng 2.11 Bảng dữ liệu user

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, Duy nhất Khóa chính của bảng name Varchar(255) Tên người dùng email Varchar (255) Duy nhất Email password Varchar (255) Mật khẩu role_id Int Khóa ngoại, liên kết với bảng role Mã phân quyền gender Varchar (255) Giới tính avatar_url Varchar (255) Ảnh đại diện birthday DateTime Ngày tháng năm sinh verified Int 1: Đã kích hoạt,

0: Chưa kích hoạt Xác nhận kích hoạt verification_token Varchar(255) Đã kích hoạt sẽ null Mã xác nhận kích hoạt email_verified_at DateTime Thời gian kích hoạt active_status Varchar(255) 1: Mở,

0: Khóa Trạng thái company_id Int(11) Khóa ngoại, liên kết với bảng company

Mã trung tâm, công ty deleted_at DateTime Ngày xóa created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Role: Là bảng dữ liệu phân quyền, chứa quyền người dùng truy cập

Bảng 2.12 Bảng dữ liệu role

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, Duy nhất Khóa chính của bảng name Varchar (255) Tên quyền description Varchar (255) Mô tả created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Company: Là bảng dữ liệu thông tin các trung tâm, công ty đã đăng ký vào hệ thống

Bảng 2.13 Bảng dữ liệu company

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng name Varchar (255) Tên công ty phone Varchar (255) Số điện thoại address Varchar (255) Địa chỉ created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Exam_question: Là bảng dữ liệu đề thi, chứa thông tin chi tiết của đề thi

Bảng 2.14 Bảng dữ liệu exam_question

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng name Varchar (255) Tên đề thi listening_desc Text Mô tả phần nghe reading_desc Text Mô tả phần đọc audio Varchar (255) Âm thanh phần nghe status Varchar (255) 1: Hiển thị,

0: Khóa Trạng thái company_id Int Khóa ngoại, liên kết với bảng company Mã công ty exam_question_score_id Int

Khóa ngoại, liên kết với bảng Mã điểm thi for_system Boolean Đề dành cho hệ thống created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Part: Là bảng dữ liệu các phần trong đề thi, mô tả thông tin của từng phần trong đề

Bảng 2.15 Bảng dữ liệu part

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng part_no Int Tên phần amount Int Số lượng câu hỏi directions Text Giới thiệu phần ex_question_text Int Câu hỏi mẫu ex_question_image Varchar (255) Ảnh câu hỏi mẫu ex_answera Text Câu trả lời A ex_answerb Text Câu trả lời B ex_answerc Text Câu trả lời C ex_answerd Text Câu trả lời D ex_answer_key Varchar (255) Câu trả lời đúng exam_question_id Int

Khóa ngoại, liên kết với bảng exam_question

Mã đề thi created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Question: Là bảng dữ liệu câu hỏi, chứa thông tin chi tiết của từng câu hỏi

Bảng 2.16 Bảng dữ liệu question

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng question_no Int Tên câu hỏi question_text Int Câu hỏi question_image Varchar (255) Ảnh câu hỏi group_desc Text Mô tả cho nhóm câu hỏi paragraph_image1 Varchar (255) Ảnh 1 cho nhóm paragraph_image2 Varchar (255) Ảnh 2 cho nhóm paragraph_image3 Varchar (255) Ảnh 3 cho nhóm paragraph_text1 Text Câu hỏi 1 cho nhóm paragraph_text2 Text Câu hỏi 2 cho nhóm paragraph_text3 Text Câu hỏi 3 cho nhóm part_id Int Khóa ngoại, liên kết với bảng part Mã phần của đề thi created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Answer: Là bảng dữ liệu câu trả lời, chứa thông tin câu trả lời của từng câu hỏi

Bảng 2.17 Bảng dữ liệu answer

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng content Text Nội dung câu trả lời is_correct_flag Int 1: Là câu trả lời đúng

0: Là câu trả lời sai

Có phải là câu trả lời đúng không question_id Int Khóa ngoại, liên kết với bảng question Mã câu hỏi created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Participant: Là bảng dữ liệu chứa thông tin người được phép tham gia bài thi

Bảng 2.18 Bảng dữ liệu participant

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng exam_id Int Khóa ngoại, liên kết với bảng exam Mã bài thi email Varchar (255) Mô tả email người tham gia regex Int 1: Có

Có phải biểu thức chính quy so sánh email created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Exam: Là bảng dữ liệu bài thi, chứa thông tin cụ thể của một bài thi

Bảng 2.19 Bảng dữ liệu exam

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng name Varchar (255) Tên bài thi description Text Mô tả cho bài thi image_preview Varchar (255) Ảnh đại diện is_shuffle_anwser Int 1: Xáo trộn,

Xáo trộn đáp án hay không is_allow_view_answer Int 1: Cho phép,

Cho phép xem đáp án hay không company_id Int Khóa ngoại, liên kết với bảng company Mã công ty exam_question_id Int Khóa ngoại, liên kết với bảng exam_question

Mã đề thi được sử dụng status Varchar (255) 1: ONGOING,

0: STOP Trạng thái from_date DateTime Ngày bắt đầu to_date DateTime Ngày kết thúc created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Report: Là bảng dữ liệu kết quả thi theo từng bài thi của từng người tham dự

Bảng 2.20 Bảng dữ liệu report

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính Khóa chính của bảng exam_id Int Khóa ngoại, liên kết với bảng exam Mã bài thi user_id Int Khóa ngoại, liên kết với bảng user Mã người dùng reading_score Int Điểm phần đọc hiểu listening_score Int Điểm phần nghe num_listening Int Số câu nghe đúng num_reading Int Số câu đọc hiểu đúng created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Result: Là bảng dữ liệu câu trả lời từ người tham gia

Bảng 2.21 Bảng dữ liệu result

Tên trường Kiểu dữ liệu Ghi chú Mô tả id BigInt(20) Khóa chính, duy nhất Khóa chính của bảng report_id Int Khóa ngoại, liên kết với bảng report Mã kết quả thi question_id Int Khóa ngoại, liên kết với bảng question Mã câu hỏi your_answer Varchar (255) Câu trả lời của người thi your_answer_code Int Mã câu trả lời của người thi position_a Int Câu trả lời ở vị trí a position_b Int Câu trả lời ở vị trí b position_c Int Câu trả lời ở vị trí c position_d Int Câu trả lời ở vị trí d created_at DateTime Ngày tạo updated_at DateTime Ngày chỉnh sửa

- Bảng Exam_question_score: Là bảng dữ liệu đối chiếu điểm, chứa thông tin mô tả bảng đối chiếu đó

Bảng 2.22 Bảng dữ liệu exam_question_score

TRIỂN KHAI VÀ CHẠY THỬ NGHIỆM

MÔI TRƯỜNG TRIỂN KHAI

Trong quy trình phát triển phần mềm chuyên nghiệp, việc quản lý các phiên bản và lưu trữ mã nguồn là rất quan trọng hỗ trợ đắc lực cho lập trình viên Trong để tài này em đã sử dụng Github để lưu trữ mã nguồn kết hợp cùng với Git để quản lý các phiên bản

Git là một hệ thống VCS (Version Control System) dùng để quản lý và kiểm tra các phiên bản source code khác nhau trong quá trình phát triển Trên Git, có thể lưu trạng thái của file khi có nhu cầu dưới dạng lịch sử cập nhật

GitHub là một dịch vụ cung cấp kho lưu trữ mã nguồn Git dựa trên nền web cho các dự án phát triển phần mềm GitHub cung cấp cả phiên bản trả tiền lẫn miễn phí cho các tài khoản Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu người sử dụng với hơn 35 triệu kho mã nguồn, làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới

Hình 3.1 Lưu trữ mã nguồn trên github 3.1.2 Môi trường cài đặt

 Môi trường máy để chạy chương trình cả font-end và cả backend cần đáp ứng:

- Node.js: Hiện tại đang dùng version 12.9.1

- Npm: Là chương trình quản lý thư viện ngầm định trong môi trường Javascript Node.js hiện tại đang dùng version 6.10.2

Hình 3.3 Trình quản lý thư viện npm

- Composer: Trình quản lý gói cấp ứng dụng cho ngôn ngữ lập trình PHP cung cấp định dạng chuẩn để quản lý các phụ thuộc của phần mềm PHP và các thư viện cần thiết Hiện tại đang dùng version 1.9.0

Hình 3.4 Trình quản lý các gói, thư viện trong PHP

- Wamp:Là một phần mềm phối hợp nền tảng của hệ điều hành Microsoft Windows, được thiết kế bởi Romain Bourd WampServer bao gồm web chủ Apache, OpenSSL để hỗ trợ SSL, hệ quản trị cơ sở dữ liệu MySQL và chạy bằng ngôn ngữ lập trình PHP

 Back-end là web API được xây dựng bằng ngôn ngữ php sử dụng thư viện Laravel Framework

Hình 3.6 Ngôn ngữ back-end sử dụng

 Front-end là web application được sử dụng HTML, CSS, JavaScript với thư viện ReactJS

Hình 3.7 Ngôn ngữ font-end sử dụng

 Hệ quản trị cơ sở dữ liệu là MySQL

Hình 3.8 Hệ quản trị cơ sở dữ liệu

 Triển khai hệ thống trên heroku:

Deploy ứng dụng lên môi trường server thật là bước cuối cùng của việc phát triển dự án, nhằm chắc chắn sản phẩm sau khi release sẽ hoạt động đúng như mong muốn

Với dự án này, em chọn server của Heroku làm server để deploy ứng dụng Theo đó, khi client gửi yêu cầu đến server herokuapp, server sẽ xử lý yêu cầu, truy cập đến cơ sở dữ liệu để đọc và thao tác với dữ liệu, xử lý kết quả, server sẽ gửi phản hồi về cho client

Hình 3.9 Môi trường heroku deploy bản production

- Client: Chính là ứng dụng web, tương tác với server thông qua các API

- Heroku Server: Chính là nơi chứa các API, tương tác với cơ sở dữ liệu để nhận và xử lý, phản hồi các yêu cầu từ web

- Database: Là nơi lưu trữ cơ sở dữ liệu của hệ thống.

KẾT QUẢ DEMO VÀ HƯỚNG DẪN SỬ DỤNG CHƯƠNG TRÌNH

Source code được lưu trữ ở github:

Backend: https://github.com/TranHuuTrung/DoAnTotNghiep-BE

Frontend: https://github.com/TranHuuTrung/DoAnTotNghiep-FE để chạy chương trình hoàn chỉnh chúng ta thực hiện theo các bước:

 Backend: Sử dụng lệnh để tải toàn bộ mã chương trình về máy

$ git clone https://github.com/TranHuuTrung/DoAnTotNghiep-BE

Tiếp theo ở thư mục gốc của mã nguồn chạy lệnh

$ composer install để cài đặt những gói, thư viện liên quan cần thiết Sau đó, bật wamp tạo cơ sở dữ liệu, rồi vào file env trong mã nguồn để thay đổi các thông tin kết nối cho đúng với cơ sở dữ liệu vừa tạo Cuối cùng chạy lệnh migrationsđể tạo các bảng dữ liệu và tạo dữ liệu mẫu

$ git clone https://github.com/TranHuuTrung/DoAnTotNghiep-FE để tải toàn bộ mã chương trình web application về máy Tiếp theo ở thư mục gốc của mã nguồn chạy lệnh

$ npm start để cài đặt những gói, thư viện liên quan cần thiết và chạy chương trình lên

Sau khi hoàn thành các bước chuẩn bị trên chúng ta sẽ chạy chương trình cụ thể và dưới đây là một số hình ảnh về hệ thống:

- Chức năng Đăng ký Ở phần header tại màn hình chính của trang web sẽ xuất hiện 2 liên kết là đăng ký và đăng nhập Với trường hợp chưa có tài khoản chúng ta sẽ nhấn vào liên kết đăng ký

Hình 3.10 Màn hình chính của hệ thống

Sau đó hệ thống sẽ hiện lên màn hình có hai lựa chọn để đăng ký là đăng ký theo cá nhân hay là đăng ký cho một trung tâm, công ty, nhóm

Hình 3.11 Màn hình đăng ký dành cho cá nhân

Hình 3.12 Màn hình đăng ký dành cho các trung tâm, công ty hoặc nhóm Điền hợp lệ các thông tin đăng ký sau đó gửi lên hệ thống, trong trường hợp thành công hệ thống sẽ tự động gửi email thông báo đăng ký thành công đến email vừa đăng ký để xác nhận tài khoản, bắt buộc người đăng ký phải nhập chính xác thông tin email thì mới đăng ký và xác thực tài khoản thành công được Sau khi đã xác thực tài khoản hợp lệ thì khách hàng có thể đăng nhập là thực hiện các thao tác của mình trong hệ thống

Hình 3.13 Email thông báo đăng ký tài khoản cá nhân thành công và yêu cầu xác thực

Hình 3.14 Email thông báo đăng ký tài khoản công ty thành công và yêu cầu xác thực

Sau khi đã đăng ký tài khoản và xác thực hợp lệ thì người dùng đăng nhập vào hệ thống bằng tài khoản đó để thực hiện các chức năng của mình

Hình 3.15 Màn hình đăng nhập vào hệ thống

- Chức năng Quản lý tài khoản cá nhân

Khi đã đăng ký tài khoản thành công, thành viên có thể quản lý tài khoản cá nhân của mình bao gồm các thông tin như: Họ tên, ngày sinh, giới tính, ảnh đại diện, hay là bảo mật tài khoản là mật khẩu trong mục Hồ sơ của tôi

Hình 3.16 Màn hình quản lý tài khoản cá nhân

- Danh sách bài thi được mời tham dự

Một tài khoản có thể được mời tham dự một bài thi bất kỳ do các trung tâm, công ty hay nhóm thông qua email đăng ký trong hệ thống Khi đã đăng nhập vào hệ thống, tại mục

Bài thi sẽ hiển thị các bài thi đó Bên cạnh đó cũng có thể chọn trạng thái để xem các bài thi như tất cả, đang diễn ra, sắp diễn ra hay quá hạn tại mục chọn Xem theo

Hình 3.17 Màn hình danh sách các bài thi được mời tham dự

- Chức năng Thực hiện bài thi Ở danh sách hiển thị thông tin các bài thi được mời tham dự, cũng như màn hình hiển thị danh sách các bài thi thử, thành viên có thể bấm vào các liên kết Làm bài thi để thực hiện làm bài thi tương ứng Khi đó màn hình tổng quan về đề thi sẽ hiển thị với các thông tin mô tả các phần thi, thời gian Đối với các bài thi được mời nếu đã tham gia làm bài trước đó rồi thì màn hình sẽ thông báo đã tham gia, không thể tiếp tục

Hình 3.18 Màn hình tổng quan đề thi trước khi bắt đầu làm bài

Sau khi bấm vào Bắt đầu thi, màn hình chính của bài thi sẽ xuất hiện với đầy đủ thông tin chi tiết từng phần, từng câu hỏi của đề thi, người tham gia bắt đầu làm bài thi của mình trong thời gian cho phép Sẽ có đồng hồ báo thời gian ở phía góc dưới của màn hình

Hình 3.19 Màn hình chính làm bài thi

Trong quá trình làm bài, người thi cũng có thể bấm nút xem bảng các câu trả lời mình đã làm để xem các câu đã làm, chưa làm

Hình 3.20 Xem bảng câu trả lời đã chọn

- Kết quả sau khi thực hiện bài thi

Sau khi kết thúc quá trình làm bài thi thì hệ thống sẽ hiển thị điểm lên màn hình website, đồng thời gửi chi tiết điểm về email của người đó

Hình 3.21 Màn hình hiển thị kết quả điểm sau khi kết thúc

- Xem lịch sử thống kê kết quả các lần thi của cá nhân

Mỗi cá nhân cũng có thể theo dõi được chi tiết điểm của các lần thi mình đã tham gia, ở mục Kết quả của tôi Hệ thống sẽ thống kê lại điểm số mà cá nhân đã từng thi bao gồm số câu đúng, quy đổi ra điểm chi tiết của từng phần

Hình 3.23 Màn hình thống kê kết quả các bài thi đã tham gia Để nhìn trực quan về kết quả thi qua các lần thi, cá nhân có thể chọn vào Xem biểu đồ để xem

Hình 3.24 Màn hình thống kê kết quả các bài thi đã tham gia

Và nếu muốn xem chi tiết hơn về đúng sai từng câu thì có thể bấm vào đường dẫn xem chi tiết kết quả ở biểu tượng của hành động Màn hình sẽ hiển thị kết quả làm bài đáp án của cá nhân và đáp án của bài thi

Hình 3.25 Màn hình chi tiết kết quả các bài thi đã tham gia

- Danh sách đề thi thử

Khi đăng ký là thành viên của hệ thống thì các thành viên sẽ có quyền làm các bài thi mẫu do hệ thống đưa ra nhằm nắm được cấu trúc bài thi và rèn luyện được kỹ năng làm bài cho mình Tại mục Bài thi thử sẽ hiển thị danh sách và có thể làm các bài thi đó

Hình 3.26 Màn hình danh sách các bài thi thử

- Xem thông tin các chứng chỉ liên quan

Tại mục Chứng chỉ sẽ cung cấp các thông tin chi tiết về chứng chỉ, các cấp độ, các mức điểm tương ứng

Hình 3.27 Màn hình hiển thị thông tin về chứng chỉ

- Chức năng Xem các bài viết, mẹo

Ngày đăng: 25/02/2024, 11:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w