Hiểu được các vấn đề đó cũng như mong muốn đưa thương mại điện tử đến với nhiều người hơn nên tôithực hiện đề tài: “Xây dựng ứng dụng website quản lý cửa hàng thiết bị điện tử trên nền L
Trang 1MỤC LỤC
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN i
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ii
LỜI CẢM ƠN iii
MỤC LỤC iv
DANH MỤC HÌNH viii
DANH MỤC BẢNG x
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT xi
TÓM TẮT xii
ABSTRACT xiii
CHƯƠNG 1: TỔNG QUAN 1
1.1 ĐẶT VẤN ĐỀ 1
1.1.1 Hiện trạng 1
1.1.2 Vấn đề cần giải quyết 1
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ 2
1.3 PHẠM VI CỦA ĐỀ TÀI 3
1.3.1 Về lý thuyết 3
1.3.2 Về kỹ thuật 3
1.3.3 Về chức năng 3
1.4 HƯỚNG GIẢI QUYẾT VẤN ĐỀ 5
1.5 KẾ HOẠCH THỰC HIỆN 6
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 8
2.1 HTML, PHP, MYSQL 8
2.1.1 HTML 8
2.1.2 PHP 8
2.1.3 MYSQL 8
2.1.4 JAVASCRIPT, AJAX, jQUERY 9
2.1.4.1 JAVASCRIPT 9
2.1.4.2 AJAX 9
2.1.4.3 jQUERY 9
2.2 MÔ HÌNH MVC (MODEL – VIEW – CONTROLLER) 10
2.2.1 Xuất xứ mô hình 10
Trang 2Hình 2.1 Mô hình MVC 10
Hình 2.2 Mô hình MVC 11
2.3 TỔNG QUAN VỀ LARAVEL FRAMEWORK 12
2.3.1 Giới thiệu một số framework ? 12
2.3.2 Tổng quan về Laravel 13
Hình 2.3 Logo Laravel Framework 13
Hình 2.4 Bảng thống kê những FrameWork được sử dụng nhiều nhất năm 2013 14
2.3.3 Những điểm nổi bật của Laravel Framework 15
2.3.4 Những điểm hạn chế của Laravel Framework 16
2.3.5 Mô hình MVC trong Laravel Framework 17
Hình 2.5 Mô hình MVC trong Laravel 17
2.3.6 Dòng chảy dữ liệu trong Laravel Framwork 18
Hình 2.6 Luồng xử lý dữ liệu trong Laravel Framework 18
CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 19
3.1 PHÂN TÍCH CHỨC NĂNG 19
3.1.1 Mô hình phân rã chức năng 19
3.1.2 Mô tả các chức năng 20
3.2 THIẾT KẾ CÁC MÔ HÌNH 21
3.2.1 Mô hình thực thể quan hệ (CDM) 21
3.2.2 Xây dựng các thực thể quan hệ 21
Bảng 1-Thực thể sản phẩm 22
Bảng 2– Thực thể loại sản phẩm 22
Bảng 3– Thực thể khuyến mãi 22
Bảng 4- Thực thể hình ảnh sản phẩm 23
Bảng 5- Thực thể nhân viên 23
Bảng 6- Thực thể phiếu nhập 23
Bảng 7- Thực thể chức vụ 24
Bảng 8- Thực thể đơn đặt hàng 24
Bảng 9- Thực thể khách hàng 24
Bảng 10- Thực thể liên hệ 25
Bảng 11- Thực thể quyền 25
3.2.3 Xây dựng các mối quan hệ kết hợp 25
Hình 3.1 Quan hệ loại sản phẩm – sản phẩm-hình ảnh-khuyên mãi 26
Trang 3Hình 3.3 Quan hệ khách hàng – đơn đặt hàng 27
Hình 3.4 Quan hệ phiếu nhập – sản phẩm 27
Hình 3.5 Quan hệ Đơn đặt hàng – Nhân viên 28
Hình 3.6 Quan hệ nhân viên – chức vụ 28
3.2.4 Mô hình vật lý (PDM) 28
3.2.5 Mô tả các ràng buộc toàn vẹn 29
Bảng 12- Bảng các ràng buộc toàn vẹn 30
3.2.6 Xây dựng các bảng tầm ảnh hưởng 30
3.3 LƯU ĐỒ DÒNG DỮ LIỆU (DFD) 32
Hình 3.7 DFD mức ngữ cảnh 32
Hình 3.8 DFD mức đỉnh 33
Hình 3.9 DFD Mức 2_1 33
Hình 3.10 DFD mức 2_2 34
3.4 SƠ ĐỒ HOẠT VỤ (USE CASE) THEO TÁC NHÂN 35
3.4.1 Sơ đồ hoạt vụ theo tác nhân khách hàng 35
3.4.2 Sơ đồ hoạt vụ theo tác nhân người quản trị 36
3.5 THIẾT KẾ CHƯƠNG TRÌNH 37
3.5.1 Giải thuật và lưu đồ 37
3.5.2 Giao diện chương trình 40
Hình 3.11 Trang chủ 40
Hình 3.12 Giao diện theo nhóm sản phẩm 41
Hình 3.13 Giao diện thông tin chi tiết sản phẩm 42
Hình 3.14 Giao diện giỏ hàng 43
Hình 3.15 Giao diện đặt hàng 43
Hình 3.16 Giao diện trang tin 44
Hình 3.17 Giao diện chi tiết tin tức 45
Hình 3.18 Hướng dẫn mua hàng 46
Hình 3.19 Giao diện form đăng nhập 47
Hình 3.19 Giao diện trang quản trị 47
Hình 3.21 Giao diện danh sách sản phẩm 48
Hình 3.22 Giao diện trang thêm sản phẩm 49
Hình 3.23 Giao diện chi tiết đơn hàng 50
Hình 3.24 Giao diện trang danh sách hóa đơn 50
Trang 4Hình 3.26 Giao diện thống kê sản phẩm được mua nhiều 51
Hình 3.27 Giao diện danh sách đơn hàng chưa duyệt 52
Hình 3.28 Giao diện danh sách tin tức 52
Hình 3.29 Giao diện trang thêm tin tức 53
Hình 3.30 Giao diện trang thông tin website 53
Hình 3.31 Giao diện danh sách các bình luận sản phẩm 55
Hình 3.32 Giao diện trang phản hồi bình luận 55
Hình 3.33 Giao diện danh sách liên hệ, góp ý của khách hàng 56
Hình 3.34 Giao diện danh sách các nhân viên góp ý 56
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 57
4.1 Kết luận 57
A Kết quả đạt được 57
B Hạn chế 58
4.2 Hướng phát triển 58
PHỤ LỤC 60
HƯỚNG DẪN CÀI ĐẶT VÀ SỬ DỤNG LARAVEL 60
Hình Phụ Lục 1 Cấu trúc thư mục laravel 60
Hình Phụ Lục 2 Các gói hỗ trợ đang được download 61
Hình Phụ Lục 4 Chạy laravel framework sau khi cài đặt thành công 61
Hình Phụ Lục 5 Cấu trúc thư mục của Laravel Framework 62
TÀI LIỆU THAM KHẢO 64
DANH MỤC HÌN
Trang 5Hình 2.1 Mô hình MVC 7
Hình 2.2 Mô hình MVC 8
Hình 2.3 Logo Laravel Framework 10
Hình 2.4 Bảng thống kê những FrameWork được sử dụng nhiều nhất năm 2013 10
Hình 2.5 Mô hình MVC trong Laravel 13
Hình 2.6 Luồng xử lý dữ liệu trong Laravel Framework 14
Hình 3.1 Quan hệ loại sản phẩm – sản phẩm-hình ảnh-khuyên mãi 22
Hình 3.2 Quan hệ sản phẩm – đơn đặt hàng 23
Hình 3.3 Quan hệ khách hàng – đơn đặt hàng 23
Hình 3.4 Quan hệ phiếu nhập – sản phẩm 24
Hình 3.5 Quan hệ Đơn đặt hàng – Nhân viên 24
Hình 3.6 Quan hệ nhân viên – chức vụ 25
Hình 3.7 DFD mức ngữ cảnh 29
Hình 3.8 DFD mức đỉnh 29
Hình 3.9 DFD Mức 2_1 30
Hình 3.10 DFD mức 2_2 30
Hình 3.11 Trang chủ 36
Hình 3.12 Giao diện theo nhóm sản phẩm 37
Hình 3.13 Giao diện thông tin chi tiết sản phẩm 38
Hình 3.14 Giao diện giỏ hàng 39
Hình 3.15 Giao diện đặt hàng 39
Hình 3.16 Giao diện trang tin 40
Hình 3.17 Giao diện chi tiết tin tức 41
Hình 3.18 Hướng dẫn mua hàng 42
Hình 3.19 Giao diện form đăng nhập 43
Hình 3.19 Giao diện trang quản trị 43
Hình 3.21 Giao diện danh sách sản phẩm 44
Hình 3.22 Giao diện trang thêm sản phẩm 45
Hình 3.23 Giao diện chi tiết đơn hàng 46
Hình 3.24 Giao diện trang danh sách hóa đơn 46
Hình 3.25 Giao diện trang thống kê doanh thu 47
Trang 6Hình 3.28 Giao diện danh sách tin tức 48
Hình 3.29 Giao diện trang thêm tin tức 49
Hình 3.30 Giao diện trang thông tin website 49
Hình 3.31 Giao diện danh sách các bình luận sản phẩm 51
Hình 3.32 Giao diện trang phản hồi bình luận 51
Hình 3.33 Giao diện danh sách liên hệ, góp ý của khách hàng 52
Hình 3.34 Giao diện danh sách các nhân viên góp ý 52
Hình Phụ Lục 1 Cấu trúc thư mục laravel 56
Hình Phụ Lục 2 Các gói hỗ trợ đang được download 57
Hình Phụ Lục 4 Chạy laravel framework sau khi cài đặt thành công 57
Hình Phụ Lục 5 Cấu trúc thư mục của Laravel Framework 58
Trang 7DANH MỤC BẢNG
Bảng 1-Thực thể sản phẩm 18
Bảng 2– Thực thể loại sản phẩm 18
Bảng 3– Thực thể khuyến mãi 19
Bảng 4- Thực thể hình ảnh sản phẩm 19
Bảng 5- Thực thể nhân viên 19
Bảng 6- Thực thể phiếu nhập 20
Bảng 7- Thực thể chức vụ 20
Bảng 8- Thực thể đơn đặt hàng 20
Bảng 9- Thực thể khách hàng 21
Bảng 10- Thực thể liên hệ 21
Bảng 11- Thực thể quyền 21
Bảng 12- Bảng các ràng buộc toàn vẹn 26
Trang 8DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
Trang 9TÓ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à đổi mớikhông ngừng Mạng internet đang trở thành mạng truyền thông có sức ảnh hưởng lớnnhất, gắn liền với đời sống con người trong việc giao tiếp, học tập, giao dịch, truyền tải
và trao đổi dữ liệu Không như ngày xưa ngày nay mọi việc liên quan đến thông tinngày càng dễ dàng hơn cho người sử dụng bằng việc kết nối internet và một dòng dữliệu truy tìm thì ngay lập tức cả kho tài nguyên không chỉ trong nước mà ngoài nướchiện ra không chỉ bằng ngôn ngữ mà cả bằng hình ảnh, âm thanh
Chính vì lợi ích từ internet đã thúc đẩysự ra đời và phát triển của thương mạiđiện tử làm biến đổi văn hoá mua sắm cũng như nâng cao chất lượng cuộc sống củacon người, các hoạt động thông thường như sản xuất,kinh doanh và số lượng cácdoanh nghiệp cũng phát triển
Hiểu được các vấn đề đó cũng như mong muốn đưa thương mại điện tử đến với nhiều người hơn nên tôithực hiện đề tài: “Xây dựng ứng dụng website quản lý cửa hàng thiết bị điện tử trên nền Laravel Framwork” cung cấp các chức năng quản lý sản
phẩm, quản lý bán hàng, thống kê doanh thu nhằm góp phần tiện lợi cho khách hàng cũng như người quản trị trong việc trao đổi mua bán trực tuyến
Từ khóa: Quản lý sản phẩm, Quản lý khách hàng, Thống kê doanh thu
Trang 10Nowadays, IT has developed strongly and improved constantly Internet is themost effective media, relates to human life in communication, study, trade, exchangingdata In addition, Internet makes easier for users to find interior and exteriorinformation by image, language and sound
Thus, The benefits of Internet has promoted the appearance and development ofe-commerce, this not only makes shopping culture change, enhance the quality ofhuman life, manufacture and business but also the number of enterprises are growingup
Understand this matter and hope to get e-commerce closer to people, I decide tochoose topic: "Building web application of store management about electricialequipment on laravel framework" in order to provide the function of productmanagement, sales management and revenue statistics, to create customer andadministrator conveniences in online trading
Keywords: Product Management, User Management, Sales Statistics
Trang 11CHƯƠNG 1: TỔNG QUAN1.1 ĐẶT VẤN ĐỀ
Mặt hàng kinh doanh qua mạng hiện nay thì thiết bị điện tử được coi là đang phổbiến, với các website bán hàng online như thế này các chủ của hàng chỉ cần thườngxuyên truy câp các mạng xã hội và quảng cáo các mặt hàng của mình với mục đích tìmkiếm và thu hút khách hàng Khách hàng chỉ cần vài thao tác “click chuột” vào sảnphẩm mà mình yêu thích và chút ít thời gian theo dõi là có thể chờ đơn hàng chuyểntới tận nhà của họ
Việc kinh doanh qua mạng cũng tạo cho cửa hàng nhiều cơ hội và thách thức hơntrong việc mở rộng thị trường không chỉ thời gian mà cả không gian,trong nước cũngnhư ngoài nước
Vì vậy việc xây dựng một ứng dụng website để quản lý cửa hàng thiết bị điện tử
là cần thiết, giúp cho cửa hàng tiết kiệm thời gian, chi phí trong việc quản lý đồng thờităng doanh thu cho cửa hàng
Trang 121.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Ngày nay với sự phát tiển mạnh mẽ của công nghệ thông tin đã thúc đẩy hầu hết các cửa hàng thiết bị điện tử xây dựngtrang web cho riêng 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ửa hàng của chính họ Như hiện tại ở TP Cần Thơ có website www.lazada.vn của công ty cổ phần tpt uy tín giá tốt Lazada, www.tbtcantho.com của công ty máy tính cần thơ Hiện nay có một số đề tài xây dựngwebsite quản lý cửa hàng thiết bị điện tử, những đề tài đó chủ yếu được viết bằng những ngôn ngữ như PHP thuần, ASP.NET.s
Vì vậy, với đề tài “Xây dựng ứng dụng web quản lý cửa hàng thiết bị điện tử trên nền Laravel Framework” này sẽ được viết bằng một ngôn ngữ PHP Framework
đó là Laravel Framework Laravel Framework là một trong những PHP Framework cơ bản và dể hiểu nhất cho người mới bắt đầu với Framework
Trang 131.3 PHẠM VI CỦA ĐỀ TÀI
1.3.1 Về lý thuyết
Phạm vi đề tài là xây dựng website bán thiết bị điện tử qua mạng, nhằmcung cấp các thông tin và giá cả của sản phẩm đến với khách hàng Thể hiệncác sản phẩm thiết bị điện tử trên website nhằm quảng bá hình ảnh sản phẩm
và bán sản phẩm trên "thị trường ảo" cho cửa hàng có thể ứng dụng và triểnkhai tại các cửa hàng thiế bị điện tử khác nhau nhằm tạo hiệu quả cho quátrình quản lý các sản phẩm, các đơn hàng – hóa đơn của khách hàng, phiếunhập và thống kê doanh thu của cửa hàng
Định hướng xây dựng hệ thống tự động quản lý hàng hóa,giúp cập nhậtlượng hàng một cách tự động theo thời gian thực Đơn giản hóa công việccho người quản trị đồng thời cho phép chỉnh sửa,thay đổi nếu có những vấn
đề phát sinh mà hệ thống không tự xử lý được
Các đối tượng mà website hướng tới bao gồm:người quản trị, thành viên vàkhách hàng
1.3.2 Về kỹ thuật
Sử dụng ngôn ngữ lập trình web với PHP trên nền tảng Laravel Framework
Ràng buộc toàn vẹn dữ liệu, kiểm tra lỗi phát sinh do người dùng, đảm bảo
an toàn, bảo mật
Giao diện thân thiện,trực quan giúp cho người sử dụng thao tác dễ dàng
Hệ quản trị cơ sở dữ liệu MySQL
Một số kỹ thuật hỗ trợ: Ajax, jQuery, JavaScript, Html5, Css3
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
Trang 14Đề tài: “Xây dựng ứng dụng website quản lý cửa hàng thiết bị điện tử trên nền Laravel Framework ” có những chức năng như sau:
Đối với người quản trị (Admin):
Đăng nhập
Tạo tài khoản và cấp quyền truy cập
Phân cấp chỉnh sửa quyền cho người sử dụng
Thêm, sửa, xóa sản phẩm, danh mục sản phẩm, sự kiện, thương hiệu
Quản lý các đơn hàng,hóa đơn
Thống kê doanh thu, sản phẩm bán chạy
Đối với khách hàng (User)
Có thể xem thông tin, tìm kiếm sản phẩm
Xem lịch sử đã mua và chi tiết đơn hàng
Thiết lập địa chỉ giao hàng mặc định
Có thể đóng góp ý kiến, thắc mắc
Đặt mua sản phẩm
Trang 15 Phân tích yêu cầu, mô tả đầy đủ về hệ thống website sẽ xây dựng, mô tả cácchức năng, tính năng của hệ thống Khả năng mở rộng, các loại tài liệu cầnthiết, thời gian đáp ứng hoặc các yêu cầu về độ tin cậy cũng như chất lượngcủa hệ thống, nghiên cứu khả thi
Tìm hiểu các website đã xây dựng trước đó để nắm bắt hiện trạng Xác địnhphạm vi và kết quả cần đạt được cho đề tài Phân tích và thiết kế chi tiết, tìmkiếm tài liệu
Phân tích mô hình hệ thống, mô hình hóa (CMD, MLD, DFD), module hóa
hệ thống tiến hành thiết kế website
Cài đặt và kiểm thử: tập trung vào từng chức năng, module
Thực hiện và kiểm tra lỗi, thiết kế module chuyển tiếp giữa các giai đoạn
Viết báo cáo kết quả
1.5 KẾ HOẠCH THỰC HIỆN
1 Chọn đề tài luận văn Chọn đề tài và có xác nhận của giáo viênhướng dẫn. 7 ngày2
Tìm hiểu nhu cầu
Xây dựng mô hình vật lý
Sơ đồ phân rã chức năng
Phân tích Use – case
Phân tích sơ đồ tuần tự
Gặp giáo viên hướng dẫn
7 ngày
Giao diện người dùng
Giao diện quản trị điểm
7 ngày
Trang 166 Thực hiện lập trình
Tạo CSDLViết code theo từng chức năng
Gặp giáo viên hướng dẫn
21 ngày
7 Kiểm tra thử chương
trình
Kết nối các chức năng
Kiểm tra lỗi
Gặp giáo viên hướng dẫn
Làm file PowerPoint báo cáo
Gặp giáo viên hướng dẫn
10 ngày
Trang 17CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1 HTML, PHP, MYSQL
2.1.1 HTML
HTML (viết tắt của từ HyperText Markup Language – Ngôn ngữ liên kết siêuvăn bản) là ngôn ngữ đánh dấu được thiết kế ra tạo nên các trang web với các mẫuthông tin được trình bày trên World Wide Web, tài liệu là các tập tin văn bản đơn giản.Ngôn ngữ HTML dùng các tag hoặc các đoạn mã lệnh để các trình duyệt (WebBrowsers) hiển thị các thành phần của trang như từ ngữ và hình ảnh hay các đoạnvideo clip để tương tác với người dùng thông qua các thao tác nhấn phím và clickchuột
HTML không phải là ngôn ngữ lập trình, nó là ngôn ngữ trình bày
2.1.2 PHP
PHP (viết tắt hồi quy “Hypertext Preprocessor”) là một ngôn ngữ lập trình kịchbản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máychủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và có thể
dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độnhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩmtương đối ngắn hơn so với các ngôn ngữ lập trình web phổ biến nhất thế giới
PHP hỗ trở để làm việt với nhiều hệ quản trị CSDL khác nhau: MySQL, Oracle,Sybase, Solid, PostgreSQL, Generic ODBC…
Ngôn ngữ PHP là một ngôn ngữ lập trình web rất phổ biến vì tính linh hoạt dễ
sử dụng, dễ học Bên cạnh đó PHP còn hỗ trợ lập trình hướng đối tượng (OPP) thì việcdùng nó để phát triển các ứng dụng là rất dễ dàng Tuy nhiên, với tính mềm dẻo, linhhoạt của nó đã làm cho người lập trình phát triển ứng dụng với nó không có một quyđịnh nào về cấu trúc của tập tin, việc quản lý các mã lệnh trong khi phát triển ứngdụng cũng gặp không ít khó khắn Từ đó, đã tạo nên một vấn đề rất khó giải quyết làlàm sao nâng cấp và sữa chữa các ứng dụng khi nó xảy ra sự cố hay phát triển ứngdụng cho phù hợp hơn với nhu cầu của người sử dụng, trong các thời điểm khác nhau
2.1.3 MYSQL
Hệ quản trị CSDL, dùng cho các ứng dụng vừa và nhỏ, hỗ trợ chuẩn SQL, phầnmềm mã nguồn mở, miễn phí MySQL chạy được trên nhiều Platforms (Unix, Linux,Windows) rất phổ biến
Trang 182.1.4 JAVASCRIPT, AJAX, jQUERY
2.1.4.1 JAVASCRIPT
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ựatrê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ùngrộng rãi cho các trang web, nhưng cũng được dùng để tạo khả năng viết script sử dụngcác đối tượng nằm sẵn trong các ứng dụng Nó vốn được phát triển bởi Brendan Eichtại Hãng truyền thông Netscape với cái tên đầu tiên Mocha, rồi sau đó đổi tên thànhLiveScript, 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 được dùng cho tập tin
mã nguồn JavaScript
2.1.4.2 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 (XHTML) kết hợp với CSS
- Mô hình DOM (Document Object Model)
- Đối tượng XMLHttpRequest
- Công nghệ XML
- AJAX được viết bằng JavaScript
Ưu điểm của Ajax:
- Dễ học, dễ sử dụng
- Dễ tiếp cận
- Giảm băng thông
- Thời gian hiển thị trang web nhanh hơn
- Tăng tính tương tác giữa trang web với người dùng
2.1.4.3 jQUERY
jQuery chính là một thư viện kiểu mới của JavaScript giúp đơn giản hoá cáchviết JavaScript và tăng tốc độ xử lý các sự kiện trên trang web jQuery thêm tương tácAjax vào trong trang web jQuery được thiết kế để thay đổi cách viết JavaScript
Trang 192.2 MÔ HÌNH MVC (MODEL – VIEW – CONTROLLER)
2.2.2 Khái niệm mô hình MVC
Mô hình MVC (Model-View-Controller) là một kiến trúc phần mềm, đây là môhình tổ chức code một cách hợp lý và có hệ thống Mô hình MVC tách biệt phần xử lý
dữ liệu ra khỏi phần giao diện, cho phép phát
triển, kiểm tra và làm việc theo dự án
2.2.3 Kiến trúc mô hình MVC
Trong kiến trúc MVC, một đối tượng đồ
họa người dùng(GUI Component) bao gồm 3
thành phần cơ bản: Model, View, và Controller
Model có trách nhiệm đối với toàn bộ dữ liệu
cũng như trạng thái của đối tượng đồ họa View
chính là thể hiện trực quan của Model, hay nói
cách khác chính là giao diện của đối tượng đồ
họa Và Controller điều khiển việc tương tác
giữa đối tượng đồ họa với người sử dụng cũng
như những đối tượng khác
Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đốitượng đồ họa, nó sẽ tương tác thông qua Controller của đối tượng đồ họa Controller sẽthực hiện việc thay đổi trên Model Khi có bất kỳ sự thay đổi nào xảy ra ở Model, nó
sẽ phát thông điệp ( broadcast message) thông báo cho View và Controller biết Nhậnđược thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nóluôn là thể hiện trực quan chính xác của Model Còn Controller, khi nhận được thôngđiệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc cácđối tượng khác
Hình 2.1 Mô hình MVC
Trang 20Hình 2.2 Mô hình MVC
Trang 212.3 TỔNG QUAN VỀ LARAVEL FRAMEWORK.
2.3.1 Giới thiệu một số framework ?
Trong vài năm qua, PHP đã tiến triển thành một ngôn ngữ script được lựa chọn hầu hết bởi các nhà phát triển website, dẫn đến sự bùng nổ của PHP framework Câu hỏi đặt ra: “Hiện nay, PHP framework nào là phổ biến nhất? ”
Dưới đây là 6 framework được đánh giá là phổ biến và tốt nhất hiện nay:
Symfony
Được ra đời nhằm mục đích giúp đỡ nâng cao hơn cho những lập trình viên
muốn tạo ra các ứng dụng website doanh nghiệp Đây là 1 PHP framework mã nguồn
mở với đầy đủ các tính năng cần thiết nhưng nó có vẻ chạy chậm hơn các framework khác.
Laravel
Laravel là một php framework khá mới, phiên bản đầu tiên (Laravel 1) đượcphát hành vào tháng 6/2011 Ngay từ khi ra mắt, Laravel đã được chú ý đến bởinhiều đặc điểm hay như Eloquent ORM, localization, models and relationships,routing, caching, sessions, views
Chính tác giả Laravel – Taylor Otwell đã nói rằng Laravel được tạo ra để khắcphục những vấn đề còn vướng mắc và thiếu sót mà CodeIgniter còn gặp phải
Laravel đã có 3 đợt “big update” với nhiều các thay đổi tích cực Laravel sửdụng composer làm bộ công cụ quản lý, blade template engine, Eloquent ORM
Sơ lược các tính năng cơ bản của Laravel Framework:
+ Bundles: Ở Laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các
module, với rất nhiều tính năng đi kèm
+ Composer: Ở Laravel phiên bản 4.x, được sử dụng như một công cụ quản lý
với tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel
có trong kho Packagist
Trang 22 + Eloquent ORM (object relation mapping): ánh xạ các đối tượng và quan hệ
cơ sở dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổsung các tính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu.Eloquent ORM trình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cungcấp thêm lựa chọn truy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệphơn
+ Application logic: Là một phần của phát triển ứng dụng, được sử dụng bởi
bộ điều khiển controllers
+ Routes: Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết (link).
Khi một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một địnhdanh liên kết thống nhất sẽ được tạo ra bởi Laravel
+ Restful Controller: cung cấp các tùy chọn để tách các logic phía sau các
request HTTP, POST, GET
+ Class auto loading: cung cấp việc tải tự động các class trong PHP, mà không
cần include các class vào Tùy thuộc vào yêu cầu các class cần thiết sẽ đượcnạp vào, hạn chế các class không cần thiết
+ View: chứa các mã html, hiển thị dữ liệu được chỉ định bởi controller
+ Migrations: cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở dữ
liệu (database schemas), làm cho web ứng dụng có khả năng tương tác phù hợpnhững thay đổi logic, các đoạn mã code của ứng dụng và những thay đổi cầnthiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cập nhật các ứngdụng
+ Unit Testing: đóng một vai trò quan trọng trong Laravel, Unit testing chứa
rất nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trong khuônkhổ nhất định Unit Testing có thể được chạy thông qua tiện ích command-line
+ Automatic pagination: Tính năng tự động phân trang được tích hợp vào
Laravel giúp đơn giản hóa các nhiệm vụ thực hiện phân trang so với cácphương pháp thông thường
2.3.2 Tổng quan về Laravel.
Hình 2.3 Logo Laravel Framework.
Trang 23Giới thiệu
o Laravel là 1 open source, là một framework dùng để xây dựng web application,được thiết kế dựa trên mô hình MVC (Model, Controller, View), toàn bộ sourcecode được đặt trên github
o Laravel được “sinh” ra vào tháng 04-2011 và “cha đẻ” của nó là Taylor Otwell,vàotháng 12 năm 2013, theo kết quả khảo sát của các Developer, thì LaravelFramework đứng top 1 một trong những framework phổ biến nhất, tiếp sau
là Phalcon,Symfony2, Laravel và các framework khác Tháng 8 năm 2014, LaravelFramework được xem như là một dự án PHP phổ biến nhất trên Github
Hình 2.4 Bảng thống kê những FrameWork được sử dụng nhiều nhất năm 2013.
Trang 242.3.3 Những điểm nổi bật của Laravel Framework.
Bundles : Ở laravel phiên bản 3.x, cung cấp một hệ thống đóng gói các module,
với rất nhiều tính năng đi kèm
Composer : Ở laravel phiên bản 4.x, được sử dụng như một công cụ quản lý với
tính năng như thêm các gói cài đặt, các chức năng PHP phụ trợ cho Laravel cótrong kho Packagist
Eloquent ORM (object relation mapping) : ánh xạ các đối tượng và quan hệ cơ sở
dữ liệu, cung cấp các phương thức nội bộ để thực thi đồng thời cũng bổ sung cáctính năng hạn chế về mối quan hệ giữa các đối tượng cơ sở dữ liệu Eloquent ORMtrình bày các bảng trong cơ sở dữ liệu dưới dạng các lớp, cung cấp thêm lựa chọntruy cập cơ sở dữ liệu trực tiếp mới mẻ hơn, chuyên nghiệp hơn
Application logic : Là một phần của phát triển ứng dụng, được sử dụng bởi bộ
điều khiển controllers
Routes : Định nghĩa mối quan hệ giữa các đường dẫn (url), các liên kết (link) Khi
một liên kết được tạo ra bằng cách sử dụng tên của routes, thì một định danh liênkết thống nhất sẽ được tạo ra bởi laravel
Restful Controller : cung cấp các tùy chọn để tách các logic phía sau các request
HTTP POST, GET
Class auto loading : cung cấp việc tải tự động các class trong PHP, mà không cần
include các class vào Tùy thuộc vào yêu cầu các class cần thiết sẽ được nạp vào,hạn chế các class không cần thiết
View : chưa các mã html, hiển thị dữ liệu được chỉ định bởi controller
Migrations : cung cấp một hệ thống kiểm soát các phiên bản lược đồ cơ sở
dữ liệu (database cheme), làm cho web ứng dụng có khả năng tương tác phùhợp những thay đổi logic, các đoạn mã code của ứng dụng và những thayđổi cần thiết trong việc bố trí cơ sở dữ liệu, triển khai nới lỏng và cậpnhật các ứng dụng
Unit Testing : đóng một vai trò quan trọng trong Laravel, Unit testting chứa
rất nhiều các hệ thống unit testing, giúp phát hiện và ngăn chặn lỗi trongkhuôn khổ nhất định Unit Testing có thể được chạy thông qua tiệních command-line
Trang 252.3.4 Những điểm hạn chế của Laravel Framework.
Chưa hổ trợ AJAX
AJAX là thuật ngữ viết tắt của Asynchronous Javascript and XML (Javascript và XML không đồng bộ) AJAX được sử dụng rất nhiều trên các ứng dụng web nhằm tăng tính thân thiện và tiện lợi hơn cho trang web, nâng cao tính tương tác giữa người và hệ thống, giúp người dùng có cảm giác như đang chạy ứng dụng trên desktop Hiện nay Laravel vẫn chưa có thư viện hỗ trợ xây dựng ứng dụng AJAX Tuy nhiên lập trình viên có thể sử dụng các thư viện bên ngoài như Jquery,
Prototype hay Mootools…
Chưa hổ trợ ORM
ORM là thuật ngữ viết tắt của ObjectRelational Mapping là một phương pháp lập trình để chuyển đổi từ mô hình database (cơ sở dữ liệu) sang mô hình hướng đối tượng trong chương trình ORM giúp mã nguồn ngắn gọn hơn và các thao tác trong
cơ sở dữ liệu dễ dàng hơn Hiện nay Laravel vẫn chưa hổ trợ ORM.
Chưa hổ trợ Event Driven Programming
Event Driven Programming (lập trình hướng sự kiện) là một mô hình lập trình trong
đó các luồng xử lý của hệ thống được xác định bởi các sự kiện như nhấn chuột, gõ
bàn phím… Tuy nhiên đây không phải là một khuyết điểm lớn đới với Laravel vì
hiện nay chỉ có một số framework hổ trợ EventDriven Programming như: Prado, Yii
Chưa hổ trợ một số module thông dụng
Tuy Laravel là framework miễn phí, mã nguồn mở, dễ sử dụng nhưng vẫn còn thiếumột số module thông dụng thường gặp trong quá trình xây dựng ứng dụng web như:Trình phân tích RSS, Trình xử lý PDF…
Trang 262.3.5 Mô hình MVC trong Laravel Framework
Hình 0.5 Hình 2.5 Mô hình MVC trong Laravel
Giống như hầu hết các PHP Framework, Laravel là một MVC Framework và cócấu trúc tuần tự cho mỗi phần 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 Laravel đầu tiên, chúng ta cầnphải xác định cấu trúc chính của Laravel và xem làm thế nào thực hiện và thực thi kiếntrú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 đếncác thành phần khác
Dễ dàng phát triển và bảo trì ứng dụng
Laravel được dựa trên mô hình phát triểm 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 nghiệp 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ôngtin trong cơ sở dữ liệu Nếu các dữ liệu trong Model hay đổi thì các thànhphần trong View 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 Laravel, một view cũng có thể làmảng nhỏ như header, footer, một trang RSS hay một phần nhỏ 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ủangườ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 hàm chứcnăng trong Controller sẽ gọi tới các Model để thao tác với cơ sở dữ liệu, cuốicùng Controller trả dữ liệu này về cho View
Trang 272.3.6 Dòng chảy dữ liệu trong Laravel Framwork
Hình 2.6 Luồng xử lý dữ liệu trong Laravel Framework
Routing: Routing có nhiệm vụ xem xét các yêu cầu HTTP và xác định hướng xử
lý với yêu cầu đó
Model: Xử lý những gì cần thiết yêu cầu từ Controller và truyền dữ liệu sang trang
người dùng
Controller: Tiếp nhận dữ liệu từ routing để quản lý dữ liệu này theo hai hướng nếu
là thông tin bình thường Controller sẽ đẩy dữ liệu ra view ngược lại muốn lấy dữ liệu từ database thì sẽ truyền tin sang Model
View: Tại đây Controller sẽ gọi các Models, Libraries, Helpers, Plugins, Scripts…
có liên quan để xử lý dữ liệu đã nhận được
Submit User Request: Người dùng sẽ gửi một request yêu cầu truyền tải dữ liệu
đến tập tin routes.php
Trang 28CHƯƠNG 3 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
3.1 PHÂN TÍCH CHỨC NĂNG
3.1.1 Mô hình phân rã chức năng
Sơ đồ phân rã chức năng admin
Sơ đồ phân rã chức năng khách hàng
Trang 293.1.2 Mô tả các chức năng
Chức năng quản lý bán hàng.
- Tìm kiếm sản phẩm: Khi khách hàng đến với website muốn tìm kiếm
tên của một sản phẩm thì nhập thông tin cần tìm rồi click vào Tìm kiếm,
hệ thống sẽ gửi về khách hàng sản phẩm cần tìm nếu có trong cơ sở dữliệu
- Xem thông tin sản phẩm: Khách hàng muốn xem thông tin sản phẩm
thì click vào hình một sản phẩm bất kì để đọc thông tin sản phẩm đó đểbiết và lựa chọn sản phẩm cần mua
- Đặt hàng: Khi khách hàng muốn mua sản phẩm nào đó thì khách hàng vào website click chọn sản phẩm cần mua.
- Thanh toán: Khi khách hàng đã nhập đầy đủ thông tin đặt hàng theo
yêu cầu của website thì khách hàng tiếp tục lựa chọn hình thức thanh
toán.
- Xem thông tin đơn đặt hàng: Khi việc đặt hàng hoàn tất người quản trị
sẽ xem thông tin đơn đặt hàng của khách hàng nếu trong hệ thống cònhàng và người quản trị xác thực đơn hàng của khách hàng bằng cách liên
hệ khách hàng qua số điện thoại lúc khách hàng đặt hàng sau đó là in hóađơn và giao hàng Còn nếu hết hàng thì hệ thống sẽ gửi lại thông báo cho
khách hàng
Chức năng thống kê.
- Thống kê đơn đặt hàng: Người quản trị sẽ thống kê đơn đặt hàng của
khách hàng đã đặt dựa vào đơn dặt hàng
- Thống kê doanh thu : Người quản trị thống kê doanh thu bán hàng của
website tùy biến theo thời gian
- Thống kê sản phẩm bán chạy: Người quản trị thống kê sản phẩm bán
chạy của website tùy biến theo thời gian để từ đó đưa ra quyết định là
có tiếp tục kinh doanh sản phẩm này nữa hay không
Trang 303.2 THIẾT KẾ CÁC MÔ HÌNH
3.2.1 Mô hình thực thể quan hệ (CDM)
Trang 313.2.2 Xây dựng các thực thể quan hệ
1) Thực thể sản phẩm.
Bảng 1-Thực thể sản phẩm
STT Thuộc tính Kiểu dữ
liệu Khóa Diễn giải
variable Chi tiết sản phẩm
1 MaLoaiSP Integer Khóa chính Mã loại sản phẩm
3) Thực thể khuyến mãi.
Trang 32STT Thuộc tính Kiểu dữ
4) Thực thể hình ảnh sản phẩm.
Bảng 4- Thực thể hình ảnh sản phẩm
ST
T Thuộc tính Kiểu dữ liệu Khóa Diễn giải
1 mahinhanh integer Khóa chính Mã hình ảnh
T Thuộc tính Kiểu dữ liệu Khóa Diễn giải
Trang 33STT Thuộc tính Kiểu dữ
7) Thực thể chức vụ.
Bảng 7- Thực thể chức vụ
STT Thuộc tính Kiểu dữ liệu Khóa Diễn giải
hàng
9) Thực thể khách hàng.
Trang 34T Thuộc tính Kiểu dữ liệu Khóa Diễn giải
characters
Họ tên kháchhàng
characters
Địa chỉ kháchhàng
characters
Số điện thoạikhách hàng
10)Thực thể liên hệ.
Bảng 10- Thực thể liên hệ
STT Thuộc tính Kiểu dữ liệu Khóa Diễn giải
11)Thực thể quyền.
Bảng 11- Thực thể quyền
STT Thuộc tính Kiểu dữ liệu Khóa Diễn giải
1 maquyen Integer Khóa chính Mã quyền hạn
nhân viên
characters
Tên quyền hạnnhân viên
3.2.3 Xây dựng các mối quan hệ kết hợp.
Trang 35Hình 3.1 Quan hệ loại sản phẩm – sản phẩm-hình ảnh-khuyên mãi
Diễn giải: Một sản phẩm phải thuộc một loại sản phẩm,có hình ảnh riêng nằm
trong một khuyến mãi hoặc không có khuyến mãi.Ngược lại một loại sản phẩm có thể
có nhiều hoặc không có sản phẩm nào,một khuyến mãi có thể có nhiều hoặc không có sản phẩm nào
Mối quan hệ DonDatHang–SanPham.
Thực thể đơn hàng sẽ lấy thông tin từ khách hàng
Hình 3.2 Quan hệ sản phẩm – đơn đặt hàng
Diễn giải: Một đơn hàng có thể có một hoặc nhiều sản phẩm, một sản phẩm
có thể không thuộc hoặc thuộc nhiều đơn hàng khác nhau
Trang 36 Mối quan hệ KhachHang – DonDatHang.