Tải bản đầy đủ (.docx) (63 trang)

xây dựng website bán phụ kiện trang sức trên nền tảng laravel framework

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.96 MB, 63 trang )

MỤC LỤC

1


Chương 2: Cơ sở lý thuyết

DANH MỤC HÌNH

CBHD: Nguyễn Minh Trung

Trang 2

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết

DANH MỤC BẢNG

DANH MỤC KÝ HIỆU VÀ VIẾT TẮT
Ký hiệu, chữ
viết tắt

Diễn giải

API

Viết tắt của Application Programming
Interface


CSDL

Viết tắt của Cơ Sở Dữ Liệu

DB

Viết tắt của Database

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ộ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.

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

CBHD: Nguyễn Minh Trung

Trang 3

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết

TÓM TẮT
Ngày nay, công nghệ thông tin phát triển mạnh mẽ, ứng dụng
trong rất nhiều lĩnh vực và đời sống xã hội. Đặc biệt trong lĩnh vực
quả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 được
cá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ông
thường là các sản phẩm điện tử dân dụng hoặc các thiết bị tin học
như đ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ống
website 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ới
nhữ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ệu
quan hệ,…

CBHD: Nguyễn Minh Trung

Trang 4

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
Website được xây dựng trên nền tảng Laravel framework với
cô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.
Với đề tài trên có thể mở rộng quy mô cơ sở dữ liệu lớn hơn để
đáp ứng đầy đủ các chức năng nghiệp vụ trong kinh doanh. Đồng

thờ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 many
fields and social life. Especially in the field of general management
and sales management in particular.
Online trading activities are very popular with people are the
companies and the big stores at home and abroad to use in order to
bring efficiency in the sale. Products typically purchase products or
other consumer electronics information technology equipment such
as telephones, computers, accessories, jewelry… Due to network
users to register to buy and sell should have a system used to
manage websites and advertising sales.
Therefore creating a website selling jewelry accessories for
those items and the information related to the complete item is
necessary 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:

CBHD: Nguyễn Minh Trung

Trang 5

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
Chapter 1: Overview introduces themes and goals, why they
chose the topic.
Chapter 2: Theoretical Foundations introduces MVC, PHP and
Laravel framework.
Chapter 3: Content and research results collected information,
build Use case diagrams, sequence patterns, relational
database…
Website built on Laravel framework with platform technology
and other technologies Weblg PHP, HTML5, Javascript… in addition to
using the database server MySQL and Apache.
With the subject can scale up larger databases to meet the full
range of business functions in the business. At the same time can
develop a mobile platform to interact with users easier with smart
phones.
KEYWORDS: Sales Management, Laravel framwork, web
management, jewelery accessories

CHƯƠ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át
triển vượt bậc trên thế giới, được ứng dụng rộng rãi trong tất cả các
lĩ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 kinh
doanh, thương mại điện tử, nó góp phần đáng kể cho sự phát triển
kinh 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ắt
thông tin về hàng hóa, vật tư, thiết bị, thông tin khách hàng, trạng
thái đơn đặt hàng… một cách chính xác và kịp thời. Từ đó người
quản lý có thể đưa ra các kế hoạch và quyết định đúng đắn, giảm chi
phí và tăng khả năng cạnh tranh, nâng cao hoạt động sản xuất kinh
doanh.

CBHD: Nguyễn Minh Trung

Trang 6

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
Nhu cầu sử dụng của con người trong xã hội ngày càng cao, việc
thiếu thông tin sẽ gây khó khăn trong việc đưa sản phẩm đến với
người tiêu dùng. Vì vậy, để hạn chế việc đến tận cửa hàng để xem
sản phẩm, tiết kiệm được thời gian tìm kiếm sản phẩm. Sự ra đời của

phầ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ằng
phương pháp thủ công như ghi chép thông tin bằng giấy, sổ, thông
qua 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
doanh. Giải quyết được các vấn đề mà quản lý theo cách truyền
thống mắc phải.
Một số website về đề tài bán phụ kiện trang sức, nhìn chung
cũ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ức
trực tuyến, quản lý khách hàng, nhân viên trên một cửa hàng
phụ 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ĩnh vực

kinh doanh, nhằm tạo điều kiện cho người quản lý dễ dàng
CBHD: Nguyễn Minh Trung

Trang 7

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
quản lý việc nhập, xuất hàng, thống kê và tìm kiếm thông tin
khách hàng một cách nhanh chóng và hiệu quả. Có thể ứng
dụ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ột
cá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ẩm
mình cần, đặt mua hàng, theo dõi đơn hàng của mình, gửi đóng
gó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
 Về lý thuyết:
-

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.

-

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.

 Về kỹ thuật:
-

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.

CBHD: Nguyễn Minh Trung

Trang 8

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết

CHƯƠ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át

triể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 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ẩ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ất
thế giới.
PHP khởi đầu như là một dự án mã nguồn mở nhỏ, nó được
phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus
Lerdorf tạo ra năm 1994, ban đầu được xem như là một tập con đơn
giả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ản
này là "Personal Home Page Tools". Khi cần đến các chức năng rộng
hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy
vấn tới Database và giúp cho người sử dụng phát triển các ứng dụng
web đơn giản. Rasmus đã quyết định công bố mã nguồn của PHP/FI
cho 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à được
nhú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 được
khởi động, thực thi các truy vấn phức tạp với các tập hợp kết
quả khổng lồ trong thời gian Record-setting.

CBHD: Nguyễn Minh Trung

Trang 9

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết


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ấu trúc
đối tượng phân phối (COM và CORBA).



PHP thực hiện các hàm của hệ thống như tạo, mở, đọc, ghi…



Có thể thêm, sửa, xóa các phần tử bên trong database thông
qua 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 PHP
3.0.
PHP 3.0 là phiên bản đầu tiên cho thấy một hình ảnh gần gũi
vớ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ại
hoàn toàn bộ mã nguồn trước đó. Lý do tạo ra phiên bản này là do
nhận thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng
dụng thương mại điện tử. Trong một nỗ lực hợp tác và bắt đầu xây
dự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ính
năng mở rộng mạnh mẽ của nó. Ngoài khả năng cung cấp cho người
dù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ông
tin đầu ra, xử lý thông tin người dùng nhập vào bảo mật hơn và cung
cấp cấu trúc ngôn ngữ mới.

CBHD: Nguyễn Minh Trung


Trang 10

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau
mộ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.0
vẫ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ồi
mớ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ện
các câu truy vấn.
PHP 7 Hiện nay phiên bản tiếp theo của PHP đang được phát
triển...

2.2 MYSQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất
thế giới và được các nhà phát triển rất ưa chuộng trong quá trình
phát triển ứng dụng. Vì MySQL là 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ành
cung cấp một hệ thống lớn các hàm tiện ích rất mạnh. Với tốc độ và
tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập
CSDL trên internet. MySQL hoàn toàn miễn phí và có nhiều phiên bản
cho 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ới
nhỏ, trở nên khá phổ biến vì:



MySQL là mã ngồn mở, là một chương trình rất mạnh mẽ.



MySQL sử dụng một form chuẩn của ngôn ngữ dữ liệu nổi tiếng
là SQL.



MySQL làm việc trên nhiều Hệ điều hành và với nhiều ngôn ngữ
như PHP, PERL, C, C++, Java, …



MySQL làm việc nhanh ngay cả với các tập dữ liệu lớn.

CBHD: Nguyễn Minh Trung

Trang 11

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết


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ặc
nhiều hơn nữa trong một bảng. Kích cỡ file mặc định được giới
hạ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
mộ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.
- Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc
hệ quản trị cơ sở dữ liệu (mysql, mssql…), nó sẽ bao gồm các
class/function xử lý nhiều nghiệp vụ như kết nối database, truy
vấn dữ liệu, thêm – xóa – sửa dữ liệu…


CBHD: Nguyễn Minh Trung

Trang 12

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
- 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.

Hình 2.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 được
lấy từ Model và khi đó nó chỉ chịu trách nhiệm hiển thị đơn thuần
như hình ảnh, nút bấm…
CBHD: Nguyễn Minh Trung


Trang 13

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
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ác
lớ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èm
theo những dữ liệu nhập tới những controller xử lý tương ứng. Việc
xác định controller xử lý sẽ dựa vào một bộ routing điều hướng.

Hì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ệm
kiể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ả ra
kế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êu
cầu.

CBHD: Nguyễn Minh Trung


Trang 14

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
Khi nhận được dữ liệu từ controller, view sẽ chịu trách nhiệm xây
dự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ới
ngườ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át
triển;
Quy hoạch các class/function vào các thành phần riêng biệt
controller – 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áng
trong 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.
Tạ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 ưu
nhất hiện nay so với nhiều mô hình khác và được sử dụng trong
nhiề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ẩn

MVC để 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í, được
phát triển bởi Taylor Otwell và nhắm vào mục tiêu hỗ trợ phát triển
CBHD: Nguyễn Minh Trung

Trang 15

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
cá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ột
cuộ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 sau
lầ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 theo
giấy phép MIT, với source code được lưu trữ tại Github.

Hì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ồm
các tính năng như xác thực, bản địa hóa, model, view, session, định
tuyế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 đến
nhiề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 MVC
framework hoàn chỉnh, hỗ trợ Inversion of Control (IoC), hệ thống
template Blade. Bên cạnh đó, có một nhược điểm là hỗ trợ cho các
gói của nhà phát triển bên thứ 3 bị gỡ bỏ.

CBHD: Nguyễn Minh Trung

Trang 16

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
Laravel 3 được phát hành vào tháng 2 năm 2012, với một tấn
tí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ến
tă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 qua
Composer, một chương trình quản lý gói thư viện phụ thuộc độc lập
của PHP. Bố trí mới như vậy giúp khả năng mở rộng của Laravel 4 tốt
hơn nhiều so với các phiên bản trước. Ra mắt lịch phát hành chính
thứ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ác
trong Laravel 4 bao gồm tạo và thêm dữ liệu mẫu (database
seeding), 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ông
thực sự xóa hẳn khỏi DB).
Laravel 5 được phát hành trong tháng 2 năm 2015, như một kết
quả thay đổi đáng kể cho việc kết thúc vòng đời nâng cấp Laravel
lê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ều
khiển việc lưu trữ từ xa đơn giản như lưu trữ trên máy local – dễ thấy
nhất là mặc định hỗ trợ dịch vụ Amazone S3, cải tiến quản lý assets
thông qua “Elixir”, cũng như đơn giản hóa quản lý xác thực với các
dị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 bug
lê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át
hành LTS của Laravel được lên kế hoạch theo mỗi 2 năm. Laravel
phiên bản hiện tại là laravel 5.4
CBHD: Nguyễn Minh Trung

Trang 17

SVTH: Nguyễn Khoa Trường



Chương 2: Cơ sở lý thuyết
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.0
hoặ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 đối
tượng (OOP), vì Laravel là framework hướng đối tượng.
2.4.4 Cấu trúc ứng dụng của Laravel


app: là thư mục chứa tất cả các thư mục, các tập tin php, các
class php, thư viện, models để xây dựng project của bạn.

o

Console: thư mục chứa các tập tin định nghĩa các lệnh
thực thi trên Artisan.
o

Exceptions: thư mục chứa các tập tin quản lý, điều
hướng lỗi.
Http

o

Controllers: là




thư

mục

chứa

các

tập

tin controllers.




Middleware: là thư mục chứa các tập tin lọc
và ngăn chặn các requests.
Kernel.php: là tập tin cấu hình, định nghĩa
Middleware hoặc nhóm Middleware.
Providers: chứa các providers.

o


bootstrap: thư mục chứa tập tin điều hướng khởi động hệ
thống.




config: chứa mọi tập tin cấu hình của Laravel.



database: chứa các thư mục tập tin về CSDL.
migrations: chứa các tập tin định nghĩa khởi tạo và sử

o

bảng.
seeds: chứa các tập tin định nghĩa dữ liệu insert vào

o

database.
CBHD: Nguyễn Minh Trung

Trang 18

SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết
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.




public: là webroot người dùng sẽ truy cập vào đây, đây cũng là
nơi chứa các tập tin css, js, image.


resources: chứa các tập tin giao diện (js, css, less, sass,
coffeescript,...), views, ngôn ngữ.



storage: chứa các tập tin hệ thống như upload, cache, session,
cookie, log...



routes: là thư mục chứa các tập tin định nghĩa các router,
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.



tests: chứa các tập tin định nghĩa tests.



vendor: thư mục của composer.






.env và .env.example là 2 tập tin cấu hình chính của laravel
như key app, tên app, url app, email, env mode, CSDL hay bật tắt
debug.
composer.json, composer.lock tập tin của composer.



package.js tập tin cấu hình của nodejs chứa các package cần
thiết cho projects.



phpunit.xml: là tập tin xml của phpunit dùng để testing
project.



server.php: là tập tin để artisan trỏ đến tạo server khi gõ lệnh
php artisan serve



artisan: tập tin thực thi lệnh của Laravel, cũng là tập tin mà
chúng ta tương tác nhiều nhất.

CBHD: Nguyễn Minh Trung

Trang 19


SVTH: Nguyễn Khoa Trường


Chương 2: Cơ sở lý thuyết

Hình 2.4 Thư mục tổng quan của laravel

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ạo
bả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ân
thiện.
Việc quản lý layout đơn giản với Balade Templating.
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.

CBHD: Nguyễn Minh Trung

Trang 20

SVTH: Nguyễn Khoa Trường



Chương 3 Nội dung và kết quả nghiên cứu

CHƯƠNG 3 NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU
3.1 PHÂN TÍCH HỆ THỐNG
Website quản lý bán phụ kiện trang sức nhằm phục vụ cho việc
mua và đặt hàng trực tiếp trên mạng dành cho khách hàng và quản
lý bán hàng tốt hơn:
Khách hàng truy cập vào website có thể xem, tìm kiếm, mua sản
phẩm hoặc đặt hàng, các sản phẩm được phân theo loại nên khách
hàng có thể dễ dàng tìm được sản phẩm mình cần mua, có thể xem
chi tiết của sản phẩm để biết còn hàng hay không. Khi đã chọn được
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ản
phẩ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 để thanh
toá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à địa
chỉ để 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 được
quả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 ảnh
kè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ản
phẩm khác nhau.

-

Khuyến mãi gồm các thông tin: mã khuyến mãi, tên khuyến
mãi, ngày bắt đầu, ngày kết thúc, phần trăm giảm giá và ghi
chú.

-

Ả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

CBHD: Nguyễn Minh Trung

Trang 21

SVTH: Nguyễn Khoa Trường


Chương 3 Nội dung và kết quả nghiên cứu
Sản phẩm được nhập từ nhà cung cấp được quản lý bởi phiếu
nhậ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ẩm

nhập được lưu trong phiếu nhập chi tiết gồm mã sản phẩm, số lượng
nhập và đơn giá nhập.
Thông tin về đơn hàng mà khách hàng đã mua sẽ được lưu trong
hó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 đơn
chi 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ến
mã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.

CBHD: Nguyễn Minh Trung

Trang 22

SVTH: Nguyễn Khoa Trường


Chương 3 Nội dung và kết quả nghiên cứu

3.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
Báo cáo, thống kê


Danh mục nhà cung cấp

Danh mục khách hàng
Đăng nhập
Chủ quán

Danh mục sản phẩm

Quản lý phiếu nhập

Quản lý hóa đơn

Tìm sản phẩm

Đặt hàng
Khách hàng

Xem khuyến mãi

CBHD: Nguyễn Minh Trung

Trang 23

SVTH: Nguyễn Khoa Trường


Chương 3 Nội dung và kết quả nghiên cứu

Hì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ác

nhân) trong hệ thống có nhu thêm phiếu nhập khi cần nhập
hàng và tìm danh sách phiếu nhập trong hệ thống khi cần.
 Dòng sự kiện:
-

Nhân viên phải đăng nhập vào hệ thống mới có thể quản lý
phiếu nhập.

-

Chức năng thêm phiếu nhập được thực hiện khi cần nhập hàng
cho sản phẩm. Nhân viên bắt buộc nhập đầy đủ thông tin phiếu
nhập. Khi thêm thành công, dữ liệu sẽ được lưu vào CSDL.

CBHD: Nguyễn Minh Trung

Trang 24

SVTH: Nguyễn Khoa Trường


Chương 3 Nội dung và kết quả nghiên cứu

Đặt đúng NV đăng nhập

Tự động tăng số phiếu nhập
Chọn nhà cung cấp
<<include>>


<<include>>
<<include>>

Nhập số lượng

Chọn sản phẩm

<<include>>
Nhân viên

<<include>>
Thêm phiếu nhập
<<include>>

Đăng nhập

<<extend>>

<<include>>
Lấy ngày hiện hành

Nhập giá

Quản lý phiếu nhập

<<include>>

<<extend>>


Tìm số phiếu nhập

Xem phiếu nhập

Hì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ê

Chủ shop
Báo cáo doanh thu theo thời gian

Đăng nhập
<<extend>>
Thống kê sản phẩm bán chạy nhất
<<extend>>
Báo cáo, thống kê
<<extend>>
Thống kê số lượng bán, số lượng nhập

Hình 3.3 Use case chức năng báo cáo thống kê

CBHD: Nguyễn Minh Trung

Trang 25

SVTH: Nguyễn Khoa Trường


×