GIỚI THIỆU CÔNG NGHỆ SỬ DỤNG
Đánh giá công nghệ
Để phát triển ứng dụng Web hiện nay có rất nhiều giải pháp thực hiện. Chúng ta xem xét các giải pháp tiêu biểu như sau:
3- Nền tảng nguồn mở PHP: a Joomla (PHP) b Drupal (PHP) Sau đây là một số so sánh và phân tích các giải pháp trên:
Bảng 2.1 Bảng so sánh và phân tích các giải pháp sử dụng Net, Java, Joomla,
Khả năng xây dựng hệ quản trị nội dung (CMS) Tốt Tốt Tốt Tốt
Khả năng xây dựng ứng dụng web Rất tốt Rất tốt Kém Rất tốt
Khả năng phát triển nhanh ứng dụng
Các modul có sẵn Đơn giản
Các nền tảng phần mềm đi kèm miễn phí Không Có Có Có
Hỗ trợ kết nối cơ sở dữ liệu Sql server Sẵn có Ko Ko Ko
Phát triển ứng dụng linh hoạt Tốt Tốt Khá Tốt
Hosting phổ biến và dễ dàng TB Kém Rất tốt Rất tốt
Chi phí bản quyền Có Không Không Không
Dễ dàng bảo trì phát triển hệ thống Khá Khá Khá Tốt
Yêu cầu trình độ lập trình Cao Cao Trung bình Khá
Tốc độ xử lý Tốt TB Tốt Tốt
Yêu cầu cấu hình máy chủ Cao TB TB TB
An ninh bảo mật Tốt Rất tốt tốt Rất tốt
Bảng 2.2 Bảng đánh giá các CMS theo tính năng (theo http://www.cmsmatrix.org)
Application Server CGI Apache IIS/.Net J2EE
Database MySQL MySQL MSSQL Oracle
Programming Language PHP PHP C# Java
Root Access No No Yes Yes
Shell Access No No Yes Yes
Web Server Apache Apache IIS Apache
Audit Trail No Yes Yes Yes
Captcha Free Add On Free Add
Content Approval Yes Yes Yes Yes
Email Verification Yes Yes Free Add
Granular Privileges No Yes Yes Yes
Kerberos Authentication No No Yes Yes
LDAP Authentication Yes Free Add
Login History Yes Yes Yes Yes
NIS Authentication No No Yes No
NTLM Authentication No Free Add
Pluggable Yes Yes Yes Yes
Problem Notification No No Yes No
Sandbox No No Yes Yes
Session Management Yes Yes Yes Yes
SMB Authentication No No Yes No
SSL Compatible Yes Yes Yes Yes
SSL Logins Yes No Yes Yes
SSL Pages Yes No Yes Yes
Versioning Free Add On Yes Yes Yes
Certification Program No No Yes Yes
Commercial Manuals Yes Yes Yes Yes
Commercial Support Yes Yes Yes Yes
Commercial Training Yes Yes Yes Yes
Developer Community Yes Yes Yes Yes
Online Help Yes Yes Yes Yes
Pluggable API Yes Yes Yes Yes
Professional Hosting Yes Yes Yes Yes
Professional Services Yes Yes Yes Yes
Public Forum Yes Yes Yes Yes
Public Mailing List No Yes Yes No
Third-Party Developers Yes Yes Yes Yes
Users Conference Yes Yes Yes No
Drag-N-Drop Content No Free Add
Email To Discussion Free Add On Free Add
Friendly URLs Yes Yes Yes Yes
Image Resizing Yes Free Add
Macro Language Yes Free Add
Mass Upload Yes Free Add
Prototyping Yes Limited Yes Yes
Server Page Language Yes Yes Yes Yes
Spell Checker No Free Add
Subscriptions Costs Extra Free Add
Template Language Yes Limited Yes Yes
UI Levels Yes No Yes No
Undo No Limited Yes No
WYSIWYG Editor Yes Free Add
Asset Management Yes Yes Yes No
Clipboard No No Yes No
Content Scheduling Yes Free Add
Content Staging No Free Add
Inline Administration Yes Yes Yes Yes
Online Administration Yes Yes Yes Yes
Package Deployment No No Yes Limited
Sub-sites / Roots Yes Yes Yes Limited
Themes / Skins Yes Yes Yes Yes
Trash Yes No Yes Yes
Web Statistics Yes Yes Yes Limited
Management Free Add On Yes Yes Yes
Workflow Engine No Limited Yes Yes
(RSS) Yes Yes Yes No
FTP Support Yes Limited Yes No
UTF-8 Support Yes Yes Yes Yes
WAI Compliant No Limited Yes No
WebDAV Support No No Yes Yes
XHTML Compliant No Yes Yes No
CGI-mode Support Yes Yes No No
Content Reuse Yes Limited Yes Yes
Extensible User Profiles Yes Yes Yes Yes
Interface Localization Yes Yes Yes Yes
Metadata Yes Yes Yes Yes
Multi-lingual Content Free Add On Yes Yes Yes
Integration Free Add On Free Add
Multi-Site Deployment Free Add On Yes Yes Limited
URL Rewriting Yes Yes Yes Yes
Dựa trên các so sánh ta có thể thấy triển khai một ứng dụng phức tạp với chi phí thấp thời gian triển khai nhanh thì dùng Drupal là hợp lý nhất.
Giới thiệu chung về Drupal
Drupal là một khung sườn phát triển phần mềm hướng mô-đun, một hệ quản trị nội dung miễn phí và mã nguồn mở Cũng giống như các hệ quản trị nội dung hiện đại khác, Drupal cho phép người quản trị hệ thống tạo và tổ chức dữ liệu, tùy chỉnh cách trình bày, tự động hóa các tác vụ điều hành và quản lý hệ thống những. Drupal có cấu trúc lập trình rất tinh vi, dựa trên đó, hầu hết các tác vụ phức tạp có thể được giải quyết với rất ít đoạn mã được viết, thậm chí không cần Đôi khi, Drupal cũng được gọi là "khung sườn phát triển ứng dụng web", vì kiến trúc thông minh và uyển chuyển của nó.
Drupal được chạy trên rất nhiều môi trường khác nhau, bao gồm Windows, Mac OS X, Linux, FreeBSD, OpenBSD và các môi trường hỗ trợ máy phục vụ web Apache Drupal kết nối với cơ sở dữ liệu MySQL hoặc PostgreSQL để lưu nội dung và các thiết lập. Đầu tiên, nó được Dries Buytaert và Hans Snijder (đến từ đại học Antwerp), tạo ra theo dạng một “hệ thống bảng tin” (Tiếng Anh: bulletin board system) Đến năm 2001, Drupal trở thành một công trình nguồn mở Drupal, trong tiếng Anh, được chuyển ngữ từ chữ "druppel" của tiếng Hà Lan, nghĩa là "giọt nước".
Từ tháng 7 năm 2007 đến tháng sáu năm 2008, mã nguồn Drupal đã được tải về từ website http://drupal.org hơn 1,4 triệu lần.Hiện nay, có một cộng đồng rộng lớn đang giúp đỡ phát triển Drupal Tháng giêng năm 2009, Drupal 6.9, phiên bản mới nhất, đã được công bố.
Giải thưởng Drupal đạt được:
- CMS nguồn mở danh giá nhất năm 2009 do nhà xuất bản Packt bình chọn, cùng với giải CMS nguồn mở PHP tốt nhất.
- CMS nguồn mở danh giá nhất năm 2008 do nhà xuất bản Packt bình chọn.
- CMS nguồn mở danh giá nhất năm 2007 do nhà xuất bản Packt bình chọn.
Qua tìm hiểu và nghiên cứu em thấy Drupal rất mềm dẻo và linh hoạt trong việc phát triển các ứng dụng theo đặc thù.
Drupal được xây dựng từ khá lâu, cách đây hơn 9 năm, nhưng có một nền tảng rất tốt Khả năng mở rộng của Drupal là vô hạn với cơ chế hook vô cùng phong phú (khoảng 90 hook trong bản 6, và gần 250 hook trong Drupal 7) Cơ chế form, menu của Drupal giúp người phát triển dễ dàng làm việc họ muốn theo một cách rất đơn giản, sáng sủa Drupal có nền tảng là ngôn ngữ PHP và hệ quản trị cơ sở dữ liệu MySQL, chạy trong môi trường webserver apache.
2.2.2 Một số khái niệm trong drupal
- Hook: ằ Hook được xem như là cỏc event trong bộ nhõn Drupal ằ Chỳng được gọi là cỏc hàm callbacks.Vớ dụ khi 1 user login vào Drupal, Drupal sẽ phát ra các hook user, nghĩa là lúc này tất cả các hàm hook user có trong tất cả các module đều được gọi. ằ Đõy là cỏch phổ biến nhất để tương tỏc với nhõn Drupal
- Node: ằ Cỏc kiểu nội dung trong Drupal đều kế thừa từ 1 kiểu cơ bản là node Vớ dụ: blog entry, page,…tất cả đều có cấu trúc bên dưới giống nhau là node. ằ Cỏch tương tỏc với node là mở rộng chỳng.
- Blocks: ằ Blocks là cỏc khối nội dung cú thể enable hoặc disable và được đặt vào vị trí cụ thể trên trang web Ví dụ user login là 1 khối thường được đặt ở left_side bar ằ Block thường được đặt ở left_side bar, right_side bar, header hoặc footer.
- Module: Module trong Drupal là một nhóm các những chức năng nhất định, thường có các thông tin cơ bản sau: ằ Name: Tờn chớnh thức của module, ảnh hưởng tới những hàm kết nối với hệ thống. ằ Display name: Tờn gợi nhớ, thường được trỡnh bày ở trang điều hành module. ằ Description: Giới thiệu ngắn gọn cỏc chức năng của module, được trỡnh bày ở trang điều hành module. ằ Version: Mó số phiờn bản của module ằ Dependencies: Tờn của module mà module đang thiết kế yờu cầu tới(Ttrong trường hợp sử dụng hàm từ module khác), nếu có nhiều module thì các module này cách nhau bởi dấu phẩy Module không thể được kích hoạt nếu module yêu cầu không tồn tại hoặc chưa được kích hoạt. ằ Package: Phõn nhúm chức năng chứa đựng module.
- Giới thiệu một số modules ằ CCK: Như đó giới thiệu ở trờn, node là kiểu dữ liệu với 2 trường là title và body để lưu thông tin Tuy nhiên thực tế cần lưu nhiều thông tin hơn node và vì thế có khái niệm mới đó là kiểu nội dung Kiểu nội dung là node nhưng có bổ sung thêm trường để lưu thông tin Việc bổ sung thêm trường thông tin khác gọi là mở rộng kiểu nội dung CCK là module có vai trò mở rộng kiểu nội dung. ằ View: Module cú chức năng lọc nội dung và trỡnh bày nội dung.
Giới thiệu Apache
Apache hay là chương trình máy chủ HTTP là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP Apache chạy trên các hệ điều hành tương tự như Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác Apache đóng một vai trò quan trọng trong quá trình phát triển của mạng web thế giới (tiếng Anh: World Wide Web).
Khi được phát hành lần đầu, Apache là chương trình máy chủ mã nguồn mở duy nhất có khả năng cạnh tranh với chương trình máy chủ tương tự của Netscape Communications Corporation mà ngày nay được biết đến qua tên thương mại Sun Java System Web Server Từ đó trở đi, Apache đã không ngừng tiến triển và trở thành một phần mềm có sức cạnh tranh mạnh so với các chương trình máy chủ khác về mặt hiệu suất và tính năng phong phú Từ tháng 4 nãm 1996, Apache trở thành một chương trình máy chủ HTTP thông dụng nhất.
Giới thiệu ngôn ngữ PHP
PHP (viết tắt hồi quy "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.
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển cốt lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp.
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn.Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗ trợ dịch vụ web yếu Những điểm này chính là mục đích để Zeev và Andi viết Zend Engine 2.0, lõi của PHP 5.0 PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP.
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SP.
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu,các API cũ sẽ bị đưa ra thành thư viện PECL
Giới thiệu hệ quản trị cơ sở dữ liệu MySql
MySQL là hệ quản trị cơ sở dữ liệu mã 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).
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác, nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
PHÂN TÍCH HỆ THỐNG
Yêu cầu chung
Hệ thống chỉ tiêu được xây dựng và triển khai trên mạng Internet dưới hình thức 1 website có tính linh hoạt cao, dễ sử dụng và an toàn Được xây dựng trên framework có cấu trúc mạch lạc, linh hoạt và mềm dẻo, thuận tiện cho việc bảo trì và nâng cấp.Ngoài ra giao diện trang web thân thiện và dễ sử dụng, giúp người dùng có thể tra cứu thông tin một cách nhanh chóng.
Chức năng nghiệp vụ của hệ thống
3.2.1 Sơ đồ chức năng nghiệp vụ của hệ thống
Bảng 3.1: Chức năng nghiệp vụ của hệ thống
TT Chức năng Mô tả
1 Quản trị hệ thống - Quản lý người dùng
- Quản lý tài khoản quản trị
- Quản lý các kiểu dữ liệu
- Hướng dẫn sử dụng chương trình.
2 Quản lý danh mục - Quản lý các đơn vị cung cấp báo cáo
- Quản lý cấu trúc danh mục chỉ tiêu.
- Quản lý năm báo cáo chỉ tiêu
- Quản lý loại báo cáo
3 Quản lý thông tin chỉ tiêu
- Cập nhật,tạo mới,thêm,sửa xóa thông tin chỉ tiêu.
- Hiển thị thông tin chỉ tiêu.
4 Tổng hợp báo cáo - Cập nhật báo cáo
5 Tra cứu,tìm kiếm thông tin chỉ tiêu
- Tra cứu tìm kiếm theo từ khóa
- Tìm kiếm tổng hợp + Tìm kiếm theo kỳ + Tìm kiếm theo đơn vị báo cáo + Tìm kiếm theo chỉ tiêu
+ Tìm kiếm theo năm báo cáo
- Sơ đồ chức năng nghiệp vụ mức đỉnh của hệ thống:
Hình 3.1 Sơ đồ phân rã chức năng mức đỉnh của hệ thống chỉ tiêu a) Chức năng quản trị hệ thống: Là chức năng dành cho người quản trị hệ thống, giúp hệ thống hoạt động.Chức năng mà người quản trị hệ thống có thể thực hiện là:
- Đăng nhập/đăng xuất khỏi hệ thống quản trị
- Quản lý người dùng: Giúp người quản trị có thể quản lý những người sử dụng website
- Quản lý tài khoản quản trị: Chức năng này chỉ dành cho người quản trị hệ thống ở mức cao nhất, giúp họ có thể quản lý được các tài khoản quản trị cấp dưới.
- Quản lý các kiểu dữ liệu: Chỉ có người quản trị ở cấp cao nhất mới có quyền tạo mới, cập nhật và xóa các kiểu dữ liệu của hệ thống.
Hình 3.2 Sơ đồ phân rã chức năng quản trị hệ thống
Sau đây là mô tả chức năng con của chức năng Quản lý hệ thống:
Hình 3.3 Sơ đồ phân rã chức năng quản lý người dùng
Chức năng quản lý người dùng bao gồm các chức năng con:
- Mở/ khóa tài khoản người dùng: Trong trường hợp người dùng vi phạm các điều khoản của hệ thống, trong thời gian xử lý người quản trị có thể tạm thời khóa tài khoản của người dùng đó và người dùng đó không thể đăng nhập vào tài khoản đó và sử dụng website.Người quản trị có thể mở khóa cho tài khoản này nếu chứng minh người dùng này không vi phạm điều khoản gì.
- Xóa tài khoản người dùng: Chức năng này chỉ có người quản trị có quyền cao nhất mới được sử dụng.
- Phân quyền cho người dùng: Là chức năng cho phép cấp quyền, sửa quyền hay hủy quyền đối với thành viên trong hệ thống.
Hình 3.4 Sơ đồ phân rã chức năng quản lý tài khoản quản trị
Chức năng con của chức năng quản lý tài khoản quản trị:
- Tạo tài khoản quản trị: Chỉ người quản trị có quyền cao nhất mới sử dụng được chức năng này để tạo các tài khoản quản trị cấp dưới.
- Sửa thông tin tài khoản quản trị: Người quản trị có quyền cao nhất mới sửa thông tin của các tài khoản quản trị cấp dưới.Các thông tin thay đổi được bao gồm các thông tin mà tài khoản quản trị cấp dưới sửa được.
- Xóa tài khoản quản trị: Chỉ người quản trị có quyền cao nhất mới sử dụng được chức năng này để xóa các tài khoản quản trị cấp dưới.
Hình 3.5 Sơ đồ phân rã chức năng quản lý phân quyền
Chức năng quản lý phân quyền gồm các chức năng con:
- Tạo mới, sửa, xóa roles: Chức năng này chp phép người quản trị cấp cao nhất sẽ có quyền tạo mới hay sửa, xóa 1 vai trò cho từng nhóm người có quyền như nhau.
- Cập nhật quyền cho roles: Người quản trị cấp cao nhất có quyền cập nhật quyền hạn cho từng vai trò. b) Sơ đồ chức năng quản lý danh mục: Là chức năng mà người quản trị có thể cập nhật, tạo mới và xóa các danh mục cấp 1, cấp 2… của hệ thống như danh mục chỉ tiêu,danh mục năm báo cáo, đơn vị báo cáo…
Hình 3.6 Sơ đồ phân rã chức năng quản lý danh mục c) Sơ đồ chức năng quản lý thông tin chỉ tiêu: Là chức năng giúp người quản trị cập nhật số liệu của các chỉ tiêu và hiển thị lên trang web.
Hình 3.7 Sơ đồ phân rã chức năng quản lý thông tin chỉ tiêu d) Sơ đồ chức năng quản lý báo cáo: Là chức năng mà chỉ người quản trị hệ thống mới được cập nhật các báo cáo.
Hình 3.8 Sơ đồ phân rã chức năng quản lý báo cáo e) Sơ đồ chức năng quản lý tìm kiếm chỉ tiêu: Là chức năng phục vụ người dùng tra cứu, tìm kiếm thông tin chỉ tiêu theo các tiêu chí:
- Tìm kiếm thông tin theo từ khóa
- Tìm kiếm tổng hợp: Tìm kiếm theo chỉ tiêu,tìm kiếm theo năm báo cáo,theo kỳ báo cáo và tìm kiếm theo đơn vị báo cáo.Người dùng bắt buộc phải lựa chọn tất cả các mục trên.
Hình 3.9 Sơ đồ phân rã chức năng tra cứu, tìm kiếm thông tin
3.2.2 Các sơ đồ dòng dữ liệu
Chức năng: là một tiến trình có nhiệm vụ biến đổi thông tin ( thay đồi giá trị, cấu trúc, vị trí của một dữ liệu) để đưa ra những thông tin đáp ứng nhu cầu của hệ thống.
Tên luồng dữ liệu: là một tuyến truyền dẫn thông tin vào hay ra một chức năng nào đó.
Kho dữ liệu: là một dữ liệu đơn hay có cấu trúc được lưu lại để có thể truy cập nhiều lần về sau. Đối tác: là một thực thể ngoài hệ thống, có trao đổi thông tin với hệ thống.
3.2.2.1 Sơ đồ dòng dữ liệu mức ngữ cảnh:
Hình 3.10 Sơ đồ dòng dữ liệu mức ngữ cảnh
3.2.2.2.Sơ đồ dòng dữ liệu mức đỉnh: a Các tác nhân ngoài: Bao gồm đơn vị báo cáo như các doanh nghiệp, huyện, tỉnh, thành phố,… b Các kho dữ liệu:
- Kho dữ liệu chỉ tiêu: Chứa số liệu các chỉ tiêu
- Kho danh mục chỉ tiêu: hệ thống các cấp chỉ tiêu của ngành
- Kho danh sách đơn vị cung cấp báo cáo: Danh sách các doanh nghiệp, huyện, tỉnh ,thành phố… cung cấp báo cáo chỉ tiêu
- Kho năm báo cáo chỉ tiêu: Danh mục các năm báo cáo chỉ tiêu
- Kho kỳ báo cáo chỉ tiêu: Chứa danh mục các kỳ báo cáo như: tháng, quý,năm…
- Kho loại báo cáo: Chứa các danh mục loại báo cáo như: báo cáo định kỳ, báo cáo đột xuất
Hình 3.11 Sơ đồ dòng dữ liệu mức đỉnh của hệ thống
Hình 3.12 Sơ đồ dòng dữ liệu mức 1 chức năng Quản trị hệ thống
Hình 3.13 Sơ đồ dòng dữ liệu chức năng quản lý người dùng
Hình 3.14 Sơ đồ dòng dữ liệu chức năng quản lý tài khoản quản trị
Hình 3.15 Sơ đồ dòng dữ liệu chức năng quản lý danh mục
Hình 3.16 Sơ đồ dòng dữ liệu chức năng quản lý thông tin chỉ tiêu
Hình 3.17 Sơ đồ dòng dữ liệu chức năng quản lý tìm kiếm
Hình 3.18 Sơ đồ dòng dữ liệu chức năng quản lý báo cáo
THIẾT KẾ HỆ THỐNG
Thiết kế cơ sở dữ liệu
4.1.1.Lược đồ quan hệ các thực thể
Hình 4.1 Sơ đồ liên kết thực thể của hệ thống
Hình 4.2 Sơ đồ liên kết thực thể của hệ thống
STT Tên bảng Ý nghĩa bảng
1 blocks Thông tin của block
2 blocks_roles Quyền truy cập block của người dùng
3 content_type_chitieunganhtttt Dữ liệu chỉ tiêu
4 files Thông tin về file được upload
5 filters Lưu giữ nội dung đã được lọc
6 filter_formats Định dạng nội dung được lọc
7 menu_custom Thông tin menu cấp cao nhất
8 menu_links Chứa đường link của menu
9 node Thông tin cơ bản về node
10 node_revisions Lưu trữ các phiên bản của node
11 node_type Thông tin của các kiểu dữ liệu
12 permission Quyền của người dùng
13 role Vai trò của nhóm người sử dụng
14 system Chứa danh sách các module,theme được cài đặt trong hệ thống
15 term_data Lưu trữ thông tin term
16 term_node Lưu trữ mối quan hệ của term tới node
17 term_relation Lưu trữ mối quan hệ giữa các term
18 users Thông tin người dùng
19 users_roles Bảng trung gian liên kết giữa bảng users và roles
20 variable Thông tin các biến của hệ thống
21 views_display Lưu trữ thông tin hiển thị của view
22 views_view Lưu trữ thông tin view
23 vocabulary Lưu trữ thông tin của danh mục
24 vocabulary_node_types Kiểu của danh mục
4.2.1 Chi tiết các bảng dữ liệu a) Bảng Node
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte) nid Trường khóa chính int 10 vid Revision ID của node int 10 type Kiểu dữ liệu Varchar 32 language Ngôn ngữ cài đặt Varchar 12 status Trạng thái của node int 11 uid Mã user int 11 created Thời gian node được tạo int 11 changed Thời gian node được thay đổi int 11 b) Bảng node_revisions
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte) nid Mã node int 10 vid Trường khóa chính int 10 title Tiêu đề node_revision Varchar 255 c) Bảng node_type
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Type Trường khóa chính Varchar 32
Name Tên node_type Varchar 255
Module Module Varchar 255 description Mô tả node_type mediumtext d) Bảng Vocabulary_node_type
Bảng 4.5: Bảng Vocabulary_node_type
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Type Trường khóa chính Varchar 32
Vid Mã vocabulary Int 10 e) Bảng Vocabulary
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Vid Trường khóa chính Int 10
Name Tên danh mục Varchar 255 description Mô tả vocabulary Longtext f) Bảng term_node
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Vid Mã node_revision, trường khóa chính Int 10
Tid Trường khóa chính Int 10
Nid Mã node Int 10 g) Bảng term_data
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước(Byte)
Tid Mã term_node, trường khóa chính Int 10
Name Tên term_data Varchar 255 description Mô tả Longtext
Weight Độ rộng Tinyint 4 h) Bảng users
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte) uid Trường khóa chính Int 10 name Tên Varchar 60 pass Mật khẩu Varchar 64 mail Email Varchar 64 status Trạng thái Tinyint 4 created Thời gian người dùng được tạo Int 11 picture Link ảnh người dùng Varchar 255 i) Bảng role
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Rid Trường khóa chính Int 10
Name Tên vai trò Varchar 64 j) Bảng user_role
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Rid Mã role Int 10 k) Bảng permission
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Pid Trường khóa chính Int 10
Perm Quyền Longtext l) Bảng files
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Fid Trường khóa chính Int 10
Filepath Đường dẫn file Varchar 255 m) Bảng filter
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Fid Trường khóa chính Int 10
Weight Độ rộng Tinyint 4 n) Bảng filter_formats
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Format Trường khóa chính Int 11
Name Tên các định dạng đầu vào Varchar 255
Roles Quyền sử dụng định dạng Varchar 255 o) Bảng blocks
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte) bid Trường khóa chính Int 11 delta ID duy nhất cho khối trong 1 modul Varchar 32 theme Theme cài đặt cho khối Varchar 64 status Trạng thái kích hoạt block Tinyint 4 weight Độ lớn Tinyint 4
Region Thiết lập khu vực cho khối Varchar 64 custom Khả năng hiển thị của khối Tinyint 4 visibility Cờ để hiển thị các khối trên trang Tinyint 4 title Tiêu đề block Varchar 64 throttle Loại bỏ khối khi web có lượng truy cập cao Tinyint 4 p) Bảng System
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Filename Trường khóa chính Varchar 255
Status Trạng thái tập tin được kích hoạt hay không int 11 q) Bảng finder
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Finder_id Trường khóa chính int 11
Path Đường dẫn finder Varchar 11
Setting Thông tin cài đặt finder longtext r) Bảng finder_element
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte) finder_element_id Trường khóa chính int 10
Finder_id Trường khóa ngoài int 11
Title Tiêu đề element Varchar 255
Weight Độ rộng element int 11
Setting Thông tin cài đặt longtext s) Bảng menu_custom
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Menu _name Trường khóa chính Varchar 32
Description Mô tả Text t) Bảng menu_link
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Mlid Trường khóa chính int 10
Menu_name Tên menu Varchar 32
Liên kết cấp trên hoặc là 0 nếu liên kết là ở đầu cấp tong trình đơn int 10
Module Tên module tạo ra liên kết này Varchar 255
Depth Độ sâu tương đối so với mức cao nhất smallint 6
Customized Cờ cho biết người dùng có thể sửa liên kết smallint 6 u) Bảng variable
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Name Trường khóa chính Varchar 128
Value Giá trị của biến longtext v) Bảng views_view
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Vid Trường khóa chính int 10
Name Tên view Varchar 32 description Mô tả view Varchar 255 w)Bảng view_display
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Vid Trường khóa chính int 10
Id Trường khóa chính Varchar 64 display_title Tiêu đề hiển thị Varchar 64
Position Vị trí hiển thị int 11 x) Bảng search_dataset
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Sid Trường khóa chính, mã của đối tượng tìm kiếm int 10
Type Kiểu của đối tượng tìm kiếm Varchar 16
Data Danh sách các thông tin của đối tượng tìm kiếm longtext y) Bảng search_index
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Word Trường khóa chính,từ khóa tìm kiếm Varchar 50
Sid Trường khóa ngoài int 10
Type Kiểu của đối tượng tìm kiếm Varchar 16 z) Bảng search_total
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte)
Word Trường khóa chính, từ khóa tìm kiếm Varchar 50
Count Số lần tìm kiếm từ khóa fload aa) Bảng content_type_chitieunganhtttt
Bảng 4.28 Bảng content_type_chitieunganhtttt
Thuộc tính Diễn giải Kiểu dữ liệu Kích thước (Byte) vid Trường khóa chính int 10 nid Trường khóa ngoại int 10 field_sokehoach_value Số kế hoạch Decimal 10,2 field_sochinhthuc_value Số chính thức Decimal 10,2 field_sothuchien_value Số thực hiện Decimal 10,2 field_ghichu_value Ghi chú Text field_filegan_list Số file gắn kèm tinyint 4 field_filegan_data Dữ liệu file gắn Text
Thiết kế giao diện
Hình 4.3 Trang chủ/Trang tìm kiếm thông tin chỉ tiêu
4.2.2 Trang đăng ký/đăng nhập
4.2.3 Trang thông tin chỉ tiêu khi tìm kiếm
Hình 4.6 Trang thông tin chỉ tiêu khi tìm kiếm
4.2.4 Trang tạo thông tin chỉ tiêu
Hình 4.7 Trang tạo thông tin chỉ tiêu
4.2.5 Trang quản lý danh sách chỉ tiêu
Hình 4.8 Trang quản lý danh sách chỉ tiêu
4.2.6 Trang sửa thông tin chỉ tiêu
Hình 4.9 Trang sửa thông tin chỉ tiêu
4.2.7 Trang quản lý người dùng
Hình 4.10 Trang quản lý người dùng
4.2.8 Trang quản lý thông tin người dùng
Hình 4.11 Trang quản lý thông tin người dùng
4.2.9 Trang quản lý thông tin block
Hình 4.12 Trang quản lý thông tin block
Hình 4.13 Trang quản lý thông tin block
HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG
Hướng dẫn cài đặt
5.1.1.Cài đặt môi trường giả lập xampp 1.6.7
Xampp là môi trường tạo máy chủ web trên máy tính cá nhân (localhost) tích hợp cả Apache, Mysql, PHP, FTP Server, Mail server với công cụ phpMyAdmin.Xampp được download và sử dụng miễn phí tại địa chỉ: http://www.apachefriends.org/en/xampp-windows.html
Cách cài đặt như sau:
- Chạy chương trình cài đặt Xampp Intaller, bảng chọn ngôn ngữ xuất hiện, chọn English và nhấn Ok.
- Khi xuất hiện bảng Welcome to the Xampp Setup Wizard, nhấn Next.
- Trong License Agrement chọn I accept the Agreement, nhấn Next.
- Trong Select Destination Location, chọn nơi cài đặt Xampp, nhấn Next.
Hình 5.1 Bảng Choose Install Location
- Trong bảng XAMPP Options, giữ nguyên mặc định của Xampp và nhấn Install.
- Chương trình sẽ tiến hành cài đặt và cuối cùng nhấn Finish để kết thúc việc cài đặt Chương trình sẽ hỏi bạn có muốn mở bảng điều khiển không, hãy chọn No vì còn 1 vài thông số chúng ta cần điều chỉnh.
Thư mục gốc root để chứa các trang web mặc định của Xampp Tất cả các website và các thư mục chứa website đều phải đặt vào thư mục Web root là htdocs mới hoạt động được.
Mở bảng điều khiển điều khiển Xampp bằng cách nhấn vào XAMPP
Control Panel trên Desktop Khởi động apache và Mysql bằng cách nhấn Start trên bảng điều khiển.
Hình 5.3 Bảng Xampp Control Panel
Bây giờ thư mục gốc (Web Root) để chứa các trang web là D:\www Bạn cũng có thể Copy các File trong thư mục D:\xampp\htdocs vào thư mục D:\www, sau đó mở chương trình duyệt web (Internet Explorer, Firefox ), trong ô địa chỉ bạn nhập vào: http://localhost nếu hiện lên bảng thông số của Xampp là việc cài đặt đã thành công
- Download bộ cài đặt drupal-6.16.tar tại trang web: http://drupal.org/
- Sau khi download xong, bạn tiến hành giải nén thư mục của Drupal và trong thư mục gốc chứa các file chạy website của Xampp Thông thường là thư mục xampp/htdocs Tên thư mục tùy chọn, ở đây tôi đặt là bgchitieu Lưu ý khi giải nén thư mục và file của Drupal được đặt trong thư mục nén có tên Drupal-6.x.Cần đổi tên nó thành bgchitieu.
- Bước tiếp theo là tạo Sql database cho bgchitieu Trong ô Creat new database, bạn hãy nhập tên bất kỳ SQL database bạn muốn khởi tạo Ở đây tôi đặt tên là bgchitieu Sau đó nhấn nút Create để tạo Database này.
Hình 5.4 Bảng tạo cơ sở dữ liệu
Bước tiếp là vào thư mục xampp\htdocs\drupalblog\sites\default Copy file default.settings.php ra 1 file có tên là settings.php.File này để ghi lại các thông số mà mình đã thiết lập.
Tiếp theo là truy cập vào trang http://localhost/bgchitieu để tiến hành cấu hình cho website Màn hình có dạng như hình 5.5
Hình 5.5 Bảng cài đặt ngôn ngữ cho website
Click chọn Install Drupal in English để sang bước tiếp theo
- Tiếp theo điền các thông số như hình 5.6 ằ Database name: Tờn cơ sở dữ liệu mà bạn tạo ở hỡnh 5.4 ằ Database username: Là tờn truy cập vào database bgchitieu Ở đõy do cài đặt trên localhost, nên bạn khai báo là root cho tiện và không cần khai báo password. ằ Trong phần advance option: Trong phần Advance option cú cỏc ụ cho bạn lựa chọn Nếu sử dụng 1 số shared host free, phần này là rất cần thiết Vì Database host: của bạn sẽ không phải là localhost như mặc định, mà là IP, hoặc domain do shared host đó cung cấp VD như có thể là sql.vinazoom.com, hay sql8383.byethost.com v v Phần Database port: là cổng cấp cho dịch vụ của Mysql Mặc định là 3306 có thể không cần điền vào Nếu bạn tự cấu hình cho service MySQL ở cổng khác thì điền số cộng vào VD 1587 chẳng hạn Phần Table prefix: là tiếp đầu ngữ các
Database này thì có thể không cần điền Nếu như bạn cài chung Database với các CMS hoặc Source khác như Joomla, VBB, v v để có thể tiện cho việc dùng chung các tài khoản User cho Bridge sau này thì có thể điền giá trị là dru_ Nhấn Save and Continue để đến bước tiếp theo.
Hình 5.6 Bảng cấu hình database
- Tiếp theo điền thông tin username là tên tài khoản trị chính Và password là mật khẩu của tài khoản quản trị chính.
Hình 5.7 Bảng thông tin của website
Nếu cài đặt thành công Dupal sẽ hiện ra dòng thông báo Drupal InstallationComplete Congratulations, Drupal has been successfully installed.
5.1.3 Cài đặt module cho Drupal
- Download các module ở trang http://drupal.org/
- Giải nén các module cần thiết vào đúng thư mục cài đặt Drupal là site/all/modules/
- Sau khi đã upload thành công, vào trang điều hành của Drupal, kích hoạt các module mà chúng ta muốn sử dụng
Hướng dẫn sử dụng
5.2.1 Hướng dẫn cho người dùng website a) Đăng ký tài khoản
Hình 5.8 Bảng tạo tài khoản
- Đăng ký tài khoản, điền đầy đủ thông tin username và email Người quản trị sẽ cấp mật khẩu cho tài khoản
- Sau khi điền thông tin nhấn Create new account để tạo tài khoản. b) Tìm kiếm thông tin chỉ tiêu
Hình 5.9 Tìm kiếm theo từ khóa
- Người dùng chọn nội dung tìm kiếm ở Search for và nhập từ khóa vào ô text
Search this site.Sau đó nhấn nút Search để nhận kết quả tìm kiếm.
Hình 5.10 Tìm kiếm tổng hợp
- Để tìm kiếm người dùng phải chọn thông tin tìm kiếm ở cả 4 mục là: Đơn vị báo cáo, năm, chọn chỉ tiêu, kỳ báo cáo Giữ Ctrl để chọn nhiều giá trị tìm kiếm.
- Nhấn Tìm kiếm để nhận được kết quả tìm kiếm. c Hiển thị thông tin chỉ tiêu theo ngành
Hình 5.11 Menu thông tin chỉ tiêu theo lĩnh vực
- Người dùng có thể xem thông tin chỉ tiêu theo từng ngành bằng cách chọn các lĩnh vực trên menu Hình 5.11.Sẽ được kết quả như hình 5.12.
Hình 5.12 Kết quả tìm kiếm
- Người sử dụng có thể nhấn vào Chọn bản in để in ra kết quả tìm kiếm hoặc chọn Xuất ra file PDF để xuất kết quả tìm kiếm ra file pdf
Hình 5.13 In kết quả tìm kiếm
Hình 5.14 Xuất kết quả tìm kiếm ra file pdf
5.2.2 Hướng dẫn quản trị a) Đăng nhập vào hệ thống
Hình 5.15 Đăng nhập hệ thống Để đăng nhập vào hệ thống quản trị, điền thông tin Username và Password vào khung đăng nhập rồi ấn nút Login. b) Các thanh điều hướng
Hình 5.16 Thanh điều hướng User management
- Permissions: Phân quyền người dùng
- Roles: Vai trò người dùng
- Taxonomy access permissions: Phân quyền truy cập taxonomy cho người dùng
- Users: Quản lý danh sách tài khoản
Hình 5.17 Thanh điều hướng Site building
- Blocks: Quản lý danh sách, thông tin blocks
- Finder: Quản lý thông tin Finder, có thể tạo mới, sửa ,xóa Finder
- Menus: Quản lý thông tin Menu, có thể tạo mới, sửa ,xóa Menu
- Modules: Quản lý cài đặt, gỡ bỏ các module
- Themes: Quản lý cài đặt, gỡ bỏ các theme
- Views: Quản lý thông tin Finder, có thể tạo mới, sửa ,xóa View
Hình 5.18 Thanh điều hướng Content managements
- Content: Quản lý danh sách, thông tin chỉ tiêu Có thể sửa lại dữ liệu chỉ tiêu tại đây.
- Content types: Quản lý các kiểu dữ liệu cơ bản của hệ thống và các kiểu dữ liệu mới tạo ra.
- Taxonomy: Quản lý các danh mục.Cho phép tạo mới, sửa, xóa vocabulary và term.