Sản phẩm mua bán thôngthường là các sản phẩm điện tử dân dụng hoặc các thiết bị tin họcnhư điện thoại, máy vi tính, các phụ kiện, trang sức,… Do phải sửdụng mạng để đăng kí mua và bán nê
Trang 1DANH MỤC 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 PHẠM VI ĐỀ TÀI 2
1.4 MỤC ĐÍCH ĐỀ TÀI 2
1.5 PHƯƠNG PHÁP NGHIÊN CỨU 2
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 3
2.1 PHP 3
2.2 MYSQL 4
2.3 MÔ HÌNH MVC 5
2.4 FRAMEWORK LARAVEL 8
CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 13
3.1 PHÂN TÍCH HỆ THỐNG 13
3.2 GIẢI PHÁP PHÂN TÍCH, THIẾT KẾ CÁC MÔ HÌNH 14
3.2.1 Sơ đồ Use case 14
3.3 THIẾT KẾ CƠ SỞ DỮ LIỆU 22
3.3.1 Mô hình dữ liệu mức quan niệm ER 22
3.3.2 Mô hình vật lý 23
3.3.3 Mô hình cơ sở dữ liệu quan hệ 24
3.3.4 Mô tả dữ liệu 25
3.3.5 Ràng buộc toàn vẹn 31
Trang 23.3.8 Mô hình tuần tự 36
3.4 KẾT QUẢ XÂY DỰNG HỆ THỐNG 40
3.4.1 Giao diện khách hàng 40
3.4.2 Trang quản lý admin 44
3.5 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN……… 46
PHỤ LỤC 48
TÀI LIỆU THAM KHẢO 51
Trang 3Hình 2.1 Mô hình MVC 6
Hình 2.2 Quy trình hoạt động mô hình MVC 7
Hình 2.3 So sánh Laravel và các framework khác 8
Hình 2.4 Thư mục tổng quan của laravel 11
Hình 3.1 Use case chức năng hệ thống 15
Hình 3.2 Use case chức năng quản lý phiếu nhập 16
Hình 3.3 Use case chức năng báo cáo thống kê 16
Hình 3.4 Use case chức năng quản lý nhân viên 17
Hình 3.5 Use case chức năng quản lý khách hàng 18
Hình 3.6 Use case chức năng quản lý hóa đơn 19
Hình 3.7 Use case chức năng quản lý sản phẩm 20
Hình 3.8 Use case chức năng quản lý nhà cung cấp 21
Hình 3.9 Use case phân rã chức năng quản lý khuyến mãi 21
Hình 3.11 Mô hình dữ liệu mức quan niệm ER 22
Hình 3.12 Mô hình vật lý 23
Hình 3.13 Mô hình cơ sở dữ liệu quan hệ 24
Hình 3.14 Sơ đồ phân rã chức năng BFD mức độ người thiết kế 35
Hình 3.15 Sơ đồ tuần tự đăng nhập khách hàng 36
Hình 3.16 Sơ đồ tuần tự mua hàng 37
Hình 3.17 Sơ đồ tuần tự phiếu nhập 38
Hình 3.18 Sơ đồ tuần tự chức năng tìm kiếm 39
Hình 3.19 Trang chủ 41
Hình 3.20 Trang giỏ hàng 42
Hình 3.21 Trang chi tiết sản phẩm 42
Hình 3.22 Trang thông tin khách hàng 43
Hình 3.23 Trang tìm kiếm 43
Hình 3.24 Trang tin tức 44
Trang 4Hình 3.26 Trang sản phẩm 45 Hình 3.27 Trang quản lý đơn hàng 45 Hình 3.28 Trang thống kê 46
Trang 5Bảng 3.1 Bảng nhacungcap 25
Bảng 3.2 Bảng phieunhap 25
Bảng 3.3 Bảng loaisanpham 25
Bảng 3.4 Bảng sanpham 26
Bảng 3.5 Bảng khuyenmai 26
Bảng 3.6 Bảng hinhanh 27
Bảng 3.7 Bảng nhanvien 27
Bảng 3.8 Bảng phieunhapchitiet 27
Bảng 3.9 Bảng hoadon 28
Bảng 3.10 Bảng hoadonchitiet 28
Bảng 3.11 Bảng tintuc 29
Bảng 3.12 Bảng shop 29
Bảng 3.13 Bảng luong 29
Bảng 3.14 Bảng chucvu 30
Bảng 3.15 slider 30
Bảng 3.16 Bảng nhasanxuat 30
Bảng 3.17 Bảng khachhang 31
Bảng 3.18 Bảng tầm ảnh hưởng của thuộc tính ngaydh và ngaygh trên hoadon 31
Bảng 3.19 Bảng tầm ảnh hưởng của thuộc tính ngaybd và ngaykt trên khuyenmai 32
Bảng 3.20 Bảng tầm ảnh hưởng của thuộc tính mahoadon trên hoadon 32
Bảng 3.21 Bảng tầm ảnh hưởng của thuộc tính mapn trên phieunhap 32
Bảng 3.22 Bảng tầm ảnh hưởng của thuộc tính soluong trên hoadonchitiet và sanpham 33
Trang 6Bảng 3.24 Bảng tầm ảnh hưởng của thuộc tính masp trên
hoadonchitiet và sanpham 33
DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
Ký hiệu, chữ
API Viết tắt của Application Programming
InterfaceCSDL Viết tắt của Cơ Sở Dữ Liệu
HTML
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 – Controler Là mộtkiến trúc phần mềm hay mô hình thiết kế được sử dụngtrong kỹ thuật phần mềm
ORM Viết tắt của Oject Relation Mapping
PHP Viết tắt của HyperText Preprocessor
SQL Viết tắt của Structured Query Language
Trang 7Ngày nay, công nghệ thông tin phát triển mạnh mẽ, ứng dụngtrong rất nhiều lĩnh vực và đời sống xã hội Đặc biệt trong lĩnh vựcquản lý nói chung và quản lý bán hàng nói riêng.
Hoạt động mua bán trực tuyến rất phổ biến với mọi người đượccác công ty và các cửa hàng lớn trong và ngoài nước sử dụng nhằmđem lại hiệu quả trong việc mua bán Sản phẩm mua bán thôngthường là các sản phẩm điện tử dân dụng hoặc các thiết bị tin họcnhư điện thoại, máy vi tính, các phụ kiện, trang sức,… Do phải sửdụng mạng để đăng kí mua và bán nên cần phải có một hệ thốngwebsite dùng để quản cáo và bán hàng
Chính vì vậy việc tạo lập một website bán phụ kiện trang sức vớinhững mặt hàng và những thông tin liên quan đến mặt hàng đầy đủ
là việc cần thiết đối với các cửa hàng, nhằm đáp ứng được yêu cầu
mua sắm của khách hàng Vì vậy tôi chọn đề tài “Xây dựng
website quản lý bán phụ kiện trang sức dựa trên nền tảng Laravel Framework” để làm đề tài luận văn này.
Mục tiêu của đề tài nhằ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 sản phẩm
- Quản lý thông tin phiếu nhập, phiếu xuất, nhà cung cấp,khách hàng
Nội dung gồm 3 chương:
Chương 1: Tổng quan giới thiệu đề tài và mục tiêu, lý do
chọn đề tài
Chương 2: Cơ sở lý thuyết giới thiệu mô hình MVC, PHP và
Laravel framework
Chương 3: Nội dung và kết quả nghiên cứu thu thập thông
tin, xây dựng các sơ đồ Use case, mô hình tuần tự, cơ sở dữ liệuquan hệ,…
Website được xây dựng trên nền tảng Laravel framework vớicông nghệ Weblg và các công nghệ khác PHP, HTML5, Javascript, ngoài ra còn sử dụng cơ sở dữ liệu MySQL và máy chủ Apache
Trang 8thời có thể phát triển trên nền di động để tương tác với người dùng
dể dàng hơn với điện thoại thông minh
TỪ KHÓA: Quản lý bán hàng, Laravel framwork, web quản lý, phụ
kiện trang sức
ABSTRACT
Today, information technology flourished, applications in manyfields and social life Especially in the field of general managementand sales management in particular
Online trading activities are very popular with people are thecompanies and the big stores at home and abroad to use in order tobring efficiency in the sale Products typically purchase products orother consumer electronics information technology equipment such
as telephones, computers, accessories, jewelry… Due to networkusers to register to buy and sell should have a system used tomanage websites and advertising sales
Therefore creating a website selling jewelry accessories forthose items and the information related to the complete item isnecessary for the store, in order to meet the procurement
requirements of our customers So I chose the topic "Building
management website selling jewelry accessories based technology Laravel Framework" to this thesis.
The objective of the topic in order to meet the requirements:
- Customers shopping online
- Product Information Management
- Information Management import bill, bills, suppliers,customers
The content includes 3 chapters:
Chapter 1: Overview introduces themes and goals, why they
chose the topic
Chapter 2: Theoretical Foundations introduces MVC, PHP and
Laravel framework
Trang 9Website built on Laravel framework with platform technologyand other technologies Weblg PHP, HTML5, Javascript… in addition tousing the database server MySQL and Apache
With the subject can scale up larger databases to meet the fullrange of business functions in the business At the same time candevelop a mobile platform to interact with users easier with smartphones
management, jewelery accessories
Trang 10CHƯƠNG 1 TỔNG QUAN
1.1 ĐẶT VẤN ĐỀ
Ngày nay ngành Công nghệ Thông tin đã có những bước pháttriển vượt bậc trên thế giới, được ứng dụng rộng rãi trong tất cả cáclĩnh vực của cuộc sống Trong khi đó, công nghệ thông tin nước tađược xác định là một ngành mũi nhọn, với tốc độ phát triển nhanh vàmạnh, chiếm một vị trí quan trọng Đặc biệt trong lĩnh vực kinhdoanh, thương mại điện tử, nó góp phần đáng kể cho sự phát triểnkinh tế của nước ta trong quá trình hội nhập
Việc ứng dụng công nghệ thông tin đã mang lại bước đột phámới cho công tác quản lý bán hàng, giúp doanh nghiệp nắm bắtthông tin về hàng hóa, vật tư, thiết bị, thông tin khách hàng, trạngthái đơn đặt hàng… một cách chính xác và kịp thời Từ đó ngườiquản lý có thể đưa ra các kế hoạch và quyết định đúng đắn, giảm chiphí và tăng khả năng cạnh tranh, nâng cao hoạt động sản xuất kinhdoanh
Nhu cầu sử dụng của con người trong xã hội ngày càng cao, việcthiếu thông tin sẽ gây khó khăn trong việc đưa sản phẩm đến vớingười tiêu dùng Vì vậy, để hạn chế việc đến tận cửa hàng để xemsản phẩm, tiết kiệm được thời gian tìm kiếm sản phẩm Sự ra đời củaphần mềm trực tuyến trên web sẽ giúp cho việc quản lý bán hàng trởnên dễ dàng và tiện lợi hơn Bán hàng qua mạng là một giải pháp tối
ưu để tiếp cận đến người tiêu dùng
Do đó, “Xây dựng website quản lý bán phụ kiện trang sức
dựa trên nền tảng Laravel Framework” là một vấn đề thực tế,
ứng dụng được và có tìm năng để phát triển
1.2 LỊCH SỬ GIẢI QUYẾT VẤN ĐỀ
Trong thực tế việc quản lý mua bán phụ kiện trang sức bằngphương pháp thủ công như ghi chép thông tin bằng giấy, sổ, thôngqua excel, world… gặp nhiều khó khăn, bất tiện trong việc tính toán,thống kê và lưu trữ thông tin khách hàng
Vì vậy, việc xây dựng một website để quản lý việc bán hàng làrất cần thiết nhằm giúp cho người quản lý dễ dàng quản lý sản phẩm
ít tốn thời gian và công sức, đem lại hiệu quả cao trong việc kinh
Trang 11doanh Giải quyết được các vấn đề mà quản lý theo cách truyềnthống mắc phải.
Một số website về đề tài bán phụ kiện trang sức, nhìn chungcũng giải quyết được vấn đề công tác quản lý, thanh toán, …Đề tài
“Xây dựng website quản lý bán phụ kiện trang sức dựa trên nền tảng Laravel Framework” sẽ mở rộng thêm các chức năng
cần thiết khác, báo cáo, thống kê và hoàn chỉnh những phần mà các
đề tài đã có chưa hoàn thiện
1.3 PHẠM VI ĐỀ TÀI
- Đề tài thực hiện để giải quyết việc bán hàng phụ kiện trang sứctrực tuyến, quản lý khách hàng, nhân viên trên một cửa hàngphụ kiện trang sức nhỏ
- Ứng dụng của đề tài được thực hiện nhằm phục vụ trong lĩnhvực kinh doanh, nhằm tạo điều kiện cho người quản lý dễ dàngquản lý việc nhập, xuất hàng, thống kê và tìm kiếm thông tinkhách hàng một cách nhanh chóng và hiệu quả Có thể ứngdụng và mở rộng ra các của hàng vừa và lớn
1.4 MỤC ĐÍCH ĐỀ TÀI
- Đây là website nhằm bán và giới thiệu rộng rãi các mặt hàngđến người tiêu dùng với các chi tiết mặt hàng và giá cả mộtcách nhanh chóng và chính xác nhất
- Giúp cho khách hàng: tìm kiếm và lựa chọn từ xa sản phẩmmình cần, đặt mua hàng, theo dõi đơn hàng của mình, gửi đónggóp ý kiến
- Giúp nhà quản lý: quản lý các sản phẩm một cách dễ dàng,kiểm tra và xử lý đơn đặt hàng, thống kê và báo cáo doanh thu
1.5 PHƯƠNG PHÁP NGHIÊN CỨU
- Nắm vững kỹ thuật thiết kế hệ thống thông tin
- Nắm vững kỹ thuật lập trình theo mô hình MVC
Trang 12- 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
- Tham khảo một số website bán linh kiện máy tính để hiểu rõviệc mua bán
- Dùng Power Designer để thiết kế các mô hình ứng dụng
- Sử dụng ngôn ngữ PHP, framework Laravel để lập trình và càiđặt chương trình ứng dụng
- Dùng hệ quản trị cơ sở dữ liệu MySQL để tạo và quản lý cơ sở
dữ liệu
- Dùng Sublime Text để hổ trợ lập trình, kiểm tra lỗi
- Phần mềm hổ trợ XAMPP
Trang 13CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 PHP
PHP (viết tắt "PHP: Hypertext Preprocessor") là một ngôn ngữlập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để pháttriển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mụcđích tổng quát Thích hợp với web và có thể dễ dàng nhúng vào trangHTML 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ảnphẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đãnhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhấtthế giới
PHP khởi đầu như là một dự án mã nguồn mở nhỏ, nó đượcphát triển từ một sản phẩm có tên là PHP/FI PHP/FI do RasmusLerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơngiản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản
sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bảnnày là "Personal Home Page Tools" Khi cần đến các chức năng rộnghơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truyvấn tới Database và giúp cho người sử dụng phát triển các ứng dụngweb đơn giản Rasmus đã quyết định công bố mã nguồn của PHP/FIcho mọi người xem, sử dụng cũng như sửa các lỗi, đồng thời cải tiến
mã nguồn
PHP là ngôn ngữ lập trình kịch bản viết cho máy chủ mà đượcnhúng trong HTML, được sử dụng để quản lý nội dụng động,Database, Session tracking, …
Được tích hợp với một số Database thông dụng như MySQL,PostgreSQL, Oracle, Sybase, Informix, và Microsoft SQL Server
PHP thực thi rất tuyệt vời, đặc biệt khi được biên dịch như làmột Apache Module trên Unix side MySQL Server, khi đượckhởi động, thực thi các truy vấn phức tạp với các tập hợp kếtquả khổng lồ trong thời gian Record-setting
PHP hỗ trợ một số lượng rộng rãi các giao thức lớn như POP3,IMAP, và LDAP PHP4 bổ sung sự hỗ trợ cho Java và các cấutrúc đối tượng phân phối (COM và CORBA)
Trang 14 Có thể thêm, sửa, xóa các phần tử bên trong database thôngqua PHP.
Có thể mật mã hóa dữ liệu
Lịch sử phát triển của PHP:
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997,sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta.Không lâu sau đã được thay thế bởi các bản alpha đầu tiên của PHP3.0
PHP 3.0 là phiên bản đầu tiên cho thấy một hình ảnh gần gũivới các phiên bản PHP mà chúng ta được biết ngày nay Nó đãđược Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lạihoàn toàn bộ mã nguồn trước đó Lý do tạo ra phiên bản này là donhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứngdụng thương mại điện tử Trong một nỗ lực hợp tác và bắt đầu xâydựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus vàZeev đã quyết định hợp tác và công bố PHP 3.0 như là phiên bản thế
hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tínhnăng mở rộng mạnh mẽ của nó Ngoài khả năng cung cấp cho ngườidùng cuối một cơ sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu,giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đãthu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mởrộng mới
Phiên bản PHP 4.0 được công bố tháng 5 năm 2000, tốc độ xử
lý được cải thiện, hỗ trợ nhiều máy chủ web hơn, tạo bộ đệm thôngtin đầu ra, xử lý thông tin người dùng nhập vào bảo mật hơn và cungcấp cấu trúc ngôn ngữ mới
PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 saumột chuỗi khá dài các bản kiểm tra thử bao gồm Beta 4, RC 1, RC2,RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP
PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồimới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một
hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiệncác câu truy vấn
Trang 15PHP 7 Hiện nay phiên bản tiếp theo của PHP đang được pháttriển
2.2 MYSQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhấtthế giới và được các nhà phát triển rất ưa chuộng trong quá trìnhphát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và
dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hànhcung 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ậpCSDL trên internet MySQL hoàn toàn miễn phí và có nhiều phiên bảncho các hệ điều hành khác nhau: phiên bản Win32 cho Windows,Linux, Mac OS X, Unix, NetBSD …
MySQL đang được sử dụng cho nhiều công việc kinh doanh từ lớn tớinhỏ, trở nên khá phổ biến vì:
MySQL làm việc nhanh ngay cả với các tập dữ liệu lớn
MySQL rất thân thiện với PHP, một ngôn ngữ rất đáng giá đểtìm hiểu để phát triển Web
MySQL hỗ trợ các cơ sở dữ liệu lớn, lên tới 50 triệu hàng hoặcnhiều hơn nữa trong một bảng Kích cỡ file mặc định được giớihạn cho một bảng là 4 GB, nhưng bạn có thể tăng kích cỡ đểđạt tới giới hạn lý thuyết là 8 TB
2.3 MÔ HÌNH MVC
2.3.1 Giới thiệu
MVC là viết tắt của Model – View – Controller Là một kiến trúc phần mềm hay mô hình thiết kế được sử dụng trong kỹ thuật phần mềm Là một chuẩn mô hình và đóng vai trò quan trọng trong quá trình xây dựng – phát triển – vận hành và bảo trì một hệ thống hay
Trang 16một ứng dụng – phần mềm Nó tạo ra một mô hình 3 lớp Model – View – Controller tách biệt và tương tác nhau, giúp các chuyên gia cóthể dễ dàng dựa vào mô hình để trao đổi và xử lý những nghiệp vụ một cách nhanh chóng Đây là một mô hình đã xuất hiện từ những năm 70 của thế kỷ 20 tại phòng thí nghiệm Xerox PARC ở Palo Alto,
nó không phụ thuộc vào môi trường, nền tảng xây dựng hay ngôn ngữ phát triển Chúng ta có thể áp dụng mô hình MVC vào các dự án trong môi trường Windows, Linux… và sử dụng bất kỳ ngôn ngữ nào như PHP, ASP, JSP…
Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View –Controller:
- Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người
dùng và gọi đúng những phương thức xử lý chúng
hệ quản trị cơ sở dữ liệu (mysql, mssql…), nó sẽ bao gồm cácclass/function xử lý nhiều nghiệp vụ như kết nối database, truyvấn dữ liệu, thêm – xóa – sửa dữ liệu…
- View: Đảm nhận việc hiển thị thông tin, tương tác với người
dùng, nơi chứa tất cả các đối tượng GUI như textbox, images…tập hợp các form hoặc các file HTML
Mô tả luồng sự kiện trong mô hình MVC
- User tương tác với View để gửi yêu cầu đi
- Controller nhận và điều hướng chúng đến 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 cho người dùng thông qua Controller
Trang 17Hình2.1 Mô hình MVC
2.3.2 Sự tương tác giữa các lớp trong mô hình MVC
Controller – View sẽ lấy những hình ảnh, nút bấm…hoặc hiển
thị dữ liệu được trả ra từ Controller để người dùng có thể quan sát vàthao tác Trong sự tương tác này cũng có thể không có dữ liệu đượclấy từ Model và khi đó nó chỉ chịu trách nhiệm hiển thị đơn thuầnnhư hình ảnh, nút bấm…
Controller – Model là luồng xử lý khi controller tiếp nhận yêu
cầu và các tham số đầu vào từ người dùng, controller sẽ sử dụng cáclớp/hàm trong model cần thiết để lấy ra những dữ liệu chính xác
View – Model có thể tương tác với nhau mà không qua
controller, nó chỉ đảm nhận hiển thị dữ liệu chứ không phải qua bất
kỳ xử lý nghiệp vụ logics nào Nó giống như các vùng dữ liệu hiển thịtĩnh trên các website như block slidebar…
2.3.3 Quy trình hoạt động mô hình MVC trong dự án website
Người dùng sử dụng một browser trình duyệt web bất kỳ (firefox,chrome, IE…) để có thể gửi những yêu cầu (http request) có thể kèmtheo những dữ liệu nhập tới những controller xử lý tương ứng Việcxác định controller xử lý sẽ dựa vào một bộ routing điều hướng
Trang 18Hình 2.2 Quy trình hoạt động mô hình MVC Khi controller nhận được yêu cầu gửi tới, nó sẽ chịu trách nhiệmkiểm tra yêu cầu đó có cần dữ liệu từ model hay không? Nếu có, nó
sẽ sử dụng các class/function cần thiết trong model và nó sẽ trả rakết quả, khi đó controller sẽ xử lý giá trị đó và trả ra view để hiển thị,controller sẽ xác định các view tương ứng để hiển thị đúng với yêucầu
Khi nhận được dữ liệu từ controller, view sẽ chịu trách nhiệm xâydựng các thành phẩn hiển thị như hình ảnh, thông tin dữ liệu… và trả
về GUI Content để controller đưa ra kết quả lên màn hình browser.Browser sẽ nhận giá trị trả về (http response) và sẽ hiển thị vớingười dùng Kết thúc một quy trình hoạt động
2.3.4 Ưu điểm của mô hình MVC
Các dự án có thể áp dụng ngay mô hình MVC mà không phụthuộc môi trường, nền tảng xây dựng hay ngôn ngữ lập trình pháttriển;
Quy hoạch các class/function vào các thành phần riêng biệtcontroller – model – view, khi đó sẽ dễ dàng xây dựng – phát triển –quản lý – vận hành và bảo trì một dự án, tạo sự rõ ràng, trong sángtrong quá trình phát triển dự án, kiểm soát được các luồng xử lý vàtạo ra các thành phần xử lý nghiệp vụ chuyên biệt hóa
Trang 19Tạo thành mô hình chuẩn cho nhiều dự án, nếu bạn nắm rõ môhình MVC của một dự án nào đó, thì khi tiếp cận với một dự án khác
mà bạn chưa từng biết hoặc tiếp xúc, nhưng nó lại được xây dựng với
mô hình MVC thì sẽ không khó khăn gì mà cực kỳ dễ dàng
Giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư,… có thểhiểu được dự án hoạt động ra sao hoặc giúp các lập trình viên dễdàng quản lý, phát triển dự án Đây là một mô hình chuẩn, nó tối ưunhất hiện nay so với nhiều mô hình khác và được sử dụng trongnhiều dự án và nhiều lĩnh vực, đặc biệt trong công nghệ sản xuấtứng dụng, phần mềm Các lập trình viên sử dụng mô hình chuẩnMVC để có thể dễ dàng phân phối và chuyển giao công nghệ
Đây là mô hình đơn giản, xử lý những nghiệp vụ đơn giản, và dễ dàng triển khai với các dự án nhỏ
2.4 FRAMEWORK LARAVEL
2.4.1 Giới thiệu Laravel
Laravel là một PHP framework mã nguồn mở và miễn phí, đượcphát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triểncác ứng dụng web theo kiếm trúc model - view - controller (MVC).Những tính năng nổi bật của Laravel bao gồm cú pháp dễ hiểu - rõràng, một hệ thống đóng gói modular và quản lý gói phụ thuộc,nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ,nhiều tiện ích khác nhau hỗ trợ việc triển khai và bảo trì ứng dụng
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có mộtcuộc bình chọn PHP framework phổ biến nhất, Laravel đã giành vị tríquán quân cho PHP framework phổ biến nhất năm 2015, theo saulần lượt là Symfony2, Nette, CodeIgniter, Yii2 và một số khác Trước
đó, Tháng 8 2014, Laravel đã trở thành project PHP phổ biến nhất vàđược theo dõi nhiều nhất trên Github Laravel được phát hành theogiấy phép MIT, với source code được lưu trữ tại Github
Trang 20Hình 2.3 So sánh Laravel và các framework khác
2.4.2 Lịch sử phát triển của Laravel
Bản Laravel beta đầu tiên được phát hành vào ngày 9/6/2011,tiếp đó là Laravel 1 phát hành trong cùng tháng Laravel 1 bao gồmcác tính năng như xác thực, bản địa hóa, model, view, session, địnhtuyến và các cơ cấu khác, nhưng vẫn còn thiếu controller
Laravel 2 được phát hành vào tháng 9 năm 2011, mang đếnnhiều cài tiến từ tác giả và cộng đồng Tính năng đáng kể bao gồm
hỗ trợ controller, điều này thực sự biến Laravel 2 thành một MVCframework hoàn chỉnh, hỗ trợ Inversion of Control (IoC), hệ thốngtemplate Blade Bên cạnh đó, có một nhược điểm là hỗ trợ cho cácgói của nhà phát triển bên thứ 3 bị gỡ bỏ
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấntính năng mới bao gồm giao diện dòng lệnh (CLI) tên “Artisan”, hỗtrợ nhiều hơn cho hệ thống quản trị cơ sở dữ liệu, chức năng ánh xạ
cơ sở dữ liệu Migration, hỗ trợ “bắt sự kiện” trong ứng dụng, và hệthống quản lý gói gọi là “Bundles” Lượng người dùng và sự phổ biếntăng trưởng mạnh kể từ phiên bản Laravel 3
Laravel 4, tên mã “Illuminate”, được phát hành vào tháng 5 năm
2013 Lần này thực sự là sự lột xác của Laravel framework, di chuyển
và tái cấu trúc các gói hỗ trợ vào một tập được phân phối thông quaComposer, một chương trình quản lý gói thư viện phụ thuộc độc lậpcủa PHP Bố trí mới như vậy giúp khả năng mở rộng của Laravel 4 tốthơn nhiều so với các phiên bản trước Ra mắt lịch phát hành chínhthức mỗi sáu tháng một phiên bản nâng cấp nhỏ Các tính năng kháctrong Laravel 4 bao gồm tạo và thêm dữ liệu mẫu (databaseseeding), hỗ trợ hàng đợi, các kiểu gởi mail, và hỗ trợ “xóa mềm” (soft-delete: record bị lọc khỏi các truy vấn từ Eloquent mà khôngthực sự xóa hẳn khỏi DB)
Trang 21Laravel 5 được phát hành trong tháng 2 năm 2015, như một kếtquả thay đổi đáng kể cho việc kết thúc vòng đời nâng cấp Laravellên 4.3 Bên cạnh một loạt tính năng mới và các cải tiến như hiện tại,Laravel 5 cũng giới thiệu cấu trúc cây thư mục nội bộ cho phát triểnứng dụng mới Những tính năng mới của Laravel 5 bao gồm hộ trợlập lịch định kỳ thực hiện nhiệm vụ thông qua một gói tên là
“Scheduler”, một lớp trừu tượng gọi là “Flysystem” cho phép điềukhiển việc lưu trữ từ xa đơn giản như lưu trữ trên máy local – dễ thấynhất là mặc định hỗ trợ dịch vụ Amazone S3, cải tiến quản lý assetsthông qua “Elixir”, cũng như đơn giản hóa quản lý xác thực với cácdịch vụ bên ngoài bằng gói “Socialite”
Laravel 5.1 phát hành vào tháng 6 năm 2015, là bản phát hànhđầu tiên nhận được hỗ trợ dài hạng (LTS) với một kết hoạch fix buglên tới 2 năm vào hỗ trợ vá lỗi bảo mật lên tới 3 năm Các bản pháthành LTS của Laravel được lên kế hoạch theo mỗi 2 năm Laravelphiên bản hiện tại là laravel 5.4
2.4.3 Yêu cầu hệ thống và điều kiện tiên quyết sử dụng Laravel
Yêu cầu hệ thống của Laravel là máy chủ web hổ trợ PHP 5.4.0hoặc cao hơn Mỗi bản phát hành sẽ có yêu cầu chi tiết hơn và chúng
ta có thể yêu cầu cập nhật cho các tính năng riêng
Sử dụng Laravel đồi hỏi kiến thức cơ bản về lập trình hướng đốitượng (OOP), vì Laravel là framework hướng đối tượng
2.4.4 Cấu trúc ứng dụng của Laravel
class php, thư viện, models để xây dựng project của bạn
thực thi trên Artisan
hướng lỗi
tin controllers
Trang 22 Middleware: là thư mục chứa các tập tin lọc
và ngăn chặn các requests
Middleware hoặc nhóm Middleware
thống
o migrations: chứa các tập tin định nghĩa khởi tạo và sử
bảng
o seeds: chứa các tập tin định nghĩa dữ liệu insert vào
database
o factories: chứa các tập tin định nghĩa các cột bảng dữ
liệu để tạo ra các dữ liệu ảo phục vụ cho tests
nơi chứa các tập tin css, js, image
coffeescript, ), views, ngôn ngữ
cookie, log
xử lý router hoặc điều hướng router (là URL, laravel không tựđặt url theo kiểu example.com/controller/action/value màchúng ta phải tự định nghĩa chúng) bao gồm 3 loại là web, api
và console
như key app, tên app, url app, email, env mode, CSDL hay bậttắt debug
Trang 23 package.js tập tin cấu hình của nodejs chứa các package cần
thiết cho projects
2.4.5 Ưu điểm của framework Laravel
Được thừa hưởng những ưu điểm và thế mạnh của nhữn
framework khác:
- Laravel hỗ trợ tương tác với Database như tạo database, tạobảng, chỉnh sửa bảng, insert dữ liệu thông qua Schema Builder
- Document rõ dàng, dễ học
- Autoload theo namespace
- Sử dụng mô hình ORM rất đơn giản khi thao tác với DB
- Các lệnh tương tác với cơ sở dữ liệu cực kỳ ngắn gọn và thânthiện
- Việc quản lý layout đơn giản với Balade Templating
Trang 24- Dễ dàng tích hợp các thư viện khác vào dự án, và được quản lývới Composer.
Trang 25CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
sản phẩm vừa ý khách hàng click nút “mua ngay” để cập nhật sản
phẩm trong giỏ hàng Khách hàng vẫn có thể mua tiếp tục các sảnphẩm khác
Sau khi chọn được những sản phẩm cần mua, khách hàng click
vào nút “thanh toán” để hoàn thành việc mua hàng hoặc hủy bỏ đơn
hàng Nếu là khách hàng quen thuộc, có thể đăng nhập để thanhtoán, nếu là khách hàng mới có thể đăng kí tài khoản hoặc mua ngay
mà không cần tài khoản, chỉ cần nhập số điện thoại để liên hệ và địachỉ để giao hàng Mỗi khách hàng được quản lý bởi các thông tin: mãkhách hàng, họ tên, địa chỉ, số điện thoại, email và mật khẩu
Mỗi sản phẩm thuộc một loại sản phẩm, một nhà cung cấp đượcquản lý bởi các thông tin gồm: mã sản phẩm, tên sản phẩm, sốlượng, đơn giá, mô tả cho sản phẩm và hình ảnh để hiển thị, có thể
có hoặc không có khuyến mãi, một sản phẩm có thể có nhiều ảnhkèm theo
- Loại sản phẩm gồm các thông tin: mã loại và tên loại
- Nhà cung cấp gồm các thông tin: mã nhà cung cấp, tên nhàcung cấp, địa chỉ, số điện thoại và email Có thể có nhiều sảnphẩm khác nhau
- Khuyến mãi gồm các thông tin: mã khuyến mãi, tên khuyếnmãi, ngày bắt đầu, ngày kết thúc, phần trăm giảm giá và ghichú
- Ảnh kèm theo gồm mã hình và tên hình, một ảnh kèm theo chỉthuộc một sản phẩm
Trang 26Sản phẩm được nhập từ nhà cung cấp được quản lý bởi phiếunhập Thông tin phiếu nhập gồm mã phiếu nhập, mã nhà cung cấp,
mã nhân viên, ngày nhập, tổng tiền, ghi chú Thông tin về sản phẩmnhập được lưu trong phiếu nhập chi tiết gồm mã sản phẩm, số lượngnhập và đơn giá nhập
Thông tin về đơn hàng mà khách hàng đã mua sẽ được lưu tronghóa đơn và hóa đơn chi tiết Thông tin hóa đơn gồm: mã hóa đơn, mãkhách hàng, tổng tiền, ngày đặt hàng, ngày giao hàng, ghi chú củađơn hàng, trạng thái và do một nhân viên duyệt đơn hàng Hóa đơnchi tiết lưu thông tin gồm mã sản phẩm, số lượng bán, đơn giá bán
Về nhân viên, mỗi nhân viên được quản lý bởi thông tin gồm mãnhân viên, họ tên, địa chỉ, số điện thoại, giới tính, ngày sinh, email,mật khẩu Mỗi nhân viên có quyền và chức năng khác nhau
Một nhu cầu khác không thể thiếu là chương trình khuyến mãi.Thông tin gồm tên chương trình, ngày bắt đầu, ngày kết thúc khuyếnmãi sản phẩm, sản phẩm được khuyến mãi.Cuối tháng, chủ shop sẽthực hiện việc thống kê lại các mặt hàng để tổng hợp hàng nhập,hàng bán, doanh thu và kiểm tra tình hình kinh doanh của cửa hàng
Trang 273.2 GIẢI PHÁP PHÂN TÍCH, THIẾT KẾ CÁC MÔ HÌNH
3.2.1 Sơ đồ Use case
3.2.1.1 Sơ đồ Use case mức 0
Trang 28Hình 3.1 Use case chức năng hệ thống
3.2.1.2 Use case chức năng quản lý phiếu nhập
Mô tả: Use case quản lý phiếu nhập cho phép nhân viên (tácnhân) trong hệ thống có nhu thêm phiếu nhập khi cần nhậphàng và tìm danh sách phiếu nhập trong hệ thống khi cần
Trang 29Hình 3.2 Use case chức năng quản lý phiếu nhập
3.2.1.3 Use case chức năng báo cáo thống kê
<<extend>>
<<extend>>
<<extend>>
Chủ shop
Báo cáo, thống kê
Báo cáo doanh thu theo thời gian
Trang 303.2.1.4 Use case chức năng quản lý nhân viên
Mô tả: Use case quản lý nhân viên cho phép nhân viên (tácnhân) trong hệ thống có nhu cầu tìm xem danh sách nhân viêncủa cửa hàng và chức năng thêm, sửa, xóa nhân viên dựa vàochức vụ và quyền của nhân viên đó
Đăng nhập Quản lý nhân viên
Xem nhân viên
Sửa nhân viên Thêm nhân viên
Xóa nhân viên
Tìm kiếm
Nhập thông tin nhân viên
Lưu thông tin
Hình 3.4 Use case chức năng quản lý nhân viên
3.2.1.5 Use case chức năng quản lý khách hàng
Use case quản lý Khách hàng cho phép nhân viên (tác nhân) trong hệ thống có thể xem danh sách thông tin của khách
Trang 31- Sau khi xóa thành công thì dữ liệu sẽ được cập nhật lại và lưuvào CSDL.
Hình 3.5 Use case chức năng quản lý khách hàng
3.2.1.6 Use case chức năng quản lý hóa đơn
Mô tả: Use Case quản lý hóa đơn cho phép nhân viên (tácnhân) trong hệ thống có nhu cầu tìm xem danh sách hóa đơncủa cửa hàng và chức năng này cũng cho nhân viên được phépthêm, sửa, xóa dữ liệu hóa đơn trong hệ thống khi được chủcửa hàng yêu cầu
- Chức năng sửa, xóa được thực hiện khi chủ của hàng yêu cầu.Nhân viên sẽ thực hiện chức năng tìm kiếm hóa đơn để sửa,xóa theo yêu cầu Sau khi sửa, xóa thành công thì dữ liệu sẽđược cập nhật lại và lưu vào CSDL
Trang 32Quản lý hóa đơn
Sửa hóa đơn Xem hóa đơn Xóa hóa đơn Thêm hóa đơn
Tìm số hóa đơn
Tự động tăng số phiếu nhập Đặt đúng NV đăng nhập
Chọn sản phẩm
Chọn khách hàng
Nhập số lượng
Lấy ngày hiện hành
Hình 3.6 Use case chức năng quản lý hóa đơn
3.2.1.7 Use case chức năng quản lý sản phẩm
Use Case quản lý sản phẩm cho phép nhân viên (tác nhân)trong hệ thống có nhu cầu tìm xem danh sách sản phẩm củacửa hàng và chức năng này cũng cho nhân viên được phépthêm, sửa, xóa dữ liệu sản phẩm trong hệ thống khi được chủcửa hàng yêu cầu
Trang 33Xóa sản phẩm
Tìm kiếm
Nhập thông tin sản phẩm
Lưu thông tin
Nhập giá hiện tại
<<include>>
Xác nhận xóa
Hình 3.7 Use case chức năng quản lý sản phẩm
3.2.1.8 Use case chức năng quản lý nhà cung cấp
Mô tả: Use Case quản lý nhà cung cấp cho phép nhân viên (tácnhân) trong hệ thống có nhu cầu tìm xem danh sách nhà cungcấp của cửa hàng và chức năng này cũng cho nhân viên đượcphép thêm, sửa, xóa dữ liệu nhà cung cấp trong hệ thống khiđược chủ cửa hàng yêu cầu
- Chức năng sửa, xóa được thực hiện khi chủ của hàng yêu cầu.Nhân viên sẽ thực hiện chức năng tìm kiếm nhà cung cấp đểsửa, xóa theo yêu cầu Sau khi sửa, xóa thành công thì dữ liệu
sẽ được cập nhật lại và lưu vào CSDL
Trang 34Xóa nhà cung cấp
Tìm kiếm
Nhập thông tin nhà cung
cấp
Lưu thông tin
Hình 3.8 Use case chức năng quản lý nhà cung cấp
3.2.1.9 Use case phân rã chức năng quản lý khuyến mãi
Quản lý khuyến mãi
Xem khuyến mãi
Sửa khuyến mãi Thêm khuyến mãi
Xóa khuyến mãi
Tìm kiếm
Cung cấp thông tin
Lưu thông tin
Hình 3.9 Use case phân rã chức năng quản lý khuyến mãi