Và để thực hiện được nhu cầu này, các cửa hàng rất cần cho mình một website đểgiới thiệu sản phẩm của cửa hàng đến với mọi người.. Vì vậy, các cửa hàng kinh doanh nói chung và cửa hàng p
Trang 1DANH SÁCH HÌNH iii
DANH MỤC BẢNG v
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT vi
TÓM TẮT vii
ABSTRACT viii
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 KHẢO SÁT HIỆN TRẠNG 2
1.4 PHẠM VI ĐỀ TÀI 2
1.5 PHƯƠNG PHÁP THỰC HIỆN 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 HTML 4
2.2 MYSQL 4
2.3 JAVASCRIPT 5
2.4 AJAX 5
2.5 JQUERY 6
2.6 PHP FRAMEWORK 6
2.7 MÔ HÌNH MVC 7
2.7.1 Giới thiệu mô hình MVC 7
2.7.2 Các thành phần của mô hình MVC 7
2.7.3 Quy trình xử lý dữ liệu 8
2.8 CODEIGNITER FRAMWORK 9
2.8.1 Giới thiệu về CodeIgniter 9
2.8.2 Quá trình phát triển của CodeIgniter 9
2.8.3 So sánh các framework 9
2.8.4 Lý do chọn CodeIgniter 10
2.8.5 Những hạn chế của CodeIgniter 11
Trang 22.8.6 Hướng dẫn cài đặt 11
2.8.7 Luồng thực thi trong CodeIgniter 12
2.8.8 Điều hướng URL trên CodeIgniter bằng routes file 13
2.8.9 Cấu trúc của CodeIgniter 15
CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 16
3.1 MÔ TẢ HỆ THỐNG 16
3.2 GIẢI PHÁP PHÂN TÍCH, THIẾT KẾ CÁC MÔ HÌNH 18
3.2.1 Sơ đồ phân rã chức năng 18
3.2.2 Sơ đồ Use case 20
3.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 23
3.3.1 Mô hình dữ liệu mức quan niệm – ER 23
3.3.2 Mô hình vật lý 24
3.3.3 Mô hình cơ sở dữ liệu quan hệ 25
3.3.5 Mô tả dữ liệu 26
3.3.6 Mô hình luận lý - MLD 33
3.3.7 Ràng buộc toàn vẹn 34
3.3.8 Sơ đồ tuần tự 38
3.4 KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG DẪN SỬ DỤNG 40
3.4.1 Kết quản đạt được 40
3.4.2 Giao diện và hướng dẫn sử dụng 41
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 54
TÀI LIỆU THAM KHẢO 55
Trang 3Hình 2.1 Mô hình MVC 7
Hình 2.2.Sơ đồ hoạt động của MVC 8
Hình 2.3 Biểu đồ so sánh framework php 9
Hình 2.4 Luồng thực thi dữ liệu trong CodeIgniter 12
Hình 2.5 Cấu trúc của CodeIgniter 15
YHình 3.1 Sơ đồ phân rã chức năng khách hàng 18
Hình 3.2 Sơ đồ phân rã chức năng nhân viên 19
Hình 3.3 Sơ đồ Use Case nhân viên tổng quát 20
Hình 3.4 Sơ đồ Use Case sản phẩm 21
Hình 3.5 Sơ đồ Use Case thống kê 21
Hình 3.6 Sơ đồ Use Case duyệt đơn hàng 22
Hình 3.7 Use Case khách hàng 22
Hình 3.8 Mô hình ER 23
Hình 3.9 Mô hình vật lý 24
Hình 3.10 Mô hình cơ sở dữ liệu quan hệ 25
Hình 3.11 Quy trình tuần tự đăng nhập 38
Hình 3.12 Quy trình tuần tự thêm sản phẩm 38
Hình 3.13 Quy trình tuần tự đặt hàng 39
Hình 3.14 Trang chủ website 41
Hình 3.15 Trang tìm kiếm sản phẩm 42
Hình 3.16 Trang chi tiết sản phẩm 43
Hình 3.17 Trang giỏ hàng và thanh toán 44
Hình 3.18 Trang tạo tài khoản 45
Hình 3.19 Trang đăng nhập 45
Hình 3.20 Trang quản lý tài khoản 46
Hình 3.21 Trang chi tiết đơn hàng 46
Hình 3.22 Trang đăng nhập hệ thống 47
Hình 3.23 Trang chủ hệ thống quản lý 47
Hình 3.24 Trang quản lý sản phẩm 48
Trang 4Hình 3.25 Trang thêm sản phẩm 48
Hình 3.26 Trang chi tiết phiếu nhập 49
Hình 3.27 Trang nhập hàng 49
Hình 3.28 Trang danh sách đơn hàng của khách 50
Hình 3.29 Trang chi tiết đơn hàng của khách 50
Hình 3.30 Trang thống kê doanh thu 51
Hình 3.31 Trang thống kê sản phẩm tồn 51
Hình 3.32 Trang gửi mail cho khách hàng 52
Hình 3.33 Trang danh sách tin tức 52
Hình 3.34 Trang nhân viên đăng nhập 53
Hình 3.35 Trang thống kê lợi nhuận 53
Trang 5Bảng 3.1 Bảng nhasanxuat 26
Bảng 3.2 Bảng khuyenmai 26
Bảng 3.3 Bảng anhsp 26
Bảng 3.4 Bảng sanpham 27
Bảng 3.5 Bảng phieunhap 27
Bảng 3.6 Bảng chitietphieunhap 28
Bảng 3.7 Bảng hoadon 28
Bảng 3.8 Bảng hoadonchitiet 28
Bảng 3.9 Bảng nhanvien 29
Bảng 3.10 Bảng chucvu 29
Bảng 3.11 Bảng luongnv 29
Bảng 3.12 Bảng congtac 30
Bảng 3.13 Bảng binhluan 30
Bảng 3.14 Bảng cactrangphu 30
Bảng 3.15 Bảng tintuc 31
Bảng 3.16 Bảng khachhang 31
Bảng 3.17 Bảng theloai 32
Bảng 3.18 Bảng nhomtheloai 32
Bảng 3.19 Bảng nhacungcap 32
Bảng 3.20 Tầm ảnh hưởng thuộc tính idmanv trên nhanvien 35
Bảng 3.21 Tầm ảnh hưởng ngaylap, ngaygiao trên hoadon 35
Bảng 3.22 Tầm ảnh hưởng idsanpham trên binhluan, sanpham 35
Bảng 3.23 Tầm ảnh hưởng thuộc tính idsanpham trên khuyenmai, sanpham 36
Bảng 3.24 Tầm ảnh hưởng thuộc tính soluong trên sanpham 36
Bảng 3.25 Tầm ảnh hưởng thuộc tính giasp tren sanpham 36
Bảng 3.26 Tầm ảnh hưởng thuộc tính soluong trên chitietphieunhap, sanpham, hoadonchitiet 37
Trang 6DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
Ký hiệu/ chữ viết tắt Diễn giải
CSS Viết tắt của Cascading Style Sheets, nó chỉ đơn
thuần là một dạng file text với phần tên mở rộng là css
DOM
Là chữ viết tắt của Document Object Model ("Mô hìnhĐối tượng Tài liệu"), là một giao diện lập trình ứngdụng Thường thường DOM, có dạng một cây cấu trúc
dữ liệu, được dùng để truy xuất các tài liệu dạngHTML và XML
HLML Viết tắt của Hypertext Markup Language, là ngôn ngữ
được sử dụng rộng rãi nhất để viết các trang Web.MVC
Viết tắt của Model – View – Controller Là một kiếntrúc phần mềm hay mô hình thiết kế được sử dụngtrong kỹ thuật phần mềm
PHP
Viết tắt của chữ "Hypertext Preprocessor", đây là mộtngôn ngữ lập trình được sử dụng để viết ở phía máychủ (lập trình web)
Actor dùng để chỉ người sử dụng hoặc đổi tượng bênngoài tương tác với hệ thống
Use Case là chức năng mà các Actor sử dụng
Quan hệ Association dùng để mô tả mối quan hệ giữaActor và Use Case
Quan hệ Dependency dùng để mô tả mối quan hệ giữacác Use Case
Quan hệ extend được sử dụng khi một Use Case tạo ra
để bổ sung chức năng cho Use Case trước đó
Quan hệ include thường được sử dụng để mô tả việcphân nhỏ của một Use Case
Mô tả đối tượng trong hệ thống
Thông điệp gởi đi
Thông điệp trả về
Trang 7Ngày nay, khi công nghệ thông tin và mạng Internet đang phát triển mạnh mẽ.Điều này đã tạo điều kiện cho các cửa hàng có thể dễ dàng quảng bá cửa hàng củamình đến với nhiều người, nhiều nơi trên thế giới thông qua các website, ứngdụng với mục đích tăng lợi nhuận và mang cửa hàng đến gần hơn với mọi người gần
xa Và để thực hiện được nhu cầu này, các cửa hàng rất cần cho mình một website đểgiới thiệu sản phẩm của cửa hàng đến với mọi người
Cửa hàng “Khuyến mãi cần thơ” là một cửa hàng chuyên bán phụ kiện điện tử với chất lượng tốt và giá cả hợp lý Đồng thời, “Khuyến mãi cần thơ” còn là một cửa
hàng mới và đang cố gắng từng bước khẳng định tên tuổi của mình trên thị trường Do
đó, cũng như tất cả các cửa hàng khác, “Khuyến mãi cần thơ” cũng rất cần có một
website để phục vụ khách hàng ở mọi nơi có thể biết đến cửa hàng, đặt hàng, xem cácsản phẩm khuyến mãi, tìm sản phẩm… Mặt khác, website cũng giúp cho việc quản lýnhân viên, quản lý sản phẩm và thống kê trở nên dễ dàng hơn
Mục tiêu của đề tài “Xây dựng website quản lý phụ kiện điện tử tại cửa hàng Khuyến Mãi Cần Thơ trên nền tảng công nghệ CodeIgniter” đáp ứng các yêu cầu
sau:
- Khánh hàng mua hàng trực tuyến
- Khách hàng có thể xem lại đơn hàng, tìm kiếm và bình luận sản phẩm
- Cửa hàng quản lý thông tin sản phẩm, nhân viên, các nhà cung cấp
- Duyệt đơn hàng khi khách hàng đặt
- Quản lý phiếu nhập, phiếu xuất và thống kê doanh thu, chi phí, lợinhuận
Nội dung của đề tài 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 và phương pháp thực hiện
Chương 2: Cơ sở lý thuyết: Giới thiệu về PHP framework, mô hình MVC và
CodeIgniter framework và các ngôn ngữ hỗ trợ
Chương 3: Nội dung và kết quả nghiên cứu: Kết quả điều tra, thu nhập thông tin
và xây dựng các sơ đồ: Use case,ER , cơ sở dữ liệu quan hệ 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: Quản lý cửa hàng, CodeIgniter framework, web quản lý
Trang 8Nowadays, as information technology and the Internet are growing strongly Thishas created conditions for the easy advertise your store with many people, many placeabout the world through website, applications with the purpose to increase profitsand bring store closer to people near and far And to make this demand, the stores need
a website to introduce the store's products to everyone
Store “Khuyen Mai Can Tho” is a store specializing in the sale of electronic
Accessories with good quality and reasonable price At the same time, "Khuyến mãiCần Thơ" is also a new store and are trying to gradually asserted its name on themarket Therefore, as well as all the other stores, "Khuyến mãi cần thơ" is also verynecessary to have a website to serve customers everywhere can learn to shop, order,view the product promotion, search product… On the other hand, the website alsohelps to staff management, product management and statistics becomes much easier
The objective of the subject “Construction of website management electronic accessories at the store Khuyen Mai Can Tho on technology platforms CodeIgniter” meets the following requirements:
- Customers buy online
- Customers can review orders, search and comment on products
- Store product information management, employees, suppliers
- Browse orders when customers order
- Manage input bill, bill and revenue statistics, costs and profit
The content of the subject includes three chapters:
Chapter 1: Overview of topics: Introduction to the subject and the reason to
implement the project, pointed out the scope and methods of implementation
Chapter 2: Theoretical Foundations: Introduction to PHP framework, MVC model
and CodeIgniter framework and language support
Chapter 3: Content and results: The survey results, collect information and build
diagrams: Use case, ER, relational database Presenting research findings,outlined up of the achievement and the parts are limited
KEYWORDS: Store management, CodeIgniter framework, web management
Trang 9Trong những năm gần đây, công nghệ thông tin và mạng Internet đã đang pháttriển với tốc độ nhanh chóng, góp phần quan trọng trong công cuộc xây dựng và pháttriển xã hội Với sự phát triển mạnh mẽ và không ngừng đó thì công nghệ thông tin vàmạng Internet được áp dụng và đã đem lại hiệu quả tích cực trong các lĩnh vực: kinh
tế, chính trị, an ninh quốc phòng,thương mại điện tử Và máy tính cũng dần trở nêngần gũi, phổ biến với mọi người, việc mọi người sử dụng máy tính lên mạng để đặt vàmua sản phẩm đang trở nên rất phổ biến
Vì vậy, các cửa hàng kinh doanh nói chung và cửa hàng phụ kiện điện tử nóiriêng, việc áp dụng một website để khách hàng có thể lựa chọn sản phẩm, đặt hàng là
vô cần cần thiết Vừa để quảng bá cửa hàng đến với mọi người bất kể gần xa nhờ vàomạng internet
Ngoài ra website giúp cho cửa hàng quản lý nhân viên, sản phẩm, khuyến mãi Còn giúp cho cửa hàng thống kê doanh thu, lợi nhuận và gửi mail quảng cáo đến vớikhách hàng
Nhưng kèm theo đó là vấn đề bảo mật, các cửa hàng lo vì sợ bị mất những thôngtin quan trọng nên cần lựa chọn ngôn ngữ và công nghệ phù hợp
Do đó, tôi chọn “Xây dựng website quản lý phụ kiện điện tử tại cửa hàng Khuyến Mãi Cần Thơ trên nền tảng công nghệ CodeIgniter” làm đề tài để giải
quyết các vấn đề trên
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Website quản lý nói chung và quản lý phụ kiện điện tử nói riêng đã không còn là
một vấn đề mới nhưng chỉ được áp dụng ở một số cửa hàng lớn Như ta thường thấy
các website như: thegioididong,tiki,lazada Nhưng chi phí xây dựng khá cao và còn
khá mới đối với các cửa hàng nhỏ Vì vậy, ở đây hệ thống quản lý ở một mức độ chưacao, chỉ tập trung ở chức năng quan trọng và cần thiết cho một cửa hàng phụ kiện điệntử
“Xây dựng website quản lý phụ kiện điện tử tại cửa hàng Khuyến Mãi Cần Thơ trên nền tảng công nghệ CodeIgniter” sẽ đáp ứng những nhu cầu cần thiết để
cửa hàng có thể quản lý được sản phẩm và các chức năng cần thiết, còn khách hàng
có thể xem, lựa chọn sản phẩm và đặt hàng được Chương trình cần được nghiên cứu
và có thời gian để xây dựng hoàn thiện hơn
Trang 10Cửa hàng “Khuyến Mãi Cần Thơ” là một cửa hàng chuyên bán phụ kiện điện tử
với chất lượng cao, nhiều mẫu mã và giá thành hợp lý Hiện tại cửa hàng còn sử dụnghình thức buôn bán truyền thống, số lượng khách hàng sẽ chỉ xung quang không đượcnhiều người biết đến, việc giới thiệu sản phẩm đến nhiều nơi gặp rất nhiều khó khăn,người mua thì cần phải đến trực tiếp cửa hàng để xem và khó khăn trong việc lựa chọnsản phẩm Việc quản lý cửa hàng cũng gặp rất nhiều khó khăn khi nhập xuất hàng cácphiếu chỉ ghi trên giấy rất dễ thất lạc, khó khăn trong việc kiểm tra số lượng sản phẩm
để nhập hàng phục vụ cho khách và các phiếu nhập dễ thất lạc dẫn đến khó khăn trongviệc thống kê
Qua việc khảo sát thực tế trên, nếu cửa hàng cứ dùng phương pháp truyền thống
để mua bán với những khuyết điểm đã nêu trên, thì kết quả thu lại sẽ không được cao
và rất khó để phát triển Do vậy, việc xây dựng một website quản lý bán hàng nói
chung và website quản lý phụ kiện điện tử tại cửa hàng “Khuyến Mãi Cần Thơ” nói
riêng là một việc hết sức cấp bách và cần thiết để nhằm mục đích khắc phục nhữngkhuyết điểm đã nêu trên để phục vụ khách hàng được tốt hơn và việc quản lý một cửa
hàng trở nên đơn giản Và với phương châm “Vừa lòng khách đến, vui lòng khách đi” thì cửa hàng sẽ đem lại những gì tốt nhất để phục vụ cho quý khách hàng.
1.4 PHẠM VI ĐỀ TÀI
Xây dựng website quản lý phụ kiện điện tử tại cửa hàng “Khuyến Mãi Cần Thơ” đáp
ứng được các yêu cầu sau:
Đối với trang người dùng
- Tạo tài khoản
- Đăng nhập
- Cập nhật thông tin cá nhân và mật khẩu
- Quản lý lịch sử mua hàng và chi tiết mỗi đơn hàng
- Tìm kiếm sản phẩm
- Xem sản phẩm khuyến mãi, mới, bán chạy
- Đặt hàng sản phẩm cần mua
- Xem tin tức liên quan đến công nghệ
Đối với trang quản trị
- Đăng nhập
- Phân quyền theo chức vụ của nhân viên
- Cập nhật thông tin sản phẩm, nhân viên, nhà cung cấp, thể loại
- Thêm các sản phẩm khuyến mãi, sửa hoặc xóa các sản phẩm đã và đang khuyếnmãi
Trang 11- Nhập hàng từ các nhà cung cấp.
- Duyệt các đơn hàng của khách hàng
- Thống kê doanh thu, chi phí nhập hàng và lợi nhuận theo tháng, năm
- Gửi mail cho khách hàng và nhân viên trong cửa hàng
- Các tiện ích tìm kiếm trên từng trang
Một số lưu ý:
- Sản phẩm khi mua số lượng phải từ một trở lên
- Số lượng sản phẩm mua phải nhỏ hơn hoặc bằng số lượng sản phẩm đang cótrong kho
- Giá sản phẩm có thể thay đổi theo từng sự kiện khuyến mãi
- Thời gian bảo hành được tính từ lúc lập phiếu bán cho khách hàng
1.5 PHƯƠNG PHÁP THỰC HIỆN
Lý thuyết :
- Nắm vững kỹ thuật phân tích thiết kế hệ thống.
- Nắm vững các phương pháp tổ chức, phân tích và thiết kế cơ sở dữ liệu
- Nắm vững ngôn ngữ PHP, MySQL, HTML, CSS
- Tìm hiểu thêm về Bootstrap framework.
- Tìm hiểu nguyên lý hoạt động mô hình MVC.
- Tìm hiểu một số website có sẵn trên mạng.
- Nghiên cứu CodeIgniter framework để áp dụng chương trình.
- Tìm hiểu kỹ về quá trình hoạt động của cửa hàng.
Phần mềm sử dụng :
- Sử dụng Power Designer để thiết kế các mô hình ứng dụng.
- Microsoft Office Word để soạn thảo, viết báo cáo.
- Phần mềm Xampp bao gồm Apache, MySQL, PHP, phpMyAdmin.
- Dùng phần mềm Sublime text 3 để viết chương trình.
- Dùng công nghệ CodeIgniter framework để viết chương trình.
- Dùng trình duyệt như: Google Chrome, Cốc cốc để chạy chương trình.
Cài đặt và kiểm thử
- Chạy trên website trên localhost.
- Kiểm lỗi và giải quyết lỗi cùng các vấn đề phát sinh.
Trang 12CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1 HTML
HTML là chữ viết tắt của HyperText Markup Language, có nghĩa là ngôn ngữđánh dấu siêu văn bản Nó dùng để định dạng bố cục, các thuộc tính liên quan đếncách hiển thị của một đoạn text và được hiển thị trên một chương trình đặc biệc ta gọi
là Browser Hiện nay có khá nhiều Browser như Firefox, Chrome, Cốc Cốc
Tất cả Browser đều có điểm chung là giúp người dùng thao tác với website và nóđều có khả năng biên dịch những đoạn mã HTML, CSS và Javascript
Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements)được quy định bằng các cặp thẻ (tag), các cặp thẻ này được bao bọc bởi một dấu ngoặcngọn (ví dụ <html>) và thường là sẽ được khai báo thành một cặp, bao gồm thẻ mở vàthẻ đóng (ví dụ <strong> </strong>) Các văn bản muốn được đánh dấu bằng HTML
sẽ được khai báo bên trong cặp thẻ (ví dụ <strong>Đây là chữ in đậm</strong>).Nhưng một số thẻ đặc biệt lại không có thẻ đóng và dữ liệu được khai báo sẽ nằmtrong các thuộc tính (ví dụ như thẻ <img>)
Một tập tin HTML sẽ bao gồm các phần tử HTML và được lưu lại dưới đuôi mởrộng là html hoặc htm
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àmnơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl
MySQL được phát triển, được công bố, được hỗ trợ bởi MySQL AB, là một công
ty của Thụy Điển
Trang 13JavaScript là một ngôn ngữ lập trình của HTML và WEB Nó là nhẹ và được sửdụng phổ biến nhất như là một phần của các trang web, mà sự thi hành của chúng chophép Client-Side script tương tác với người sử dụng và tạo các trang web động Nó làmột ngôn ngữ chương trình thông dịch với các khả năng hướng đối tượng.
JavaScript, theo phiên bản hiện hành, là một ngôn ngữ lập trình kịch bản dựa trênđối tượng được phát triển từ các ý niệm nguyên mẫu Ngôn ngữ này được dùng rộngrãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụng cácđối tượng nằm sẵn trong các ứng dụng Nó vốn được phát triển bởi BrendanEich tại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tênthành LiveScript, và cuối cùng thành JavaScript Giống Java, JavaScript có cúpháp tương tự C, nhưng nó gần với Self hơn Java .js là phần mở rộng thường đượcdùng cho tập tin mã nguồn JavaScript
Phiên bản mới nhất của JavaScript là phiên bản 1.5, tương ứng với ECMA-262bản 3 ECMAScript là phiên bản chuẩn hóa của JavaScript Trình duyệt Mozilla phiênbản 1.8 beta 1 có hỗ trợ không đầy đủ cho E4X - phần mở rộng cho JavaScript hỗ trợlàm việc với XML, được chuẩn hóa trong ECMA-357
2.4 AJAX
AJAX (tiếng Anh: "Asynchronous JavaScript and XML" - nghĩa là "JavaScript
và XML không đồng bộ") là một nhóm các công nghệ phát triển web được sử dụng đểtạo các ứng dụng web động hay các ứng dụng giàu tính Internet (rich Internetapplication) Từ Ajax được ông Jesse James Garrett đưa ra và dùng lần đầu tiên vàotháng 2 năm 2005 để chỉ kỹ thuật này, mặc dù các hỗ trợ cho Ajax đã có trên cácchương trình duyệt từ 10 năm trước
Ajax là một kỹ thuật phát triển web có tính tương tác cao bằng cách kết hợp các ngônngữ:
- HTML (hoặc XHTML) với CSS trong việc hiển thị thông tin.
- Mô hình DOM (Document Object Model), được thực hiện thông
qua JavaScript, nhằm hiển thị thông tin động và tương tác với những thông tinđược hiển thị
- Đối tượng XMLHttpRequest để trao đổi dữ liệu một cách không đồng bộ với
máy chủ web
- XML thường là định dạng cho dữ liệu truyền, mặc dầu bất cứ định dạng nào
cũng có thể dùng, bao gồm HTML định dạng trước, văn bản thuần (plain text),JSON và ngay cả EBML
Trang 142.5 JQUERY
jQuery là một thư viện kiểu mới của JavaScript, được tạo bởi John Resig vàonăm 2006 với một phương châm tuyệt vời: Write less, do more - Viết ít hơn, làm nhiềuhơn jQuery làm đơn giản hóa việc truyền tải HTML, xử lý sự kiện, tạo hiệu ứng động
và tương tác Ajax
Dưới đây liệt kê một số tính năng quan trọng được hỗ trợ bởi jQuery:
- Thao tác DOM: giúp dễ dàng lựa chọn các phần tử DOM để duyệt một cách dễ
dàng như sử dụng CSS, và chỉnh sửa nội dung của chúng bởi sử dụng phươngtiện Selector mã nguồn mở, mà được gọi là Sizzle
- Xử lý sự kiện: giúp tương tác với người dùng tốt hơn bằng việc xử lý các sự
kiện đa dạng mà không làm cho HTML code rối tung lên với các EventHandler
- Hỗ trợ AJAX: giúp bạn rất nhiều để phát triển một site giàu tính năng và phản
hồi tốt bởi sử dụng công nghệ AJAX
- Hiệu ứng: đi kèm với rất nhiều các hiệu ứng đa dạng và đẹp mắt mà bạn có thể
sử dụng trong các Website của mình
- Gọn nhẹ:là thư viện gọn nhẹ, nó chỉ có kích cỡ khoảng 19KB.
- Được hỗ trợ hầu hết bởi các trình duyệt hiện đại và làm việc tốt trên IE 6.0+, FF
2.0+, Safari 3.0+, Chrome và Opera 9.0+
- Cập nhật và hỗ trợ các công nghệ mới nhất CSS3 Selector và cú pháp XPath 2.6 PHP FRAMEWORK
Framework dịch theo tiếng anh có nghĩa là khuôn khổ, còn xét theo mặt lập trìnhPHP thì Framework là một bộ thư viện được tổ chức theo một mô hình sẵn và tích hợpnhiều thư viện sẵn giúp lập trình viên tiết kiệm thời gian, đồng thời giải quyết vấn đềtạo ra chuẩn chung cho các lập trình viên khi làm việc nhóm (team work) Hiện nay cókhá nhiều Framework được xây dựng từ PHP như CodeIgniter , CakePHP, Yii,Phalcon, Zend Mỗi Framework có những điểm mạnh, yếu khác nhau và tùy vào sởthích, nhu cầu của công ty mà ta chọn để làm dự án
Xét về mặt lập trình PHP thì trong một website thì thông thường sẽ có nhữngchức năng như sau: xử lý menu, upload file, rewrite URL, tạo thumb, security
Tất cả các module đã liệt kê ở trên hầu hết đã được tích hợp sẵn trong cácFramework, vì vậy việc xây dựng website trên nền tảng Framework là rất cần thiết vàkhuyến khích
Trang 152.7 MÔ HÌNH MVC
2.7.1 Giới thiệu mô hình MVC
MVC là chữ viết tắt của Model - View - Controller, đây là một mô hình kiếnphần mềm được tạo ra với mục đích quản lý và xây dựng dự án phần mềm có hệ thốnghơn Mô hình này được dùng khá rộng rãi và đặc biệt là trong các ngôn ngữ lập trìnhweb Trong PHP hiện tại có khá nhiều Framework và tất cả đều xây dựng từ mô hìnhMVC, từ đó bạn có thể thấy sự quan trọng của nó như thế nào rồi đấy
Hình 2.1 Mô hình MVC
2.7.2 Các thành phần của mô hình MVC
Model (Tầng dữ liệu): được giao nhiệm vụ cung cấp dữ liệu cho cơ sở dữ liệu
và lưu dữ liệu vào các kho chứa dữ liệu Tất cả các nghiệp vụ logic được thực thi ởModel Dữ liệu vào từ người dùng sẽ thông qua View đến Controller và được kiểmtra ở Model trước khi lưu vào cơ sở dữ liệu Việc truy xuất, xác nhận, và lưu dữliệu là một phần của Model
View (Tâng giao diện): hiển thị các thông tin cho người dùng của ứng dụng và
được giao nhiệm vụ cho việc nhận các dữ liệu vào từ người dùng, gửi đi các yêucầu đến controller, sau đó là nhận lại các phản hồi từ controller và hiển thị kếtquả cho người dùng
Controller (Tầng điều khiển): đảm nhiệm việc cập nhật bộ phận hiển thị
(View) khi cần thiết Bộ điều khiển này nhận dữ liệu nhập từ người dùng, truy xuấtcác thông tin cần thiết từ mô hình trong (Model), và cập nhật thích hợp phần hiểnthị (View) Giao diện với người sử dụng phần mềm được thiết lập nhờ sự tương tác
Trang 16qua lại giữa View và Controller: hai bộ phận này chính là phần trình bày bên ngoàicủa đối tượng biểu diễn bên trong.
2.7.3 Quy trình xử lý dữ liệu
Hình 2.2.Sơ đồ hoạt động của MVCNhìn vào sơ đồ trên, ta thấy có mũi tên nét liền và những mũi tên nét đứt Nhữngmũi tên nét đứt được hình thành trên quan điểm của người dùng mà không phải là củanhà thiết kế Do đó chúng ta chỉ quan tâm đến những mũi tên còn lại
Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC:
User tương tác với View, bằng cách click vào button, user gửi yêu cầu đi
Controller nhận và điều hướng chúng đến đúng phương thức xử lý ở Model
Model nhận thông tin và thực thi các yêu cầu
Khi Model hoàn tất việc xử lý, View sẽ nhận kết quả từ Model và hiển thị lại chongười dùng
Ưu điểm và nhược điểm của MVC
Ưu điểm:
Thể hiện tính chuyên nghiệp trong lập trình, phân tích thiết kế Do được chia thànhcác thành phần độc lập nên giúp phát triển ứng dụng nhanh, đơn giản, dễ nâng cấp,bảo trì
Nhược điểm:
Đối với dự án nhỏ việc áp dụng mô hình MC gây cồng kềnh, tốn thời gian trongquá trình phát triển Tốn thời gian trung chuyển dữ liệu của các thành phần
Trang 172.8 CODEIGNITER FRAMWORK
2.8.1 Giới thiệu về CodeIgniter
CodeIgniter là một framework viết bằng ngôn ngữ lập trìnhPHP dựa trên nền tảng MVC ( Model - View - Contrller ) chophép tạo các trang web của bạn để có kịch bản tối thiểu kể từ khitrình bày và tách biệt với kịch bản PHP, nói đơn giản nếu bạnCode thuần theo PHP bạn phải tự tổ chức cấu trúc giữa giaodiện, xử lý code và cơ sở dữ liệu việc làm này không khả dụngnếu dự án của bạn là một tập hợp các Module cần có nhiềungười xử lý
2.8.2 Quá trình phát triển của CodeIgniter
CodeIgniter 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ày28.02.2006, phiên bản hiện tại: 1.7.2 (phát hành ngày 11.09.2009) Ý tưởng xây dựngCodeIgniter được dựa trên Ruby on Rails, một nền tảng ứng dụng web được viết bằngngôn ngữ Ruby Hiện tại, CodeIgniter đang được phát triển bởi ExpressionEngineDevelopment Team thuộc EllisLab, Inc
Sau nhiều năm không ngừng cải thiện và phát triển, CodeIgniter đã ra mắt bản
mới nhất 3.1.0 vào ngày 26-7-2016 với nhiều cải thiện so với các phiên bản trước Bài
báo cáo này tìm hiểu về phiên bản 3.1.0
2.8.3 So sánh các framework
Hình 2.3 Biểu đồ so sánh framework php
Nhìn vào biểu đồ trên ta thấy:
Trang 18CodeIgniter không phải là framework đang giữ vị trí đầu Nhưng luôn giữ vị trícao trong bảng xếp hạng các framework phổ biến dù đã ra đời tương đối lâu.
2.8.4 Lý do chọn CodeIgniter
Sau đây là những lý do để tôi chọn CodeIgniter để viết chương trình:
Được thiết kế theo mô hình MVC: Mô hình MVC giúp tách thành phần hiển thị
giao diện và xử lý của một phần mềm thành những thành phần độc lập, từ đógiúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng
mở rộng của phần mềm CodeIgniter vận dụng mô hình này trong thiết kế,giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năngquản lý và dễ bảo trì
Nhỏ gọn: Gói chỉ 404KH (không bao gồm phần User Guide) So với các PHP
framework khác như CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework(5.66Mb) Kích thước của CodeIgniter giúp giảm thiểu đáng kể không gian lưutrữ
Tốc độ nhanh: CodeIgniter được đánh giá là một PHP framework có tốc độ
nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộđệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử
lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang
Miễn phí: CodeIgniter được phát hành dưới giấy phép Apache/BSD mở rộng, cho
phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn
Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất thân
thiện với các robot tìm kiếm
Hệ thống thư viện phong phú: CodeIgniter cung cấp các thư viện phục vụ cho
những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữliệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức năngnâ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 CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống
Tính tiếp cận và tài liệu dễ học, dễ mở rộng
Bộ core thư viện của CodeIgniter ít thay đổi
Dễ tích hợp thêm các thư viện từ framework khác
CodeIgniter Framework có vòng đời ổn định hơn so với các PHP Frameworkkhác
Trang 192.8.5 Những hạn chế của CodeIgniter
Kèm theo những ưu điểm của CodeIgniter cũng còn nhiều hạn chế cần được cải thiệnnhư:
Chưa hỗ trợ Object-Relational Mapping: Object Relational Mapping (ORM) là
một kỹ thuật lập trình, trong đó các bảng của cơ sở dữ liệu đượ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áctrong cơ sở dữ liệu (Create Read Update Delete – CRUD) dễ dàng, mã nguồn ngắn gọn hơn Hiện tại, CodeIgniter vẫn chưa hỗ trợ ORM
Chưa hổ trợ AJAX: AJAX (Asynchronous JavaScript and XML) [26] đã trở
thành một phần không thể thiếu trong bất kỳ ứng dụng Web 2.0 nào AJAX giúpnâng cao tính tương tác giữa người dùng và hệ thống, giúp cho người dùng có cảmgiác như đang sử dụng ứng dụng desktop vì các thao tác đều diễn ra “tức thời” Hiệntại, CodeIgniter vẫn chưa có thư viện dựng sẵn nào để hỗ trợ xây dựng ứng dụngAJAX 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 các framework khác,
CodeIgniter không có các module thực thi một số tác vụ thường gặp trong quá trìnhxây dựng ứng dụng web như chứng thực người dùng (User Authorization), trình phântích RSS (RSS Parser) 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 CodeIgniter vì hiện tại, chỉ có một số ít framework hỗ trợ EDP, bao gồm Prado, QPHP và Yii
2.8.6 Hướng dẫn cài đặt
Có 4 bước để cài đặt CodeIgniter :
1 Download bộ nguồn CodeIgniter tại website http://CodeIgniter com/, phiên
bản hiện tại: 3.1.0
2 Mở tập tin application/config/config.php bằng một chương trình soạn thảo, thay đổi giá trị $config['base_url'] Đây là đường dẫn tuyệt đối đến thư mục
CodeIgniter trên server
3 Nếu ứng dụng có tương tác với cơ sở dữ liệu, thiết lập các giá trị cần thiết trong
tập tin application/config/database.php.
4 Upload tất cả thư mục và tập tin của CodeIgniter lên server
Trang 202.8.7 Luồng thực thi trong CodeIgniter
Hình 2.4 Luồng thực thi dữ liệu trong CodeIgniterQuan sát hình ảnh trên để hình dung luồng thực thi của CodeIgniter:
- Tập tin index.php: đóng vai trò làm controller đầu vào, thiết lập các tài nguyên
cần thiết cho hệ thống
- Routing: Quá trình điều hướng giúp xác định các yêu cầu và hướng xử lý đối với
chúng
- Caching: Nếu dữ liệu được yêu cầu đã được lưu trong bộ đệm, CodeIgniter sẽ trả
dữ liệu trong bộ đệm về phía client Quá trình xử lý kết thúc
- Security: Dữ liệu trước khi được chuyển đến các Controller sẽ được lọc để phòng
chống XXS hoặc SQL Injection
- Application Controller: Controller xử lý dữ liệu nhận được bằng cách gọi đến các
Models, Libraries, Helpers, Plugins…có liên quan
- View: Dữ liệu được chuyển qua View để hiển thị cho người dùng Nếu chức năng
caching được bật, dữ liệu sẽ được lưu trong cache cho những lần yêu cầu tiếp theo.Trong thực tế, đôi khi ta cần xen vào các bước trong sơ đồ trên Chẳng hạn, trước khimột controller được gọi, ta có thể muốn lưu log xuống tập tin trong hệ thống.CodeIgniter sử dụng cơ chế hook cho phép ta thực hiện việc này Để kích hoạt hook, ta
cần thay đổi giá trị của biến $config[‘enable_hooks’] trong tập tin application/config/config.php.$config[‘enable_hooks’]=TRUE;
Trang 212.8.8 Điều hướng URL trên CodeIgniter bằng routes file
Bình thường thì ta luôn có đối chiếu 1-1 giữa cấu trúc Url với class/method trongcontroller tương ứng Các phân đoạn của Url thường có mẫu như sau:
Trong file routes.php chúng ta sẽ tìm thấy một mảng tên là $routes, mảng này
cho phép chúng ta xác định từng thành phần điều hướng mà ta muốn
CodeIgniter đưa ra 2 cách để định nghĩa Url là dùng thẻ tự do hoặc biểu thức chính quy.
(:num) sẽ khớp với một phân đoạn chỉ chứa con số
(:any) sẽ khớp với một phân đoạn chứa mọi ký tự
Một vài ví dụ cho kiểu Thẻ Tự Do:
$route['journals'] = "blogs";
Một Url chứa từ journals trong phân đoạn đầu tiên sẽ khớp với blogs class
$route['blog/joe'] = "blogs/users/34";
Trang 22Một Url chứa phân đoạn blog/joe sẽ khớp với blogs class và users method ID sẽđược thiết lập giá trị là 34
$route['product/(:any)'] = "catalog/product_lookup";
Một Url với phân đoạn đầu tiên là product, và phân đoạn thứ hai là bất cứ ký tự gì
sẽ khớp với catalog class và product_lookup method
$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";
Một Url với phân đoạn đầu tiên là product, và phân đoạn thứ hai là một số sẽ khớpvới catalog class và product_lookup_by_id method với tham số được truyền vào hàmchính là số ở phân đoạn thứ 2 của Url
Chú ý: Không sử dụng ký tự "/" hay "\" trong Url.
2 Kiểu Biểu Thức Chính Quy.
Chú ý: Các đường dẫn Duy Trì này phải được đặt trên tất các các đường dẫn Thẻ Tự
Do hoặc Biểu Thức Chính Quy khác
Trang 23Hình 2.5 Cấu trúc của CodeIgniter
Trang 24CHƯƠNG 3: NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1 MÔ TẢ HỆ THỐNG
Website quản lý phụ kiện điện tử dành cho cửa hàng “Khuyến Mãi Cần Thơ” nhằm
vào các mục đích:
Quản lý:
- Quản lý nhân viên bao gồm: Mã nhân viên, họ tên nhân viên, số điện thoại, giới
tính, địa chỉ Mỗi nhân viên sẽ có công tác riêng, trong công tác sẽ cho biếtnhân viên giữ chức vụ gì và lương cơ bản của nhân viên đó
Thông tin công tác: Mã công tác, ngày bắt đầu và hệ số lương
Thông tin chức vụ: Mã chức vụ, tên chức vụ và mô tả
Thông tin lương: Bậc lương và lương cơ bản
- Quản lý khách hàng bao gồm: Mã khách hàng, tên, địa chỉ, số điện thoại Mỗi
khách hàng sẽ có thể đánh giá sản phẩm thông qua bình luận sản phẩm của cửahàng
Thông tin bình luận: Mã bình luận và nội dung Mỗi bình luận sẽ cho biếtkhách hàng nào bình luận sản phẩm nào
- Quản lý sản phẩm bao gồm: Mã sản phẩm, tên sản phẩm, giá, thời gian bảo
hành, hình ảnh Mỗi sản phẩn được cung cấp bởi nhà sản xuất, thuộc vào thểloại, có khuyến mãi cho từng sản phẩm, có nhiều ảnh sản phẩm và được kháchhàng bình luận
Thông tin nhà sản xuất: Mã nhà sản xuất, tên sản xuất, địa chỉ, số điệnthoại
Thông tin khuyến mãi: Mã khuyến mãi, ngày kết thúc, giá khuyến mãi vàtrạng thái
Để đặt hàng thông qua website khách hàng có thể vào trang web cửa hàngtạo một tài khoản cá nhân hoặc điền các thông tin cần thiết khi thanh toán
Trang 25hệ thống và chờ nhân viên duyệt cho khách hàng.
Thông tin của mỗi hóa đơn: Mã số hóa đơn, mã khách hàng, mã sản phẩm,
số lượng, đơn giá, ngày đặt
Nhân viên sẽ dựa vào các thông tin trên để giao hàng trực tiếp đến địa chỉcủa khách hàng
- Quản lý nhập hàng:
Hằng ngày nhân viên sẽ kiểm tra số lượng của các sản phẩm và danh sáchsản phẩm hết hàng, nếu thấy số lượng còn ít không đủ phục vụ khác hàng,thì nhân viên lập phiếu nhập để nhập sản phẩm từ nhà cung cấp
Thông tin của mỗi phiếu nhập bao gồm: Mã phiếu nhập, ngày lập, mã sảnphẩm, số lượng đơn giá
Chức năng khách hàng
- Xem và tìm kiếm sản phẩm.
- Đăng kí tài khoản để quản lý hóa đơn và bình luận.
- Mua hàng bằng bằng tài khoản đăng kí hoặc có thể điều các thông tin cần thiết.
- Đặt hàng và nhận mail thông báo.
Chức năng cửa hàng
- Thêm, sửa, xóa sản phẩm, nhân viên, nhà cung cấp
- Duyệt đơn hàng khách.
- Thống kê doanh thu, lợi nhuận và chi phí nhập hàng.
- Quản lý nhân viên, lương tháng và sản phẩm tồn kho.
- Quản lý nhập hàng, tin tức, banner
Yêu cầu ổn định và bảo mật
- CodeIgniter có kích thước nhỏ gọn và nhờ vào cơ chế lưu nội dung vào bộ đệm
nên có tốc độ rất nhanh
- Cơ chế bảo mật chặt chẽ, ngăn ngừa XSS và SQL Injection của CodeIgniter
giúp cho website yên tâm với phương thức tấn công phổ biến, giảm thiểu cácnguy cơ bảo mật cho hệ thống
Trang 263.2 GIẢI PHÁP PHÂN TÍCH, THIẾT KẾ CÁC MÔ HÌNH
3.2.1 Sơ đồ phân rã chức năng
Sơ đồ phân rã chức năng khách hàng
Hình 3.1 Sơ đồ phân rã chức năng khách hàng
Khi khách hàng vào website sẽ có các chức năng cơ bản như sau:
- Xem và tìm kiếm các sản phẩm theo ý muốn như: sản phẩm mới, khuyến mãi,tìm theo tên
- Xem tin tức công nghệ
- Tạo tài khoản để đăng nhập vào website
- Đặt các sản phẩm theo ý muốn
- Xem các trang giới thiệu cửa hàng và hỗ trợ khách hàng
Khi khách hàng đăng nhập vào website sẽ được thêm các chức năng sau:
- Bình luận được sản phẩm
- Quản lý đơn hàng của mình
- Cập nhật được thông tin cá nhân
- Đăng xuất
Trang 27Hình 3.2 Sơ đồ phân rã chức năng nhân viênKhi nhân viên đăng nhập vào hệ thống quản lý, tùy vào chức vụ sẽ được các nhómchức năng tương ứng sẽ được ghi vào trong phần mô tả của chức vụ Với nhân viêntoàn quyền sẽ được các chức năng sau:
- Về quản lý: Quản lý sản phẩm, nhân viên khách hàng, tin tức, gửi mail chonhân viên và khách hàng Bao gồm thêm, sửa và xóa
- Về giao dịch: Sẽ được duyệt đơn hàng của khách và nhập hàng
- Về thống kê: Doanh thu, lợi nhuận, sản phẩm tồn
- Khi nhân viên đăng nhập sẽ có thể xem thông tin cá nhân và thay đổi được mậtkhẩu của mình
Trang 283.2.2 Sơ đồ Use case
3.2.2.1 Use case nhân viên:
Sơ đồ Use Case nhân viên tổng quát
Hình 3.3 Sơ đồ Use Case nhân viên tổng quátKhi nhân viên đăng nhập vào hệ thống, nếu có đủ quyền sẽ có đủ các chức năngsau: quản lý tài khoản, nhân viên, khách hàng, sản phẩm Duyệt các hóa đơn kháchhàng đặt, nhập hàng, thống kê doanh thu, lợi nhuận, kèm thêm vào đó là các tiện íchnhư: gửi mail cho nhân viên, khách hàng, đăng tin tức
Trước khi nhân viên thoát khỏi hệ thống cần đăng xuất để đảm bảo an toàn, tránhngười khách sử dụng tài khỏa
Trang 29Hình 3.4 Sơ đồ Use Case sản phẩmMột trong những chức năng quan trọng và cần thiết của cửa hàng là quản lý sảnphẩm Bao gồm thêm, sửa và xóa sản phẩm.
Quản lý thống kê
Hình 3.5 Sơ đồ Use Case thống kêMột chức năng để thống kê được doanh thu, chi phí và lợi nhuận của cửa hàngtheo tháng, năm Ngoài ra, còn thống kê sản tồn kho, danh sách sản phẩm hết hàng vàdanh sách sản phẩm bán chạy để cửa hàng điều chỉnh sản phẩn bán ra phù hợp
Trang 30 Quản lý duyệt đơn hàng
Hình 3.6 Sơ đồ Use Case duyệt đơn hàngDuyệt đơn hàng là chức năng không thể thiếu trong website mua bán Để có thểduyệt các đơn hàng mà khách hàng đã đặt Khi đơn hàng chưa thanh toán có thể sửa sốlượng sản phẩm, các sản phẩm khách hàng không muốn mua hoặc có thể xóa đơn hàngnếu khách hàng yêu cầu hủy
3.2.2.2 Use case khách hàng:
Hình 3.7 Use Case khách hàngKhách hàng có thể xem sản phẩm theo giá, loại và tìm kiếm sản phẩm theo tên.Giúp cho khách hàng có thể lựa chọn các sản phẩm theo ý muốn được nhanh chónghơn
Khách hàng đăng nhập vào website sẽ được thêm các chức năng sau: bình luậnsản phẩm, quản lý được các đơn hàng, xem thông tin và cập nhật thông tin
Trang 313.3.1 Mô hình dữ liệu mức quan niệm – ER
Trang 323.3.2 Mô hình vật lý
Hình 3.9 Mô hình vật lý