CHƢƠNG III : ĐỀ XUẤT XÂY DỰNG
3.2 Phân tích yêu cầu hệ thống
3.2.5 Mô tả một số usecase
3.2.5.1 Đăng ký tài khoản ban đầu
Mô tả: Cho phép một người được đăng ký tài khoản email của mình để đăng ký hòm thư chung cho các thành viên đăng ký sau này.
Tác nhân kích hoạt: Thành viên ban đầu
Tiền điều kiện: Bấm vào nút “Đăng ký” trên trang đăng ký
Luồng sự kiện chính:
o Hệ thống hiển thị cửa sổ để điền địa chỉ mail đăng ký
o Người sử dụng điền địa chỉ email của trường mình rồi bấm vào “Đăng ký”
o Hệ thống có thông báo việc đăng ký thành công và gửi mail xác nhận tới địa chỉ mail mà người quản trị đã đăng ký
Luồng sự kiện rẽ nhánh: Người sử dụng chưa điền địa chỉ email hoặc địa chỉ email không hợp lệ
o Hệ thống đưa ra thông báo và yêu cầu người dùng nhập lại thông tin
Hậu điều kiện: Thành viên ban đầu đăng ký thành công
3.2.5.2 Mời thành viên tham gia
Mô tả: Cho phép thành viên (giáo viên) được mời các cá nhân ở trường mình trở thành thành viên tham gia vào hệ thống
Tiền điều kiện: Thành viên đăng nhập thành công vào hệ thống và bấm chọn “Mời thành viên”
Luồng sự kiện chính:
o Hệ thống hiển thị cửa sổ để người sử dụng điền các địa chỉ e- mail sẽ được mời tham gia và các thông tin kèm theo
o Người sử dụng điền hết thông tin rồi bấm nút “Gửi lời mời” o Hệ thống có thông báo việc gửi lời mời thành công và lời
mời sẽ được gửi tới các địa chỉ e-mail đã có trong danh sách
Luồng sự kiện rẽ nhánh: Người sử dụng chưa điền đầy đủ thông tin hoặc sai định dạng thông tin (ví dụ địa chỉ e-mail)
o Hệ thống đưa ra thông báo và yêu cầu người dùng nhập lại thông tin
Hậu điều kiện: Lời mời sẽ được gửi tới các địa chỉ e-mail đã có trong danh sách
3.2.5.3 Gia nhập là giáo viên
Mô tả: Cho phép một người được đăng ký là giáo viên để có tạo và quản lý các lớp học
Tác nhân kích hoạt: Khách xem
Tiền điều kiện: Có e-mail mời tham gia từ thành viên
Luồng sự kiện chính:
o Người dùng bấm vào đường link có trong e-mail được gửi tới từ thành viên
o Hệ thống hiển thị cửa sổ để người dùng chọn mình là “Giáo viên” hoặc “Học sinh”
o Người dùng bấm chọn “Giáo viên”
o Hệ thống hiện thị cửa sổ đăng ký tài khoản giáo viên o Người dùng điền các thông tin đăng ký và bấm “Đăng ký”
Luồng sự kiện rẽ nhánh: Chưa điền đầy đủ thông tin o Hệ thống yêu cầu nhập lại
Hậu điều kiện: Người dùng gia nhập thành công với vai trò là giáo viên
3.2.5.4 Gia nhập là học sinh
Mô tả: Cho phép một người được đăng ký là học sinh
Tác nhân kích hoạt: Khách xem
Tiền điều kiện: Có e-mail mời tham gia từ thành viên và mã lớp do giáo viên cung cấp.
Luồng sự kiện chính:
o Người dùng bấm vào đường link có trong mail được gửi tới từ thành viên
o Hệ thống hiển thị cửa sổ để người dùng chọn mình là “Giáo viên” hoặc “Học sinh”
o Người dùng bấm chọn “Học sinh”
o Hệ thống hiện thị cửa sổ đăng ký tài khoản học sinh
o Người dùng điền các thông tin đăng ký và bấm “Đăng ký”
Luồng sự kiện rẽ nhánh: Chưa điền đầy đủ thông tin o Hệ thống yêu cầu nhập lại
Hậu điều kiện: Người dùng gia nhập thành công với vai trò là học sinh
3.2.5.5 Tạo lớp, mã lớp học
Mô tả: Giáo viên tạo lớp học của mình, với mỗi lớp có một mã để sinh viên có thể dùng mã đấy đăng ký hoặc gia nhập vào lớp tương ứng.
Tác nhân kích hoạt: Giáo viên
Tiền điều kiện: Giáo viên đã đăng nhập vào hệ thống
Luồng sự kiện chính:
o Người dùng bấm vào mục “Tạo lớp”
o Hệ thống hiển thị của sổ để điền thông tin về lớp o Người dùng bấm nút “Tạo lớp”
Luồng sự kiện rẽ nhánh: Chưa điền đủ thông tin
o Hệ thống đưa ra thông báo và yêu cầu người dùng nhập lại Hậu điều kiện: Hệ thống thông báo tạo lớp thành công cùng với mã nhóm
3.2.5.6 Tạo bài tập
Mô tả: Cho phép giáo viên tạo bài tập để gửi tới học sinh
Tác nhân kích hoạt: Giáo viên
Tiền điều kiện: Giáo viên đã đăng nhập vào hệ thống
Luồng sự kiện chính:
o Người dùng bấm chọn mục “Bài tập”
o Hệ thống hiển thị cửa sổ để người dùng điền thông tin về bài tập, đính kèm file, kèm link, chọn thời hạn làm bài tập, điền danh sách người nhận bài tập này.
o Người dùng bấm “Gửi đi” để gửi bài tập tới nhóm được chọn
Luồng sự kiện rẽ nhánh: Người dùng chưa nhập thông tin về bài tập mà bấm “Gửi đi”
o Hệ thống đưa ra thông báo và yêu cầu người dùng nhập lại
Hậu điều kiện: Bài tập được gửi tới lớp, học sinh có trong danh sách nhận
3.2.5.7 Sửa bài tập
Mô tả: Cho phép giáo viên sửa bài tập đã gửi.
Tiền điều kiện: Giáo viên đã đăng nhập vào hệ thống
Luồng sự kiện chính:
o Người dùng tìm bài tập trên trang chủ, hoặc bấm vào “Bài tập”, và bấm chọn “Sửa bài tập”
o Hệ thống hiển thị nội dung bài tập để người dùng thay đổi o Người dùng sửa thông tin bài tập và bấm nút “Ghi”
o Hệ thống gửi thông báo và bài tập tới cho sinh viên có trong danh sách nhận
Luồng sự kiện rẽ nhánh:
Hậu điều kiện: Bài tập đã sửa được gửi tới học sinh có trong danh sách nhận
3.2.5.8 Chấm điểm bài tập
Mô tả: Giáo viên chấm điểm cho các bài tập của sinh viên.
Tác nhân kích hoạt: Giáo viên
Tiền điều kiện: Giáo viên đã đăng nhập vào hệ thống. Bài giải của sinh viên đã được đưa lên đúng hạn.
Luồng sự kiện chính:
o Người dùng tìm trên trang chủ bài tập mình muốn chấm hoặc bấm vào mục “Bài tập”
o Hệ thống hiển thị của danh sách các bài tập o Người dùng chọn bài tập muốn chấm
o Hệ thống hiển thị danh sách bài giải theo tên sinh viên o Người dùng chọn tên sinh viên muốn chấm điểm o Hệ thống hiển thị bài giải của sinh viên
o Người dùng đọc bài giải (download file bài giải đính kèm) và nhập điểm, bấm “Cho điểm”, viết nhận xét và bấm “Thêm nhận xét”
o Hệ thống gửi thông tin về điểm và nhận xét bài giải tới sinh viên
Luồng sự kiện rẽ nhánh:
Hậu điều kiện: Bài giải được đánh giá điểm, nhận xét của giáo viên được gửi tới sinh viên
3.2.5.9 Sửa điểm bài tập
Mô tả: Giáo viên chấm điểm cho các bài tập của sinh viên.
Tác nhân kích hoạt: Giáo viên
Tiền điều kiện: Giáo viên đã đăng nhập vào hệ thống. Bài giải của sinh viên đã được đưa lên đúng hạn.
o Người dùng tìm trên trang chủ bài tập mình muốn sửa điểm hoặc bấm vào mục “Bài tập”
o Hệ thống hiển thị của danh sách các bài tập o Người dùng chọn bài tập muốn chấm
o Hệ thống hiển thị danh sách bài giải cùng với điểm theo tên sinh viên
o Người dùng chọn vào tên sinh viên muốn sửa điểm
o Hệ thống hiển thị bài giải của sinh viên, kèm điểm đã chấm o Người dùng bấm nút “xóa điểm”
o Hệ thống hiển thị ô để người dùng nhập lại điểm o Người dùng nhập điểm mới và bấm “Chấm điểm” o Hệ thống gửi thông tin cập nhật về điểm tới sinh viên
Luồng sự kiện rẽ nhánh:
Hậu điều kiện: Bài giải được sửa điểm và được thông báo cho sinh viên
3.2.5.10 Đăng tin/thông báo
Mô tả: Cho phép người dùng đăng bài viết, thông báo
Tác nhân kích hoạt: Giáo viên, học sinh
Tiền điều kiện: Người dùng đăng nhập thành công vào hệ thống
Luồng sự kiện chính:
o Người dùng bấm chọn mục “Bài viết”
o Hệ thống hiển thị cửa sổ để người dùng ghi nội dung bài viết o Người dùng soạn nội dung thông báo, điền danh sách người
nhận và bấm “Đăng tin”
o Hệ thống hiển thị thông báo trên trang chủ của các thành viên trong danh sách nhận và có thông báo gửi tới các thành viên
Luồng sự kiện rẽ nhánh: Người dùng chưa soạn thảo bài viết mà bấm “Đăng tin”
o Hệ thống đưa ra thông báo và yêu cầu người dùng nhập lại Hậu điều kiện: Bài viết được hiển thị trên trang chủ của các thành viên
trong danh sách nhận
3.2.5.11 Phản hồi tin/thông báo
Mô tả: Cho phép người dùng trả lời các bài viết/thông báo
Tác nhân kích hoạt: Học sinh, giáo viên
Tiền điều kiện: Học sinh, giáo viên đã đăng nhập vào hệ thống
Luồng sự kiện chính:
o Người dùng tìm trên trang chủ các bài viết/thông báo và bấm vào “Phản hồi”
o Hệ thống hiển thị cửa sổ để người dùng nhập nội dung phản hồi
o Người dùng nhập nội dung phản hồi và bấm “Phản hồi” o Đoạn phản hồi sẽ được hiển thị ngay dưới thông báo
Luồng sự kiện rẽ nhánh: Người dùng bấm “Hủy bỏ” hoặc chưa nhập thông tin gì mà bấm “Phản hồi”.
o Nếu người dùng bấm “Hủy bỏ” thì cửa sổ nhập nội dung phản hồi sẽ biến mất
o Nếu người dùng chưa nhập thông tin gì mà bấm “Phản hồi”, cửa sổ nhập nội dung phản hồi sẽ không thay đổi
Hậu điều kiện: Nội dung phản hồi được đăng tải ngay dưới thông báo
3.2.6 Các yêu cầu phi chức năng và môi trƣờng
Hệ thống phải đảm bảo một số yêu cầu phi chức năng như sau:
3.2.7.1 Tính dễ sử dụng
Hệ thống phải dễ dàng trong việc truy cập và sử dụng đối với người sử dụng.
3.2.7.2 Tính dễ hiểu
Hệ thống phải dễ hiểu với người sử dụng
3.2.7.3 Yêu cầu về vận hành
− Hệ thống phải có database và kết nối với main database
− Hệ thống phải làm việc trên môi trường web với tất cả các web browers − Hệ thống phải phù hợp với các chuẩn web
3.2.7.4 Hiệu năng
− Database của hệ thống phải update theo thời gian thực
− Hệ thống phải có tốc độc đáp ứng phù hợp khi có sự truy cập đồng thời của nhiều người sử dụng
3.2.7.5 Tính sẵn sàng
Hệ thống phải luôn hoạt động 24/7.
3.2.7.6 Bảo mật
− Chỉ người có Tên đăng nhập và Mật khẩu mới có thể truy cập vào hệ thống − Người chưa được cấp quyền không được sử dụng hệ thống, chỉ được phép
− Không một ai có thể thay đổi mật khẩu khi không login vào hệ thống
3.3 Thiết kế
3.3.1 Kiến trúc tổng thể của hệ thống
Hệ thống được thiết kế theo mô hình MVC bao gồm 3 thành phần chính là Model, View và Controller. Hình 3.9 biểu diễn các thành phần con bên trong 3 thành phần chính Hình 3. 8 Kiến trúc tổng thể của hệ thống View Controller Model User Interface Group Controller Site Controller Task Controller User Controller Assignment Group Member Post/Reply
3.3.2 Biểu đồ tuần tự (Phụ lục) 3.3.3 Biểu đồ thành phần 3.3.3 Biểu đồ thành phần
Hình 3. 9 Biểu đồ thành phần
3.3.4 Biểu đồ triển khai
CHƢƠNG IV: CÀI ĐẶT THỬ NGHIỆM 4.1 Các công nghệ sử dụng 4.1 Các công nghệ sử dụng
4.1.1 Ngôn ngữ lập trình PHP
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. Do đượ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 web phổ biến nhất thế giới.
4.1.2 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.
4.1.3 CSS3
Trong tin học, các tập tin định kiểu theo tầng – dịch từ tiếng Anh là Cascading Style Sheets (CSS) – được dùng để miêu tả cách trình bày các tài liệu viết bằng ngôn ngữ HTML và XHTML. Ngoài ra ngôn ngữ định kiểu theo tầng cũng có thể dùng cho XML, SVG, XUL. Các đặc điểm kỹ thuật của CSS được duy trì bởi World Wide Web Consortium (W3C). Tác dụng của CSS là Hạn chế tối thiểu việc làm rối mã HTML của trang Web bằng các thẻ quy định kiểu dáng (chữ đậm, chữ in nghiêng, chữ có gạch chân, chữ màu), khiến mã nguồn của trang Web được gọn gàng hơn, tách nội dung của trang Web và định dạng hiển thị, dễ dàng cho việc cập nhật nội dung.
4.1.4 PHP Yii Framework
Yii là một PHP framework được xây dựng để phát triển các ứng dụng web quy mô lớn dựa trên nền tảng component (thành phần sử dụng lại). Yii cho phép
tái sử dụng tối đa các thành phần của hệ thống (ứng dụng) để tăng tốc độ viết ứng dụng.
Yii được viết bằng PHP5, chủ yếu tập trung vào high-performance, component-based cho phép người sử dụng dễ dàng tạo cũng như bảo trì các ứng dụng web, giúp người sử dụng làm việc hiệu quả hơn.
Yii, nói chung, là một framework phát triển ứng dụng Web nên có thể dùng để viết mọi loại ứng dụng Web. Yii rất nhẹ và được trang bị giải pháp cache tối ưu nên nó đặc biệt hữu dụng cho ứng dụng web có dung lượng dữ liệu trên đường truyền lớn như web portal, forum, CMS, e-commerce...
4.1.5 jQuery
jQuery là một Javascript Framework, một thư viện kiểu mới của Javascript hỗ trợ các nhà lập trình web tạo ra các tương tác động trên website. jQuery đơn giản hóa cách viết Javascript và tăng tốc độ xử lý các sự kiện trên trang web, giúp tiết kiệm thời gian và công sức rất nhiều so với việc ngồi viết javascript theo cách thông thường.
4.1.6 Ajax
AJAX là thuật ngữ viết tắt của Asynchronous Javascript and XML ( JS và XML không đồng bộ). AJAX có thể đọc là "trao quyền cho javascript" và thông qua js để cung cấp một công nghệ phía client-script để gọi ngầm một lệnh background để phía server thực hiện và nhận thông tin trả về, update thông tin của trang nhanh mà không cần phải load lại cả trang, rất mất thời gian load lại những cái không cần update.
4.1.7 Các tool
Apache server
NuSphere PhpED
SQLyog Enterprise
4.2 Một số chức năng chính của chƣơng trình 4.2.1 Đăng ký thành viên
Hình 4. 1 Giao diện đăng ký thành viên
4.2.2 Gửi lời mời tới các thành viên khác
Khi đã là thành viên, giáo viên có thể gửi lời mời tới các giáo viên khác để cùng tham gia vào mạng chung của trường. Lời mời được gửi thông qua địa chỉ hòm thư.
Hình 4. 2Giao diện gửi lời mời tới các thành viên khác
4.2.3 Gia nhập là giáo viên
Một người là giáo viên, khi đăng ký cần các thống tin về email, mật khẩu, họ tên, số điện thoại…
Hình 4. 3 Đăng ký là giáo viên
4.2.4 Tạo lớp
Giáo viên tạo các lớp học với các thông tin như tên nhóm, cấp học, lĩnh vực…Sau khi điền đầy đủ thông tin và bấm nút “Tạo”, lớp mới sẽ được tạo ra với mã lớp kèm theo.
Hình 4. 4 Tạo lớp
4.2.5 Gia nhập là học sinh
Sau khi được giáo viên cung cấp mã của lớp học, học sinh sẽ sử dụng mã đó để đăng ký vào hệ thống. Để đăng ký, học sinh cần nhập mã lớp, cung cấp địa chỉ email (theo địa chỉ email của trường đã đăng ký), mật khẩu, họ tên, số
điện thoại …. Học sinh sau khi đăng ký sẽ vào luôn lớp có mã lớp mà mình đã