Hệ thống xây dựng đầy đủ các chức năng đểthực hiện ôn tập và luyện và giải đề thi thử tiếng anh.. Từ đó phát thảo cácchức năng cơ bản cho hệ thống của mình với những kiến thức đã học để
CƠ SỞ LÝ THUYẾT
Tổng quan về ngôn ngữ java
Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP). Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Cú pháp Java được vay mượn nhiều từ
C và C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng xử lý cấp thấp hơn Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn
Java được khởi đầu bởi James - Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991 Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi) do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này. Java được phát hành vào năm 1994 Sau khi Oracle mua lại công ty Sun Microsystems năm 2009 - 2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch" Lịch sử phiên bản java:
- Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006
- Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011.
Spring framework
2.2.1 Tổng quan về Spring framework
Spring Core: Spring Core chính là thành phần trung tâm, cốt lõi của Spring Framework Đây chính là nền tảng để xây dựng nên các thành phần khác.
Spring Bean: Spring Bean là trung tâm của Spring Core và là trái tim của một ứng dụng Spring.
Dependency Injection (DI): Dependency Injection (có thể dịch tiêm các thành phần phụ thuộc) là một sức mạnh nổi bật của Spring Framework.
Spring Context: Spring Context mang mọi thứ lại với nhau.
Spring Expression Language (SpEL): Spring Expression Language là một ngôn ngữ ngắn gọn giúp cho việc cấu hình Spring Framework trở nên linh hoạt hơn.
Các dự án trong Spring Framework: Spring Framework là một tập hợp của nhiều dự án con.
Spring MVC: Spring MVC được thiết kế dành cho việc xây dựng các ứng dụng nền tảng web.
Spring Data: Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ cơ sở dữ liệu quan hệ, phi quan hệ, map-reduce,…
Spring Security: Dự án này cung cấp các cơ chế xác thực (authentication) và phân quyền (authorization) cho ứng dụng.
Spring Boot: là một framework giúp phát triển cũng như chạy ứng dụng một cách nhanh chóng.
Hình 2 1: Mô hình Spring Framework Runtime
2.2.2 Tổng quan về hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ.
Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).
Mô hình Spring MVC (Model – View – Controller)
Spring MVC là một module con trong Spring framework, cung cấp kiến trúc Model-View-Controller và các components sẵn có để sử dụng và phát triển ứng dụng web một cách linh hoạt.
Hình 2 2: Kiến trúc module Spring MVC
Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng (logic đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành phần đó một cách “lỏng lẻo”.
Model: đóng gói dữ liệu ứng dụng và bao gồm các POJO
View: Chịu trách nhiệm nhận giá trị của model và vẽ ra trang HTML mà trình duyệt có thể hiển thị được
Controller: Chịu trách nhiệm nhận và xử lý các yêu cầu từ người dùng và tạo các model phù hợp và trả về cho view Spring MVC được thiết kế xung quanh DispatcherServlet để xử lý tất cả các HTTP request và HTTP response Luồng xử lý các yêu cầu của DispatcherServlet được minh họa theo hình:
Hình 2 3: Sơ đồ luồng xử lý của Spring MVC Đây là chuỗi sự kiện tương ứng khi nhận một yêu cầu HTTP gửi đến DispatcherServlet:
- Sau khi nhận một HTTP request, DispatcherServlet gửi yêu cầu đến HandlerMapping (một bản đồ cấu hình URL) để xác định controller nào sẽ xử lý yêu cầu này
- Controller sẽ nhận các request và gọi các phương thức dịch vụ (service methods) phù hợp dựa trên việc sử dụng các method GET/POST… Nếu yêu cầu đó cần truy xuất cơ sở dữ liệu thì Controller sẽ ủy nhiệm cho một business logic hay nhiều hơn một model để lấy thông tin và gửi dữ liệu về cho Controller Lúc này Controller đóng gói mô hình dữ liệu và tên của một view sẽ được tải lên thành đối tượng ModelAndView và gửi trả về cho DispathcherServlet
- DispatcherServlet gửi gói ModelAndView cho ViewResolver để tìm xem view(thông thường là một trang JSP, HTML) nào sẽ được load lên 4 Sau khi hoàn tất,DispatcherServlet sẽ chuyển dữ liệu từ model đến view và cuối cùng hiển thị trên trình duyệt.
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Đặc tả yêu cầu phần mềm (Software Requirements)
3.1.1 Đối tượng sử dụng hệ thống
Hệ thống ôn tập và luyện thi Tiếng anh hoạt động chủ yếu cho 4 đối tượng chính:
Quản trị viên là người quản lý website có quyền cao nhất,nắm tất cả các quyền trong website.
Giáo viên là người quản lý bài ôn tập và đề luyện thi.
Thành viên là những người đã đăng kí tài khoản trên website có thể ôn tập và luyện đề thi thử
Khách vãng lai là những người chưa đăng kí tài khoản của website chỉ có thể xem và ôn tập.
3.1.2 Chức năng của quản trị viên (Admin)
Đổi thông tin cá nhân
3.1.3 Chức năng của giáo viên (Teacher)
Đổi thông tin cá nhân
Cập nhật nội dung bài đọc
Cập nhật nội dung bài nghe
Cập nhật nội dung từ vựng
Cập nhật bài ngữ pháp
Cập nhật nội dung đề thi
Xuất file lịch sử thi
Xuất file chi tiết làm bài thi
3.1.4 Chức năng của thành viên
Đổi thông tin cá nhân
3.1.5 Chức năng của khách vãng lai (Guest)
Sơ đồ hệ thống
Hình 3 2: Sơ đồ Class 3.2.3 Sơ đồ hoạt động
Hình 3 3: Sơ đồ hoạt động chức năng đăng nhập
Hình 3 4: Sơ đồ hoạt động chức năng đăng kí tài khoản
Hình 3 5: Sơ đồ hoạt động chức năng đổi mật khẩu
Hình 3 6: Sơ đồ hoạt động chức năng đổi thông tin cá nhân
3.2.4 Sơ đồ hoạt động của quản trị viên
Hình 3 7: Sơ đồ hoạt động chức năng thêm tài khoản
Hình 3 8 : Sơ đồ hoạt động chức năng khóa tài khoản
Hình 3 9: Sơ đồ hoạt động chức năng mở khóa tài khoản
Hình 3 10: Sơ đồ hoạt động chức năng ẩn bình luận
3.2.5 Sơ đồ hoạt động của giáo viên
Hình 3 11: Sơ đồ hoạt động chức năng thêm bài nghe
Hình 3 12: Sơ đồ hoạt động chức năng xóa bài nghe
Hình 3 13: Sơ đồ hoạt động chức năng thêm câu hỏi bài nghe
Hình 3 14: Sơ đồ hoạt động chức năng xóa câu hỏi bài nghe
Hình 3 16: Sơ đồ hoạt động chức năng xóa bài đọc
Hình 3 17: Sơ đồ hoạt động chức năng thêm nội dung bài đọc
Hình 3 18: Sơ đồ hoạt động chức năng xóa nội dung bài đọc
Hình 3 19: Sơ đồ hoạt động chức năng thêm chủ đề từ vựng
Hình 3 20: Sơ đồ hoạt động chức năng xóa chủ đề từ vựng
Hình 3 21: Sơ đồ hoạt động chức năng thêm nội dung cho chủ đề từ vựng
Hình 3 23: Sơ đồ hoạt động chức năng thêm ngữ pháp
Hình 3 24: Sơ đồ hoạt động chức năng xóa ngữ pháp
Hình 3 25: Sơ đồ hoạt động chức năng thêm đề thi
Hình 3 26: Sơ đồ hoạt động chức năng xóa đề thi
Hình 3 27: Sơ đồ hoạt động chức năng thêm câu hỏi đề thi
Hình 3 28: Sơ đồ hoạt động chức năng xóa câu hỏi đề thi
Hình 3 29: Sơ đồ hoạt động chức năng Lịch sử thi
3.2.6 Sơ đồ hoạt động thành viên
Hình 3 31: Sơ đồ hoạt động chức năng ôn tập từ vựng
Hình 3 32: Sơ đồ hoạt động chức năng luyện thi phần đọc
Hình 3 33: Sơ đồ hoạt động chức năng luyện đề thi
Hình 3 34: Sơ đồ hoạt động chức năng xem lịch sử thi
Hình 3 35 :Sơ đồ tuần tự làm đề thi
Hình 3 36 :Sơ đồ tuần tự ôn tập ngữ pháp
Hình 3 38 :Sơ đồ tuần tự xem và xuất file chi tiết lịch sử thi
Hình 3 39 :Sơ đồ cơ sở dữ liệu ERD
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú quyenId Id của quyền Int Khóa chính,tự tăng
Ten Tên của quyền Varchar(20) maQuyen Mã quyền Varchar(20) Unique url Đường dẫn url Varchar(255)
Bảng 3 1: Bảng quyền 3.2.10.Bảng Quyen_Nguoi dung:
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú quyenNguoiDungId Id của quyền-người dùng
Int Khóa chính,tự tăng quyenId Id của quyền Int Khóa ngoại nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 2: Bảng quyền-người dùng 3.2.11.Bảng Nguoi dung:
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú nguoiDungId Id người dùng Int Khóa chính,tự tăng tenDangNhap Tên đăng nhập Varchar(255) matKhau Mật khẩu Varchar(255) hoTen Họ tên Varchar(255)
SDT Số điện thoại Varchar(255) trangThai Trạng thái Bit
Bảng 3 3: Bảng người dùng 3.2.12.Bảng Ngu Phap:
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú nguPhapId Id bài ngữ pháp Int Khóa chính, tự tăng ten Tên bài ngữ pháp Varchar(255) anh Ảnh bài ngữ pháp Varchar(255) noiDung Nội dung bai ngữ pháp Text nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 4: Bảng ngữ pháp 3.2.13.Bảng Binh luan ngu phap
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú binhLuanNguPhapI d
Id bình luận ngữ pháp
Int Khóa chính, tự tăng noiDung Nội dung bình luận Varchar(255) thoiGian Thời gian bình luận Date nguoiDungId Id người dùng Int Khóa ngoại nguPhapId Id bài ngữ pháp Int Khóa ngoại
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú tuVungId Id từ vựng Int Khóa chính, tự tăng anh Ảnh bài từ vựng Varchar(255) ten Tên bài từ vựng Varchar(255) nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 6: Bảng từ vựng 3.2.15.Bảng Noi dung tu vung
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú noiDungTuVugngI d
Id nội dung từ vựng Int Khóa chính, tự tăng audio Âm thanh từ vựng Varchar(255) noiDung Nội dung từ vựng Varchar(255) anh Ảnh từ vựng Varchar(255) nghia Nghĩa từ vựng Varchar(255) cau Câu từ vựng Varchar(255) phienAm Phiên âm từ vựng Varchar(255) tuVungId Id từ vựng Int Khóa ngoại
Bảng 3 7: Bản nội dung từ vựng 3.2.16.Bảng Kiem tra
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú kiemTraId Id bài kiểm tra Int Khóa chính, tự tăng ten Tên bài kiểm tra Varchar(255) anh Ảnh bài kiểm tra Varchar(255) trangThai Trạng thái Int nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 8: Bảng kiểm tra 3.2.17.Bảng Ket qua kiem tra
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú ketQuaId Id kết quả Int Khóa chính, tự tăng thoiGianBatDauBaiNghe Thời gian bắt đầu bài nghe Date thoiGianNopBaiBaiNgh e
Thời gian nộp bài nghe Date soCauDungBaiNghe Số câu đúng bài nghe Int thoiGianBatDauBaiDoc Thời gian bắt đầu bài đọc Date thoiGianNopBaiBaiDoc Thời gian nộp bài đọc Date soCauDungBaiDoc Số câu đúng bài đọc Int tongSoCauLamDung Tổng số câu làm đúng int tongThoiGianLam Tổng thời gian làm Int kiemTraId Id bài kiểm tra Int Khóa ngoại nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 9: Bảng kết quả kiểm tra 3.2.18.Bảng Noi dung kiem tra
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú noiDungKiemTraId Id nội dung bài kiểm tra
Int Khóa chính, tự tăng audio Audio Varchar(255) anh Ảnh nội dung bài kiểm tra Varchar(255) dapAnDung Đáp án đúng Varchar(255) cauHoi Câu hỏi Varchar(255) dapAn1 Đáp án 1 Varchar(255) dapAn2 Đáp án 2 Varchar(255) dapAn3 Đáp án 3 Varchar(255) dapAn4 Đáp án 4 Varchar(255) doanVan Đoạn văn Varchar(255) dapAnChon Đáp án chọn Varchar(255) kiemTraId Id bài kiểm tra Int Khóa ngoại
Bảng 3 10: Bảng nội dung kiểm tra 3.2.19.Bảng Bai doc
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú baiDocId Id bai đọc Int Khóa chính, tự tăng ten Tên bài đọc Varchar(255) capDo Cấp độ Int phanThi Phần thi Int anh Hình Ảnh Varchar(255) nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 11: Bảng bài đọc 3.2.20.Bảng Noi dung bai doc
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú noiDungBaiDocId Id nội dung bài đọc Int Khóa chính, tự tăng cauHoi Câu hỏi Varchar(255) dapAn1 Đáp án 1 Varchar(255) dapAn2 Đáp án 2 Varchar(255) dapAn3 Đáp án 3 Varchar(255) dapAn4 Đáp án 4 Varchar(255) giaiThich Giải thích Varchar(255) doanVan Đoạn văn Text dapAnChon Đáp án chọn Varchar(255) giaiThich Giải thích Varchar(255) baiDocId Id bai đọc Int Khóa ngoại
Bảng 3 12: Bảng nội dung bài đọc 3.2.21.Bảng Bai nghe
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú baiNgheId Id bai nghe Int Khóa chính, tự tăng ten Tên bài nghe Varchar(255) capDo Cấp độ Int phanThi Phần thi Int anh Hình Ảnh Varchar(255) nguoiDungId Id của người dùng Int Khóa ngoại
Bảng 3 13: Bảng bài nghe 3.2.22.Bảng Noi dung bai nghe
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú noiDungBaiNgheId Id nội dung bài nghe Int Khóa chính, tự tăng audio Âm thanh Varchar(255) dapAn1 Đáp án 1 Varchar(255) dapAn2 Đáp án 2 Varchar(255) dapAn3 Đáp án 3 Varchar(255) dapAn4 Đáp án 4 Varchar(255) giaiThich Giải thích Varchar(255) anh Ảnh Varchar(255) doanVan Đoạn văn Text dapAnDung Đáp án đúng Varchar(1) dapAnChon Đáp án chọn Varchar(1) giaiThich Giải thích Text baiDocId Id bai đọc Int Khóa ngoại
Bảng 3 14: Bảng nội dung bài nghe 3.2.23.Bảng Lich su
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú id Id lịch sử Int Khóa chính, tự tăng kiemTraId Id bài kiểm tra Int Khóa ngoại noiDungKiemTraId Id nội dung bài kiểm tra Int Khóa ngoại cauTraLoiNguoiDun g Đáp án của người dung Varchar(50)
Bảng 3 15: Bảng nội dung lịch sử
KẾT QUẢ GIAO DIỆN TRIỂN KHAI HỆ THỐNG WEBSITE
Khách vãng lai
Hình 4 1: Giao diện kết quả trang chủ
4.1.2 Giao diện trang đăng nhập
Hình 4 2: Giao diện kết quả trang đăng nhập
4.1.3 Giao diện trang đăng kí tài khoản
Hình 4 3: Giao diện kết quả trang đăng kí tài khoản
Quản trị viên
Hình 4 4: Giao diện kết quả trang thống kê
4.2.2 Giao diện quản lý tài khoản
Hình 4 5: Giao diện kết quả quản lý tài khoản
Hình 4 6 : Giao diện kết quả thêm mới
Giáo viên
4.3.1 Giao diện trang thống kê
Hình 4 7: Giao diện kết quả giao diện trang thống kê giáo viên
4.3.2 Giao diện trang danh sách từ vựng theo chủ đề
Hình 4 8: Giao diện kết quả giao diện trang danh sách từ vựng
Hình 4 9: Giao diện kết quả giao diện trang nội dung từ vựng
4.3.3 Giao diện trang danh sách bài ngữ pháp
Hình 4 10: Giao diện kết quả giao diện trang quản lý ngữ pháp
4.3.4 Giao diện trang danh sách đề luyện nghe
Hình 4 11: Giao diện kết quả giao diện trang danh sách đề luyện nghe
Hình 4 12: Giao diện kết quả giao diện trang danh sách câu hỏi của đề luyện nghe
4.3.5 Giao diện trang danh sách đề luyện đọc
Hình 4 13: Giao diện kết quả giao diện trang quản lý đề luyện đọc
4.3.6 Giao diện trang danh sách đề thi
Hình 4 14: Giao diện kết quả giao diện trang danh sách đề luyện thi
4.3.7 Giao diện trang lịch sử thi
Hình 4 15: Giao diện kết quả giao diện trang lịch sử để thi