Hình 1 Kiến trúc DrupalHình 2 Nhân Drupal Hình 3 Sơ đồ Use- case Hình 4 Sơ đồ tuần tự cho chức năng đăng nhập Hình 5 Sơ đồ tuần tự cho chức năng quản lý tin tức Hình 6 Sơ đồ tuần tự cho
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG
Trang 2PHIẾU GIAO NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
1 Thông tin về sinh viên:
Họ và tên sinh viên:
Đồ án tốt nghiệp được thực hiện tại: Bộ môn Công nghệ phần mềm
Thời gian làm ĐATN: Từ ngày 24/02/2011 đến 27/05/2011
2 Mục đích nội dung của ĐATN
Nghiên cứu hệ quản trị nội dung mã nguồn mở Drupal và ứng dụng để xây dựng website bán hàng trực tuyến
3 Các nhiệm vụ cụ thể của ĐATN
- Tìm hiểu hệ quản trị mã nguồn mở Drupal về lý thuyết, các thành phần chức năng, cách sử dụng
- Trên cơ sở lý thuyết đã tìm hiểu kết hợp với khảo sát, phân tích thiết kế để ứng dụng vào việc xây dựng website bán hàng trực tuyến
4 Lời cam đoan của sinh viên:
Tôi - cam kết ĐATN là công trình nghiên cứu của bản thân tôi dưới sự hướng dẫn của
Hà Nội, ngày tháng 05 năm 2011
Giáo viên hướng dẫn
TÓM TẮT NỘI DUNG ĐỒ ÁN TỐT NGHIỆP
Trang 3Nội dung đồ án tốt nghiệp bao gồm
Nội dung đồ án tốt nghiệp gồm phần mở đầu , 4 chương và kết luận
Phần mở đầu : Giới thiệu đề tài , xác định mục tiêu , nội dung và phạm vi thực hiện
của đồ án tốt nghiệp
Chương 1 – Tổng quan về Drupal : Giới thiệu tổng quan về hệ quản trị nội dung
CMS, tìm hiểu hệ quản trị Drupal về nguồn gốc , bản chất , kiến trúc , các thành phầnchức năng và phạm vi ứng dụng trong việc xây dựng website
Chương 2 – Khảo sát và đặc tả yêu cầu: nêu các kết quả khảo sát hiện trạng thực tế ,
từ đó đưa ra các đặc tả yêu cầu đối với một website bán hàng trực tuyến, cụ thể làwebsite bán hàng – đồ nội thất
Chương 3 – Phân tích và thiết kế : Trình bày các hồ sơ phân tích , thiết kế và xây
dựng hệ thống
Chương 4 – Cài đặt website : Trình bày các cách cụ thể để cài đặt , xây dựng hệ
thống, các chức năng trong hệ thống
Kết luận : Đánh giá về đồ án, kết quả đạt được và các mặt còn hạn chế , từ đó đưa ra
hướng phát triển hệ thống trong tương lai
ABSTRACT OF THESIS
Trang 4MỤC LỤC
Trang 5PHẦN MỞ ĐẦU 1 CHƯƠNG 1 – TỔNG QUAN LÝ THUYẾT VỀ DRUPAL 4
1.1 Tổng quan về hệ quản trị nội dung 4
1.1.1 Khái niệm về hệ quản trị nội dung 4
1.1.2 Đặc điểm 4
1.1.3 Phân loại 5
1.1.4 Một số hệ quản trị nội dung tiêu biểu : 6
1.2 Lý do chọn hệ quản trị Drupal 6
1.3 Tìm hiểu hệ quản trị nội dung – Drupal 8
1.3.1 Khái niệm về Drupal 8
1.3.2 Lịch sử phát triển của Drupal 9
1.3.3 Nền tảng 9
1.3.4 Kiến trúc Drupal 9
1.3.5 Chức năng của các module trong Drupal 12
1.3.6 Một số giải thưởng của Drupal 15
1.3.7 Một số trang web viết bằng Drupal 15
CHƯƠNG 2 – KHẢO SÁT VÀ ĐẶC TẢ YÊU CẦU 17 2.1 Khảo sát yêu cầu của một cửa hàng bán đồ nội thất 17
2.2 Đặc tả yêu cầu 18
2.2.1 Giới thiệu 18
2.2.2 Mô tả tổng thể 19
2.2.3 Các yêu cầu giao tiếp 23
2.2.4 Các yêu cầu phi chức năng 24
CHƯƠNG 3 – PHÂN TÍCH THIẾT KẾ 25 3.1 Sơ đồ Use- case 26 3.2 Phân tích User Case 27
3.2.1 Danh sách các tác nhân của mô hình 27
3.2.2 Đăng ký tài khoản 27
3.2.3 Đăng nhập 28
3.2.4 Tìm kiếm thông tin 29
3.2.4 Xem sản phẩm 29
Trang 63.2.5 Xem thông tin 30
3.2.6 Đưa hàng vào giỏ 30
3.2.7 Quản lý giỏ hàng 31
3.2.8 Quản lý sản phẩm 32
3.2.9 Quản lý người dùng 33
3.3 Sơ đồ tuần tự 35
3.3.1 Đăng nhập 35
3.3.2 Quản lý tin tức 36
3.3.3 Quản lý sản phẩm 36
3.3.4 Quản lý người dùng 37
3.3.5 Xem sản phẩm theo danh mục sản phẩm 39
3.3.6 Quản lý giỏ hàng 39
3.3.7 Thanh toán, đặt hàng 40
3.4 Biểu đồ lớp 40
3.5 Tổ chức dữ liệu 41
3.6 Thiết kế giao diện 49
3.6 1.Thiết kế giao diện bên ngoài 49
CHƯƠNG 4 - CÀI ĐẶT WEBSITE 54 4.1 Cài đặt ứng dụng và các modules sử dụng 54
4.1.1 Cài đặt 54
4.1.2 Các modules sử dụng 54
4.2 Hiện thực một số giao diện chính cho website 55
KẾT LUẬN 63 TÀI LIỆU THAM KHẢO 64
DANH MỤC CÁC HÌNH ẢNH
Trang 7Hình 1 Kiến trúc Drupal
Hình 2 Nhân Drupal
Hình 3 Sơ đồ Use- case
Hình 4 Sơ đồ tuần tự cho chức năng đăng nhập
Hình 5 Sơ đồ tuần tự cho chức năng quản lý tin tức
Hình 6 Sơ đồ tuần tự cho chức năng quản lý sản phẩm
Hình 7 Sơ đồ tuần tự cho chức năng quản lý xóa sửa người dùng
Hình 8 Sơ đồ tuần tự cho chức năng quản lý vai trò người dùng
Hình 9 Sơ đồ tuần tự cho chức năng xem sản phẩm theo danh mục sản phẩmHình 10 Sơ đồ tuần tự cho chức năng quản lý giỏ hàng
Hình 11 Sơ đồ tuần tự cho chức năng thanh toán đặt hàng
Hình 12 Biểu đồ lớp
Hình 13 Sơ đồ thực thể quan hệ
Hình 14 Thiết kế giao diện trang chủ
Hình 15 Thiết kế giao diện giỏ hàng
Hình 16 Sitelink _ Khách hàng chưa có tài khoản
Hình 17 Sitelink _ Khách hàng có tài khoản
Hình 18 Sitemap_ Aministartor _ Người quản lý đăng sản phẩm, bài viếtHình 19 Tranh chủ
Hình 26 Trang báo cáo
Hình 27 Trang quản lý người dùng
Trang 8PHẦN MỞ ĐẦU
Ngày nay trước sự bùng nổ của hệ thống mạng toàn cầu Internet và những lợi ích
vô cùng to lớn của nó mang lại đã thực sự thu hút và chinh phục con người Sự pháttriển của Internet trên toàn thế giới kéo theo sự ra đời và mở rộng của một thị trườngkhách hàng mới đầy tiềm năng - cộng đồng người sử dụng Internet Do vậy Internet
đã và đang đem lại cho các doanh nghiệp một cơ hội lớn để có thể bán hàng hóa.Những trang web thương mai điện tử ra đời là minh chứng rõ ràng nhất cho một giảipháp hiệu quả , một hướng đầu tư khôn ngoan, thể hiện sự năng động, bắt kịp thời đại,tính chuyên nghiệp của doanh nghiệp Thông qua các website, các doanh nghiệp có thể
sử dụng internet như một phương tiện truyền thông tốt nhất trong việc quảng bá và tiếpthị hình ảnh của mình một cách sinh động và hiệu quả hơn bất kì một phương tiện đơn
lẻ khác có thể thể đáp ứng được Từ đó nhanh chóng tạo cho mình cơ hội tiếp cận vớikhách hàng trên diện rộng phát triển cơ hội liên kết và hợp tác làm ăn trên phạm vitrong và ngoài nước
Cùng với làn sóng phát triển của thương mại điện tử , là sự phát triển không ngừngcủa các công cụ , ngôn ngữ lập trình web , các hệ quản trị nội dung Hiện tại, cácwebsite được thiết kế trên nền mã nguồn mở như Joomla, Drupal, wordpress đangrấtđược ưa chuộng và thịnh hành Mã nguồn mở đang trở thành một xu hướng mới, mộtngười không biết lập trình cũng có thể thiết kế website động với đầy đủ chức năngthông qua mã nguồn mở Đặc biệt là Drupal – một framework quản trị hệ thốngwebsite ổn định, mạnh mẽ và đầy hứa hẹn - được đánh giá tốt nhất vào năm 2007 và
2008 Sự ổn định và mạnh mẽ đó xuất phát ngay từ trong nhân của nó khiến choDrupal được tin dùng cho các website lớn có lượng người truy cập cao như websitethương mại điển tử, cùng với sự linh hoạt trong nền tảng sẽ giúp cho các lập trình viên
có thể lập trình mở rộng website của họ theo bất kỳ hướng nào, tính năng nào mà hầunhư không gặp khó khăn gì
Mặt khác nhu cầu về cái ăn, cái mặc, chỗ ở là vấn đề không thể thiếu đối với conngười trong mọi thời đại xã hội Trong đó, nhà ở là điều kiện đầu tiên mà con ngườiphải hướng tới trong cuộc sống Căn nhà là nơi mang lại sự an vui thoải mái nhằmkhông ngừng nâng cao đời sống vật chất và tinh thần của con người Căn nhà khôngchỉ đơn thuần là nơi trú ngụ mà nó thực sự là tổ ấm đối với mỗi con người, giúp tathoải mái, tự tin, lấy lại sự bình yên sau những giờ làm việc căng thẳng mệt mỏi.Trong thời đại ngày nay, cuộc sống hằng ngày của chúng ta không chỉ đơn thuần làthỏa mãn nhu cầu vật chất mà còn phải hưởng thụ về tinh thần để từ đó hoàn thiện dầnnhân cách, nâng cao thị hiếu thẩm mỹ và chất lượng sống Và cuộc sống của chúng ta
đa phần diễn lại ra ở bên trong những không gian nội thất, chính vì vậy mà nhu cầu về
đồ nội thất sẽ ngày càng trở nên thiết yếu hơn, khét khe hơn trong đời sống hiện đại Trước những nhu cầu thực tế đó , và sự mạnh mẽ nổi trội của Drupal, em sẽ vậndụng xây dựng Website bán hàg trực tuyến qua mạng _ với sản phẩm là đồ nội thất.Mục đích tạo cơ hội cho doanh nghiệp quản bá sản phẩm ,xây dựng thương hiệu sốcũng như khai thác triệt để nguồn khách hàng và đối tác đến từ mạng lưới internet, tạo
Trang 9sự thuận tiện , nhanh chóng , an toàn trong giao dịch , buôn bán sản phẩm , mang lại
sự hài lòng cho cả người bán lẫn người mua
Mục tiêu của đề tài là : Tìm hiểu hệ quản trị mã nguồn mở Drupal về lý thuyết , cácthành phần chức năng , thao tác , cấu hình và cách sử dụng Trên cơ sở lý thuyết đãtìm hiểu để ứng dụng và việc xây dựng một website bán hàng qua mạng
Phạm vi đối tượng của đề tài : Website được xây dựng hỗ trợ cho các cá nhân ,công ty , cơ quan , có nhu cầu quảng bá sản phẩm đồ nội thất , cũng như quản lýbuôn bán sản phẩm
Em xin gửi lời cảm ơn chân thành đến tất cả các thầy cô trong trường Đại học BáchKhoa Hà Nội nói chung và các thầy cô trong viện Công Nghệ Thông Tin và TruyềnThông, bộ môn Công Nghệ Phần Mềm nói riêng đã tận tình giảng dạy, truyền đạt cho
em những kiến thức, kinh nghiệm cần thiết và quý báu trong suốt thời gian qua
Đặc biệt em xin tỏ lòng biết ơn sâu sắc tới thầy giáo – Thạc sĩ Đỗ Văn Uy, giảngviên Bộ môn Công nghệ phần mềm, đã hướng dẫn em làm đồ án tốt nghiệp Trongsuốt thời gian thực hiện luận văn thầy luôn tạo điều kiện tốt nhất và tận tình hướngdẫn, giúp đỡ em
Tiếp đến con cũng xin gửi lòng biết ơn sâu sắc đến Ba Mẹ và gia đình đã nuôi dạycon nên người, cảm ơn sự giúp đỡ và những lời động viên quý báu của các bạn bè Cuối cùng, em xin kính chúc các thầy cô luôn luôn mạnh khỏe tiếp tục đạt đượcnhiều thắng lợi trong sự nghiệp nghiên cứu khoa học và sự nghiệp giáo dục vĩ đại củamình
Nội dung đồ án tốt nghiệp gồm phần mở đầu , 4 chương và kết luận
Trang 10Phần mở đầu : Giới thiệu đề tài , xác định mục tiêu , nội dung và phạm vi thực hiệncủa đồ án tốt nghiệp
Chương 1 – Tổng quan về Drupal : Giới thiệu tổng quan về hệ quản trị nội dung CMS,tìm hiểu hệ quản trị Drupal về nguồn gốc , bản chất , kiến trúc , các thành phần chứcnăng và phạm vi ứng dụng trong việc xây dựng website
Chương 2 – Khảo sát và đặc tả yêu cầu: nêu các kết quả khảo sát hiện trạng thực tế ,
từ đó đưa ra các đặc tả yêu cầu đối với một website thương mai điện tử , cụ thể làwebsite bán hàng – đồ nội thất
Chương 3 – Phân tích và thiết kế : Trình bày các hồ sơ phân tích , thiết kế và xây dựng
Trang 11CHƯƠNG 1 – TỔNG QUAN LÝ THUYẾT VỀ DRUPAL
1.1 Tổng quan về hệ quản trị nội dung
1.1.1 Khái niệm về hệ quản trị nội dung
Hệ quản trị nội dung, cũng được gọi là hệ thống quản lý nội dung hay CMS (viếttắt của cụm từ Content Management System trong tiếng Anh ) là phần mềm để tổchức và tạo môi trường cộng tác thuận lợi nhằm mục đích xây dựng một hệ thống tàiliệu và các loại nội dung khác một cách thống nhất Mới đây thuật ngữ này liên kếtvới chương trình quản lý nội dung của website Quản lý nội dung web (web contentmanagement) cũng đồng nghĩa như vậy
Chúng ta có thể hình dung CMS nh ư là một hệ điều hành trên máy tính, ngh ĩa
là CMS được sử dụng làm nền tảng để chạy những ứng dụng khác Ngoài ra, CMSgiống như một thư viện, nó cung cấp những hàm, lớp cơ bản để những người pháttriển web khác có thể sử dụng, t ùy biến, chỉnh sửa để CMS th ành một trang webphục vụ đ úng nhu cầu của mình
CMS = Khởi tạo nội dung Quản lý quá trình xử lý nội dung đó Phân phối nội dungtới người dùng đầu cuối
1.1.2 Đặc điểm
Một CMS hay hệ thống quản lý nội dung được sử dụng để điều khiển và chỉnh sửanội dung Nội dung bao gồm tệp tin điện tử, hình ảnh, video, file âm thanh, tài liệuđiện tử và văn bản web Khái niệm chính đằng sau một CMS là tạo ra những tập tin cósẵn cho việc chỉnh sửa nội bộ hoặc trên nền Internet Một CMS thường được sử dụng
để lưu trữ tài liệu rất tốt Hệ thống quản lý nội dung trang web chủ yếu được sử dụng
để kiểm soát và xuất bản các văn bản dựa trên các tài liệu như bài viét, tài liệu dạngvăn bản và thông tin Một CMS bình thường có thể cung cấp các tính năng, đặc điểm
cơ bản sau đây:
Giao diện quản trị
Trang 12 Một khả năng để chỉ định một số vai trò và quyền lợi cùng với hệ thốngquản lý tài liệu với các kiểu nội dung khác nhau các chuyên mục.
Xác định cho việc quản lý và sơ đồ công việc của hệ thống,đưa ra địnhnghĩa, nhiệm vụ, và thậm chí có thể gắn liền với thông điệp để các nhà quản lýnội dung sẽ được thông báo về các thay đổi nội dung một cách cụ thể
Một khả năng để ghi chép, theo dõi và quản lý rất nhiều các phiên bảncủa cùng một nội dung hay tập tin - một hệ thống quản lý tài liệu với nhiềuphiên bản
Một khả năng để xuất bản nội dung vào một khu lưu trữ tập trung, để tạođiều kiện lớn hơn truy cập vào nội dung Quan trọng hơn là với thời gian, khonày là một yếu tố quan trọng của hệ thống CMS, tích hợp và tìm kiếm và cácphương pháp thu hồi
Một số hệ thống quản lý nội dung (CMS) cho phép dùng định dạng củamột số văn bản trong tài liệu như: phông chữ, màu sắc, bố trí bố cục…
Một hệ thống quản lý trang web nội dung (CMS) được thiết kế để chạytrên nền tảng của một website công cộng Nó cho phép quản trị viên chỉnh sửanội dung thông qua một bảng quản trị mà sau đó sẽ hiển thị lên website ThôngThường có admins, copy wriers hoặc editors Bằng cách sử dụng một hệ thốngkiểm soát đặc biệt truy cập thông qua các trình duyệt web người khởi tạo vàbiên tập viên có thể quản lý dữ liệu trong CMS Tổng thể các hệ thống quản trịnội dung (CMS) kiểm soát và cho phép quản trị viên quản lý công việc và cácquy trình kinh doanh
Nói chung tất cả các nội dung trong CMS được lưu trữ trực tuyến trongmột hệ thống cơ sở dữ liệu SQL Đây là hệ thống database cho phép truy cập
dễ dàng và nhanh chóng đồng thời bảo mật mạnh mẽ và hệ có hệ thống backup
Trang 13 P-CMS (Publications CMS): Hỗ trợ việc quản lý các loại ấn phẩm trựctuyến (sổ tay, sách, trợ giúp, tham khảo ).
L-CMS/LCMS (Learning CMS): Hỗ trợ việc quản lý đào tạo dựa trênnền Web
BCMS (Billing CMS): Hỗ trợ việc quản lý Thu chi dựa trên nền Web
Drupal được biết đến như một hệ quản trị nội dung ổn định và mạnh mẽ, sự ổn định
và mạnh mẽ từ nhân của Drupal khiến cho Drupal được tin dùng cho các website lớn
có lượng người truy cập cao Sự linh hoạt trong nền tảng của Drupal giúp cho các lậptrình viên có thể lập trình mở rộng website của họ theo bất kỳ hướng nào, tính năngnào mà hầu như không gặp khó khăn gì
Drupal được xây dựng với mục đích giúp người quản lý Web dễ quản trị hệ thốngWeb trên Internet một cách hữu hiệu Điểm khác biệt giữa mô hình Drupal so với các
mô hình khác như joomla , wordpress, siteframe là Drupal phát triển dựa trên nềntảng modules (mô đun), mà trong đó mỗi module được một người hay một nhómngười phát triển riêng biệt, sau đó các modules này được kết nối lại thông qua cácqui ước thông số được định sẵn để hình thành một mô hình rộng lớn có nhiều chứcnăng hơn. Các modules này được tháo gỡ ra khỏi phần lõi Drupal hoặc chúng nângcấp cũng khá dễ dàng. Chính vì Drupal phát triển dựa trên khái niệm module, mà môhình Drupal càng ngày càng phình ra và có nhiều chức năng hơn so với các mô hìnhkhác Mỗi module có một hoặc nhiều chức năng riêng với cấu hình cục bộ (cục bộbên trong module đó) riêng. Hiện nay có trên cả hàng trăm modules Ví dụ nhưmodule có tên Search - dùng để tìm kiếm, tên Whois - dùng để tìm thông tin về mộttên miền (domain name), tên Image - dùng để xem hình, tên fckeditor - dùng để viếtbài (giống Microsoft Word) Người quản lý hay một lập trình viên có thể kếtnối những modules này lại để chúng làm việc tương tác qua lại các modules liên
hệ khác để hình thành một ứng dụng lớn
Trang 14Ưu điểm của Drupal
- Nền tảng mạnh mẽ, ổn định, mã nguồn được tối ưu nâng cao hiệu suất hoạt độnggiúp tiết kiệm nguyên của hệ thống Là nền tảng vững chắc cho các website có lượngtruy cập lớn như BBC England, MTV
- Hệ thống CMS nhỏ, dung lượng bé, tốc độ tải site nhanh
- Việc can thiệp tùy chỉnh chức năng dễ dàng mà không phải chỉnh sửa và core của hệthống , khiến nó có thể dễ dàng cập nhật , nâng cấp
- Drupal cung cấp rất nhiều tags , chức năng được sử dụng để phát triển mạng hơn sovới joomla và wordpress Drupal dàng cho những người có chút hiểu biết về code
- Cấu trúc linh hoạt giúp các lập trình viên mở rộng chức năng không hạn chế theonhu cầu sử dụng
- Với hệ thống module đồ sộ , đa chức năng , có thể đáp ứng tốt hầu hết chức năng củawebsite thông thường
- Drupal cực kỳ thân thiện với công cụ tìm kiếm, đó là một lợi thế rất lớn khi SEOluôn là một vấn đề được quan tâm đối với bất kỳ trang web nào
- Tính năng Multiple giúp bạn có nhiều website với một lần cài đặt Drupal Giúp bạnđiều khiển và quản lý dễ dàng hơn
- Drupal chạy được cả trên server Linux và Windows trong khi Jooma chỉ chạy tốttrên server Linux
- Cho phép nhiều loại user groups , user permissions , OpenID trong phiên bảnDrupal 6
- Có hệ thống làm template mạnh mẽ Bất kì một template XHTML hay CSS nào đều
có thể chuyển sang Drupal
- Code và API trong drupal rất rõ rang
- Linh hoạt , không có giới hạn
- Cộng đồng Drupal là mạnh hơn Joomla, dễ dàng luôn luôn nhận được câu trả lời chocâu hỏi Drupal trong diễn đàn của họ, điều này khó mà tìm thấy được ở trong diễnđàn Joomla
Tuy nhiên ở Drupal vẫn còn tồn tại những nhược điểm như :
- Drupal được đánh giá là khó sử dụng với người dùng mới
- Không thân thiện và tạo hứng thú cho những người thích thiết kế phần giao diện ,hoa mĩ
- Drupal có ít các thành phần mở rộng (extensions) hơn Joomla Mỗi khi có phiên bảnDrupal mới bạn phải chờ các nhà cung cấp nâng cấp extensions của họ để tương thích
- Cách bố trí của website Drupal khiến người mới sử dụng khó tìm kiếm và đánh giánên dùng extensions nào
Sau một vài đánh giá, phân tích những ưu, nhược điểm như trên, em quyết địnhchọn Drupal để nghiên cứu , tìm hiểu sâu hơn và từ đó xây dựng một ứng dụng riêngcho đề tài của mình – xây dựng website bán hàng trực tuyến
1.3 Tìm hiểu hệ quản trị nội dung – Drupal
1.3.1 Khái niệm về Drupal
Trang 15Trong thế giới thiết kế web, có khá nhiều hệ quản trị nội dung ( CMS) từ các loạiCMS trả phí đến các CMS mã nguồn mở do cộng đồng xây dựng, và các nền tảng hỗtrợ xuất bản khác nhau về công nghệ sử dụng, cấu trúc tổ chức, khả năng thực thi và
cả bản quyền sử dụng Một số CMS nổi tiếng như Drupal, WordPress, Movable Type,Joomla! và Textpatter, đã phát triển ổn định, được đông đảo mọi người sử dụng từgiới chuyên môn cho đến những người không chuyên chấp nhận Hàng năm cuộc bìnhchọn hệ thống quản trị nội dung (CMS) mã nguồn mở tốt nhất do nhà xuất bản Packtluôn được tổ chức để tìm ra ứng cử viên giành giải thưởng danh giá nhất
Drupal là một framework (khung sườn) phát triển phần mềm hướng mô-đun, một
hệ thống quản trị nội dung miễn phí và mã nguồn mở Cũng giống như các hệ thốngquả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 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ôngminh và uyển chuyển của nó
Đặc trưng nổi bật nhất của Drupal là khái niệm node với cấu trúc đơn giản Để pháttriển các kiểu nội dung phức tạp, mỗi node sẽ được liên kết với một nội dung có kiểukhác nhau Node được quản lí nhờ hệ thống taxonomy cực mạnh Cùng với các kháiniệm như :”term” được tổ chức có cấu trúc (chia nhiều cấp), và “vocabulary” trongtaxonomy cho phép chia term thành các lớp không giao nhau
Drupal được xây dựng để giúp đỡ cho nhà phát triển Hệ thống hook đa dạng giúpngười lập trình can thiệp vào mọi hoạt động mà không phải sửa bất kì dòng lệnh nàocủa nhân hay các phần khác - điều này trái ngược với Joomla! Ngoài ra, công nghệcủa Drupal thường mới hơn Joomla!, thí dụ như thiết kế của Drupal không dùng bảng(table) trong khi ở Joomla! thì bảng xuất hiện ở mọi nơi (những viên gạch đầu tiên củaJoomla! được xây dựng khi các chuẩn Web chưa ra đời)
Ngoài ra ở Drupal còn có các tính năng chính như :
Collaborative Book – Giúp bạn thiết lập một “quyển sách” và cho phépnhiều người cùng đóng góp nội dung, tổ chức dữ liệu
URL thân thiện – Drupal dùng mod_rewrite của Apache để tạo các URLthân thiện với cả các bộ máy tìm kiếm và người dùng
Module – Các module đóng góp từ cộng đồng mở rộng tính năng củanhân Drupal
Online help – Hệ thống trợ giúp trực tuyến ngay trên site của bạn
Open source – Mã nguồn của Drupal hoàn toàn tự do dưới giấy phépGNU/GPL 2
Cá nhân hóa – Có sẵn ngay trong nhân Drupal Cả nội dung lẫn cáchtrình bày đều có thể cá nhân hóa theo các tiêu chuẩn được người dùng đặt ra
Hệ thống phân quyền theo vai trò (role based) – Có thể tạo ra các vai tròmang các quyền hạn khác nhau, sau đó gán những vai trò này cho người dùng
Trang 16 Tìm kiếm – Mọi nội dung đều được đánh chỉ mục và có thể tìm kiếmbởi module tìm kiếm tích hợp sẵn.
1.3.2 Lịch sử phát triển của Drupal
Drupal xuất phát từ một diễn đàn viết bởi Dries Buytaert (một lập trình viên mãnguồn mở và hiện đang là nghiên cứu sinh tại Bỉ), được chuyển thành sản phẩmnguồn mở năm 2001 Cho đến nay, Buytaert vẫn lãnh đạo việc phát triển của dự án.Drupal, trong tiếng Anh, được chuyển ngữ từ từ liệu "druppel" của tiếng Hà Lan,nghĩa là "giọt nước"
Từ tháng năm 2006 đến tháng tư năm 2007, mã nguồn Drupal đã được tải về từwebsite Drupal.org hơn 600,000 lần, đến tháng 6 năm 2008 , mã nguồn Drupal đãđược tải về hơn 1,4 triệu lần
Tháng Giêng năm 2009 Drupal 6.9 được công bố
Ngày 5 tháng 1 năm 2011 Drupal 7 ra đời ,là phiên bản Drupal ổn định nhất từtrước đến nay, với hàng loạt thay đổi mới trong nền tảng, mang đến một giao diệnquản trị hoàn toàn mới với rất nhiều cải tiến cho người phát triển site và người quản línội dung Giao diện overlay sử dụng AJAX giúp bạn có một trải nghiệm tuyệt vờinhất Drupal 7 cũng linh hoạt hơn với khái niệm trường tuỳ biến (Fields) Trường chophép bạn mở rộng gần như mọi đối tượng trong Drupal bằng cách gán thêm thuộc tínhcho chúng Bạn có thể gán thuộc tính cho rất nhiều đối tượng, trong đó có bài viết,bình luận, người dùng và thậm chí gán thuộc tính cho cả tag Kể từ phiên bản 7,Drupal hỗ trợ nhiều CSDL khác nhau, từ MySQL cho đến PostgreSQL, SQLite, MSSQL Server, Oracle… và thậm chí có thể mở rộng để hỗ trợ các dạng NoSQL Hiệnnay, có một cộng đồng rộng lớn đang giúp đỡ phát triển Drupal
1.3.3 Nền tảng
Apache hoặc IIS, Unix / Linux / BSD / Solaris / Windows / Mac OS X đềuđược hỗ trợ – Drupal ngay từ đầu đã được xây dựng để tương thích nhiều nền tảng
Độc lập với cơ sở dữ liệu – Mặc dù đa số dùng MySQL, nhưng không phải tất
cả Drupal được xây dựng trên lớp CSDL trừu tượng (database abstraction layer –DAL), hỗ trợ cả MySQL lẫn PostgreSQL Để hỗ trợ các CSDL riêng của mình,người dùng chỉ việc viết phần back-end hiện thực hóa 14 hàm của DAL
Đa ngôn ngữ – Nền tảng Drupal sẵn sàng cho việc xây dựng một website đangôn ngữ
1.3.4 Kiến trúc Drupal
Drupal là một CMS được viết bằng PHP và cơ sở dữ liệu thường là MySQL để lưutrữ Một kiến trúc stack đơn giản về Drupal như sau :
Trang 17Hình 1 Kiến trúc Drupal Trung tâm hay thành phần cốt lõi của Drupal chính là bộ nhân gồm các file chứa :bootstrapping code và các thư viện cung cấp các thành phần cơ bản nhất để xây dựngnên một trang web Các thư viện trong Drupal core hoạt động giống như một tầng keo,tức là có nhiệm vụ chính là kết hợp các module của Drupal với nhau, liên kết và quản
lý database
Một vài modules trong Drupal core rất quan trọng , là module nền tảng làm cơ sởtiếp tục xây dựng một website , các module cung cấp 5 chức năng : Block , Filter ,Node, System và User , không thể uninstalles hay disabled
Trang 18Theme điều khiển cách trang web của bạn được hiển thị, bao gồm giao diện đồ họa,
bố trí, và màu sắc Theme bao gồm một hay nhiều tập tin PHP để xác định đầu raHTML của các trang web, cùng với một hoặc nhiều file CSS để xác định bố trí, phôngchữ, màu sắc, và phong cách khác
Trong drupal core có sẵn một số các themes mẫu , ngoài ra có thể tìm và downloadcác themes khác tại trang www.drupal.org/project/themes và tiến hành cài đặt , chỉnhsửa cho phù hợp với ứng dụng
Sauk hi download 1 theme khác vừa ý , sau đó extract vào thư mục themes trong thưmục chứa mã nguồn Drupal
Kế tiếp kích hoạt theme trong menu của drupal: đăng nhập tài khoản quản trị vàoMenu Administer > Site Building > Themes
Để giải quyết những yêu cầu cụ thể đặc biệt nào đó ở mỗi dự án thì với drupal cócung cấp những mô đun mới với những chức năng cụ thể riêng biệt dành cho dự án đógọi là contributed module mà chúng ta có thể tìm thấy ở websitehttp://drupal.org/project/modules với hơn 73199 modules , được coi như những add-ons cho drupal cho phép bạn xây dựng , mở rộng , chỉnh sửa các chức năng của drupalcore
Một vài module phổ biến nhất là : ubercart , webform , views , panel , date andcalendar, Content Construction kit (CCK) , Backup and Migrate , Google analytics,WYSIWYG …
Ngoài ra có thể tạo ra được module riêng tùy vào mức độ am hiểu Drupal , PHP vàcác module của Drupal API
Được thiết kế để cung cấp một phương thức mở rộng tiềm năng của Drupal Là mộtgói mã PHP sử dụng APIs và kiến trúc của Drupal để tạo ra những thành phần mới Mỗi module được chứa trong thư mục riêng của nó, bao gồm:
*.info: miêu tả nội dung của module
*.install: tạo table
*.module: code
Và các file hỗ trợ khác
Module trong Drupal được xây dựng theo hướng modular và extensbile Nghĩa làcác người lập trình sẽ phát triển mà không thay đổi bộ nhân drupal mà chúng ta sẽtương tác bằng cách mở rộng thêm thông qua xử lý các event do nhân Drupal phát ra(hook)
Trang 191.3.5 Chức năng của các module trong Drupal
Content management : quản lý , sắp xếp ,phân loại và cài đặt cấu hình nội dungcủasite: xem ,thêm ,xóa sửa sản phẩm, các bài viết , ghi chú bình luận…
Categories: Tạo các đề mục phân loại cho site của mình Để thêm 1 phân loại ta chọnCategories > Add Vocabulary sau đó điền các thông tin : tên, mô tả , loại categaory(có thể là chủ đề forum, blog,…).Đây là một tính năng khá mạnh trong Drupal, ở bảnDrupal 6.x thì categories được gọi là Taxonomy Là một người mới làm quen với cácCMS thì đây quả là một thuât ngữ khá mới mẻ Một Categories được tổ chức theo cấutrúc dạng cây giống như Forum Từ một Vocabulary bạn có thể thêm các Term vàotrực tiếp trong Vocabulary hoặc là một term khác Điều này cho phép bạn tạo ra mộtcây sản phẩm cho Ubercart
Content : Xem , xóa, sửa những nội dung đã post lên, cụ thể là các product chúng ta
đã xuất lên website
Content Types : quản lý các hình thức bài chúng ta gửi lên , core của Drupal chỉ cóForum topics (gửi bài vào forum), Page , Story Tuy nhiên ta có thể thêm bớt cũngnhư tạo mới loại nội dung phù hợp với nhu cầu của site thông qua mục này
Post settings: Cấu hình về việc soạn 1 bài mới lên site :
Number of posts on main page: số bài hiển thị trên trang chính
Length of trimmed posts: Số ký tự tối đa cho 1 bài gửi lên
Preview post: tùy chọn bắt buột người dùng xem lại trước khi gửi haykhông
RSS publishing: RSS cho sản phẩm của mình đến khách hàng
Site building : cấu hình cách trình bày của site ( xây dựng website )
Block : quản lý hiên thị, thêm bớt các khối chức năng của Drupal(kích hoạt, ẩn, vị trí ) : Tìm Kiếm, Đăng Nhập, Menu
Menus : Thêm bớt các thanh thực đơn, chỉnh sửa thành phần của các menusẳn có Trong đó Primary links menu chính, Navigation là thanh chứa các liênkết chủ yếu, và được tạo mặc định của Drupal, chúng ta đang dùng thanh này
để đến các thành phần hệ thống
Modules: đây là mục khá quan trọng trong Drupal , quản lý các module :kích hoạt, vô hiệu hóa cũng như xóa các module
Themes : quản lý các theme cài vào bổ sung cho Drupal
URL aliases: thay các liên kết URL bằng tên khác của chúng
Views: thay đổi các hiển thị danh sách nội dung của hệ thống
Nói về Block,Page,Story,Book, Blog và Forum:
Block là một thành phần không thể thiếu trong Drupal, nó có thể kết hợp rấttốt với Page,Story,Forum,Blog để đưa dữ liệu ra các vùng hiển thị trongDrupal
Trang 20 Page và Story khá là giống nhau Ngoài ý nghĩa ra thì chúng gần như là nhưnhau, Page thường được làm những trang cố định trong website, không chophép người dùng trả lời Ví dụ như trang ContactUs hay trang AboutUs.
Còn Story, nó giống như các bài viết bình luận của bạn trên Blog hay là bàiviết bạn viết ra để thảo luận về một vấn đề gì đó mà người dùng có thểcomment trên đó
Blog của Drupal giống như Blog của yahoo hay là các Blog khác vậy,nhưng Blog mặc định của Drupla rất sơ khai, giống như là Drupal gom cácStory của tác giả vào một mục lớn và mục lớn này chính là Blog của tác giả đó.Việc gom nhóm bài viết của tác giả là tự động thay vì ta phải vào tìm nhữngbài viết do tác giả đó viết Và việc sử dụng Blog cũng như Story hay là Page,bạn nên sử dụng theo đúng ý nghĩa của nó
Forum của Drupal không thua gì các Forum khác, mặc định khi cài đặtDrupal thật là nhỏ gọn, chỉ có 42 database dung lượng 749kb vậy mà với chỉchừng đó, chưa cần cài đặt thêm gì chỉ cần enable các thành phần cơ bản lên thìgần như bạn đã có một website tuyệt vời với Blog,forum…
Book của Drupal cấu trúc thì giống cấu trúc của Forum, mà cơ bản thì lạigiống Page, Story Một Book được tạo ra có thể xem như một cuốn sách chobạn
Tất cả Blog,Forum,Story,Book,Page đều là Node Chúng có cấu trúc giống nhau,nhưng ý nghĩa và mục đích sử dụng thì khác nhau vì vậy bạn nên cân nhắc khi nào thì
sử dụng một trong số các kiểu nội dung của Drupal
Site configuration: Cấu hình cách cho hoạt động của hệ thồng Trong đây có nhiềuchức năng liên quan đến hoạt động của hệ thống, thông thường chúng ta ít phải đụngvào các chức năng này Chỉ chú ý đến 1 số tùy chọn:
Administration theme: cũng giống như themes ở mục trên nhưng chỉ ápdụng riêng cho người quản trị, chứ không phải cho tất cả các người dùng
Clean URLs : chức năng làm “sạch” đường link trong Drupal
Date and time: cấu hình ngày giờ, múi giờ địa phuơng và cách hiển thị
Error reporting: các thông báo lỗi hệ thống (truy xuất trang không hợp lệ,trang không tìm thấy ) dựa trên thông báo lỗi của php trả về
Search settings: cấu hình cho chức năng tìm kiếm của hệ thống
Site Information : Thông tin về site của chúng ta : tên ( “Điện Thoại DiĐộng Chính Hãng”), Email nhà quản trị, Khẩu hiệu ( “Hàng Gốc - Giá Gốc-
Uy Tính Làm Gốc - Chất Lương Làm Đầu” ), …,
Site maintenance : Thông báo về việc bào trì site
User management: quản lý thông tin khách hàng cũng như nhân viên
Access control: Thiết lập các quyền truy cập
Access rules: liệt kê cũng như tạo các quyền cho 1 email, tên người dùnghay IP nào đó VD nếu như 1 quyền nào đó thiết lập rằng người dùng không
Trang 21được tạo tài khoản với tên hay email nào đó thì bất cứ người dùng nào khi đăng
ký đều không được vi phạm
Profiles: thêm bớt các nội dung về quản lý khách hàng, khách hàng sẽ khaibáo khi đăng ký hoặc bổ sung sau , mặc định chỉ có tên người dùng, email vàmật khẩu.Để thêm 1 mục mới :Trong Add New Field chọn 1 loại thể hiện bạnmuốn dùng ( text , radio button, check box ) Trong Field Settings :
Category: thông tin ta cần thêm vào nằm trong mục nào ( thông tin cá nhân haythông tin bổ sung)
Title: tựa đề cho mục này
Form name: tên cho biến lưu trữ, lưu ý biền này được quản lý bởi máy do đó,nên đặt không khoảng cách và không dấu
Explanation: giải thích ý nghĩa ( tùy chọn )
Form will auto-complete while user is typing.: đánh dấu check vào mục này sẽcho phép điền thông tin tự động từ cookies
The user must enter a value: đánh dấu check vào muc này sẽ bắt buộc ngườidùng phải nhập dữ liệu cho mục này
Visible in user registration form: hiển thị mục này trong form đăng ký
Roles: quyền hạn khách hàng trong site của chúng ta Quy định các khảnăng truy xuất cho người dùng là khách viếng thăm, khách đã đăng nhập hệthống, người quản lý, quản trị…
Roles khá là thú vị khi bạn phân quyền trong một website Drupal, ví dụ như ởđây là bạn có thể tạo ra các quyền trong một trang ecommerce như kế toán,nhân viên nhập liệu
Thì trong đó kế toán bạn có thể gán cho họ một số quyền như: Xem hóa đơn,sửa hóa đơn,… và xem thống kê của cửa hàng Còn nhân viên nhập liệu bạn cóthể cho họ chỉ chức năng xem xóa sửa sản phẩm mà không cho xem thống kê
và các thao tác liên quan tới hóa đơn…
Rule: Tại đây bạn có thể cấm một user truy cập vào bạn thông qua tên userhoặc là tên Ip của user đó dùng
Search Users : tìm kiếm thành viên trong hệ thống
Users Setting : Các cài đặt về việc đăng ký thành viên, người dùng có thể tựđăng ký tài khoản hay không, có yêu cầu kích hoạt thông qua email haykhông ,thiết lập nội dung thư sẽ gửi đến thông báo cho người đăng ký, hình ảnhngười dùng
Logs: lưu vết lại hoạt động của hệ thống, dưa vào đây ta có thể thống kê sự hoạtđộng của site, sản phẩm được nhiều người quan tâm, nhiều người mua, những kháchhàng có tiềm năng, quản lý lỗi của hệ thống để tiện cho việc bảo trì:
Recent log entries: sự kiện mới nhất vừa được ghi nhận lại
Recent hits: các trang vừa mới đươc xem
Top 'access denied' errors: các lỗi hạn chế quyền truy cập
Top 'page not found' errors: các lỗi về không tìm thấy liên kết
Top referrers: các trang được tham chiếu đến nhiều nhất
Top search phrases: top các cụm từ được search nhiều và gần đây nhất
Top pages: các trang được xem thường xuyên
Top visitors: khách hàng tham quan nhiều sản phẩm nhất
Trang 22 Access log settings: cài đặt cho logs, khoảng cách bao lâu để log 1 lần nộidung…
Help dùng để giúp đở người quản trị quản lý hệ thống
Với drupal để việc quản lý 1 site tổng quát , bạn chỉ cần tìm hiểu rõ 3 modulechính : CCK, View và Panel CCK
CCK giúp ta mở rộng kiểu nội dung mà không cần viết code
Views giúp ta lọc và trình bày các nội dung mà không cần code
Panels giúp ta chia phần nội dung thành các vùng bé hơn cũng khôngcần code
Nhờ CCK, Views, Panels bạn có thể làm gần như mọi thứ mà khôngphải viết code
Ngoài ra còn có rất nhiều những module khác mà tùy vào từng ứng dụng cụ thể đểchọn lựa , cài đặt cho hệ thống
1.3.6 Một số giải thưởng của Drupal
CMS nguồn mở danh giá nhất năm 2007 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
CMS nguồn mở danh giá nhất năm 2008 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
Dưới đây là xếp hạng giải thưởng CMS qua các năm :
-DrupalSites – Danh mục các website sử dụng Drupal :http://www.drupalsites.net/
Các website Drupal bằng tiếng việt
Trang 23-Drupal Việt Nam - Cộng đồng người Việt nam sử dụng Drupal :http://groups.drupal.org/vietnamese
http://drupalvietnam.org/api/Drupal
-Mạng xã hội dành cho người Việt : http://www.tamtay.vn/
-Đại học FPT: http://www.fpt.edu.vn/
-Tổng đài điện thoại : http://www.tongdai.com.vn/
-Trang chia sẻ ảnh : http://i-pro.vn/
Các trang web nước ngoài sử dụng Drupal-http://www.whitehouse.gov/
-http://www.snowworkers.com/
-http://www.theonion.com/
CHƯƠNG 2 – KHẢO SÁT VÀ ĐẶC TẢ YÊU CẦU
2.1 Khảo sát yêu cầu của một cửa hàng bán đồ nội thất
Trang 24Cửa hàng là cơ sở kinh doanh bán sản phẩm nội thất của một công ty sản xuất đồtrang trí nội thất, tại đây đối tượng quản lý là hàng hoá và con người Hàng hoá gồmnhiều yếu tố như xuất nhập, giá mua, giá bán, hàng tồn kho, bảo hành, thông tin chitiết hàng hoá; về khía cạnh con người bao gồm : nhân viên, quản lý, khách hàng Hệthống các đối tượng đó quan hệ với nhau, ví dụ quản lý ra chỉ thị cho nhân viên, quản
lý ra quyết định từ thông tin từ hệ thống ( con người hoặc thông tin tổng hợp từ máytính) Khách hàng đến tận nơi xem hàng , ưng ý sản phẩm thì đến đăng kí mua hàngvới nhân viên bán hàng , giao tiền trực tiếp ở quầy thu ngân, để lại thông tin địa chỉ đểnhân viên giao hàng tiến hành giao hàng đến nơi Khách hàng mua hàng nhận hoá đơnđược lập từ công ty, hàng hoá được nhập kho, xuất kho; thời gian bảo hành và cácquan hệ khác
Cụ thể cơ cấu tổ chức nhận sự của cửa hàng được chia làm 3 bộ phận:
Bộ phận văn phòng: Giám đốc, kế toán, thủ quỹ, kho được bố trí tạimột khu vực khép kín, người có nhiệm vụ mới được vào
Bộ phận quầy: nhân viên trực tiếp tại các quầy có nhiệm vụ giám sát vàquản lý quầy đó
Bộ phận thu ngân: Nhân viên thu ngân trực tiếp tại các bàn thu ngân cốđịnh đặt trong nhà sách
Hoạt động bán hàng thực tế tại cửa hàng :
Hàng ngày, cửa hàng mở cửa bán hàng từ 7h30 tới 21h30. Hoạt động bán hàng củacửa hàng có thể tóm tắt như sau:
Khách hàng có thể tự do vào xem các sản phẩm của cửa hàng , có thể yêu cầu
sự trợ giúp của nhân viên cửa hàng Nhân viên cửa hàng luôn quan sát , túctrực , sẵn sàng tự vấn , giới thiệu mọi sản phẩm cho khách hàng
Khi khách hàng đã lựa chọn được 1 hoặc nhiều sản phẩm, khách hàng sẽ nóivới nhân viên sẽ mua sản phẩm này Do tính chất của sản phẩm là đồ nội thất
có thể khá to, nặng khó khăn trong việc vận chuyển hay cần phải lắp đặt tại nhànên khách hàng chỉ cần chỉ ra sản phẩm cần mua và các yêu cầu đưa ra kháccho nhân viên bán hàng
Khách hàng ra bộ phận thu ngân tiến hàng lập hóa đơn , làm thủ tục mua , thủtục gồm có hóa đơn mua hàng , địa chỉ khách hành và tiền đặt cọc trước
Sau đó nhân viên sẽ hẹn thời gian giao nhận sản phẩm và lắp ráp cho kháchhàng
Hiện nay với nhu cầu mở rộng hoạt động kinh doanh và mong muốn đem đến sựtiện lợi cho khách hàng, công ty muốn xây dựng một hệ thống website bán hàng trựctuyến phù hợp với tình hình thực tế của công ty cũng như khả năng mở rộng phát triểntrong tương lai
Từ yêu cầu và thực trạng của công ty em thấy cần xây dựng một hệ thống websitequảng bá, giới thiệu sản phẩm và hỗ trợ khách hàng đặt hàng trực tuyến Từ trước đếnnay, công ty chưa có hệ thống nào tương tự, do đó đây là hệ thống hoàn toàn mới Hệthống cho phép khách hàng và người quản lí với các quyền truy nhập khác nhau Nếu
Trang 25là khách hàng, hệ thống sẽ không yêu cầu đăng nhập và cho phép khách hàng tra cứucác thông tin về các chủng loại , các sản phẩm đồ nội thất Đấy là thông tin về giá bán,các thông số chi tiết về sản phẩm mà họ cần mua Khách hàng cũng có thể xem các tintức công nghệ, các sản phẩm mới xuất hiện trên thị trường liên quan đến lĩnh vực kinhdoanh của công ty, cũng như các tin tức về phong thủy liên quan đến việc bố trí sảnphẩm đồ nội thất trong gia đình hay cơ quan Trong quá trình xem xét các sản phẩm ,đọc tin liên quan khách hàng có thể đưa ra những ý kiến phản hồi , bình luận với mỗisản phẩm , bài viết nếu như khách hàng có tài khoản và đã đăng nhập.
Nếu chọn được sản phẩm ưng ý, khách hàng có thể tiến hành đặt hàng trực tuyếnsau khi đã đăng nhập Khi khách hàng đăng nhập vào hệ thống , hệ thống phải cungcấp cho mỗi khách hàng một giỏ hàng để chứa các mặt hàng cần mua Khách hàng cóthể bỏ lại mặt hàng đã chọn hay thêm hàng mới vào giỏ hàng Khi khách hàng hoànthành công việc chọn lựa hàng hóa sẽ tiến hành thanh toán trực tuyến qua mạng, chỉcần thanh toán một khoản tiền đặt cọc trước nếu như sản phẩm đó có giá trị tiền lớn.Sau khi các giao dịch thành công, hàng được chuyển cho khách hàng sau một thờigian đã hẹn và thỏa thuận trên hóa đơn, khách hàng tiến hành nhận hàng, và xác nhận,thanh toán nốt số tiền con lại
Đối với đội ngũ quản lí website, hệ thống phải cung cấp các chức năng để quản líwebsite một cách toàn diện Chỉ những nhân viên được cung cấp tài khoản mới có thểtruy cập vào khu vực quản lí website Một cách cụ thể, hệ thống cần cung cấp chứcnăng quản lí hàng hóa và lí tin tức được đăng trên website, quản lí các đơn đặt hàng,quản lí các user được phép truy cập vào khu vực quản trị website
2.2 Đặc tả yêu cầu
2.2.1 Giới thiệu
Mục đích : Đây là website bán hàng trực tuyến , sản phẩm là đồ nội thất gia đình vàvăn phòng Website được xây dựng cũng đảm nhiệm những chức năng chính là quảngcáo sản phẩm, mua bán hàng trực tuyến, đăng thông tin bài viết liên quan về công ty ,sản phẩm…Giúp công ty có thể quảng bá được thương hiệu sản phẩm của mình , bánhàng đạt hiệu quả cao , tối ưu lợi nhuận Giúp cho những khách hàng có nhu cầu về
đồ nội thất có khả năng tìm kiếm dễ dàng sản phẩm đáp ứng được nhu cầu của mình,tiến hành giao dịch mua bán nhanh chóng thuận tiện
Phạm vi dự án : Website được xây dựng hỗ trợ cho các cá nhân , công ty , cơ quan,
có nhu cầu quảng bá sản phẩm đồ nội thất , cũng như quản lý buôn bán sản phẩm.Hệthống phát triển hoàn toàn độc lập , không lệ thuộc vào một dự án nào cả ; được xâydựng mới từ đầu với các tính năng dựa trên mã nguồn mở Drupal
Tính khả dụng : Giao diện website phải bắt mắt, trực quan và dễ sử dụng.
Tính ổn định : Hệ thống phải hoạt động liên tục 24h/ngày, 7 ngày/tuần, vấn đề sự cố
của hệ thống phải được hạn chế tối đa
Trang 26Hiệu suất :
Hệ thống phải cho phép thao tác và xuất kết quả nhanh chóng Truy vấn
cơ sở dữ liệu và hiển thị kết quả không quá 1 phút
Đảm bảo tính toán đúng và thực hiện các thống kê không quá 5 giây
Hệ thống phải đáp ứng nhu cầu của người sử dụng và hoàn tất 90% giaodịch trong vòng 1 phút
Tính bảo mật :
Hệ thống phải có cơ chế đảm bảo tính toàn vẹn của CSDL
Đảm bảo không thể xảy ra các truy cập trái phép tới CSDL và khu vựcquản trị website
Khi hiển thị thông tin về các hàng hóa của cửa hàng, hệ thống phải có cơchế bảo đảm chỉ những thông tin mà công ty cho phép mới đến được với kháchhàng, các thông tin khác chỉ người quản lí mới biết được
2.2.2 Mô tả tổng thể
Mô hình hệ thống : Đây là một hệ thống độc lập, chạy trên nền web, sử dụng hệ quản
trị CSDL MySQL và sử dụng 2 công cụ chính là Drupal để cài đặt và UML để phântích thiết kế hệ thống thông tin
Chức năng hệ thống : Hệ thống có các chức năng cho người quản trị - toàn quyềnvới hệ thống , chức năng cho người quản lý nội dung website và cho khách hàng –người có nhu cầu xem xét mua bán hàng hóa
Người sử dụng :
- Nhóm người quản trị:
Xác nhận và kích hoạt tài khoản của khách hàng
Quản lý tài khoản người dùng , có thể xem, xoá các thông tin củakhách hàng nhưng không được quyền thay đổi thông tin đó
Xem, trả lời ý kiến, góp ý và phản hồi của khách hàng hoặc xoácác thông tin đó từ khách hàng
Xem, chèn, cập nhật, xoá các sản phẩm
Cập nhật tin tức, thông tin các sản phẩm mới nhất, các tin tức cóliên quan
Quản lý giỏ hàng , các đơn đặt hàng của khách hàng
Thông kê báo cáo sản phẩm
Thống kê người dùng, quản lý tin đăng, đăng tải các mục thôngtin kiến thức, …
Quản lý việc gắn banner quảng cáo của các công ty ở các góccạnh của trang web
- Nhóm người quản lý :
Trang 27 Quản lý sản phẩm được đăng tải rao bán trên trang web , thêmmới , cập nhật , xóa , sửa sản phẩm
Quản lý các tin tức , bài viết trên trang web nhưng thêm mới , sửa, xóa các tin thị trường , tin phong thủy
Quản lý việc gắn banner quảng cáo của các công ty ở các góccạnh của trang web
-Nhóm khách hàng có tài khoản trên trang web và đã đăng nhập :
Có quyền đăng nhập vào tài khoản khách hàng đã đăng ký
Có thể xem, sửa thông tin của họ
Có thể tìm kiếm thông tin theo tên, giá cả, chức năng
Có thể gửi thông tin góp ý, phản hồi đến hoặc liên hệ với quản trịviên
Có thể xem tin tức tất cả các sản phẩm có mặt ở website
Có thể đánh giá bất kỳ sản phẩm nào
Nếu như muốn mua sản phẩm nào khách hàng tiến hành đặt hàngsản phẩm đó , cho vào giỏ hàng của mình , làm thủ tục thanh toán trựctuyến quan mạng
Có quyền chỉnh sửa , thêm bớt , xóa giỏ hành của mình
Có quyền xem và bình luận các tin tức , bài viết trên website.-Nhóm khách hàng chưa có tài khoản trên trang web
Có quyền đăng kí làm thành viên của trang web
Được phép xem thông tin sản phẩm , đọc tin tức , bài viết trênwebsite
Tìm kiếm thông tin cần thiết về sản phẩm
Tìm được sản phẩm ưng ý , có thể cho hàng vào giỏ
Input, output and process
Nhóm quản trị
(Admin) Nhóm quản lý(Administrator) Khách có tàikhoản (User) Khách chưa cótài khoản
( AnonymousUser)
Input Thông tin
sản phẩm, phân loại, đặt hàng
Góp ý, phản hồi
Quản lý thông tin (ID, password)
Cập nhật tin tức mới
Thông tinsản phẩm, phân loại, đặt hàng
Góp ý, phản hồi
Cập nhật tin tức mới
Tìm kiếm sản phẩm
Góp ý, phản hồi
Đánh giásản phẩm
Đặt hàngsản phẩm, thanh toán trực tuyến
Tìm kiếm sản phẩm
Output Thống kê
và báo cáo sách các sản Danh sách các loại Danh sách các loạiDanh
Trang 28 Danh sách các sản phẩm, tin tức.
Danh sách các khách hàng
Danh sách phản hồi
phẩm, tin tức
Danh sách phản hồi
sản phẩm
Tóm tắt sản phẩm và chi tiết sản phẩm
Các trangthông tin phảnhồi, liên lạc, tin tức
Hóa đơn đặt hàng và thanh toán hàng
sản phẩm
Tóm tắtsản phẩm vàchi tiết sảnphẩm
Cáctrang thôngtin phản hồi,liên lạc, tintức
Process Kiểm tra
đăng nhập
Quản lý mật khẩu
Quản lý (xem, xoá, chèn, cập nhật) sản phẩm
Quản lý giỏ hàng
Xem,trả lời hoặc xoá thưphản hồi
Chỉnh sửa,cập nhật tin tứccác sản phẩmmới nhất từ cửahàng
Quản lý (xem, xoá, chèn, cập nhật) sản phẩm
Xem, trả lời hoặc xoá thư phản hồi
Chỉnh sửa, cập nhật tin tức các sảnphẩm mới nhất từ cửa hàng
Tìm kiếm sản phẩm
Đánh giásản phẩm
Tiến hành giao dịchthanh toán chokhách hàng
Xử lý hóa đơn mua hàng
Tìm kiếm sản phẩm
Yêu cầu lưu trữ
Hệ thống cần lưu trữ các thông tin liên quan đến hàng hóa, thông tin đăng nhập, cácđơn đặt hàng, các tin tức ( tin thị trường , tin phong thủy và các loại tin khác đượcđăng trên website)
Thông tin đăng nhập:
Phần quản trị của website cần đảm bảo tính bảo mật do có thể truy cập tới mọi thôngtin về hàng hóa và hoạt động kinh doanh Phần này chỉ dành riêng cho công ty- cửahàng , vì vậy để có thể truy cập cần có định danh đăng nhập và mật khẩu
Trang 29Thông tin hàng hóa :
Cần lưu trữ các thông tin sau đây về hàng hóa (máy ảnh):
Thông tin đơn đặt hàng :
Cần lưu trữ các thông tin sau đây về đơn đặt hàng:
Yêu cầu tính toán :
Tính tiền tự động cho các sản phẩm khách hàng mua Mỗi khi khách hàng chọn muamột sản phẩm, sản phẩm này sẽ được lưu vào giỏ hàng để khách hàng dễ quản lí Hệthống tự động tính tổng giá trị giỏ hàng dựa trên việc lấy giá bán của từng sản phẩmlưu trong cơ sở dữ liệu và số lượng mỗi sản phẩm khách hàng mua, từ đó tính tổngtiền của các mặt hàng được mua để khách hàng theo dõi Việc tính toán phải đượcthực hiện hoàn toàn tự động Nếu khách hàng tiến hành đặt hàng, các kết quả tính toánnày phải được lưu trong đơn đặt hàng
Kết quả tính toán: tổng số tiền khách hàng phải trả cho mỗi lần mua hàng, được xácđịnh theo công thức:
Tổng tiền =
Trong đó: n là số lượng mặt hàng đặt trong một lần
MH(i) là mặt hàng thứ i
Trang 30Yêu cầu tra cứu :
Chức năng tra cứu thông tin về các mặt hàng được bày bán thông qua website đượcthực hiện khi khách hàng khi khách hàng cần tìm kiếm sản phẩm mình cần mua cũngnhư các thông tin liên quan đến sản phẩm
Kết quả xuất ra sau khi tra cứu: danh sách các mặt hàng (nếu có) theo tiêu chuẩn đãđược khách hàng đưa ra
2.2.3 Các yêu cầu giao tiếp
Giao diện người sử dụng :
Lần đầu khi truy cập vào trang web người dùng sẽ nhìn thấy giao diện trang chủ vớicác menu chính như trang chủ, tin tức, đăng ký, liên hệ, sitemap Trong trang chủ làcác sản phẩm gồm có sản phẩm mới , sản phẩm bán chạy và danh mục các loại sảnphẩm.Nếu người dùng muốn đăng ký làm thành viên thì sẽ vào trang đăng ký thànhviên, cung cấp những thông tin cơ bản để lưu giữ thông tin khách hàng
Giao tiếp phần cứng :
Cấu hình tối thiểu
Processor : Pentium III 1.3GHz
Giao tiếp truyền thông tin :
Hệ thống có sử dụng giao thức truyền email nội bộ, yêu cầu hệ thống phải có một hệthống mail server, hay là sử dụng hệ thống mail của yahoo, gmail, …
2.2.4 Các yêu cầu phi chức năng
Yêu cầu thực thi :
Hệ thống phải online 24/24, thao tác cùng lúc nhiều yêu cầu truy nhập từ phía ngườidùng – khoảng trên 100 người cùng lúc
Yêu cầu an toàn :
Trang 31Hệ thống phải có một cơ chế khôi phục dữ liệu, giúp lưu trữ lại dữ liệu, bảo toànthông tin người dùng.
Yêu cầu bảo mật:
Hệ thống phải bảo đảm an toàn thông tin về tài khoản cho người dùng, và an toànCSDL, phòng trống các hoạt động trộm cắp mật khẩu của người dùng, gây ảnh hưởngxấu đến tình trạng hoạt động của hệ thống
Yêu cầu chất lượng phần mềm :
Yêu cầu hệ thống phải đáp ứng đầy đủ các nhu cầu đưa ra ban đầu, thực hiện các truyvấn chính xác, CSDL phải rõ ràng, minh bạch, dễ dàng lưu trữ, quản lý
Yêu cầu môi trường hoạt động :
Hệ thống hoạt động hoàn toàn trên môi trường mạng internet
CHƯƠNG 3 – PHÂN TÍCH THIẾT KẾ
3.1 Sơ đồ Use-case
Trang 32Hình 3 Sơ đồ Use- case
Trang 333.2 Phân tích User Case
3.2.1 Danh sách các tác nhân của mô hình
STT Tác nhân Ý nghĩa
1 Admin Người quản trị trang web
2 Administrator Người quản lý nội dung thông tin trang
web
3 User Khách hàng có tài khoản trong hệ thống
4 Anonymous User Khách hàng chưa có tài khoản trong hệ
thống
3.2.2 Đăng ký tài khoản
Mô tả Là nơi để khách đăng ký làm thành viên của trang web
Đối tượng Người chưa có tài khoản trong trang web
Thông tin đưa
vào Khách nhập thông tin cá nhân gồm: tên đăng nhập, email, mậtkhẩu, họ tên, giới tính , số điện thoại ,địa chỉ , trả lời mã xác nhận
Hệ thống xử
lý Kiểm tra thông tin người dùng xem có lỗi không, nếu có thì yêucầu nhập lại, nếu thành công thì lưu thông tin của người dùng vào
CSDL Điều kiện tiên
Nếu mọi thông tin đều chính xác, hệ thống sẽ tự động đăng nhập với tên
và mật khẩu bạn vừa tạo, đồng thời gửi thông báo thành công đến địa chỉ email
mà bạn đã cung cấp khi đăng ký
Trang 34 Khi người dùng hoàn tất đăng ký và nhấn nút Create New Account , nếu
hệ thống kiểm tra thông tin người dùng có lỗi, mật khẩu xác nhận không chínhxác hoặc tên đăng ký bị trùng thì sẽ quay trở lại giao diện đăng ký và báo lỗi đểngười dùng nhập lại thông tin chính xác
Kết thúc Use Case
3.2.3 Đăng nhập
Mô tả Khi khách muốn thực hiện những chức năng cao hơn của
trang web thì phải đăng nhập làm thành viên
Đối tượng Là người đã có tài khoản, bao gồm khách hàng đã đăng kí
tài khoản , người quản lý , người quản trị Thông tin đưa vào Người dùng cung cấp thông tin tài khoản đã đăng ký thành
công gồm: tên đăng nhập, mật khẩu
Hệ thống xử lý Hệ thống khi nhận được thông tin của người dùng sẽ kiểm
tra trong CSDL, nếu thông tin đúng sẽ thực hiện việc đăngnhập cho người dùng, nếu không sẽ báo lỗi
Điều kiện tiên quyết Đã có tài khoản trong hệ thống
Thông tin trả về Thông tin mà hệ thống sẽ hiển thị cùng các chức năng mà hệ
thống cũng cấp cho từng nhóm người dùng
Luồng sự kiện chính:
Khi người dùng đăng nhập , điền thông tin ở các ô bên trái của website
Người dùng cung cấp tên đăng nhập và mật khẩu sau đó nhấn nút Log in
Hệ thống sẽ kiểm tra tên đăng nhập và mật khẩu
Nếu đăng nhập thành công sẽ xuất hiện thông báo Đăng nhập thành công chongười dùng và cho phép sử dụng những chức năng tương ứng từng vai trò