Hệ thống được xây dựng dựa trên ngôn ngữ CodeIgniter Framework và các công nghệ web khác như: jQuery, PHP, HTML, Javascripts, … ngoài ra còn sử dụng hệ quản trị cơ sở dữ liệu MySQL và má
Trang 1LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG WEBSITE QUẢN LÝ CỬA HÀNG VĂN PHÒNG PHẨM
Cần Thơ, 2015
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 2LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
XÂY DỰNG WEBSITE QUẢN LÝ
CỬA HÀNG VĂN PHÒNG PHẨM
Cán bộ phản biện:
Ths Vũ Duy Linh Ths Lê Thị Diễm
Luận văn được bảo vệ tại: Hội đồng chấm luận văn tốt nghiệp Bộ môn Tin học Ứng dụng, Khoa CNTT & TT, Trường Đại học Cần Thơ vào ngày 14 tháng 05 năm 2015
Mã số đề tài:
Có thể tìm hiểu luận văn tại:
-Trung tâm Học liệu, Trường Đại học Cần Thơ
-Website: http://www.lrc.ctu.edu.vn/
Cần Thơ, 2015
TRƯỜNG ĐẠI HỌC CẦN THƠ
KHOA CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG
BỘ MÔN TIN HỌC ỨNG DỤNG
Trang 3LỜI CẢM ƠN
Trong quá trình thực hiện đề tài của mình, ngoài sự nổ lực của bản thân, tôi còn nhận được sự giúp đỡ từ các quý thầy, cô trong bộ môn, gia đình và bạn bè Với những sự giúp đỡ đó tôi xin gửi lời cám ơn đến:
Cha, Mẹ và người thân trong gia đình đã động viên và quan tâm đến tôi trong quá trình thực hiện đề tài luận văn này
Em xin chân thành cảm ơn các thầy, cô trong Bộ môn Tin học Ứng dụng, Khoa Công Nghệ Thông Tin và Truyền Thông, Trường Đại học Cần Thơ đã truyền đạt cho tôi những kiến thức để thực hiện đề tài này Đặc biệt, trong quá trình làm bài em đã nhận được rất nhiều sự quan tâm, giúp đỡ từ cô Lê Minh Lý là người hướng dẫn luận văn của em, người đã tận tình hướng dẫn và đóng góp ý kiến cho
em trong suốt thời gian thực hiện đề tài
Mặc dù đã cố gắng hoàn thiện đề tài với tất cả sự nỗ lực của bản thân, nhưng chắc chắn không thể tránh khỏi những sai sót và hạn chế
Một lần nữa, em xin chân thành cảm ơn và luôn mong nhận được sự đóng góp quý báu của thầy, cô và các bạn
Xin chân thành cảm ơn!
Hàng Khma Rinh
Trang 4MỤC LỤC
Trang
LỜI CẢM ƠN i
MỤC LỤC ii
DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT iv
DANH MỤC BẢNG v
DANH MỤC HÌNH vii
TÓM TẮT x
ABSTRACT xi
CHƯƠNG 1 TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 1
1.3 PHẠM VI ĐỀ TÀI 2
1.3.1 Phạm vi chức năng 2
1.3.2 Phạm vi yêu cầu kỹ thuật 3
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 3
1.5 HƯỚNG GIẢI QUYẾT 4
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 5
2.1 TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHPMYADMIN VÀ MYSQL 5
2.1.1 Giới thiệu 5
2.1.2 Mục đích sử dụng 6
2.2 TỔNG QUAN VỀ PHP FRAMEWORK 6
2.3 MÔ HÌNH MVC 7
2.3.1 Lịch sử hình thành mô hình MVC 7
2.3.2 Các thành phần trong mô hình 7
2.3.3 Quy trình hoạt động cơ bản của mô hình MVC 9
2.3.4 Ưu và Nhược điểm của mô hình MVC 9
2.4 TỔNG QUAN VỀ CODEIGNITER FRAMEWORK 10
2.4.1 Giới thiệu 10
2.4.2 Những điểm nổi bật 10
Trang 52.4.3 Những điểm hạn chế 11
2.4.4 Mô hình MVC trong CodeIgniter Framewok 12
2.4.5 Cấu trúc Codeigniter Framework 13
2.4.6 Dòng chảy dữ liệu trong Codeigniter Framework 14
2.5 MÔ HÌNH THỰC THỂ KẾT HỢP – ER 15
CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 16
3.1 TỔNG QUAN HỆ THỐNG 16
3.1.1 Mô tả bài toán 16
3.1.2 Mô tả các ràng buộc toàn vẹn 17
3.1.3 Xây dựng bảng tầm ảnh hưởng 18
3.2 THIẾT KẾ 19
3.2.1 Sơ đồ use case 19
3.2.2 Biểu diễn các use case bởi kịch bản (scenaro) 20
3.2.3 Xây dựng các lớp thực thể 25
3.2.4 Mối quan hệ giữa các thực thể 32
3.2.5 Sơ đồ chức năng 39
3.2.6 Sơ đồ lớp 41
3.2.7 Sơ đồ thực thể quan hệ - ER 42
3.2.8 Sơ đồ tuần tự 43
3.2.9 Mô hình cơ sở dữ liệu quan hệ 48
3.3 GIAO DIỆN 56
3.3.1 Phần dành cho người quản trị 56
3.3.2 Phần dành cho người dùng 65
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 73
TÀI LIỆU THAM KHẢO 75
PHỤ LỤC 76
Trang 6DANH MỤC CÁC KÝ HIỆU, VIẾT TẮT
Trang 7DANH MỤC BẢNG
Trang
Bảng 3.1 Mô tả kịch bản Use case Đăng nhập 21
Bảng 3.2 Mô tả Use case Đăng kí thành viên 21
Bảng 3.3 Mô tả kịch bản Use case Đăt hàng 22
Bảng 3.4 Mô tả kịch bản Use case Tìm kiếm 23
Bảng 3.5 Mô tả kịch bản Use case Cập nhật sản phẩm 24
Bảng 3.6 Phương thức lớp khách hàng 25
Bảng 3.7 Phương thức lớp nhân viên 26
Bảng 3.8 Phương thức lớp nhóm sản phẩm 27
Bảng 3.9 Phương thức lớp sản phẩm 27
Bảng 3.10 Phương thức lớp sản phẩm 28
Bảng 3.11 Phương thức lớp kho hàng 29
Bảng 3.12 Phương thức lớp phiếu nhập 29
Bảng 3.13 Phương thức lớp Phiếu xuất 30
Bảng 3.14 Phương thức lớp hóa đơn 30
Bảng 3.15 Phương thức lớp đại lý 31
Bảng 3.16 Phương thức lớp tin tức – sự kiện 32
Bảng 3.17 Phương thức lớp quyền sử dụng 32
Bảng 3.18 Bảng khách hàng 49
Bảng 3.19 Bảng hóa đơn 49
Bảng 3.20 Bảng nhân viên 50
Bảng 3.21 Bảng sản phẩm 50
Bảng 3.22 Bảng nhóm sản phẩm 51
Bảng 3.23 Bảng giỏ hàng 51
Bảng 3.24 Bảng kho hàng 51
Bảng 3.25 Bảng nhà cung cấp 52
Bảng 3.26 Bảng phiếu nhập 52
Bảng 3.27 Bảng chi tiết phiếu nhập 53
Bảng 3.28 Bảng phiếu xuất 53
Bảng 3.29 Bảng chi tiết phiếu xuất 54
Trang 8Bảng 3.30 Bảng tin tức sự kiện 54 Bảng 3.31 Bảng quyền sử dụng 55 Bảng 3.32 Bảng đại lý 55
Trang 9DANH MỤC HÌNH
Trang
Hình 2.1 Các thành phần trong mô hình MVC 8
Hình 2.2 Quy trình hoạt động cơ bản của mô hình MVC 9
Hình 2.3 Logo CodeIgniter Framework 10
Hình 2.4: Mô hình MVC trong CodeIgniter 12
Hình 2.5 Cấu trúc thư mục của CodeIgniter Framework 13
Hình 2.6 Cấu trúc thư mục application trong CodeIgniter 14
Hình 2.7 Luồng xử lý dữ liệu trong CodeIgniter Framework 14
Hình 3.1 Sơ đồ Use Case Khách hàng 19
Hình 3.2 Sơ đồ Use Case Admin 20
Hình 3.3 Lớp khách hàng 25
Hình 3.4 Lớp nhân viên 26
Hình 3.5 Lớp nhóm sản phẩm 26
Hình 3.6 Lớp sản phẩm 27
Hình 3.7 Lớp nhà cung cấp 28
Hình 3.8 Lớp kho hàng 28
Hình 3.9 Lớp phiếu nhập 29
Hình 3.10 Lớp Phiếu xuất 29
Hình 3.11 Lớp hóa đơn 30
Hình 3.12 Lớp đại lý 31
Hình 3.13 Lớp Tin tức – Sự kiện 31
Hình 3.14 Lớp Quyền sử dụng 32
Hình 3.15 Quan hệ Nhóm sản phẩm- Sản phẩm 33
Hình 3.16 Quan hệ Phiếu nhập - Kho hàng 33
Hình 3.17 Quan hệ Phiếu xuất – Kho hàng 33
Hình 3.18 Quan hệ Phiếu xuất – Đại lý 34
Hình 3.19 Quan hệ Sản phẩm- Hóa đơn 34
Hình 3.20 Quan hệ Nhà cung cấp- Phiếu nhập 35
Hình 3.21 Quan hệ Phiếu nhập- Nhân viên 35
Hình 3.22 Quan hệ Sản phẩm – Phiếu xuất 35
Trang 10Hình 3.23 Quan hệ Nhân viên- Hóa đơn 36
Hình 3.24 Quan hệ Khách hàng- Hóa đơn 36
Hình 3.25 Quan hệ Nhân viên – Quyền sử dụng 37
Hình 3.26 Quan hệ Nhân viên – Tin tức-sự kiện 37
Hình 3.27 Quan hệ Sản phẩm – Phiếu xuất 38
Hình 3.28 Quan hệ Phiếu nhập- Sản phẩm 38
Hình 3.29 Sơ đồ lớp 41
Hình 3.30 Mô hình ER 42
Hình 3.31 Mô hình cơ sở dữ liệu quan hệ 48
Hình 3.32 Sơ đồ tuần tự đăng nhập 43
Hình 3.33 Sơ đồ tuần tự đăng kí thành viên 44
Hình 3.34 Sơ đồ tuần tự Thêm sản phầm 45
Hình 3.35 Sơ đồ tuần tự Đặt hàng 46
Hình 3.36 Sơ đồ tuần tự Tìm kiếm 47
Hình 3.37 Trang đăng nhập của nhân viên 56
Hình 3.38 Quản lý nhóm sản phẩm 56
Hình 3.39 Quản lý sản phẩm 57
Hình 3.40 Thêm sản phẩm 58
Hình 3.41 Sửa thông tin sản phẩm 59
Hình 3.42 Hộp thoại xác nhận xóa sản phẩm 60
Hình 3.43 Quản lý hóa đơn chưa duyệt 60
Hình 3.44 Quản lý hóa đơn đã duyệt 61
Hình 3.45 Quản lý phiếu nhập 62
Hình 3.46 Quản lý phiếu xuất 63
Hình 3.47 Thống kê số lượng sản phẩm đã bán 64
Hình 3.48 Trang chủ 65
Hình 3.49 Giao diện tin tức – sự kiện 66
Hình 3.50 Sản phẩm mới 67
Hình 3.51 Hướng dẫn mua hàng 68
Hình 3.52 Đăng kí thành viên 69
Hình 3.53 Đăng nhập 70
Hình 3.54 Thông tin tài khoản 70
Trang 11Hình 3.55 Mô tả chi tiết sản phẩm 71
Hình 3.56 Giao diện giỏ hàng 71
Hình 3.57 Thông tin hóa đơn đặt hàng 72
Hình 1 Các thư mục sau khi giải nén 76
Hình 2 Các thư mục và file cần để tạo ứng dụng đầu tiên 76
Hình 3 Cấu trúc thư mục trong thư mục application 77
Hình 4 Quản lý nhân viên 83
Hình 5 Quản lý khách hàng 84
Hình 6 Quản lý các đại lý 84
Hình 7 Quản lý nhà cung cấp 85
Hình 8 Quản lý tin tức – sự kiện 86
Hình 9 Thống kê doanh thu theo tháng của từng năm 87
Hình 10 Quản lý quyền sử dụng 87
Hình 11 Tồn kho 88
Hình 12 Hóa đơn phiếu nhập 89
Hình 13 Hóa đơn phiếu xuất 90
Hình 14 Hóa đơn của khách hàng 91
Trang 12TÓM TẮT
Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ về chiều rộng lẫn chiều sâu Công nghệ thông tin đã và đang trở thành một phần không thể thiếu trong nhiều lĩnh vực của cuộc sống Trong đó có thể giúp chúng ta kinh doanh qua Internet Nó đã mở ra một hướng tiếp cận mới thông qua các hệ thống website điện tử cung cấp những thông tin cho khách hàng về các sản phẩm mới, về các tin tức và các khuyến mãi dành cho khách hàng về những sản phẩm mới Giúp người dùng có thể xem một cách nhanh chóng, tiện lợi và không mất nhiều thời gian cho việc đặt mua sản phẩm
Mục tiêu của đề tài “Xây dựng website quản lý cửa hàng văn phòng phẩm”
đáp ứng các yêu cầu:
- Khách hàng mua hàng trực tuyến
- Quản lý thông tin của nhân viên, khách hàng, các nhà cung cấp, các đại
lý và tin tức - sự kiện của cửa hàng
- Quản lý thông tin của sản phẩm và các nhóm sản phẩm
- Quản lý thông tin các hóa đơn mua hàng của khách hàng
- Quản lý phiếu nhập, phiếu xuất, kho hàng và thống kê sản phẩm bán được
Hệ thống được xây dựng dựa trên ngôn ngữ CodeIgniter Framework và các công nghệ web khác như: jQuery, PHP, HTML, Javascripts, … ngoài ra còn sử dụng hệ quản trị cơ sở dữ liệu MySQL và máy chủ Apache
Nội dung của luận văn gồm 3 chương:
Chương 1: Tổng quan về đề tài: Giới thiệu đề tài và lý do thực hiện đề tài,
nêu lên phạm vi đề tài và mục tiêu phải đạt được
Chương 2: Cơ sở lý thuyết: Giới thiệu về PHPMyAdmin và ngôn ngữ lập
trình CodeIgniter Framework
Chương 3: Nội dung và kết quả nghiên cứu: Đặc tả hệ thống và xây dựng
các sơ đồ thực thể, thực thể kết hợp, lược đồ cơ sở dữ liệu, sơ đồ chức năng và sơ
đồ Use case Trình bày kết quả nghiên cứu, nêu lên những phần đã đạt được và những phần còn hạn chế
Từ khóa: CodeIgniter Framework, sản phẩm, giỏ hàng, đặt hàng, …
Trang 13ABSTRACT
Today, information technology has achieved strong growth in width and depth Information technology has become an indispensable part in many areas of life Which may help us to business over the Internet It has opened up a new approach through the electronic system website provides information to customers about new products, about the news and promotions for customers on new products Helps users can see a quick, convenient and does not take much time for buying the product
The objective of the project "Building management website stationery stores" to meet the following requirements:
- Customers buy online
- Manage the information of employees, customers, suppliers, dealers and news - events of the store
- Management of product information and product groups
- Information management bills of customer purchases
- Manage import bill, bills, warehouse and statistical products sold The system is built on CodeIgniter Framework language and other web technologies such as jQuery, PHP, HTML, Javascripts, in addition to use management system MySQL database and Apache server
The content of the thesis consists of three chapters:
Chapter 1: Overview of topics: Introduction to the subject and the reason to
implement the project, raised the range of themes and objectives to be achieved
Chapter 2: Theoretical Foundations: Introduction to PHPMyAdmin and
CodeIgniter Framework programming language
Chapter 3: The content and results of the study: the system specification
and build the entity diagram, entity matching, database schema, function diagrams and Use Case diagrams Presenting research findings, raise share achieved and the parts are limited
Keywords: CodeIgniter Framework, products, shopping cart, orders,
Trang 14CHƯƠNG 1 TỔNG QUAN 1.1 ĐẶT VẤN ĐỀ
Ngày nay, công nghệ thông tin có những bước phát triển mạnh mẽ, trong đó phải kể đến sự phát triển của mạng Internet Với sự phát triển đó, ngày càng có nhiều người sử dụng mạng Internet vào các mục đích giao tiếp, trò chuyện, tìm kiếm thông tin, thực hiện giao dịch mua bán, quản lý, … mà không bị giới hạn thời gian và không gian
Với sự phát triển mạnh mẽ của Internet như hiện nay nhiều cửa hàng hay các doanh nghiệp đã ứng dụng Internet vào công việc quản lý hay mua bán Trong đó, một số cửa hàng văn phòng phẩm đã ứng dụng công nghệ thông tin vào việc quản lý bán hàng nhằm tăng hiểu quả quản lý và tăng doanh thu cho cửa hàng Đồng thời nhờ có việc ứng dụng tin học đã tiết kiệm được rất nhiều thời gian, công sức của con người, nó làm giảm nhẹ bộ máy quản lý vốn cồng kềnh từ trước tới nay
Hiên nay, việc mua bán hàng trên mạng không còn xa lạ đối với mọi người Mua hàng qua mạng đem lại nhiều tiện ích cho mọi người, giúp tiết kiệm thời gian
và công sức Đối với mọi người có rất nhiều mặt hàng không thể thiếu trong cuộc sống trong đó có văn phòng phẩm là một trong những sản phẩm gắn liền với cuộc sống của mỗi người hầu hết đều cần sử dụng văn phòng phẩm Muốn mua sản phẩm thì mọi người phải phải đến cửa hàng để mua Tuy nhiên có một số người có ít thời gian để đến cửa hàng để mua sản phẩm phù hợp với mình Vì vậy tốn rất nhiều thời gian và công sức Đó là đối với khách hàng, còn đối với cửa hàng khi khách hàng đến mua sản phẩm thì nhân viên phải ghi hóa đơn cho khách hàng, điều đó tốn nhiều thời gian và nhân lực mà doanh thu thì không được cao Vấn đề của cửa hàng
là tìm cách tăng doanh thu, tiết kiệm chi phí đồng thời giúp việc quản lý sản phẩm ngày càng tốt hơn
Chính vì vậy, việc xây dựng một ứng dụng web để giải quyết những tồn tại trên là hết sức cần thiết, giúp cho cửa hàng tiết kiệm thời gian, chí phí trong việc quản lý và tăng doanh thu cho cửa hàng Do đó xây dựng website quản lý cửa hàng văn phòng phẩm là mục tiêu của đề tài này
Đề tài luận văn: “Xây dựng website quản lý cửa hàng văn phòng phẩm” 1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Ngày nay với sự phát triển mạnh mẽ của công nghệ thông tin đã thúc đẩy hầu hết các công ty kinh doanh văn phòng phẩm như Thiên Long, Hồng Hà, Vĩnh
Trang 15Tiến,… đều có các trang web riêng cho công ty của mình để giới thiệu các sản phẩm và cũng như các thông tin khác về công ty của chính họ Hiện nay, có một số
đề tài xây dựng website quản lý cửa hàng văn phòng phẩm, những đề tài đó chủ yếu được viết bằng những ngôn ngữ khác nhau như PHP thuần, ASP.NET
Vì vậy, với đề tài “Xây dựng website quản lý cửa hàng văn phòng phẩm”
này sẽ được viết bằng một ngôn ngữ PHP Framework đó là CodeIgniter Framework
là một trong những PHP Framework cơ bản và dễ tìm hiểu nhất
1.3 PHẠM VI ĐỀ TÀI
Đề tài xây dựng ứng dụng được triển khai cụ thể ở các cửa hàng văn phòng phẩm Ngoài ra hệ thống còn hỗ trợ cho việc bán hàng trực tuyến qua mạng, có thể ứng dụng và triển khai tại các cửa hàng văn phòng phẩm khác nhằm tạo hiệu quả cho quá trình quản lý các sản phẩm, các hóa đơn của khách hàng, phiếu nhập, phiếu xuất và thống kê doanh thu của công ty
Các đối tượng mà website hướng đến bao gồm: Người quản trị, thành viên và khách hàng
1.3.1 Phạm vi chức năng
Đề tài xây dựng kinh doanh văn phòng phẩm phải đảm bảo các chức năng sau:
Đối với trang quản trị:
Cập nhật sản phẩm
Cập nhật các danh mục
Cập nhật các thông tin của các thành viên và khách hàng
Phân quyền nâng cấp người dùng
Cập nhật các đại lý của công ty
Đối với trang người dùng:
Đăng ký tài khoản
Trang 161.3.2 Phạm vi yêu cầu kỹ thuật
Trong quá trình sử dụng hệ thống phải đảm bảo các yêu cầu sau:
- Đảm bào được tính chính xác và ràng buộc toàn vẹn dữ liệu
- An toàn và bảo mật thông tin hệ thống cũng như thông tin cá nhân người dùng
- Giao diện thân thiện, trực quan, giúp cho người dùng thao tác dễ dàng
- Tốc độ truy xuất nhanh, linh hoạt
- Hệ thống mềm dẻo, dễ mở rộng và phát triển
1.4 PHƯƠNG PHÁP NGHIÊN CỨU
Về lý thuyết:
- Tìm hiểu và phân tích hệ thống thông tin
- Tìm hiểu về mô hình ứng dụng web
- Tham khảo một số website để hiểu thêm quá trình mua hàng và đặt hàng trực tuyến
Trang 17- Dùng Xampp làm máy chủ web
Về hệ quản trị cơ sở dữ liệu:
- Sử dụng cơ sở dữ liệu miễn phí nguồn mở PhpMyAdmin và MySQL để
nhập dữ liệu ban đầu
1.5 HƯỚNG GIẢI QUYẾT
Một website giới thiệu các loại văn phòng phẩm được sử dụng phổ biến hiện nay Cung cấp thông tin một cách đầy đủ và nhanh chóng về tất cả sản phẩm có trong công ty
Về phân tích hệ thống: Khảo sát để đưa ra được các yêu cầu quản lý cũng như các chức năng cần có của hệ thống
Về thiết kế hệ thống: Thiết kế cơ sở dữ liệu, thiết kế giao diện cho người dùng, viết báo cáo kết quả làm được
Thử nghiệm: Chạy thử hệ thống, chỉnh sửa các lỗi phát sinh và hoàn thiện hệ thống, viết tài liệu hướng dẫn sử dụng
Trang 18CHƯƠNG 2
CƠ SỞ LÝ THUYẾT 2.1 TỔNG QUAN VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU PHPMYADMIN VÀ MYSQL
2.1.1 Giới thiệu
PhpMyAdmin là một công cụ nguồn mỡ miễn phí được viết bằng PHP dự định
để xử lý quản trị của MySQL thông qua một trình duyệt web Nó có thể thực hiện nhiều tác vụ như tạo, sửa đổi hoặc xóa bỏ cơ sở dữ liệu, bảng, các trường hợp hoặc bản ghi, thực hiện báo cáo SQL, hoặc quản lý người dùng và cấp phép
Các tính năng được cung cấp bởi chương trình bao gồm:
- Giao diện web
- Quản lý CSDL MySQL
- Nhập dữ liệu từ CSV và SQL
- Xuất dữ liệu sang các định dạng khác nhau: CSV, SQL, XMLPDF (Thông qua thư viện TCPDF), ISO/EC 26300 – OpenDocument văn bản và bảng tính, Word, Excel, LateX và các định đạng khác
- Quản lý nhiều máy chủ
- Tạo PDF đồ họa của của bố trí CSDL
- Tạo truy vấn phức tạp bằng cách sử dụng Query-by-example (QBE)
- Tìm kiếm tổng quan trong CSDL hoặc tập hợp con của nó
- Chuyển đổi dữ liệu được lưu trữ thành các định dạng bằng cách sử dụng một tập hợp các chức năng được xác định trước, như hiển thị dữ liệu BLOB như hình ảnh hoặc tải về liên kết
- Giám sát các truy vấn (quy trình)
MySQL là hệ quản trị CSDL 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à CSDL 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
Trang 19các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irx, Solaris, SunOS, …
MySQL là một trong những ví dụ rất cơ bản về Hệ quản trị CSDL 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, …
… Nếu ứng dụng có quy mô lớn, bạn có thể chọn CSDl có quy mô lớn như: Oracle, SQK Server, …
- Truy cập: Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu người sử dụng,
ở mức độ mang tính cục bộ, truy cập CSDL ngay trong CSDL với nhau, nhằm trao đổi hay xử lý dữ liệu ngay bên trong chính nó, nhưng do mục đích và yêu cầu người dùng vượt ra ngoài CSDL, nên bạn cần phải có các phương thức truy cập dữ liệu giữa các CSDL với nhau như: Micrsoft Access với SQK Server hay SQL Server và CSDL Oracle,…
- Tổ chức: Tổ chức CSDL phụ thuộc vào mô hình CSDL, phân tích và thiết kế CSDL tức là tổ chức CSDL phụ thuộc vào đặc điểm riêng của từng ứng dụng Tuy nhiên khi tổ chức CSDL cần phải tuân theo một số tiêu chuẩn của hệ thống CSDL nhằm tăng tính tối ưu khi truy cập và xử lý
- Xử lý: Tùy vào nhu cầu tính toán và truy vấn CSDL với các mục đích khác nhau, cần phải sử dụng các phát biểu truy vấn cùng các phép toán, phát biểu của CSDL để xuất ra kết quả như yêu cầu Để thao tác hay xử lý dữ liệu bên trong CSDL ta sử dụng các ngôn ngữ lập trình như: PHP, C++, Java, Visual Basic, …
2.2 TỔNG QUAN VỀ PHP FRAMEWORK
PHP là một ngôn ngữ lập trình mạnh mẽ và được sử dụng rộng rãi cho phép chúng ta phát triển các ứng dụng web lớn Nhiều ngôn ngữ lập trình khác có thể được sử dụng ngang với ngôn ngữ PHP như ASP.NET và Ruby Tuy nhiên, PHP
Trang 20vẫn được phát triển mạnh mẽ Sự phổ biến của PHP là do dễ dàng tìm hiểu và sử dụng, trái ngược với các ngôn ngữ lập trình khác
PHP Framework là một nền tảng cơ bản giúp chúng ta phát triển các ứng dụng web
PHP Framework cung cấp một cấu trúc xây dựng ứng dụng Khi sử dụng PHP Framework, người dùng có thể thúc đẩy nhanh chóng quá trình phát triển ứng dụng, tiết kiệm thời gian, tăng tính ổn định, ngăn chặn việc lặp đi lặp lại khi tạo mã Hiện tại nếu không có PHP Framework, việc xây dựng các ứng dụng sẽ gặp nhiều khó khăn vì các mã PHP sẽ lặp đi lặp lại rất khá nhiều Người dùng phải thực hiện kết nối giữa cơ sở dữ liệu với bất cứ ứng dụng web được phát triển từ đầu Trong khi
đó, sử dụng PHP Framework đảm bảo cho kết nối này trở nên dễ dàng hơn
Hiện tại có rất nhiều PHP Framework được cung cấp, nhưng có khoảng 20 Framework có thể đáp ứng yêu cầu sử dụng của người dùng thông qua các tiêu chí đánh giá như số lượng người dùng, tốc độ, mức độ hỗ trợ, sự ổn định, quy mô, … Các PHP Framework phổ biến nhất hiện nay như Zend Framework 2, CakePHP, Symfon, CodeIgniter Framework, Seagull, Lavarel Framework, Yii Framework, …
2.3 MÔ HÌNH MVC
2.3.1 Lịch sử hình thành mô hình MVC
Mô hình MVC (Model – View – Controller) được Trygve Reenskaug giới thiệu vào năm 1979, trong một lần ông đến thăm trung tâm Xerox PARC ở Palo Alto
Mô hình MVC sau đó nhanh chóng phát triển rộng rãi và hoàn thiện, từ đó sinh ra các biến thể như HMVC, MVA, MVP, MVVM, … những người dùng khác nhau có thể chuyển hóa mô hình MVC theo từng trường hợp sử dụng khác nhau
2.3.2 Các thành phần trong mô hình
Trang 21Hình 2.1 Các thành phần trong mô hình MVC
PHP Framework hoạt động dựa trên nguyên tắc cơ bản là Model – View – Controller (MVC) MVC là một kiểu kiến trúc đặc trưng phổ biến trong các ngôn ngữ lập trình, cho phép tách rời tầng xử lý (business logic) và tầng giao diện (UI) thành các thành phần riêng biệt Tầng xử lý có chức năng chính là xử lý, trao đổi thông tin giữa CSDL và giao diện, vì vậy ta có thể chỉnh sửa các thành phần đó theo một cách riêng biệt từ đó loại bỏ được rất nhiều nhầm lẫn và đơn giản hóa toàn bộ quá trình phát triển
Nhiệm vụ cụ thể của từng thành phần trong mô hình MVC:
Model (Tầng dữ liệu): Bao gồm các đối tượng thể hiện cho phần xử lý
dữ liệu của chương trình Nói cách khác nó chịu trách nhiệm cung cấp
và lưu trữ dữ liệu vào kho dữ liệu Các dữ liệu người dùng sẽ được gửi qua View và Controller và được kiểm tra tại Model trước khi lưu vào
cơ sở dữ liệu Trong Model bao gồm các công việc như truy vấn, thêm, xóa, cập nhật dữ liệu
View (Tầng giao diện): Là thành phần lớp xử lý lớp giao diện người dùng, bao gồm việc hiển thị dữ liệu ra màn hình, cung cấp các nút bấm, hộp thoại, các lựa chọn, … để người dùng có thể thực hiện các công việc thêm, xóa, chỉnh sửa, tìm kiếm, … Các thông tin hiển thị trong View thường được lấy từ thành phần Model
Controller (Tầng điều khiển): Làm nhiệm vụ lọc các yêu cầu xử lý từ người dùng, có chức năng như một router để điều chỉnh, phân luồng các yêu cầu để gọi đúng các Model và View thích hợp
MVC chia nhỏ quá trình xử lý của một ứng dụng, điều này làm cho ứng dụng làm việc trên từng thành phần riêng biệt và không ảnh hưởng đến các thành phần
Trang 22khác Với mô hình MVC, PHP framework trở nên rõ ràng hơn nhiều, dễ quản lý và
dễ dàng sử dụng
2.3.3 Quy trình hoạt động cơ bản của mô hình MVC
Hình 2.2 Quy trình hoạt động cơ bản của mô hình MVC
Mô hình trên là thể hiện mô hình MVC trong các dự án website và sẽ hoạt động theo quy trình sau:
Controller tiếp nhận các yêu cầu từ người dùng và điều hướng các yêu cầu đến đúng các phương thức xử lý đã được xây dựng trong Model
Model nhận thông tin được từ Controller và tiến hành xử lý 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ị kết quả đó cho người dùng
2.3.4 Ưu và Nhược điểm của mô hình MVC
Ưu điểm:
Có tính chuyên nghiệp hóa cao trong lập trình, phân tích thiết kế
Trang 23 Do được chia thành nhiều thành phần riêng lẽ nên giúp phát triển các ứng dụng nhanh chóng, đơn giản, dễ nâng cấp, dễ bảo trì, …
2.4 TỔNG QUAN VỀ CODEIGNITER FRAMEWORK
Hình 2.3 Logo CodeIgniter Framework
2.4.1 Giới thiệu
CodeIgniter Framework (viết tắt là CI) là một nền tảng ứng dụng web nguồn
mở được viết bằng ngôn ngữ PHP bởi Rick Ellis (CEO của EllisLab, Inc) Phiên bản đầu tiên được phát hành ngày 28/02/2006 Ý tưởng xây dựng CI dựa trên Ruby
on Rails, một nền tảng ứng dụng web được viết bằng ngôn ngữ Ruby Hiện tại, CI đang được phát triển bởi Expression Engine Development Team thuộc EllisLab, Inc Nó là một trong những PHP Framework được xem là phổ biến và dễ dàng tiếp cận nhất so với các PHP Framework hiện hành và phổ biến như Zend Framework, Cake PHP Framework, Yii Framework, … Tuy là một Framework dễ tiếp cận, nhưng CI cùng có đầy đủ sức mạnh như các Framework phổ khác và được xem là PHP Framework nhanh nhất hiện nay
2.4.2 Những điểm nổi bật
Trang 24CI có các ưu điểm nổi bật hơn so với các Framework khác như:
Cực kỳ nhỏ gọn: gói cài đặt CI mới nhất hiện nay (version 2.2) khoảng 3.95 MB dung lượng để tải về và miễn phí hoàn toàn 100%
Tốc độ nhanh: CI sử dụng cơ chế lưu nội dung trang web vào bộ nhớ đệm (cache), kiểm tra bộ đệm trước khi thực hiện các yêu cầu từ người dùng CI có thể giàm số lượt truy cập dữ liệu và xử lý dữ liệu, tối ưu hóa tốc độ tải trang đến mức tối đa có thể
Hệ thống thư viện phong phú: CI cung cấp các thư viện phục vụ cho những tác vụ thường gặp trong lập trình web, chẳng hạn như truy xuất CSDL, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnh,… đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật,…
Bảo mật hệ thống: cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS
và SQL Injection của CI giúp giảm thiểu các nguy cơ bảo mật cho hệ thống
Tối ưu hóa SEO: cấu trúc URL của CI rất thân thiện với các công cụ tìm kiếm tốt cho SEO
Thiết kế theo mô hình MVC: giúp cho việc thiết kế, nâng cấp bảo trì
mã nguồn một cách dễ dàng vì thành phần hiển thị (presentation) và thành phần xử lý (business logic) dữ liệu được tách biệt thành các phần độc lập
2.4.3 Những điểm hạn chế
Tuy CI có khá nhiều ưu điểm nhưng bên cạnh đó cũng có một số hạn chế như:
Chưa hỗ trợ Object Relational Mapping: Object Relation Mapping (ORM) là một số kỹ thuật lập trình, trong đó các bảng của CSDL được ánh xạ thành các đối tượng trong chương trình Kỹ thuật này giúp cho việc thực hiện các thao tác trong CSDL (Create Read Update Delete - CRUD) một cách dễ dàng, mã nguồn trở nên ngắn gọn hơn Hiện tại thì CI vẫn chưa hỗ trợ ORM
Chưa hỗ trợ AJAX: Hiện tại, CI vẫn chưa có thư viện dựng sẵn nào để
hỗ trợ xây dựng AJAX ở các phiên bản cũ Lập trình viên phải sử dụng các thư viện bên ngoài như jQuery, Script.aculo.us, Prototype hay Mootools, …
Chưa hỗ trợ một số module thông dụng: So sánh với framework khác,
Trang 25xây dựng ứng dụng web như Chứng thực người dùng (User Authorization), trình phân tích RSS (RSS Parses) hay trình xử lý PDF,…
Chưa hỗ trợ Event Driven Programming: Event-Driven Programming (EDP) là một nguyên lý lập trình, trong đó các luồng xử lý của hệ thống sẽ dựa vào các sự kiện, chẳng hạn như click chuột, gõ bàn phím không phải là một khuyết điểm to lớn của CI vì hiện tại, chỉ có một số
ít framework hỗ trợ EDP, bao gồm Prado, QPHP và Yii
2.4.4 Mô hình MVC trong CodeIgniter Framewok
Hình 2.4: Mô hình MVC trong CodeIgniter
Giống như hầu hết các PHP Framework, CI là một MVC Framework và có cấu trúc tuần tự cho mỗi phần của Model – View - Controller điều này giúp tăng khả năng tái sử dụng code, dễ dàng bảo trì cũng như nâng cấp sau này mà không ảnh hưởng nhiều đến hệ thông hiện tại Trước khi bắt đầu xây dựng CI đầu tiên, chúng ta cần phải xác định cấu trúc chính của CI và xem là thế nào thực hiện và thực thi kiến trúc MVC
MVC là một mô hình kiến trúc phần mềm được sử dụng phổ biến trong phát triển ứng dụng web Mục đích chính của MVC là:
Tách riêng các thành phần logic với giao diện người dùng
Giúp cho việc thay đổi các thành phần dễ dàng mà không làm ảnh hưởng đến các thành phần khác
Dễ dàng phát triển và bảo trì ứng dụng
CI được dựa trên mô hình phát triển Model – View – Controller Mô hình MVC tách biệt xử lý dữ liệu ra khỏi phần giao diện, đây được xem là chuẩn thiết kế trong công nghệ phần mềm
Model: Mô hình đại diện cho cấu trúc dữ liệu Thông thường các lớp mô hình sẽ chứa các chức năng giúp truy vấn, thêm, sửa, xóa và cập nhật thông
Controller
Trang 26tin trong cơ sở dữ liệu Nếu các dữ liệu trong Model thay đổi thì các thành phần torng View được thay đổi và ngược lại
View: Chức năng chính là hiển thị thông tin cho người dùng Một View có thể toàn bộ là một trang web, nhưng trong CI, một View cũng có thể là mảng nhỏ trên như header, footer, một trang RSS hay một thể loại của trang Mỗi một Model có thể có nhiều View tùy thuộc vào mục đích sử dụng của người dùng
Controller: Thành phần trung gian để kết nối View và Model Các yêu cầu của người dùng từ View sẽ gửi tới Controller xử lý, sau đó các Controller sẽ gọi tới các Model để thao tác với cơ sở dữ liệu, cuối cùng Controller trả dữ liệu này về cho View
2.4.5 Cấu trúc Codeigniter Framework
Hình 2.5 Cấu trúc thư mục của CodeIgniter Framework
Ý nghĩa của thư mục và file trong cấu trúc CodeIgniter như sau:
- Application: đây là thư mục rất quan trọng, thư mục chứa ứng dụng, nơi đây
sẽ là nơi chúng ta viết code cho dự án
- System: đây là thư mục chứa toàn bộ thư viện của CodeIgniter, các bạn không
nên chỉnh sửa hay can thiệp gì vào đây, nếu muốn thì có thể mở ra xem thôi
- User_guide: đây là thư mục chứa toàn bộ hướng dẫn sử dụng, các bạn có thể
xóa thư mục này còn các hướng dẫn có thể truy trên internet để xem
- Index: các bạn giữ nguyên file này
Sau khi download về và cài đặt thành công CodeIgniter Framework, ta sẽ có được một thư mục có cấu trúc như sau:
Trang 27Hình 2.6 Cấu trúc thư mục application trong CodeIgniter
Ý nghĩa các thư mục trong thư mục application:
- Config: Thư mục config chứa các tập tin cấu hình hệ thống
- Core: đây là thư mục viết các core của hệ thống, có thể viết các main
controller, model, … để kế thừa
- Controllers: đây là thư mục chứa toàn bộ các file controller (điều hướng và
xử lý các dữ liệu)
- Models: đây là nơi chứa các file thực hiện việc truy xuất dữ liệu đáp ứng yêu
cầu từ controller của hệ thống (làm việc với cơ sở dữ liệu)
- Views: là nơi chứa các file hiển thị thông tin cho người sử dụng hay còn gọi là
lớp giao diện (hiển thị dữ liệu)
- Helpers: chứa các helpers (các hàm tự xây dựng)
- Library: chứa các thư viện mà chúng ta tự phát triển
- Language: chứa các file ngôn ngữ, nếu bạn làm website đa ngôn ngữ thì chỉ
cần sử dụng tới mục này
Và ngoài ra còn một vài thư mục khác, nhưng ít được sử dụng hơn, các bạn có thể tìm hiểu thêm
2.4.6 Dòng chảy dữ liệu trong Codeigniter Framework
Hình 2.7 Luồng xử lý dữ liệu trong CodeIgniter Framework
Trang 28Index.php: đóng vai trò như bộ điều khiển phía trước, khởi tạo các tài nguyên
cơ sở, cần thiết cho hệ thống CodeIgniter
Routing: Điều hướng giúp kiểm tra các yêu cầu HTTP để xác định những gì
cần phải thực hiện với nó
Caching: Nếu một dữ liệu được yêu cầu đã tồn tại trong bộ nhớ đệm, nó sẽ
được gửi trực tiếp về cho trình duyệt (client) Quá trình xử lý kết thúc
Security: Các yêu cầu HTTP hay bất kỳ dữ liệu người dùng trước khi được
gửi đến Controller để xử lý đều được lọc qua nhằm phòng chóng XXS hoặc SQL Injection
Application Controller: Controller gọi đến các Models, Libraries, Helpers,
Plugins… cần thiết để xử lý các yêu cầu cụ thể được gửi đến
View: Dữ liệu được chuyển đến View để hiện thi cho người dùng nhìn thấy
Nếu bộ nhớ đệm (Caching) được kích hoạt, dữ liệu sẽ được lưu vào bộ nhớ đệm để phục vụ cho các yêu cầu tiếp theo
2.5 MÔ HÌNH THỰC THỂ KẾT HỢP – ER
Mô hình thực thể kết hợp – ER được dùng để thiết kế cơ sở dữ liệu mức quan niệm, biểu diễn trừu tượng cấu trúc của cơ sở dữ liệu Sơ đồ thực thể kết hợp gồm có:
Tập thực thể (Entity Sets) / thực thể (Entity)
Thuộc tính (Attributes)
Mối quan hệ (Relationship)
Trang 29CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 3.1 TỔNG QUAN HỆ THỐNG
3.1.1 Mô tả bài toán
Trang web được xây dựng nhằm phục vụ cho việc chọn mua và đặt hàng trực tiếp trên mạng dành cho những khách hàng của cửa hàng văn phòng phẩm:
Quản lý nhân viên bao gồm: mã nhân viên, họ tên, số điện thoại, giới tính, địa chỉ, mật khẩu, …
Đối với nhân viên được phân quyền admin thì có quyền cao nhất trong
hệ thống, có toàn quyền quyết định đối với trang web: truy xuất dữ liệu trang web, thao tác tất cả chức năng, được phân quyền, thay đổi quyền truy cập của các thành viên khác
Mỗi nhân viên có quyền truy cập khác nhau
Quản lý khách hàng bao gồm: mã khách hàng, họ tên, địa chỉ, số điện thoại, mật khẩu,
Quản lý sản phẩm bao gồm: mã sản phẩm, tên sản phẩm, thông tin, hình ảnh,…, mỗi sản phẩm được cung cấp bởi nhà cung cấp nào, thuộc nhóm sản phẩm nào
Thông tin nhà cung cấp: mã nhà cung cấp, tên nhà cung cấp, địa chỉ,
số điện thoại,…
Thông tin nhóm sản phẩm: mã nhóm sản phẩm, tên nhóm sản phẩm
Cho phép nhân viên của công ty thêm mới, cập nhật, xóa sản phẩm nào đó Khi cập nhật hay xóa sản phẩm, nhân viên có thể thực hiện chức năng tra cứu sản phẩm
Quản lý bán hàng:
đến các đại lý để trực tiếp mua hoặc có thể mua hàng trực tuyến thông qua trang web Khách hàng truy cập vào trang web, tạo một tài khoản
cá nhân, sau đó có thể vào hệ thống trang web để mua hàng
Nếu khách hàng muốn đặt mua sản phẩm trực tuyến thì khách hàng chỉ cần lưu lại thông tin cá nhân vào trang đặt mua, nhân viên sẽ dựa trên thông tin đó giao hàng trực tiếp đến địa chỉ khách hàng đó
Trang 30 Khi việc đăng kí mua được xác lập thì một hóa đơn được lập ra bởi nhân viên bán hàng Thông tin của mỗi hóa đơn có mã số, mã khách hàng, mã sản phẩm, số lượng, đơn giá, ngày đặt hàng,
Quản lý nhập kho và xuất kho:
Hằng ngày nhân viên sẽ kiểm tra sản phẩm trong kho, nếu số sản phẩm không đủ để cung cấp cho khách hàng, thì nhân viên lập một phiếu nhập đề gởi qua nhà cung cấp để nhập hàng
Thông tin của mỗi phiếu nhập bao gồm mã phiếu nhập, mã sản phẩm, ngày nhập, nhân viên lập phiếu, số lượng, đơn giá,…
Khi các đại lý muốn nhập sản phẩm từ công ty, nhân viên đại lý lập một phiếu nhập gửi cho công ty và kèm theo đó thì một phiếu xuất được lập ra
Thông tin của một phiếu xuất gồm mã phiếu xuất, mã sản phẩm, ngày xuất, nhân viên lập phiếu, số lượng, đơn giá, …
3.1.2 Mô tả các ràng buộc toàn vẹn
1 R1 Thuộc tính Giới tính trong bảng Nhân viên có giá trị là True (Nam) hoặc False (Nữ)
2 R2 Mỗi khách hàng đều có mã khách hàng khác nhau để phân biệt khách hàng khác
5 R5 Số lượng sản phẩm giao cho khách hàng phải nhỏ hơn hay tối đa là bằng số lượng đặt
9 R9 Số lượng nhập phải lớn hơn 0, tổng tiền nhập phải lơn hơn 0, đơn giá nhập lớn hơn 0
10 R10 Tập giá trị ma_nhomsp được tìm thấy trong quan hệ SANPHAM phải được tìm thấy trong tập các giá trị
ma_nhomsp trong quan hệ NHOMSANPHAM
Trang 31-
-
+(SOLUONG) +(DONGIA)
Trang 32Quan hệ Thêm Xóa Sửa
-
-
+ (MA_NHOMSP) +(MA_NHOMSP)
3.2 THIẾT KẾ
3.2.1 Sơ đồ use case
Khach hang
Quan ly tai khoan
Xem chi tiet san pham
Tim kiem san pham
Xem san pham theo loai
Trang 33Nhan vien quan ly
Quan ly User
Quan ly san pham
Quan ly don hang
Them tai khoan
Xoa tai khoan
Sua tai khoan
Xem DS san pham
Them san pham
Xoa san pham
Sua san pham
Xem DS don hang
Xem chi tiet don hang
Dang nhap <<extend>>
Tiêu đề: Đăng nhập vào hệ thống
Tóm tắt: Usecase này cho phép người dùng đăng nhập vào hệ thống, để thực hiện các quá trình đặt hàng
Actor: Người dùng
Mô tả kịch bản:
Trang 34Bảng 3.1 Mô tả kịch bản Use case Đăng nhập
Mức:
Đảm bảo thành công: Hiển thị giao diện người đăng nhập vào, thông tin đăng nhập thành công
Chuỗi sự kiện chính:
1 Hệ thống hiển thị form đăng nhập và yêu cầu người dùng nhập thông tin đăng nhập vào
2 Người dùng nhập thông tin đăng nhập và nhấn đăng nhập
3 Hệ thống kiểm tra thông tin đăng nhập và xác nhận thông tin đăng nhập hợp lệ
4 Hệ thống thông báo đã đăng nhập thành công
5 Người dùng thao tác trên trang web
Ngoại lệ:
3a Hệ thống thông báo thông tin đăng nhập không hợp lệ
3a1 Hệ thống thông báo tên người dùng hoặc mật khẩu không hợp lệ
3a2 Người dùng chỉnh sửa thông tin đăng nhập
3a3 Hệ thống thông báo đăng nhập thành công
Đăng kí thành viên:
Tóm tắt định danh:
Tiêu đề: Đăng kí thành viên
Tóm tắt: Usecase đăng ký thành viên cho phép khách hàng mới đăng ký làm thành viên của công ty để đặt mua sản phẩm của công ty
Actor: Người dùng
Mô tả kịch bản:
Bảng 3.2 Mô tả Use case Đăng kí thành viên
Mức:
Trang 35Người chịu trách nhiệm: Khách hàng
Đảm bảo tối thiểu: Khách hàng đăng kí thành viên thành công, đăng nhập hệ thống thành công
Chuỗi sự kiện chính:
1 Hệ thống hiển thị form đăng kí và yêu cầu khách hàng nhập thông tin đăng kí vào
2 Khách hàng nhập đầy đủ thông tin đăng kí và nhấn đăng kí thành viên
3 Hệ thống kiểm tra thông tin đăng kí và xác nhận thông tin đăng kí hợp lệ
4 Hệ thống thông báo đã đăng kí thành công
5 Khách hàng thao tác trên trang web
Ngoại lệ:
3a Hệ thống thông báo khách hàng này đã có trong CSDL
3a1 Khách hàng thêm thông tin vào
3a2 Hệ thống thông báo đã thêm thông tin thành công
3b Hệ thống thông báo thông tin đăng ký không hợp lệ
3b1 Hệ thống yêu cầu khách hàng nhập lại thông tin
3b2 Khách hàng nhập lại thông tin đăng ký
Bảng 3.3 Mô tả kịch bản Use case Đăt hàng
Mức:
Trang 36Đảm bảo tối thiểu: Xóa bỏ hóa đơn
Đảm bảo thành công: Hiển thị giỏ hàng để đặt hàng và lưu thành công thông tin đặt hàng
Chuỗi sự kiện chính:
1 Hệ thống hiển thị form đặt hàng và yêu cầu người sử dụng điền vào thông tin đặt hàng
2 Người dùng điền đầy đủ thông tin yêu cầu và nhấn đặt hàng
3 Hệ thống kiểm tra thông tin đặt hàng và xác nhận hợp lệ của thông tin
4 Hệ thống lưu thông tin đặt hàng vào giỏ hàng của người dùng
Bảng 3.4 Mô tả kịch bản Use case Tìm kiếm
Mức:
Đảm bảo tối thiểu:
Chuỗi sự kiện chính:
1.Hệ thống hiển thị form tìm kiếm và yêu cầu người sử dụng nhập thông tin cần tìm 2.Người dùng nhập thông tin cần tìm
3.Hệ thống xác nhận thông tin cần tìm
Trang 37Bảng 3.5 Mô tả kịch bản Use case Cập nhật sản phẩm
Mức:
trên trang web Chuỗi sự kiện chính:
1.Người quản lý chọn chức năng cập nhật của hệ thống
2.Hệ thống yêu cầu nhập thông tin thuốc cần cập nhật
3.Hệ thống kiểm tra tính hợp lệ của thông tin cần cập nhật
4.Cập nhật lại thông tin trong CSDL
Ngoại lệ:
3a Thông tin đúng cập nhật vào CSDL
3b Thông tin sai yêu cầu nhập lại
Trang 383.2.3 Xây dựng các lớp thực thể
Các lớp quan trọng:
Lớp KHACHHANG:
KHACHHANG +
+ + + + + +
MA_KH HOTEN_KH DIACHI_KH SODT_KH EMAIL_KH TENDANGNHAP_KH MATKHAU_KH
: String : String : String : String : String : String : String +
+ + + + + +
Dangnhap () Timkiem () Dathang () Themkh () Suakh () Xoakh () Hienthikh ()
: int : int : int : String : String : String : String
Hình 3.3 Lớp khách hàng
Diễn giải: Thể hiện các thông tin của Khách Hàng, bao gồm Mã khách hàng,
Họ tên khách hàng, Địa chỉ, Số điện thoại, Email, Tên đăng nhập và Mật khẩu Trong đó MA_KH (Mã khách hàng) làm khóa chính
Danh sách các phương thức lớp KHACHHANG:
Đăng nhập Tìm kiếm Đặt hàng Sửa thông tin khách hàng Thêm khách hàng mới Xóa khách hàng Hiển thị khách hàng
Lớp NHANVIEN:
Trang 39NHANVIEN +
+ + + + +
MA_NV HOTEN_NV GIOITINH_NV DIACHI_NV SODT_NV MATKHAU_NV
: String : String : boolean : String : String : String +
+ + + + + + +
Dangnhap () Capnhatdanhmuc () Capnhatsp () Timkiem () Lapphieunhap () Lapphieuxuat () Kiemtradathang () Thongke ()
: int : int : int : int : int : int : int : int
Hình 3.4 Lớp nhân viên
Diễn giải: Thể hiện các thông tin của nhân viên bao gồm Mã nhân vên, Họ tên nhân viên, Số điện thoại, Địa chỉ, Giới tính và Mật khẩu Trong đó MA_NV (Mã nhân viên) làm khóa chính
Danh sách các phương thức lớp NHANVIEN:
Bảng 3.7 Phương thức lớp nhân viên
Lapphieunhap Lapphieuxuat Kiemtradathang Thongke
Đăng nhập Cập nhật sản phẩm Cập nhật danh mục Tìm kiếm
Lập phiếu nhập Lập phiếu xuất Kiểm tra đơn đặt hàng Thống kê
Lớp NHOMSANPHAM:
NHOMSANPHAM +
+
MA_NHOMSP TEN_NHOMSP
: double : String +
+ + +
Themnsp () Suansp () Xoansp () Hienthinsp ()
: String : String : String : String
Hình 3.5 Lớp nhóm sản phẩm
Trang 40Diễn giải: Thể hiện thông tin của nhóm sản phẩm bao gồm Mã nhóm sản phẩm, Tên nhóm sản phẩm Trong đó MA_NHOMSP (Mã nhóm sản phẩm) làm khóa chính
Danh sách các phương thức lớp NHOMSANPHAM:
Thêm nhóm sản phẩm mới Sửa thông tin nhóm sản phẩm Xóa nhóm sản phẩm
Hiển thị nhóm sản phẩm
Lớp SANPHAM:
SANPHAM +
+ + + + + +
MA_SP TEN_SP THONGTIN_SP HINHANH_SP GIA_SP LUOTXEM GHICHU_SP
: double : String : String : String : double : int : String +
+ + +
Themsp () Suasp () Xoasp () Hienthisp ()
: String : String : String : String
Hình 3.6 Lớp sản phẩm
Diễn giải: Thể hiện thông tin của lớp sản phẩm bao gồm Mã sản phẩm, Tên sản phẩm, Thông tin sản phẩm, Hình ảnh sản phẩm, Giá và Ghi chú Trong đó MA_SP (Mã sản phẩm) làm khóa chính
Danh sách các phương thức lớp SANPHAM:
Thêm sản phẩm mới Sửa thông tin sản phẩm Xóa sản phẩm
Hiển thị nhóm sản phẩm