Báo cáo đồ án Website Đấu trường 100. Được phát triển bởi một nhóm thuộc khoa Mạng máy tính và truyền thông Trường ĐH Công nghệ Thông tin TP.HCM Hi vong sẽ giúp ích nhiều cho các bạn Đấu trường 100 là game show truyền hình rất nổi tiếng cả trong lẫn ngoài nước. Tuy nhiên, không phải ai cũng may mắn có cơ hội ngồi trên chiếc ghế nóng của chương trình. Xuất phát từ thực tế đó, nhóm chúng tôi chọn đề tài “Xây dựng trang web đấu trường 100” để tất cả những ai yêu thích và mong muốn thử sức với các câu hỏi đều có thể tham gia.
ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN LẬP TRÌNH ỨNG DỤNG MẠNG ĐỀ TÀI: XÂY DỰNG TRANG WEB ĐẤU TRƯỜNG 100 Lớp: NT109.E21 Nhóm: 9 GVGD: Nguyễn Quang Minh DANH SÁCH THÀNH VIÊN Phạm Xuân Y 11520497 Trần Thanh Nam 11520237 Bùi Nguyễn Mạnh Tuấn 11520451 Nguyễn Ngọc Quý 11520315 TP. HỒ CHÍ MINH – 7/2014 NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN MỤC LỤC I. GIỚI THIỆU 1. Lý do chọn đề tài Đấu trường 100 là game show truyền hình rất nổi tiếng cả trong lẫn ngoài nước. Tuy nhiên, không phải ai cũng may mắn có cơ hội ngồi trên chiếc ghế nóng của chương trình. Xuất phát từ thực tế đó, nhóm chúng tôi chọn đề tài “Xây dựng trang web đấu trường 100” để tất cả những ai yêu thích và mong muốn thử sức với các câu hỏi đều có thể tham gia. 2. Mục đích của đề tài Giúp cho nhóm nghiên cứu và thử sức với công nghệ lập trình web đang phát triển rất mạnh hiện nay. Không những vậy còn góp phần đưa trò chơi truyền hình Đấu trường 100 đến với mọi người, giúp nâng cao dân trí và đem lại những giây phút giải trí thú vị khi tham gia. 3. Đối tượng và phạm vi nghiên cứu Nhóm đã cố gắng đưa ra những tính năng website gần gũi và giống với game show trên truyền hình nhất. II. CÁC KIẾN THỨC ỨNG DỤNG 1. Mô hình MVC a. Lịch sử Được đưa ra bởi các nhà nghiên cứu tại phòng thí nghiệm Xerox PARC, dựa trên ngôn ngữ lập trình Smalltalk- lập trình theo hướng đối tượng và giao diện đồ hoại GUI, công bố cuối những năm 70 đầu những năm 80. Kiến trúc này ngày càng phát triển và hoàn thiện nhằm giải quyết các vần đề phát sinh cũng như các giải pháp cho quá trình phát triển phần mềm. Vì vậy sau đó, lần lượt cái MVC framework ra đời dựa trên mô hình MVC như : Zend, Spring, Hibernate…. b. Tổng quan Models Chứa data mà ứng dụng sử dụng Nhận yêu cầu từ Views Thực hiên các yêu cầu liên quan đến DB Trả về các giá trị tính toán cho Views Kiểm tra tính hợp lệ của data Views Hiển thị giao diện người dùng Được tạo ra từ dữ liệu của Models Controllers Xử lý các yêu cầu của user Chọn Views thích hợp hiển thị cho người dùng Đồng bộ hóa giữa khung nhìn và mô hình c. Cơ chế thực hiện Web Browser gửi request đến server thông qua các control trên form HTML hay JSP, hay query string url hay qua cookies. Servlet – Controller đón nhận request và xác định Model tương ứng để tạo ra instance của JavaBean để đón nhận các giá trị nhập từ request để lưu trữ và xử lý Model thực hiện xử lý, kết nối dữ liệu vật lý dưới DBMS (nếu có) và trả kết quả trả về cho Controller Kết quả xử lý được chuyển vào Servlet – Controller, Servlet Controller thực hiện tạo hay lựa chọn View để từ đó đưa kết quả xử lý hay dữ liệu lấy từ Model để cập nhật lại trang kết quả View. Controller gửi View qua response cho người dùng để browser có thể trình bày dữ liệu trong Web Browser a. Ưu điểm và nhược điểm Ưu điểm: Phát triển phần mềm chuyên hóa, có thể chia công việc cho nhiều nhóm chuyên môn khác nhau: nhóm thiết kê , nhóm lập trình, nhóm tổ chức DB… Giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp. Bảo trì : với các lớp được phân chia, các thành phần của một hệ thống dễ dàng thay đổi nhưng sự thay đổi có thể được cô lập trong từng lớp, hoặc chỉ ảnh hưởng đến lớp kế nó chứ không ảnh hưởng đến cả hệ thống. Mở rộng : việc thêm chức năng cho từng lớp dễ dàng hơn là phân chia theo cách khác Nhược điểm: Thích hợp với dự án vừa và lớn, đối với dự án nhỏ việc áp dụng mô hình MVC sẽ gây cồng kềnh , tốn thời gian trong quá trình phát triển. Tốn thời gian trung chuyển dữ liệu giữa các lớp. 2. Java Servlet Servlet là các thành phần máy chủ nhúng trên trình chủ Web server thực hiện xử lý yêu cầu và phát sinh ra các trang Web động trả về máy khách. Để sử dụng được Servlet cần có các trình chủ Java và hỗ trợ triệu gọi Servlet như Apache, JRun, Web Logic … Mặc dù vậy biên dịc và tạo Sevlet chúng ta chỉ cần đến trình biên dịch JDK mà không cần đến các trình chủ. Servlet là trung tâm của công nghệ Web trong Java. Servlet thay thế cho các ứng dụng CGI truyền thống. Muốn hiểu rõ về lập trình Web trong java trước hết nên tìm hiểu rõ cơ chế hoạt động của servlet 3. JSP & HTML JSP (viết tắt của tiếng Anh JavaServer Pages) còn được biết đến với một cái tên khác là Java Scripting Preprocessor - tạm dịch là "Bộ tiền xử lý văn lệnh Java" - là một công nghệ Java cho phép các nhà phát triển tạo nội dung HTML, XML hay một số định dạng khác của trang webmột cách năng động, trong khi hồi âm yêu cầu của trình khách. Công nghệ này cho phép người ta nhúng mã Java và một số hành động xử lý đã được định trước (pre- defined actions) vào trong nội dung tĩnh của trang. Cú pháp của JSP cho thêm các thẻ XML mới, gọi là JSP actions - hành động JSP. Những "hành động JSP" này được dùng để khởi động chức năng sẵn có, là những chức năng đã được xây dựng trước. Cộng thêm vào đó, công nghệ còn cho phép chúng ta tạo ra các thư viện thẻ JSP (JSP tag libraries), là những cái đóng vai trò vào việc mở rộng các thẻ HTML hay XML tiêu chuẩn. Thư viện thẻ (Tag libraries) là phương pháp mở rộng khả năng của một máy chủ web trong khi những mở rộng đó không phụ thuộc vào hệ nền (về cả cấu trúc máy cũng như hệ điều hành được dùng). Trước khi hiển thị ra trình duyệt, tập tin JSP phải được biên dịch thành Servlet, dùng bộ biên dịch JSP (JSP compiler). Bộ biên dịch JSP có thể tạo servlet thành mã nguồn Java trước, rồi biên dịch mã nguồn ra tập tin .class dùng bộ biên dịch Java, hoặc có thể trực tiếp tạo mã byte codecho servlet từ trang JSP. a. HTML : là các tag của ngôn ngự HTML có thể viết trực tiếp vào trang JSP. Khi web server dịch, các tag này được gửi về client. b. Các chỉ thị: là các dòng dung để định nghĩa các trang . Ví dụ : <% @page contentType=”text/html: charser=UTF-8” %> : d9iainh nghịa cho ngôn ngự của trang là Unicode c. Các tag chuẩn của ngôn ngữ JSP: là các tag mà JSP hỗ trợ. Vi dụ : <jsp:include page=”checkroles.jsp”/> d. Các script client: là các script mà trình duyệt có thể hiểu, ta có thể dung javaScript hay jScript e. Các script server: là các đoạn code của java được chèn trực tiếp vào trang JSP, đây cũng chính là thành phần chính của trang JSP, nó chia làm 3 loại : E1 : Các thẻ bọc mã <% %>: là thẻ chứa mã java. E2 : Các thẻ xuất <%= %>: nội dung của thẻ này sẽ được in ra trong trang JSP. E3 : Khai báo phương thức và biến bằng thẻ <%! %>: nội dung trong thẻ này là các biến hoặc phương thức được các phương thức này có thể sử dụng trực tiếp trong trang JSP 4. Cơ sở dữ liệu MySQL trên PHP MyAdmin 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, phpMyAdmin là một công cụ nguồn mở miễn phí được viết bằng PHP dự định để xử lý quản trị của MySQL thông qua một trình duyệt web. Nó có thể thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện báo cáo SQL; hoặc quản lý người dùng và cấp phép. III. GIỚI THIỆU WEBSITE ĐẤU TRƯỜNG 100 Đấu trường 100 là một trò chơi truyền hình được sản theo bản quyền của C.Ty Endemol N.V, Hà Lan. Đây là trò chơi ghi kỷ lục “trò chơi truyền hình đầu tiên có số người tham dự trực tiếp đông nhất tại Việt Nam” . Bước sang năm thứ 9 (năm 2005-2014), Đấu trường 100 thay đổi diện mạo mới – phiên bản mới. Và dưới đây là luật chơi mới của phiên bản năm thứ 9 này. 1. Nội dung: Hình thức câu hỏi vẫn dựa trên phiên bản hiện nay, thể loại câu hỏi trắc nghiệm với 3 phương án trả lời A, B & C. Không áp dụng mức độ câu hỏi khó hay dễ, mức độ câu hỏi khó/dễ tùy thuộc vào quá trình chơi của NCC, do đó tiết tấu chương trình được đẩy nhanh hơn. Thang điểm thưởng với 10 cấp độ từ thấp đến cao, cấp độ cao nhất là 50 triệu khi NCC loại 100 người cùng chơi. NCC được quyền ra về giữa chừng với số tiền thưởng đang có, tại bất kỳ thời điểm nào của game (sau khi có tiền thưởng của cấp độ 1). Gay cấn và kịch tính hơn khi những người cùng chơi có cơ hội được chia tiền thưởng từ NCC, sau khi NCC loại được 50 người cùng chơi. 03 quyền hỗ trợ hoàn toàn mới lạ, hấp dẫn. NCC dù dùng quyền hỗ trợ nhưng vẫn phải khôn khéo vận dụng các quyền hỗ trợ này để có thể tiếp tục với câu hỏi kế tiếp. Thang điểm thưởng theo 10 cấp độ giá trị tiền thưởng từ thấp đến cao. Mỗi cấp độ tiền thưởng tương đương 10 người cùng chơi (mỗi khi NCC loại lần lượt ít nhất 10 người cùng chơi thì giá trị tiền thưởng tăng lên cấp độ kế tiếp, tương ứng với giá trị tiền thưởng cao hơn). Thang điểm thưởng dự kiến: [...]... phương án trả lời được chọn của số đông, không được thay đổi phương án khác 2 tình huống phát sinh: •Nếu 2 phương án trả lời được những người cùng chơi chọn ngang nhau và cao hơn phương án còn lại, MC sẽ thông báo cho NCC biết điều này NCC sẽ tự quyết định chọn 1 trong 2 phương án được chọn ngang nhau theo số đông •Nếu 3 phương án trả lời được những người cùng chơi chọn ngang nhau, MC sẽ thông báo cho... chọn phương án A theo số liệu thống kê hoặc được chọn 1 trong 2 phương án còn lại b) Hỏi dò: Máy tính chọn ngẫu nhiên 2 người cùng chơi (1 đúng, 1 sai) NCC/MC giao lưu nhanh với 2 người chơi này, hỏi phương án và lý do họ chọn NCC quyết định lựa chọn phương án trả lời trong 2 phương án này - Nếu tất cả các người cùng chơi có phương án trả lời giống nhau, 4 tình huống: + NCC chọn cùng đáp án và đúng,... thứ tự câu hỏi và các phương án lựa chọn Servlet bật Timeout (6s với người cùng chơi và 60s đối với người chơi chính) Bước 2: Người chơi chọn đáp án và gửi đáp án từ mainplay.jsp lên servlet Play trong file Play.java Bước 3: Servlet nhận đáp án và lưu đáp án vào bảng traloi Nếu là người chơi phụ thì chờ người chơi chính trả lời rồi mới kiểm tra đáp án có trùng với đáp án xuất ra từ cơ sở dữ liệu (bảng... chơi thứ 100 Nếu chỉ loại từ 91-99 người chơi, NCC vẫn ở mức tiền thưởng cấp độ 9 (40.000.000 đồng) Sau khi có tiền thưởng của cấp độ 1 (500.000 đồng), NCC được dừng cuộc chơi tại bất cứ thời điểm nào của game, trước khi bắt đầu câu hỏi kế tiếp, và ra về với số tiền thưởng đang có 3 Tương tác cao giữa người chơi chính và người cùng chơi: Hoàn toàn khác biệt so với phiên bản cũ, Đấu trường 100 phiên... được nghiên cứu, tìm hiểu qua quá trình học tập Qua quá trình nghiên cứu, tìm hiểu trên internet, đồ án đã giúp chúng em biết được nhiều kỹ thuật mới cũng như giúp chúng em rèn luyện tính kiên nhẫn, cần cù Sau quá trình hoàn chỉnh đồ án thì chúng em rút ra một số nhận xét sau: a Ưu điểm Nhìn chung đồ án đáp ứng được yêu cầu được đặt ra Có nhiều giao diện đẹp mắt và phong phú Âm thanh trong nhiều... đăng kí tài khoản Khi nhập tên đăng nhập đã tồn tại trước đó, thì hệ thống sẽ thông báo bạn chọn tên khác Trường hợp mật khẩu không khớp hệ thống cũng check lỗi Trường hợp ta để trống, hệ thống sẽ báo lỗi và bắt buộc phải nhập Nhập thông tin xong nhấn Submit để đăng kí Nếu đăng kí thành công, sẽ hiện ra trang thông báo bạn đã đăng kí thành công! Và click vào đường link để trở về trang login và thực... vào trang chơi chính thức Trang chủ hiện ra và chào mừng bạn đến với chương trình Đấu trường 100 phiên bản web của chúng tôi Trang gồm 5 menu bên phía trải + Menu trang chủ Giao diện Người chơi phụ Cách chơi khá đơn giản, người chơi phụ chỉ cần chọn phương án trả lời A,B hoặc C Chọn chờ kết quả từ người chơi chính để so sánh kết quả Giao diện Người chơi chính(có thêm sự trợ giúp) Người chơi chính có... đúng, game tiếp diễn + NCC chọn cùng đáp án và sai, game kết thúc, tất cả đều không có tiền thưởng + NCC chọn khác đáp án và đúng, NCC chiến thắng với số tiền thưởng tối đa + NCC chọn khác đáp án và sai, NCC thua game, tiền thưởng đến thời điểm đó sẽ được chia đều cho những người cùng chơi (nếu đáp án đó đúng) c) Tin người cùng chơi: Máy tính thống kê phương án trả lời được các người cùng chơi chọn... chờ người chơi chính trả lời rồi mới kiểm tra đáp án có trùng với đáp án xuất ra từ cơ sở dữ liệu (bảng dapanch) Bước 4: Nếu đáp án trả lời đúng thì tiếp tục chuyển qua câu hỏi tiếp theo Nếu đáp án trả lời sai thì chuyển sang trang failure.jsp Nếu trong quá trình chọn đáp án, người chơi có quyền chọn có 3 sự trợ giúp Servlet sẽ xử lí thống kê rồi gửi kết quả về cho người chơi chính Code xử lí Đăng nhập... khó khăn rồi nhấn vào câu kế tiếp xác nhận chọn phương án trả lời của mình + Menu Về chúng tôi Trang này giới thiệu về mục đích sản phẩm và thông tin thành viên của nhóm + Menu Luật chơi + Menu Dịch vụ Tính năng này sẽ được nhóm phát triển trong tương lai + Menu Liên hệ Vì thời gian gấp nên nhóm chưa kịp phát triển V ĐÁNH GIÁ VÀ HƯỚNG PHÁT TRIỂN 1 Đánh giá Trong phạm vi đề tài, chúng em chỉ trình bày . bỏ cơ sở dữ liệu, bảng, các trường hoặc bản ghi; thực hiện báo cáo SQL; hoặc quản lý người dùng và cấp phép. III. GIỚI THIỆU WEBSITE ĐẤU TRƯỜNG 100 Đấu trường 100 là một trò chơi truyền hình. ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN LẬP TRÌNH ỨNG DỤNG MẠNG ĐỀ TÀI: XÂY DỰNG TRANG WEB ĐẤU TRƯỜNG 100 Lớp: NT109.E21 Nhóm: 9 GVGD: Nguyễn. phương án trả lời trong 2 phương án này. - Nếu tất cả các người cùng chơi có phương án trả lời giống nhau, 4 tình huống: + NCC chọn cùng đáp án và đúng, game tiếp diễn. + NCC chọn cùng đáp án và