- Mỗi sinh viên sẽ được cấp 1 tài khoản truy cập duy nhất trên hệ thống, tài khoản này bao gồm các thông tin: mã số sinh viên dùng để đăng nhập, mật khẩu dùng để đăng nhập.. Mỗi sinh viê
Trang 1ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC SƯ PHẠM
KHOA TIN
- -
NGUYỄN ĐỨC QUANG KIM
XÂY DỰNG WEBSITE THI TRẮC
NGHIỆM TRỰC TUYẾN
KHÓA LUẬN TỐT NGHIỆP
Trang 2MỤC LỤC
LỜI MỞ ĐẦU
PHẦN I: CƠ SỞ LÝ THUYẾT 1
I.TÌM HIỂU VỀ FRAMEWORK CAKEPHP: 1
II CẤU TRÚC CỦA FRAMEWORK CAKEPHP: 2
III GIỚI THIỆU MÔ HÌNH MVC: 3
1.Mô hình MVC: 3
2 Hoạt động của MVC: 4
2.1 Model: 4
2.2 View: 5
2.3 Controller: 5
IV TẠO CƠ SỞ DỮ LIỆU TRONG CAKE PHP: 7
V CÀI ĐẶT CAKE PHP- XÂY DỰNG TÀI LIỆU KỸ THUẬT VỀ CÁCH XÂY DỰNG MỘT ỨNG DỤNG TRÊN FRAMEWORK CAKE PHP THEO MÔ HÌNH MVC: 8
1 Cài đặt CakePHP: 8
2.Xây dựng một ứng dụng trên Framework cakephp theo mô hình MVC: 10
PHẦN II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 18
I KHẢO SÁT BÀI TOÁN: 18
1 Mô tả bài toán: 18
2 Phương pháp: 19
3 Phạm vi sản phẩm: 20
II MÔ TẢ CHUNG: 20
1 Các chức năng chính của ứng dụng: 20
2 Phân loại người dùng sản phẩm: 21
3 Các ràng buộc trong thiết kế và thực hiện: 21
4 Giao diện người dùng: 21
5 Yêu cầu thực thi: 21
6 Yêu cầu an toàn: 22
7 Yêu cầu bảo mật: 22
III THIẾT KẾ HỆ THỐNG: 22
Trang 31 Phân tích yêu cầu: 22
2 Sơ đồ phân rã chức năng: 24
3 Xây dựng biểu đồ Use Case tổng quát: 24
4 Biểu đồ hoạt động một vài Use Case: 24
4.1 Đăng nhập: 24
4.2 Biểu đồ cập nhật sinh viên: 25
4.3.Biểu đồ cập nhật khoa: 27
5 Xây dựng biểu đồ lớp: 28
PHẦN III: XÂY DỰNG CHƯƠNG TRÌNH 28
I THIẾT KẾ CƠ SỞ DỮ LIỆU: 29
1 Các bảng: 29
2 Từ điển dữ liệu: 29
3 Lược đồ quan hệ: 31
II DEMO ỨNG DỤNG : 32
1 Giao diện chính: 32
2 Giao diện từng chức năng: 33
2.1.Sinh viên đăng nhập: 33
2.2.Giao diện bắt đầu thi: 34
2.3.Thực hiện bài thi: 35
2.4.Kết quả sau khi thi: 36
2.5.Đăng nhập quản trị: 37
2.6.Giao diện quản lý của quản trị: 38
2.7.Giao diện quản lý học kỳ : 38
2.8.Giao diện quản lý môn học: 39
2.9.Giao diện quản lý học phần: 40
2.10.Giao diện quản lý đề thi: 41
2.11.Giao diện quản lý câu hỏi: 42
2.12.Giao diện quản lý phương án trả lời: 43
2.13.Giao diện quản lý sinh viên: 44
2.14.Giao diện quản lý quản trị: 45
2.15 Giao diện quản lý sinh viên đăng kí thi học phần: 46
Trang 4PHẦN IV: KIỂM THỬ 47
I YÊU CẦU KIỂM THỬ: 48
1 Mục đích: 48
2 Mục tiêu và phạm vi tổ chức dự án: 48
3 Tính năng của sản phẩm 48
4 Môi trường vận hành: 49
5 Yêu cầu về chất lượng sản phẩm 49
II XÂY DỰNG KẾ HOẠCH KIỂM THỬ: 49
1 Mục đích 49
2 Mô tả kế hoạch 50
3 Tài nguyên yêu cầu 50
4 Quy trình thực hiện 50
* Kết luận: 51
KẾT LUẬN 52
TÀI LIỆU THAM KHẢO 53
Trang 5LỜI MỞ ĐẦU
Trong thế giới điện toán, các ứng dụng Web đã thực sự phát triển rất mạnh, nhanh Hàng loạt công nghệ mới ra đời để đáp ứng những đòi hỏi của những người sử dụng muốn có mỗi khi họ bật trình duyệt Web của mình lên Gần như những gì mà phần mềm truyền thống có thể làm được thì Web cũng làm được Từ nghe nhạc, xem phim, đọc báo, cả những công việc mà trước đây chỉ có phần mềm truyền thống mới có thể thực hiện được như soạn thảo văn bản, các sản phầm chế bản văn phòng, chuyển đổi định dạng các file, hay thậm chí cả những bài toán quản lý phức tạp của các doanh nghiệp cũng có thể triển khai trên Web Rõ ràng, Web là tương lai của điện toán hiện đại
Ngày nay, công nghệ thông tin đang đóng vai trò quan trọng trong hầu hết các ngành nghề và ở mọi lĩnh vực như giáo dục, kinh tế, y khoa, công nghiệp…dần dần được tin học hóa và làm cho công việc trở lên dễ dàng, nhanh chóng và chính xác hơn Đặc biệt trong công tác giáo dục, việc tin học hóa góp phần nâng cao chất lượng dạy học và ngày càng được quan tâm và chú trọng
Chính vì xuất phát từ nhu cầu thực tế tôi đã chọn đề tài ”Xây dựng website thi trắc nghiệm trực tuyến” nhằm giúp cho công tác thi cử trở nên dễ dàng hơn,
thuận tiện hơn, đảm bảo tính khách quan, công bằng Đồng thời phần mềm cũng giúp cho giáo viên chấm điểm cho học sinh một cách đơn giản và nhanh chóng
Do còn nhiều hạn chế về trình độ cũng như thời gian nên đề tài này sẽ không tránh khỏi sai sót Em rất mong nhận được sự chỉ bảo góp ý của các thầy
cô và các bạn để giúp em hoàn thiện nó tốt hơn
Đà nẵng, ngày tháng năm 2012
Sinh viên thực hiện
Nguyễn Đức Quang Kim
Trang 6PHẦN I: CƠ SỞ LÝ THUYẾT
I.TÌM HIỂU VỀ FRAMEWORK CAKEPHP:
CakePHP là một framework để lập trình web
bằng ngôn ngữ PHP, nguồn mở và miễn phí Có thể
coi nó là một thư viện cho lập trình viên dùng để
tạo ra một ứng dụng web Mục đích chính của
CakePHP là tạo ra cách viết code có cấu trúc và
nhanh chóng nhưng không mất đi tính linh hoạt của
việc lập trình
CakePHP cung cấp tất cả các công cụ với một tiêu chí: cho các lập trình viên
có thể hoàn toàn không phải nghĩ đến những điều quá vụn vặt, mà chỉ áp dụng logic nghiệp vụ của họ vào chương trình, bằng cách sử dụng các công cụ của CakePHP
CakePHP có một đội ngũ phát triển và một cộng đồng năng động, mang lại giá trị rất lớn cho dự án Ngoài ra, nó giúp cho người lập trình không phải viết lại rất nhiều code, việc sử dụng CakePHP mang lại cho ứng dụng web một cái lõi đã được kiểm tra rất kỹ lưỡng và không ngừng phát triển
Có khả năng tương thích PHP 4 và 5.Tích hợp các thao tác CRUD với CSDL: các thao tác Thêm/ Xem/ Sửa/ Xóa được hỗ trợ thực hiện tự động
Có khả năng tự hiểu và nhận biết một số tên trường dữ liệu (created, modified, username, password ) Ngoài ra, với CakePHP, chỉ cần tuân theo quy ước đặt tên đối với các bảng và các trường dữ liệu, CakePHP đã có thể hỗ trợ rất nhiều thao tác và bảo đảm toàn vẹn dữ liệu
Cung cấp khả năng tự sinh mã lệnh: khả năng này hỗ trợ lập trình viên có thể
bỏ qua một số câu lệnh phải lặp đi lặp lại nhiều lần
Bộ biên dịch yêu cầu với URL rất thân thiện và rõ ràng, dễ hiểu: giúp cho các yêu cầu theo dạng QueryString trở nên dễ đọc hơn
Tích hợp bộ kiểm tra dữ liệu đầu vào: VD như kiểm tra địa chỉ email phải có
@, hay một trường nào đó không được trống, số điện thoại không được bao gồm chữ
Trang 7Áp dụng khuân mẫu dễ dàng và linh hoạt: có thể thay đổi và áp dụng các khuân mẫu một cách nhanh chóng
Cung cấp các Helper hỗ trợ AJAX và Javascript, HTML Form và hơn thế nữa, giúp cho các lập trình viên có thể dễ dàng viết các thẻ HTML và Javascript một cách nhanh chóng và đúng cú pháp
Cung cấp các Component hỗ trợ Email, Cookie, Security, Session và Request Handling
Hỗ trợ Danh sách Điều khiển Truy cập linh hoạt
Cung cấp một thư viện giúp chống các lỗi liên quan đến Injection
Caching linh hoạt
Hỗ trợ bản địa hóa: cung cấp giải pháp và các thư viện liên quan để có thể thay đổi ngôn ngữ một cách linh hoạt và triệt để
Hoạt động trong bất kỳ thư mục web nào, với rất ít hoặc hoàn toàn không cần cấu hình Apache
II CẤU TRÚC CỦA FRAMEWORK CAKEPHP:
Sau khi download CakePHP, ta sẽ có 3 thư mục chính Thư mục app sẽ là nơi chúng ta đặt các dòng lệnh: đây là nơi mà ta sẽ phát triển ứng dụng Thư mục cake là thư mục chứa các dòng lệnh mà các nhà phát triển CakePHP đã làm cho chúng ta Đó là lõi của CakePHP Cuối cùng, thư mục vendors là nơi ta có thể đặt các thư viện PHP khác mà có thể ta cần trong ứng dụng CakePHP của mình Trong thư mục giải nén sẽ có (phiên bản: cakephp1x-1.2.6-0)
Trang 8Thư mục Mô tả
config
Lưu trữ một vài file cấu hình mà CakePHP sử dụng Thông tin kết nối CSDL, file cấu hình lõi và các file khác có thể được lưu trữ ở đây
controllers Chứa các controller của ứng dụng và các components của
chúng
locale Chứa các file chứa chuỗi sử dụng cho quốc tế hóa ứng dụng
models Chứa các model của ứng dụng, các behavior và các nguồn dữ
mô tả về các model, nhật ký, và đôi khi là các thông tin về session
vendors
Mọi class hay thư viện nào khác phải được đặt ở đây Điều
đó sẽ giúp cho chúng có thể được truy cập sử dụng hàm App::import('vendor', 'name') Thư mục này hoàn toàn khác với thư mục vendors đã nói ở trên Ta sẽ thấy rõ điều này khi quản lý nhiều ứng dụng và việc cài đặt các hệ thống phức tạp
views Các file trình diễn được đặt ở đây: elements, trang báo lỗi,
helpers, layours, và các file view
webroot
Khi cài đặt ứng dụng, thư mục này đóng vai trò là thư mục gốc của ứng dụng Các thư mục con được tạo ra để chỉ dẫn cho các file CSS, hình ảnh và Javascript
III GIỚI THIỆU MÔ HÌNH MVC:
1.Mô hình MVC:
Mô hình MVC (hay Model – View – Controller) là mẫu kiến trúc được sử dụng trong công nghệ phát triển phần mềm Điểm thành công của mô hình này là làm tách rời giữa logic của chương trình với giao diện của người sử dụng Mô
Trang 9hình giúp người ta có thể tạo ra một ứng dụng mà trong đó, ta có thể dễ dàng thay đổi logic của chương trình hay chỉnh sửa giao diện của người dùng mà hoàn toàn không ảnh hưởng đến nhau
CakePHP tuân theo mô hình thiết kế phần mềm chuẩn (design pattern) MVC MVC chia chương trình thành 3 phần riêng lẻ:
Model: Mô tả dữ liệu của ứng dụng
View: Hiển thị dữ liệu của model
Controller: Xử lý và điều hướng các yêu cầu của client
Hình 1: Một yêu cầu đơn giản của mô hình MVC
2 Hoạt động của MVC:
2.1 Model:
Model là các lớp cung cấp dữ liệu, dịch vụ liên quan đến dữ liệu và business logic Chúng có thể là:
Đánh giá tính hợp lệ của dữ liệu
Chuyển đổi dữ liệu
Đưa ra quyết định về nghiệp vụ
Thực hiện việc xử lý dữ liệu theo một quy trình (workflows)
Business logic thường là xử lý rule hay policy của nghiệp vụ cũng như business workflows Tầng này có sự góp mặt của các rule engine và các integration engine (trong đó có Spring bên Java và Flow3, Scarlet, Seasar, PHPCrafty bên PHP)
Domain data: Cung cấp/lưu trữ dữ liệu và việc chuyển đổi dữ liệu thành các dạng khác nhau theo yêu cầu Các tầng như Persistent Layer nằm ở đây Vì
Trang 10thế chúng ta sẽ gặp các lớp của PDO (PHP Data Object), Pear MDB2, PHP Doctrine, JDBC, JTA, JPA, Hibernate, JDO và cả các lớp thực hiện DAO Tương tự như trong trường hợp Controller lấy state từ Model, khi Controller cung cấp thông số cho Model để Model trả lại state theo hướng mà Controller mong muốn từ Controller cũng phải định nghĩa được 1 common interface
2.2 View:
View là các lớp định nghĩa cách thức trình bày dữ liệu (không update dữ liệu) Trong các web framework, nó gồm 2 phần chính:
Template file định nghĩa cấu trúc và cách thức trình bày dữ liệu cho user
Logic xử lý cách áp dụng dữ liệu vào cấu trúc trình bày Logic này có thể bao gồm việc kiểm tra định dạng dữ liệu, chuyển đổi định dạng dữ liệu sang một dạng dữ liệu trung gian để có thể hiển thị với cấu trúc template đang có , kiểm tra trạng thái và đặc tính của dữ liệu để lựa chọn một cấu trúc hiển thị phù hợp Tất nhiên là trong Passive View thì việc lựa chọn cấu trúc hiện thị đôi khi lại do Controller
Vai trò của View cần thay đổi đặc biệt là các ứng dụng web thiên về View phức tạp khi vai trò của Model đã trở nên ổn định
2.3 Controller:
Controller là các lớp điều khiển application flow, tiếp nhận user input thông qua HTTP header, chuyển tiếp nó đến các lớp phụ trách trực tiếp xử lý yêu cầu Tùy theo cách thiết kế kế lớp mà chúng ta thường thấy Controller gồm:
Request: xử lý một phần user input ở mức GET, POST và PUT
Session: xử lý một phần user input ở mức SESSION
Trang 11Tùy theo user input, Controller sẽ thực hiện các phép lọc (với dịch vụ lấy từ Model), các tính toán lựa chọn (Action Mapping) dựa trên kiến trúc và cấu hình nhằm xác định thành phần lớp chính sẽ thực hiện yêu cầu của user Đây chính là chức năng điều khiến application flow của Controller Vì là nơi đón nhận user input cho nên thường thì các thành phần xử lý form (ví dụ ActionForm trong Struts) sẽ thuộc về Controller Controller cũng sẽ có chức năng validate form đơn giản nhằm thực hiện chức năng điều khiển luồng của mình
Một khi xuất hiện các Event phức tạp, như là một Observer, Controller cần bổ sung thêm các lớp mới vào để xử lý chúng theo các quy trình độc lập, giúp phân tán bớt code tập trung vào lớp Action Do là thành phần điều phối, Controller không nhất thiết phải tương tác với Model rồi mới tương tác với View Bất cứ lỗi ngoại lệ nào xảy ra hay một trạng thái request không mong muốn xuất hiện thì Controller có thể phản ứng bằng cách chọn View trực tiếp
Khi giao tiếp với Model, Controller sẽ tiến hành 2 cách:
extract dữ liệu hay state
update dữ liệu
Sau khi có được dữ liệu, theo cách hành xử thông thường, View thích hợp sẽ được lựa chọn Controller sẽ chuyển tiếp dữ liệu vào View để nó xử lý.Do tính chất công việc của Controller là khá phức tạp và đa dạng cho nên việc Event Handler Controller có thể tiếp tục tách ra nhỏ hơn cũng là điều cần tính đến thay
vì thực hiện việc xử lý tất cả các signal, user input trên cùng một lớp
Ví dụ: Hình 1 ở trên là một ví dụ về yêu cầu cơ bản của MVC trong
CakePHP Giả sử một client tên là "Ricardo" click vào link "Buy A Custom Cake Now" trên trang chủ của ứng dụng
Ricardo click vào link trỏ đến địa chỉ http://www.example.com/cakes/buy, và
tình duyệt của Ricardo gửi một yêu cầu đến máy chủ web (web server)
Bộ phận điều vận (dispatcher) của máy chủ web sẽ kiểm tra URL gửi đến (/cakes/buy) và giao nó cho controller chịu trách nhiệm xử lý yêu cầu này
Controller sẽ tiến hành xử lý các logic của ứng dụng Ví dụ như kiểm tra xem Ricardo đã đăng nhập hay chưa
Trang 12Controller cũng có thể sử dụng model để truy cập đến dữ liệu của ứng dụng Model thường mô tả các bảng của cơ sở dữ liệu, nhưng cũng có thể mô tả các mục của LDAP (LDAP entries), hoặc mô tả RSS feed, hoặc là file trên ổ cứng Trong ví dụ này controller sử dụng model để lấy thông tin về lần mua hàng gần nhất của Ricardo từ cơ sở dữ liệu
Một khi controller xử lý xong, nó sẽ chuyển các dữ liệu cho view View sẽ tiếp nhận dữ liệu và hiển thị cho client View trong CakePHP thường ở dạng HTML, nhưng view cũng có thể ở dạng PDF, XML hoặc JSON, tùy theo nhu cầu
IV TẠO CƠ SỞ DỮ LIỆU TRONG CAKE PHP:
Lưu ý, ngay từ giai đoạn tạo CSDL trên MySQL, chưa động gì đến PHP, chúng ta đã phải lưu ý đến quy tắc đặt tên bảng của CakePHP Vì quy tắc đặt tên
là theo tiếng Anh, nên toàn bộ tên bảng và tên trường dưới đây sẽ bằng Tiếng Anh
Dựa vào các yêu cầu như trên, ta xây dựng một CSDL như sau:
Formats ( id, name, slug, description, created, modified, status)
Types ( id, name, slug, description, created, modified, status)
Locations ( id, name, slug, description, created, modified, status)
DVDs ( id, format_id, type_id, location_id, name, slug, image, website,
imdb, rating, discs, episodes, created, modified, status)
Genres ( id, name, slug, created, modified, status)
DVDS_Genres ( id, dvd_id, genre_id)
Templates ( id, name, layout_name, description, image, created,
modified, status)
Admins ( id, username, password, last_login, status)
Trong các bảng ở trên, các tên bảng và tên trường đã được đặt đúng theo quy ước Cụ thể, các quy ước đã được tuân theo là:
Tên bảng phải là số nhiều (có thêm S)
Các khóa chính của các bảng đều phải có tên là id
Với quan hệ 1-n, VD là quan hệ giữa Locations – DVDs, thì trong bảng DVDs phải có trường tên là location_id
Trang 13Với quan hệ n-n, VD là quan hệ giữa Genres – DVDs, thì tạo một bảng mới với 2 trường dvd_id và genre_id
Status là biến dùng để nhận biết các bản ghi có được đăng lên hay không Status = 1 là có đăng, status = 0 tức là không đăng
Slug, nếu bạn chưa biết, thì nó là một giá trị để giúp cho người dùng dễ hiểu hơn
Khi bạn có một địa chỉ sử dụng ID của bản ghi:
http://www.abc.com/dvd/view/1 bạn sẽ làm cho người đọc rất khó kiểm soát Thay vào đó, bạn dùng slug, nghĩa là địa chỉ của bạn sẽ trở thành
http://www.abc.com/dvd/view/Bee_movie
Điều này giúp cho người truy cập biết được là họ đang xem phần nào
V CÀI ĐẶT CAKE PHP- XÂY DỰNG TÀI LIỆU KỸ THUẬT VỀ CÁCH XÂY DỰNG MỘT ỨNG DỤNG TRÊN FRAMEWORK CAKE PHP THEO
MÔ HÌNH MVC:
1 Cài đặt CakePHP:
CakePHP cũng giống với một số framework về các cài đặt
Ta phải cài đặt một webserver để cho web hoạt động: Vertrigo, wampserver, apache
Sau khi download mã nguồn cakePHP về, ta tiến hành giải nén và tiến hành đổi tên thành ứng dụng mà ta đang tiến hành
Ví dụ: cakephp-cakephp1x-1.2.6-0 đổi thành eduportal sau đó copy folder
eduportal vào trong thư mục www của webser của ta
Sau đó vào folder app/config chỉnh sửa 2 file sau:
Mở file core.php di chuyển đến dòng:
Trang 14Configure::write('Security.salt',DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi')
Đổi chuỗi DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi thành một chuổi khác Chuỗi này có tác dụng hỗ trợ tròn quá trình mã hóa dữ liệu -> Lưu file này lại
Đổi tên fiel database.php.default thành database.php
Sau đó di chuyển đến dòng:
class DATABASE_CONFIG {
var $default = array(
'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', < localhost 'login' => 'root', <User root database 'password' => 'vertrigo', <Pass database 'database' => 'test_cake', <Tên database 'prefix' => '',
Trang 152.Xây dựng một ứng dụng trên Framework cakephp theo mô hình MVC:
Ta tiến hành xây dựng một framework cakePHP theo mô hình MVC với database test_cake Tạo các lớp Model, View, Controller bằng cake bake console:
Bước 1 Cấu hình biến môi trường cho cake bake hoạt động Cick phải lên My Computer chọn properties -> chọn tab Advanced -> chọn button Environment Variables -> Một hộp thoại xuất hiện:
Chọn new một hộp thoại xuất hiện:
Gõ vào nội dung như trên trong đó:
- Variable name: path
- Variable value:
C:\ProgramFiles\VertrigoServ\Php;C:\ProgramFiles\VertrigoServ\www\eduportal\cake\console C:\ProgramFiles\VertrigoServ\Php chứa một số file thực thi của PHP
Trang 16C:\ProgramFiles\VertrigoServ\www\eduportal\cake\console chứa console của cakePHP
Bước 2: Vào StartRun gõ cmddi chuyển đến đường dẫn
C:\ProgramFiles \VertrigoServ \www \eduportal\cake\console Gõ lệnh: cake bake all
Gõ 1 chọn table users để tạo các Model, View, Controller
Bây giờ ta vào đường dẫn:
C:\Program Files\VertrigoServ\www\eduportal\app\models thấy 1 file user.php nội dung file đó như sau:
<?php
class User extends AppModel {
var $name = 'User';
var $validate = array(
Users.php C:\Program Files\VertrigoServ\www\eduportal\app\models (Lưu ý tất
cả các model của chương trình đều được đặt trong:
Trang 17C:\Program Files\VertrigoServ\www\eduportal\app\models ngoại trừ các model của plugins)
Vào C:\Program Files\VertrigoServ\www\eduportal\app\controllers thấy files users_controller.php có nội dung như sau:
<?php
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html', 'Form');
Trang 18$this->Session->setFlash( ('The User could not be saved Please, try again.', true));
}
}
}
function edit($id = null) {
if (!$id && empty($this->data)) {
$this->Session->setFlash( ('Invalid User', true));
Trang 19Vào C:\Program Files\VertrigoServ\www\eduportal\app\views\users
Thấy 4 file: Add.ctp, Edit.ctp, Index.ctp, View.ctp nội dung 4 file đó như sau: Add.ctp
<div class="users form">
Trang 20<li><?php echo $html->link( ('List Users', true), array('action' => 'index'));?></li>
Trang 21<dt<?php if ($i % 2 == 0) echo $class;?>><?php ('Username');
%s?', true), $user['User']['id'])); ?> </li>
<li><?php echo $html->link( ('List Users', true), array('action' => 'index')); ?> </li>
<li><?php echo $html->link( ('New User', true), array('action' => 'add')); ?> </li>
</ul>
</div>
Bây giờ ta vào địa chỉ sau: http://127.0.0.1/eduportal/users
Trang 22Bây giờ ta có thể thêm, sửa xóa một user một cách dễ dàng
Xem danh sách các Users
Đây là những bước cơ bản để cài đặt 1 framework cakePHP Để xây dựng một trang web hoàn thiện thì ta cần phải nghiên cứu các đặc tính của cake
Trang 23PHẦN II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
I KHẢO SÁT BÀI TOÁN:
1 Mô tả bài toán:
Hệ thống thi trắc nghiệm trực tuyến cho phép các sinh viên vào làm bài thi trên máy tính
- Mỗi sinh viên sẽ được cấp 1 tài khoản truy cập duy nhất trên hệ thống, tài khoản này bao gồm các thông tin: mã số sinh viên (dùng để đăng nhập), mật khẩu (dùng để đăng nhập) Mỗi sinh viên chỉ thuộc vào một khoa, trong mỗi khoa sẽ có học kì, mỗi học kì môn học của học kì đó và mỗi môn học sẽ có học phần tương ứng, việc quản lý các sinh viên sẽ thông qua đơn vị học phần mà sinh viên đó học
- Khi sinh viên đăng nhập vào hệ thống, hệ thống sẽ cho biết thời gian thi và cho phép sinh viên làm bài thi Bài thi sẽ theo từng học phần trong một kì Bài thi của một môn học nào sẽ do giáo viên dạy môn học đó ra đề thi, đề thi bao gồm:
mã đề thi, mã học phần và thời gian thi Câu hỏi sẽ bao gồm phần hỏi và phần thông tin trả lời để sinh viên chọn (a,b,c,d) Mỗi đề thi đều có phần phương án trả
Trang 24lời, bao gồm: mã phương án, mã câu hỏi và tên phương án (a hoặc b hoặc c hoặc d) Sau khi sinh viên nộp bài thi (hết thời gian, hệ thống tự chấm dứt), hệ thống
sẽ thực hiện lưu thông tin bài làm của sinh viên, hệ thống chấm điểm bài thi khi người quản trị tương tác yêu cầu chấm bài thi, điểm của bài thi sẽ được lưu lại theo từng học phần thi của sinh viên
- Giáo viên cũng được quản lý thông tin tương tự sinh viên, giáo viên là những người giảng dạy các học phần, giáo viên có các thông tin quản trị: mã quản trị (để đăng nhập), mật khẩu (để đăng nhập), tên quản trị
- Giáo viên sau khi đăng nhập vào hệ thống có quyền nhập đề thi cho các học phần mình dạy, đề thi của một học phần có thể được dùng chung cho nhiều lớp học phần mà giáo viên dạy hoặc sẽ riêng mỗi lớp sẽ có một đề, điều này sẽ do giáo viên qui định Cùng với nhập đề thi giáo viên phải nhập thông tin của đáp
án, sau khi lưu thông tin lai thì giáo viên không được phép sửa lại các thông tin trên Một câu hỏi trong đề thi có tối đa 4 phương án trả lời, học sinh sẽ chọn 1 trong 4 phương án này, và đáp án sẽ lưu phương án trả lời đúng cho câu hỏi
- Quản trị hệ thống có quyền tạo, quản lý các tài khoản trên hệ thống cho sinh viên và giáo viên, tạo, cập nhật, thay đổi thông tin cá nhân của các tài khoản trên
hệ thống Quản trị có quyền yêu cầu hệ thống chấm điểm bài thi theo từng học phần(đề thi) Quản trị có quyền thiết lập thời gian bắt đầu thi 1 đề thi nào đó của một lớp học phần, để khi sinh viên đăng nhập vào làm bài thi họ chỉ có 1 đề thi duy nhất để làm bài, quản trị viên có trách nhiệm nhập đúng thời gian thi Quản trị có các chức năng quản lý khoa, học kỳ, môn học, học phần, sinh viên: tạo mới, cập nhật và trước mắt là không cho phép xóa các thông tin này Khi xóa thông tin một sinh viên thì đồng thời phải xóa toàn bộ thông tin điểm thi, bài làm của sinh sinh khỏi hệ thống
2 Phương pháp:
Qua tìm hiểu các phương pháp, em đã chọn thực hiện theo phương pháp
hướng đối tượng Đây là phương thức thực hiện thiết kế hướng đối tượng qua
việc sử dụng một ngôn ngữ lập trình có hỗ trợ các tính năng hướng đối tượng Phương pháp này có một số ưu điểm như:
Đơn giản hóa độ phức tạp khi bảo trì
Trang 25 Giảm nhẹ các thao tác viết mã cho người lập trình
Phản ánh được quan hệ giữa các thực thể có thực
Có tính đóng gói và che giấu thông tin
Tính đa hình
Tính kế thừa
Ngoài ra, đối với người mới học về lập trình thì phương pháp này
dể tiếp thu hơn so với những phương pháp trước đó
3 Phạm vi sản phẩm:
Website thi trắc nghiệm trực tuyến cho trường ĐHSP-ĐN là một website nhằm tự động hóa một phần công tác thi cử tạo ra sự công bằng cũng như tăng cường khả năng quản lý, đánh giá sinh viên
II MÔ TẢ CHUNG:
Quản lý giáo viên
Quản lý sinh viên
Quản lý câu hỏi
Quản lý phương án trả lời
Giáo viên :
Đăng nhập hệ thống
Quản lý đề thi, câu hỏi
Trang 262 Phân loại người dùng sản phẩm:
Ứng dụng này được thiết kế cho phép người dùng thuộc 3 nhóm khác nhau được sử dụng
- Chương trình có thể hoạt động song song với các dịch vụ hay ứng dụng khác đang được sử dụng
- Chương trình khi chạy không sử dụng quá nhiều bộ nhớ
4 Giao diện người dùng:
Giao diện phải rõ ràng,bắt mắt, sử dụng triệt để các giao diện lưới để làm thoáng và rõ không gian làm việc
5 Yêu cầu thực thi:
Website thi trắc nghiệm trực tuyến cho trường ĐHSP-ĐN đòi hỏi phải có tốc
độ thực thi càng nhanh càng tốt , nhưng đồng thời sự an toàn dữ liệu cũng rất cần thiết Do đó khi thiết kế cần cân bằng giữa hai yếu tố trên
Hệ thống sẽ chờ đợi cho tất cả các yếu tố đầu vào của người dùng, và chỉ thực hiện các chức năng cần thiết cho một người dùng đã đăng nhập hệ thống
Hệ thống phải hoạt động 24/24
Trang 276 Yêu cầu an toàn:
Về nghiệp vụ chuyên môn Website phải đảm bảo an toàn về dữ liệu (ảnh hưởng đến kết quả của sinh viên)
Vì vậy, cần sử dụng các kỹ thuật lập trình và cần thường xuyên bảo trì sản phẩm theo định kì
Phải có chức năng backup dữ liệu khi dữ liệu bị lỗi hoặc bị mất
7 Yêu cầu bảo mật:
Vấn đề bảo mật là quan trọng, đòi hỏi một số tiêu chuẩn cơ bản về bảo mật phải được đảm bảo
Ví dụ: Phải phân quyền người sử dụng rõ ràng để tránh tình trạng thay đổi
dữ liệu (gian lận)
III THIẾT KẾ HỆ THỐNG:
1 Phân tích yêu cầu:
Hệ thống thi trắc nghiệm trực tuyến cho phép các sinh viên vào làm bài thi trên máy tính
- Mỗi sinh viên sẽ được cấp 1 tài khoản truy cập duy nhất trên hệ thống, tài khoản này bao gồm các thông tin: mã số sinh viên (dùng để đăng nhập), mật khẩu (dùng để đăng nhập) Mỗi sinh viên chỉ thuộc vào một khoa, trong mỗi khoa sẽ có học kì, mỗi học kì môn học của học kì đó và mỗi môn học sẽ có học phần tương ứng, việc quản lý các sinh viên sẽ thông qua đơn vị học phần mà
sinh viên đó học Khoa thì có (makhoa,tenkhoa), học kỳ có (mahk,
tenhk,makhoa),môn học có (mamh, tenmh), học phần có(mahp,mahk,mamh)
- Khi sinh viên đăng nhập vào hệ thống, hệ thống sẽ cho biết thời gian thi và cho phép sinh viên làm bài thi Bài thi sẽ theo từng học phần trong một kì Bài thi của một môn học nào sẽ do giáo viên dạy môn học đó ra đề thi, đề thi bao gồm:
mã đề thi, mã học phần và thời gian thi Câu hỏi sẽ bao gồm phần hỏi và phần thông tin trả lời để sinh viên chọn (a,b,c,d) Mỗi đề thi đều có phần phương án trả lời, bao gồm: mã phương án, mã câu hỏi và tên phương án (a hoặc b hoặc c hoặc d) Sau khi sinh viên nộp bài thi (hết thời gian, hệ thống tự chấm dứt), hệ thống
sẽ thực hiện lưu thông tin bài làm của sinh viên, hệ thống chấm điểm bài thi khi
Trang 28người quản trị tương tác yêu cầu chấm bài thi, điểm của bài thi sẽ được lưu lại theo từng học phần thi của sinh viên
- Giáo viên cũng được quản lý thông tin tương tự sinh viên, giáo viên là những người giảng dạy các học phần, giáo viên có các thông tin quản trị: mã quản trị (để đăng nhập), mật khẩu (để đăng nhập), tên quản trị
- Giáo viên sau khi đăng nhập vào hệ thống có quyền nhập đề thi cho các học phần mình dạy, đề thi của một học phần có thể được dùng chung cho nhiều lớp học phần mà giáo viên dạy hoặc sẽ riêng mỗi lớp sẽ có một đề, điều này sẽ do giáo viên qui định Cùng với nhập đề thi giáo viên phải nhập thông tin của đáp
án, sau khi lưu thông tin lai thì giáo viên không được phép sửa lại các thông tin trên Một câu hỏi trong đề thi có tối đa 4 phương án trả lời, học sinh sẽ chọn 1 trong 4 phương án này, và đáp án sẽ lưu phương án trả lời đúng cho câu hỏi
- Quản trị hệ thống có quyền tạo, quản lý các tài khoản trên hệ thống cho sinh viên và giáo viên, tạo, cập nhật, thay đổi thông tin cá nhân của các tài khoản trên
hệ thống Quản trị có quyền yêu cầu hệ thống chấm điểm bài thi theo từng học phần(đề thi) Quản trị có quyền thiết lập thời gian bắt đầu thi 1 đề thi nào đó của một lớp học phần, để khi sinh viên đăng nhập vào làm bài thi họ chỉ có 1 đề thi duy nhất để làm bài, quản trị viên có trách nhiệm nhập đúng thời gian thi Quản trị có các chức năng quản lý khoa, học kỳ, môn học, học phần, sinh viên: tạo mới, cập nhật và trước mắt là không cho phép xóa các thông tin này Khi xóa thông tin một sinh viên thì đồng thời phải xóa toàn bộ thông tin điểm thi, bài làm của sinh sinh khỏi hệ thống
Trang 292 Sơ đồ phân rã chức năng:
3 Xây dựng biểu đồ Use Case tổng quát:
4 Biểu đồ hoạt động một vài Use Case:
4.1 Đăng nhập: