Sẽ có điểm năng động để có thể đăng kí làm trưởng đoàn và tổ chức các chuyến đi khác.. - Quản trị hệ thống: duyệt các bài đăng về tổ chức chuyến đi, duyệt các yêu cầu làm đoàn trưởng và
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM
Giảng viên hướng dẫn : PGS.TSKH Trần Quốc Chiến
Sinh viên : Nguyễn Thị Kim Hoàng
Lớp sinh hoạt : 11CNTT2
Đà Nẵng, Tháng 5 năm 2015
Trang 2NHẬN XÉT CỦA GIÁO VIÊN HƯƠNG DẪN
……… ………
……… ……… ………
……… ……… ………
……… ……… …………
……… ……… ………
………… ……… ……….
.……… ……… …………
……… ……… ………
………… ……… ……….
.……… ……… …………
……… ……… ………
………… ……… ……….
.……… ……… …………
……… ……… ………
………… ……… ………
PGS.TSKH Trần Quốc Chiến
Trang 3Trong suốt quá trình làm khóa luận, em đã nhận được sự hướng dẫn, giúp
đỡ và động viên tận tình từ nhiều phía Tất cả những điều đó đã trở thành một động lực rất lớn giúp em có thể hoàn thành tốt bài khóa luận tốt nghiệp của mình Với sự cám ơn sâu sắc, em xin được gởi lời cám ơn đến tất cả mọi người
Trước hết em xin gởi lời cám ơn chân thành đến thầy PGS.TSKH Trần Quốc Chiến, cám ơn thầy đã tận tình theo dõi và hướng dẫn em trong suốt thời gian làm khóa luận, hết mình giúp đỡ để em hoàn thành tốt bài khóa luận
Em cũng xin chân thành cám ơn các thầy cô của khoa Tin học, trường Đại học Sư phạm Đà Nẵng đã tận tình dạy bảo, truyền đạt kiến thức trong suốt 4 năm học, giúp em có được một nền tảng kiến thức vững chắc, là điều kiện thuận lợi cho
em hoàn thành tốt bài khóa luận tốt nghiệp
Em xin chân thành cám ơn
Trang 4Em xin cam đoan:
1 Những nội dung trong báo cáo này là do em thực hiện dưới sự hướng dẫn và giúp đỡ của thầy PGS.TSKH Trần Quốc Chiến, khoa Tin học, trường Đại học
Trang 5MỞ ĐẦU 1
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI 1
2 MỤC TIÊU NGHIÊN CỨU 1
3 ĐỐI TƯỢNG NGHIÊN CỨU 2
4 BỐ CỤC ĐỀ TÀI 2
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT 3
1.1 NGÔN NGỮ LẬP TRÌNH WEB 3
1.1.1 Html : Hypertext Markup Language 3
1.1.2 Css: Cascading Style Sheets 4
1.1.3 Javascript 6
1.1.4 Jquery 8
1.1.5 Ajax: Asynchronous Javascript and xml 9
1.1.6 Ngôn ngữ lập trình web jsp: Java Server Pages 9
1.1.7 Mô hình MVC : Model – Controller – View 11
1.1.8 Framework struts 1.0 12
1.2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SERVER 2008 14
1.2.1 Giới thiệu về SQL Server 2008 14
1.2.2 Những điểm mới trong SQL Server 2008 15
CHƯƠNG 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 17
2.1 KHẢO SÁT HIỆN TRẠNG 17
2.2 TỔNG QUAN VỀ WEBSITE 17
2.2.1 Yêu cầu chức năng 17
2.2.2 Yêu cầu chất lượng 17
2.2.3 Định nghĩa và phân quyền người dùng 18
2.3 PHÂN TÍCH VÀ THIẾT KẾ VỀ CHỨC NĂNG 19
2.3.1 Phân tích và thiết kế chức năng của người dùng bình thường 19
2.3.2 Phân tích và thiết kế chức năng của đoàn trưởng 20
Trang 62.4 PHÂN TÍCH VÀ THIẾT KẾ VỀ DỮ LIỆU 22
2.4.1 Mô hình chức năng 22
2.4.2 Mô hình luồng dữ liệu mức ngữ cảnh 22
2.4.3 Sơ đồ usecase 23
2.5 MÔ HÌNH QUAN HỆ 26
2.5.1 Bảng hình ảnh chuyến đi 26
2.5.2 Bảng bài đăng 27
2.5.3 Bảng bình luận bài đăng 28
2.5.4 Bảng đăng ký chuyến đi 29
2.5.5 Bảng feekback 30
2.5.6 Bảng thành viên 30
2.5.7 Bảng thông báo 32
2.5.8 Sơ đồ quan hệ 33
2.6 CÀI ĐẶT VÀ LẬP TRÌNH 34
2.6.1 Cài đặt công cụ lập trình và công cụ quản lý database 34
2.6.2 Lập trình 34
CHƯƠNG 3 XÂY DỰNG WEBSITE 36
3.1 GIAO DIỆN TRANG CHỦ 36
3.2 CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG BÌNH THƯỜNG 38
3.3 CÁC CHỨC NĂNG CỦA ĐOÀN TRƯỞNG 44
3.4 CÁC CHỨC NĂNG CỦA QUẢN TRỊ HỆ THỐNG 49
KẾT LUẬN 54
1 KẾT QUẢ ĐẠT ĐƯỢC 54
2 HƯỚNG PHÁT TRIỂN 54
TÀI LIỆU THAM KHẢO 55
Trang 7HÌNH 1- 1 CÁC ĐỐI TƯỢNG TRONG JAVASCRIPT 7
HÌNH 1- 2 ỨNG DỤNG WEB TRUYỀN THỐNG (TRÁI) VÀ ỨNG DỤNG AJAX 9
HÌNH 1- 3 MÔ HÌNH LÀM VIỆC CỦA JSP 10
HÌNH 1- 4 CÁC BƯỚC XỬ LÝ TRONG JSP 10
HÌNH 1- 5 MÔ HÌNH MVC 11
HÌNH 2- 1 MÔ HÌNH PHÂN RÃ CHỨC NĂNG 22
HÌNH 2- 2 MÔ HÌNH LUỒNG DỮ LIỆU 22
HÌNH 2- 3 USECASE ĐĂNG NHẬP 23
HÌNH 2- 4 USECASE QUẢN LÝ TÀI KHOẢN 24
HÌNH 2- 5 USECASE MÔ TẢ CÁC CHỨC NĂNG CỦA QUẢN TRỊ HỆ THỐNG 24
HÌNH 2- 6 USECASE MÔ TẢ CÁC CHỨC NĂNG CỦA ĐOÀN TRƯỞNG 25
HÌNH 2- 7 USECASE MÔ TẢ CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG 26
HÌNH 2- 8 SƠ ĐỒ QUAN HỆ 33
HÌNH 2- 9 CẤU TRÚC CỦA MỘT PROJECT 34
HÌNH 3- 1 TRANG CHỦ 36
HÌNH 3- 2 DANH SÁCH CHUYẾN ĐI 37
HÌNH 3- 3 TÌM KIẾM 38
HÌNH 3- 4 CÁC CHỨC NĂNG CỦA NGƯỜI DÙNG BÌNH THƯỜNG 38
HÌNH 3- 5 TRANG CHI TIẾT CHUYẾN ĐI CỦA NGƯỜI DÙNG 39
HÌNH 3- 6 DANH SÁCH ĐOÀN TRƯỞNG 40
HÌNH 3- 7 XEM THÔNG TIN CHUYẾN ĐI SAU KHI HOÀN THÀNH 41
HÌNH 3- 8 TRANG CÁ NHÂN 42
HÌNH 3- 9 THÔNG BÁO 43
HÌNH 3- 10 CÁC CHỨC NĂNG CỦA ĐOÀN TRƯỞNG 44
HÌNH 3- 11 ĐĂNG BÀI 45
HÌNH 3- 12 BÌNH LUẬN VÀ SỬA BÀI ĐĂNG ĐỢI DUYỆT 46
HÌNH 3- 13 CHI TIẾT CHUYẾN ĐI CỦA CHÍNH ĐOÀN TRƯỞNG ĐÓ TỔ CHỨC 47
HÌNH 3- 14 UPLOAD HÌNH ẢNH CHUYẾN ĐI SAU KHI HOÀN THÀNH 48
HÌNH 3- 15 CÁC CHỨC NĂNG CỦA QUẢN TRỊ HỆ THỐNG 49
HÌNH 3- 16 DUYỆT BÀI ĐĂNG 49
HÌNH 3- 17 CÁC CHỨC NĂNG CỦA ĐOÀN TRƯỞNG ĐỐI VỚI CHI TIẾT BÀI ĐĂNG 50
HÌNH 3- 18 QUẢN LÝ TÀI KHOẢN 51
Trang 8HÌNH 3- 21 BIỂU ĐỒ CÁC CHUYẾN ĐI TRONG MỘT NĂM 53
Trang 9BẢNG 2- 1 DANH SÁCH CÁC ACTOR 23
BẢNG 2- 2 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG HÌNH ẢNH CHUYẾN ĐI 26
BẢNG 2- 3 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG BÀI ĐĂNG 27
BẢNG 2- 4 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG BÌNH LUẬN BÀI ĐĂNG 28
BẢNG 2- 5 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG ĐĂNG KÝ CHUYẾN ĐI 29
BẢNG 2- 6 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG FEEKBACK 30
BẢNG 2- 7 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG THÀNH VIÊN 31
BẢNG 2- 8 BẢNG MÔ TẢ CÁC THUỘC TÍNH CỦA BẢNG THÔNG BÁO 32
Trang 10MỞ ĐẦU
1 TÍNH CẤP THIẾT CỦA ĐỀ TÀI
Xã hội càng văn minh thì con người càng phải biết yêu thương, giúp đỡ lẫn nhau Sự giúp đỡ đó có thể là vật chất và cả tinh thần Đó không chỉ là những người thân thiết trong gia đình, trong tập thể, mà còn là tình yêu thương trong toàn xã hội Những câu ca dao như: “Bầu ơi! Thương lấy bí cùng Tuy rằng khác giống nhưng chung một giàn.” hoặc “Nhiễu điều phủ lấy giá gương Người trong một nước phải thương nhau cùng!” càng thấm thía hơn
Các hoạt động xã hội, từ thiện cũng ngày càng phổ biến Đó không chỉ là sự ủng hộ tiền bạc, không chỉ là những món quà quyên góp ủng hộ Mà đó còn là những chuyến đi, những hành động trực tiếp giúp đỡ Việc giúp đỡ không chỉ đối với các trung tâm, mà đó còn là những hoàn cảnh khó khăn, những mảnh đời bất hạnh trong cuộc sống quanh ta
Tuy nhiên, nếu bạn là một người bình thường, không tham gia vào một tổ chức
từ thiện nào, không muốn ràng buộc với một câu lạc bộ nào, thì khó có thể tổ chức một chuyến đi Hoặc nếu bạn muốn tham gia nhiều tổ chức, hoạt động khác nhau; muốn giao lưu với nhiều bạn bè khắp mọi nơi; muốn tham gia các hoạt động ở nhiều nơi Vì vậy website được xây dựng để có thể kết nối mọi người ở mọi nơi, không có mối quan hệ nào, chỉ cần có tâm lòng muốn giúp đỡ người khác
Trong quá trình hoàn thành website, vì thời gian và kiến thức hạn chế, nên website còn tồn tại nhiều thiếu sót Vì vậy, mong thầy và các bạn góp ý để website ngày càng hoàn thiện hơn
2 MỤC TIÊU NGHIÊN CỨU
- Tìm hiểu về xây dựng: thiết kế và lập trình một website bằng struts
framework
- Tìm hiểu công nghệ ajax
- Xây dựng website bằng:
Trang 11 Phía client: html, javascript, css, jquery, ajax
Phía server: Java + framework struts 1.0
Sql server 2008
3 ĐỐI TƯỢNG NGHIÊN CỨU
- Người dùng bình thường: đăng ký tài khoản, tham gia vào các chuyến đi thích thú, comment và vote tham gia Sẽ có điểm năng động để có thể đăng
kí làm trưởng đoàn và tổ chức các chuyến đi khác
- Đoàn trưởng: tổ chức các chuyến đi để kêu gọi mọi người tham gia Sau mối chuyến đi sẽ kiểm tra ai tham gia tốt để tăng điểm năng động cho thành viên
đó Sau chuyến đi sẽ đăng hình ảnh hoạt động lên website Nếu đoàn trưởng hoạt động không tốt, có nhiều phản hồi từ user thì sẽ mất quyền làm đoàn
trưởng
- Quản trị hệ thống: duyệt các bài đăng về tổ chức chuyến đi, duyệt các yêu cầu làm đoàn trưởng và quản lý tài khoản của tất cả các thành viên tham gia
website
- Tìm hiểu và kiểm tra xác thực trên địa bàn Quảng Nam, Đà Nẵng
- Chỉ duyệt bài, đăng bài về các hoạt động từ thiện, tổ chức các chuyến đi
giúp đỡ người khác
- Kinh phí của chuyến đi sẽ do hệ thống quản lý cung cấp Các thành viên
tham gia đi sẽ không phải bắt buộc đóng lệ phí
4 BỐ CỤC ĐỀ TÀI
- Mở đầu
- Chương 1: cơ sở lý thuyết
- Chương 2: phân tích và thiết kế hệ thống
- Chương 3: Xây dựng website
- Kết luận và hướng phát triển
Trang 12CHƯƠNG 1
CƠ SỞ LÝ THUYẾT 1.1 NGÔN NGỮ LẬP TRÌNH WEB
1.1.1 Html : Hypertext Markup Language
a Định ngĩa
- Đây không phải là ngôn ngữ lập trình, nó là ngôn ngữ trình bày
- Là ngôn ngữ đánh dấu siêu văn bảng bằng thẻ, sử dụng các thẻ để biểu diễn
trang web với mẫu thông tin được trình bày trên World Wide Web
- Dùng để mô tả cách thức mà dữ liệu web được hiển thị
- Một file html tương đương với một trang web
- Các thẻ cơ bản: <html>, <head>, <title>, <body> Ngoài ra còn rất nhiều thẻ
Như vậy, cấu trúc của một trang web bao gồm:
- Mở đầu cho một trang html là thẻ mở <html>
- Kết thúc một trang html là thẻ đóng </html>
- Sau thẻ mở html là thẻ head:
Thẻ head cũng được bắt đầu bằng một thẻ mở và kết thúc là một thẻ đóng <head> </head>
Trang 13 Bên trong thẻ head chứa thẻ title:
+ Thẻ title cũng được bắt được bắt đầu bằng một thẻ mở và kết thúc bằng một thẻ đóng <title>Tiêu đề</title>
- Sau thẻ đóng </heade> là thẻ body:
Thẻ body cũng được bắt đầu bằng một thẻ mở và kết thúc bằng một thẻ
đóng <body></body>
Nội dung chứa trong thẻ body có thể là chữ, hình ảnh, video và các thẻ
html khác
Thẻ body được gọi là thẻ thân trang
Nói chung, html tồn tại như các tập tin văn bản, có đuôi là html chứa trên các máy tính nối vào mạng internet Các file này chỉ thị cho chương
trình về cách hiển thị hay xử lý văn bản ở dạng văn bản thuần túy
1.1.2 Css: Cascading Style Sheets
a Định nghĩa
- Là ngôn ngữ quy định cách trình bày của các thẻ html trên trang web
- Dùng để xây dựng bố cục giao diện trang web, trình bày cho các thẻ html
như: tô màu, im đậm, in nghiêng,…
- Tách nội dung của trang web và định dạng hiển thị, giúp hạn chế tối thiểu việc làm rối mã html, dễ dàng cho việc cập nhật nội dung, tiết kiệm được
thời gian chỉnh sửa
- Đồng thời tạo kiểu dáng để áp dụng cho nhiều trang web
Trang 14- Nhúng css vào một file css riêng sau đó nhúng vào website
<link href="Đường dẫn đến file css" rel="stylesheet" type="text/css" />
Ví dụ : <link href="styles/style.css" rel="stylesheet" type="text/css" />
- Chèn trực tiếp vào thẻ html
Ví dụ : <p style="color:red;text-decoration:underline">Đây là thẻ P, có màu chữ đỏ và chữ gạch chân</p>
Các thuộc tinh cách nhau bằng dấu chấm phảy ( ; ) như cách viết bình
Trang 15Nói chung, css đơn thuần là file có phần mở rộng là css Trong file này chứa những câu lệnh css, mỗi câu lệnh sẽ định dạng một phần nhất định của tài liệu html như màu sắc, font chữ, đường viền, căn chỉnh hình ảnh…
1.1.3 Javascript
a Định nghĩa
- Là ngôn ngữ thông dịch, lập trình kịch bản dựa trên đối tượng, chương trình
nguồn của nó được nhúng hoặc tích hợp vào tập tin html
- Có các đặc tính đơn giản, động (dynamic), hướng đối tượng (object
oriented)
- Dùng để thể hiện một số tác vụ không thể thực hiện được với chỉ Html:
kiểm tra thông tin nhập, tự động thay đổi hình ảnh…
- Đặc tính quan trọng của nó là khả năng tạo và sử dụng các đối tượng
- Khi trang web được tải trong trình duyệt hỗ trợ javascript, trình duyệt sẽ thông dịch và thực hiện các lệnh javascript Nó được thông dịch sau khi toàn
bộ trang được load nhưng trước khi trang được hiển thị
- Được thiết kế độc lập với hệ điều hành, chỉ cần có trình duyệt hỗ trợ
javascript thì nó đều chạy được
- Dễ dàng tương tác, điều khiển và tránh bớt việc xử lý từ phía server
- Tuy nhiên, nó làm trình duyệt web trở nên nặng nề hơn, bảo mật kém và
không còn khả năng giấu mã
- Các đối tượng thường được dùng trong javascript:
Trang 16Hình 1- 1 Các đối tượng trong javascript
b Khai báo trong javascript
- Để thực thi được các mã lệnh javascript chúng ta phải khai báo
- Có ba cách khai báo trong javascript
Khai báo trực tiếp: Khai báo ngay trong cặp thẻ
Trang 17tin từ server mà không cần tải lại trang web
- Giúp tận dụng kiến thức về CSS, hỗ trờ plugin , xoá nhoà sự khác biệt giữa các trình duyệt, luôn làm việc với Set, cho phép nhiều tác vụ diễn ra trên
cùng một dòng
b Gọi chức năng trong Jquery
Nếu muốn một sự kiện để làm việc trên trang sử dụng jquery, ta nên gọi nó bên trong hàm $(document).ready() Tất cả mọi thứ bên trong nó sẽ được tải
ngay khi DOM được tải và trước khi nội dung trang được tải
Cú pháp:
Ví dụ:
Trang 181.1.5 Ajax: Asynchronous Javascript and xml
a Định nghĩa
- Là bộ công cụ giúp tăng tốc độ ứng dụng web bằng cách cắt nhỏ dữ liệu và
chỉ hiển thị những gì cần thiết, không cần tải lại toàn bộ trang web
- Có tính tương tác cao, kết hợp với nhiều ngôn ngữ: html, css, mô hình
DOM, đối tượng XmlHttpRequest, xml
b Hoạt động của ajax
Hình 1- 2 Ứng dụng web truyền thống (trái) và ứng dụng ajax
c Hạn chế
Không thể bookmark, không thể sử dụng nút back, không thể chạy với một
số trình duyệt, không hiển thị nội dung trên trang tìm kiếm
1.1.6 Ngôn ngữ lập trình web jsp: Java Server Pages
a Định nghĩa
- Là công nghệ cho phép tạo các trang web một cách năng động, trong khi yêu
cầu hồi âm của trình khách
- Trước khi hiển thị ra trình duyệt, tập tin được biên dịch thành Servlet rồi
biên dịch mã nguồn ra tập tin class
- Lợi ích đối với nhà phát triểnweb :
Sử dụng công nghệ JSP mà không phải học java
Trang 19 Mở rộng ngôn ngữ JSP
Viết và bảo trì web dễ dàng
b Mô hình làm việc của jsp
Hình 1- 3 Mô hình làm việc của jsp
c Các bước xử lý trong jsp
Hình 1- 4 Các bước xử lý trong jsp
- Bước 1: web client gửi yêu cầu tới web server
- Bước 2: yêu cầu đó được đưa vào các file jsp
- Bước 3: tại các thẻ jsp, sẽ kiểm tra theo từng yêu cầu, và đưa vào các
servlet
- Bước 4: servlet thao tác với dữ liệu, gửi kết quả lại thành các trang html
- Bước 5: các trang html được gửi đi và web client biên dịch, hiển thị kết quả mong muốn lên cho người dùng
Trang 201.1.7 Mô hình MVC : Model – Controller – View
a Định nghĩa
- Tách biệt quá trình xây dựng chức năng cho ứng dụng và quá trình xây dựng
giao diện cho người dùng
- Đưa ra model để không cho người dùng tương tác trực tiếp vào dữ liệu vật
- 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
- 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
Trang 21c MVC làm việc như thế nào
- Nhìn lại sơ đồ phía trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt Những mũi tên nét đứt được hình thành trên quan điểm của người dùng
mà không phải là của những nhà thiết kế phần mềm thực sự Do đó chúng ta
chỉ quan tâm đến những mũi tên còn lại
- Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi
Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở
Model
Model nhận thông tin và thực thi các yêu cầu
Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển
thị lại cho người dùng
d Ưu điểm và nhược điểm của MVC
- Ưu điểm: Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế Do được chia thành các thành phần độc lập nên giúp phát triển ứng dụng nhanh,
đơn giản, dễ nâng cấp, bảo trì
- Nhược điểm: Đối với dự án nhỏ việc áp dụng mô hình MC 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
của các thành phần
1.1.8 Framework struts 1.0
a Giới thiệu về framework struts 1.0
Struts là một framework phục vụ việc phát triển các ứng dụng Web trên Java
Sử dụng mẫu thiết kế Model-View-Controller (MVC), Struts giải quyết rất nhiều các vấn đề liên quan đến các ứng dụng Web hướng business đòi hỏi hiệu năng cao sử dụng Java servlet và JSP Struts cơ bản định hình lại cách các Web programmer nghĩ về và cấu trúc một ứng dụng Web
Trang 22Structs được phát triển bởi Craig McClanahan và được bão trợ bởi Apache,
nhóm Jakarta
b Các thành phần cơ bản của Struts
Struts là một tập hợp các thư viện Java và có thể chia ra làm các nhóm sau:
Framework cơ sở
Thư viện thẻ JSP
Tiles plugin
Validator plugin
- Framework cơ sở: Framework cơ sở cung cấp các tính năng MVC cốt lõi
Nền tảng của framework cơ sở là Controller servlet: ActionServlet Phần còn lại của framework cơ sở bao gồm các lớp cơ sở mà ứng dụng của bạn sẽ extend và các class tiện ích Nổi bật nhát trong các lớp cơ sở là lớp Action
và lớp ActionForm Lớp Action được sử dụng bởi ActionServlet để sử lý các request xác định Lớp ActionForm được sử dụng để capture dữ liệu từ các HTML form và được sử dụng để chuyển dữ liệu trở lại View để generate
response
- Thư viện thẻ JSP: Struts đưa ra các thư viện thẻ để hỗ trợ việc lập trình
View logic trong JSP Các thư viện thẻ JSP cho phép các JSP author sử
dụng các thẻ giống HTML
HTML: Sử dụng để generate các THML form tương tac với Struts API
Bean: Sử dụng để làm việc với các Java bean object trong JSP
Logic: Sử dụng để implement các logic điều kiện đơn giản trong JSP
Nested: Sử dụng để cho phép các mức nested tùy ý
- Tiles plugin: Tiles là một JSP template framework giúp thuận tiện cho việc
tái sử dụng mã HTML
- Validator plugin: Validator là một framework với khả năng thực hiện xác
nhận tính hợp lệ của dữ liệu ở cả phía server và client
Trang 23c Chu kỳ sống của một Struts:
Dưới đây là tiến trình thực hiện của một ứng dụng Web sử dụng Struts:
- Trình duyệt tạo một request tới ứng dụng Struts sẽ được xử lý bới
ActionServlet (Controller)
- ActionServlet (Controller) populate subclass của ActionForm (View), do ta
viết, với dữ liệu form HTML và invoke method validate() của nó
- ActionServlet (Controller) execute subclass của Action do ta viết
(Controller)
- Subclass của Action (Controller) đó sẽ tương tác với model component và
chuẩn bị dữ liệu cho để hiển thị
- Sau đó subclass của Action (Controller) đó sẽ chuyển điều khiển tới JSP
(View)
- JSP (View) sử dụng dữ liệu nhận được để generate response về cho trình
duyệt
1.2 HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU MICROSOFT SERVER 2008
1.2.1 Giới thiệu về SQL Server 2008
Để các tổ chức có thể thành công và phát triển trong thế giới dữ liệu ngày nay, họ cần một định hướng chỉ ra các xu hướng then chốt về dữ liệu Định hướng
về nền tảng dữ liệu của Microsoft giúp tổ chức đáp ứng nhu cầu bùng nổ dữ liệu này và thế hệ kế tiếp của ứng dụng hướng dữ liệu Microsoft sẽ tiếp tục đầu tư vào
và phát triển những lĩnh vực quan trọng sau đây để hỗ trợ việc định hướng nền tảng
dữ liệu của họ: nền tảng cho dữ liệu quan trọng của tổ chức, phát triển động, dữ liệu quan hệ và Trí khôn Nghiệp vụ Hãy đọc tài liệu này để tìm hiểu về Định
hướng cho Nền tảng Dữ liệu của Microsoft (Microsoft Data Platform Vision) và thấy được làm sao mà SQL Server 2008 đáp ứng nhu cầu của thế hệ kế tiếp của ứng dụng hướng dữ liệu
Trang 241.2.2 Những điểm mới trong SQL Server 2008
a Nền tảng cho các nhiệm vụ then chốt :
SQL Server 2008 cho phép các tổ chức có thể chạy hầu hết các ứng dụng phức tạp của họ trên một nền tảng an toàn, tin cậy và có khả năng mở rộng, bên cạnh đó còn giảm được sự phức tạp trong việc quản lý cơ sở hạ tầng dữ liệu SQL Server 2008 cung cấp một nền tảng tin cậy và an toàn bằng cách bảo đảm những thông tin có giá trị trong các ứng dụng đang tồn tại và nâng cao khả năng sẵn có của dữ liệu SQL Server 2008 giới thiệu một cơ chế quản lý cách tân dựa trên chính sách, cơ chế này cho phép các chính sách có thể được định nghĩa quản trị tự động cho các thực thể máy chủ trên một hoặc nhiều máy chủ Thêm vào đó, SQL Server 2008 cho phép thi hành truy vấn dự báo với một nền tảng tối ưu
b Sự phát triển động
SQL Server 2008 cùng với NET Framework đã giảm được sự phức tạp trong việc phát triển các ứng dụng mới ADO.NET Entity Framework cho phép các chuyên gia phát triển phần mềm có thể nâng cao năng suất bằng làm việc với các thực thể dữ liệu logic đáp ứng được các yêu cầu của doanh nghiệp thay
vì lập trình trực tiếp với các bảng và cột Các mở rộng của ngôn ngữ truy vấn tích hợp (LINQ) mới trong NET Framework đã cách mạng hóa cách các
chuyên gia phát triển truy vấn dữ liệu bằng việc mở rộng Visual C#® và Visual Basic® NET để hỗ trợ cú pháp truy vấn giống SQL vốn đã có Hỗ trợ cho các
hệ thống kết nối cho phép chuyên gia phát triển xây dựng các ứng dụng cho phép người dùng mang dữ liệu cùng với ứng dụng này vào các thiết bị và sau
đó đồng bộ dữ liệu của chúng với máy chủ trung tâm
Trang 25c Dữ liệu quan hệ mở rộng
- SQL Server 2008 cho phép các chuyên gia phát triển khai thác triệt để và quản lý bất kỳ kiểu dữ liệu nào từ các kiểu dữ liệu truyền thống đến dữ liệu không gian địa lý mới
- Thông tin trong toàn bộ doanh nghiệp - SQL Server 2008 cung cấp một cơ
sở hạ tầng có thể mở rộng, cho phép quản lý các báo cáo, phân tích với bất
kỳ kích thước và sự phức tạp nào, bên cạnh đó nó cho phép người dùng dễ dàng hơn trong việc truy cập thông tin thông qua sự tích hợp sâu hơn với Microsoft Office Điều này cho phép CNTT đưa được thông tin của doanh nghiệp rộng khắp trong tổ chức SQL Server 2008 tạo những bước đi tuyệt vời trong việc lưu trữ dữ liệu, cho phép người dùng hợp nhất các trung tâm
dữ liệu vào một nơi lưu trữ dữ liệu tập trung của toàn doanh nghiệp
Trang 26CHƯƠNG 2
PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 2.1 KHẢO SÁT HIỆN TRẠNG
Hiện nay, việc quản lý chung tất cả các tổ chức từ thiện, câu lạc bộ còn chưa được thực hiện Chưa có một tổ chức chính thống tổ chức tất cả các hoạt động từ thiện với thành viên là tất cả đối tượng trong xã hội Việc đó chỉ mới ở từng cơ sở như trường, lớp, câu lạc bộ Chưa có một trang web chuyên dành để tổ chức các hoạt động, tổ chức các chuyến đi từ thiện, kêu gọi sự giúp đỡ trong các hoạt động
từ thiện, xã hội Việc tham gia vào các hoạt động từ thiện mà không tham gia vào một tổ chức nào thì rất khó, còn thiếu nhiều thông tin Hoặc những việc gấp cần sự chia sẻ, giúp đỡ của nhiều người thì chưa được kịp thời
Vì vậy, đề tài nhằm xây dựng website để để gắn kết các nhà hảo, các cá nhân có nhu cầu làm từ thiện Và tổ chức các chuyến đi từ thiện để giúp đỡ những hoàn
cảnh nghèo khó neo đơn
2.2 TỔNG QUAN VỀ WEBSITE
2.2.1 Yêu cầu chức năng
- Quản lý được tài khoản của tất cả người dùng
- Lưu trữ được những hình ảnh hoạt động, giới thiệu tới đông đảo người
dùng
- Người dùng có thể đăng được các bài đăng tổ chức các chuyến đi, đăng ký
tham gia các chuyến đi và từ đó tăng điểm năng động
- Phân quyền được đối với quản lý, thành viên và đoàn trưởng, có những chức
Trang 27- Tốc độ xử lý nhanh chóng, dễ dàng
2.2.3 Định nghĩa và phân quyền người dùng
a Người dùng chưa có tài khoản: là các khách vãng lai ghé thăm hệ thống Có
các chức năng:
- Đăng ký
- Đọc RSS
- Xem danh sách các chuyến đi
- Xem thông tin chi tiết các chuyến đi Nhưng không thể đăng ký tham gia chuyến đi
- Tìm kiếm chuyến đi
- Xem danh sách các đoàn trưởng và các đoàn trưởng tiêu biểu
- Xem thông tin của các đoàn trưởng và các thành viên tham gia vào hệ thống
- Xem hình ảnh và bình luận của các chuyến đi
b Người dùng bình thường: Là các nhà hảo tâm, mạnh thường quân, các cá
nhân hay tập thể có mong muốn làm từ thiện Người dùng bình thường có
các chức năng như khách vãng lai, đồng thời có thêm những chức năng:
- Đăng nhập
- Đăng ký tham gia, bình luận vào các chuyến đi, được tính điểm năng động
- Xem, cập nhật thông tin cá nhân của mình
- Gửi phản hồi đến quản trị viên về các đoàn trưởng Xem và bình luận hình
ảnh
- Đăng ký để được xét duyệt lên làm đoàn trưởng
- Nhận các thông báo liên quan
c Đoàn trưởng: Đoàn trưởng là thành viên sau một thời gian hoạt động năng
nổ, được phê duyệt lên để tổ chức các chuyến đi Ngoài những chức năng
của người dùng bình thường, đoàn trưởng còn có thêm các chức năng:
- Đăng bài, tổ chức các chuyến đi
Trang 28- Thao tác với bài đăng của chính mình: xóa chuyến đi hoặc xác nhận hoàn
thành
- Xác nhận các thành viên tham gia chuyến đi để tăng điểm năng động cho
thành viên đó và được tăng điểm năng động của chính mình
- Cập nhật các hình ảnh sau khi xác nhận hoàn thành chuyến đi
- Bình luận và sửa các bài đăng đang đợi duyệt
d Quản trị hệ thống: Là ngưởi quản trị hệ thống, điều hành các hoạt động của
hệ thống Ngoài các chức năng của đoàn trưởng, còn có các chức năng:
- Xóa các chuyến đi của các đoàn trưởng có nội dung sai lệch
- Duyệt bài đăng, duyệt các yêu cầu làm đoàn trưởng
- Quản lý tài khoản của tất cả thành viên trong hệ thống
- Nhận thông tin phản hồi từ các thành viên khác về đoàn trưởng
- Thống kê danh sách chuyến đi theo ngày bắt đầu và ngày kết thúc, chuyến đi
chưa bắt đầu hoặc đã kết thúc , rồi xuất tập excel
- Biểu đồ hiển thị các chuyến đi theo năm
- Quản lý email
2.3 PHÂN TÍCH VÀ THIẾT KẾ VỀ CHỨC NĂNG
2.3.1 Phân tích và thiết kế chức năng của người dùng bình thường
- Nếu không có tài khoản, người dùng chỉ có thể xem các chuyến đi và hình
ảnh của chuyến đi
- Nếu có tài khoản, người dùng sẽ được đăng ký vào các chuyến đi hoặc hủy, bình luận vào các bài đăng Các chuyến đi trùng thời điểm sẽ không cho
đăng ký
- Người dùng có thể xem các chuyến đi mà mình đăng ký đi
- Nếu sau một thời gian tham gia hoạt động tích cực, người dùng sẽ được tăng
điểm số năng động lên để có thể yêu cầu làm đoàn trưởng
Trang 29- Sau các chuyến đi, đoàn trưởng sẽ xác nhận người đó đăng ký nhưng có tham gia hay không Nếu tham gia, hoạt động tốt sẽ được cộng 1 điểm, còn
- Người dùng có thể xem thông tin của các đoàn trưởng, các thành viên khác
và danh sách các chuyến đi mà đoàn trưởng đó tổ chức
- Ngoài ra, người dùng có thể xem, sửa thông tin cá nhân của mình
2.3.2 Phân tích và thiết kế chức năng của đoàn trưởng
- Khi muốn tổ chức các chuyến đi, đoàn trưởng sẽ gửi thông tin cụ thể về chuyến đi, quản lý sẽ duyệt và đăng các chuyến đi lên Các chuyến đi sẽ
được đăng theo trình tự thời gian đăng
- Nếu bài đăng chưa hợp lý, nhận được phản hồi của quản trị viên, đoàn
trưởng sẽ bình luận hoặc sửa lại theo yêu cầu
- Khi đăng bài, đoàn trưởng sẽ biết được số người tham gia, và quyết định tổ
chức chuyến đi hoặc hủy
- Sau mỗi chuyến đi, đoàn trưởng sẽ kiểm tra những ai tham gia và xác nhận
những thành viên đó để tăng điểm năng động cho họ
- Sau khi xác nhận hoàn thành chuyến đi, đoàn trưởng còn phải đăng hình ảnh của chuyến đi đó Với mỗi chuyến đi thành công, đoàn trưởng sẽ được cộng
5 điểm vào điểm năng động
- Đoàn trưởng sẽ xem được các chuyến đi mình tổ chức thành công và các
chuyến đi mình đăng ký tham gia
Trang 30- Ngoài ra, các đoàn trưởng cũng có quyền quản lý tài khoản của mình: xem,
sửa Và xem thông tin của các thành viên khác
2.3.3 Phân tích và thiết kế chức năng của quản trị hệ thống
- Các khách vãng lai muốn là thành viên của website thì phải đăng ký một tài khoản Người quản lý có thể quản lý các thông tin của các thành viên đó như chuyển quyền từ thành viên sang đoàn trưởng và ngược lại, xem, hoặc ban
nick
- Khi muốn tổ chức một chuyến đi, đoàn trưởng sẽ gửi tất cả thông tin về cho quản lý Quản lý duyệt Nếu chưa hợp lý thì quản lý có thể bình luận và yêu cầu sửa phù hợp Quản lý sau khi duyệt thì bài mới được đăng lên để mọi người đăng ký tham gia Sau khi duyệt nhưng quản lý vẫn có thể xóa
bài đó
- Các thành viên sau thời gian tham gia nhiều hoạt động thì sẽ điểm năng động, nếu muốn trở thành đoàn trưởng để có thể tổ chức các chuyến đi thì sẽ đăng ký với quản lý Sau khi duyệt thì sẽ trở thành đoàn trưởng và có thể
đăng bài để tổ chức các chuyến đi
- Nếu có phản hồi gì về các đoàn trưởng, các thành viên có thể nhắn tin phản
hồi, quản lý sẽ nhận và xác thực thông tin
- Quản lý các email đăng ký nhận
- Thống kê danh sách các chuyến đi theo 4 tiêu chí: thời gian bắt đầu, thời gian kết thúc, chuyến đi chưa bắt đầu và chuyến đi đã kết thúc Sau khi có
danh sách, có thể xuất ra tệp excel
- Xem biểu đồ hình ảnh hoạt động, các chuyến đi theo từng tháng của một năm
Trang 312.4 PHÂN TÍCH VÀ THIẾT KẾ VỀ DỮ LIỆU
2.4.1 Mô hình chức năng
Hình 2- 1 Mô hình phân rã chức năng
2.4.2 Mô hình luồng dữ liệu mức ngữ cảnh
Hình 2- 2 Mô hình luồng dữ liệu
Trang 322.4.3 Sơ đồ usecase
Bảng 2- 1 Danh sách các actor
STT Tên Actor Ý nghĩa/Ghi chú
1 Người dùng (User) Người dùng thông thường, có chức năng tham
gia và đánh giá các chuyến đi
Use Case đăng nhập: cho phép các thành viên trong hệ thống đăng nhập
vào hệ thống để thực hiện những chức năng có được tuỳ thuộc vào từng quyền của thành viên đó
Hình 2- 3 Usecase đăng nhập
Usecase quản lý tài khoản: cho phép các thành viên thay đổi thông tin cá nhân cũng như thây đổi mật khẩu của tài khoản