Tải bản đầy đủ (.pdf) (58 trang)

Xây dựng website bán hàng sử dụng framework codeigniter

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 (3.35 MB, 58 trang )

VIỆN ĐẠI HỌC MỞ HÀ NỘI
KHOA CÔNG NGHỆ ĐIỆN TỬ - THÔNG TIN

BÁO CÁO ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC
Đề tài: Xây dựng website bán hàng sử dụng framework CodeIgniter

Giảng viên hướng dẫn : TS.ĐặNG HảI ĐĂNG
Sinh viên thực hiện: NGUYễN THị THU PHƯƠNG
Lớp

: K16A

Khoá : 2013-2017
Hệ

: Đại học chính quy

Hà Nội, tháng 2 /2017


VIỆN ĐẠI HỌC MỞ HÀ NỘI

CỘNG HOÀ XÃ HỘI CHỦ NGHĨA
VIỆT NAM

KHOA CN ĐIỆN TỬ - THÔNG TIN

Độc lập - Tự do – Hạnh phúc

ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC


Họ và tên sinh viên: Nguyễn Thị Thu Phương
Lớp: K16A

Khoá:16 (2013-2017)

Ngành đào tạo: Công nghệ Kỹ thuật điện tử, Truyền thông
ĐHCQ

Hệ đào tạo:

1/ Tên đề tài TTTN:
Xây dựng website thương mại điện tử sử dụng framework CodeIgniter
2/ Nội dung chính:
Phần 1:Cơ sở lí thuyết và công nghệ gồm 2 chương
Chương 1: Đặt vấn đề bài toán và cách giải quyết bài toán
Chương 2: Giới thiệu nền tảng xây dựng website:FrameworkCodeIgniter
Phần 2:Xây dựng website gồm 2 chương
Chương 3: Mô tả các chức năng và phân tích thiết kế hệ thống
Chương 4: Xây dựng website dựa trên Framework CodeIgniter
3/ Cơ sở dữ liệu ban đầu
……………..………..……….…………………………………………………………
……………………..……….……………………………………………………………
……………………..……….……………………………………………………………
……………………..……….……………………………………………………………
4/ Ngày giao :06 /02/2017
5/ Ngày nộp:15/05/2017
TRƯỞNG KHOA

GIÁO VIÊN HƯỚNG DẪN


(Ký, ghi rõ họ tên)

(Ký, ghi rõ họ tên)


Mở ĐầU

Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ cả về chất
và về lượng.Cùng với đó, đã đưa việc bán hàng trực tuyến lên một tầm cao mới, phát
triển hơn cả về chiều rộng và chiều sâu. Website bán hàng đã trở thành một phần
không thể thiếu với bất cứ công ty, tổ chức hay nhà bán lẻ nào. Nó giúp đưa sản phẩm
tới gần khách hàng hơn theo cách nhanh nhất, thuận tiện nhất, và hiệu quả hơn bao giờ
hết cho cả người bán và người mua.Chưa bao giờ việc mua hàng lại sễ dàng như hiện
nay, khách hàng chỉ cần một thao tác trên máy tính hay điện thoại thông minh có kết
nối internet là có thể mua mọi thứ mình muốn.
Từ những lý do trên, em quyết định chọn đề tài “Xây dựng website bán hàng
dựa trên framework CodeIgniter” –xây dựng một website bán các sản phẩm liên qua
đến GYM, gồm 3 loại sản phẩm.Sử dụng một trong những framework phổ biến nhất
của ngôn ngữ PHP đó là CodeIgniter. Thông qua đó em nắm rõ hơn về lĩnh vực
thương mại điện tử và các kỹ năng ứng dụng lập trình cho website bán hàng trên một
framework một cách hiệu quả.
Báo cáo tốt nghiệp của em bố cục gồm bốn chương:






Chương 1:Đặt vấn đề và định hướng giải pháp
Chương 2:Giới thiệu nền tảng công nghệ Framework CodeIgniter

Chương 3:Mô tả các chức năng và phân tích thiết kế hệ thống
Chương 4:Xây dựng website dựa trên framework CodeIgniter

Bằng sự cố gắng nỗ lực của bản thân và đặc biệt là sự giúp đỡ tận tình, chu đáo
của giảng viên TS. Đặng Hải Đăng, em đã hoàn thành đồ án đúng thời hạn. Do thời
gian làm đồ án có hạn và trình độ còn nhiều hạn chế nên em không thể tránh khỏi
những thiếu sót. Em rất mong nhận được sự đóng góp ý kiến của các thầy cô cũng như
là của các bạn sinh viên để đồ án này hoàn thiện hơn nữa. Em xin chân thành cảm ơn
giảng viênTS. Đặng Hải Đăng đã tạo điều kiện và giúp đỡ em trong thời gian qua.


NHậN XÉT


MụC LụC
PHẦN 1:CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ .................................................. 9
CHƯƠNG 1:ĐẶT VẤN ĐỀ BÀI TOÁN VÀ ĐỊNH HƯỚNG GIẢI PHÁP ........... 9
1.1. Đặt vấn đề bài toán ........................................................................................... 9
1.2. Định hướng giải pháp........................................................................................ 9
CHƯƠNG 2:GIỚI THIỆU FRAMEWORK CODEIGNITER ............................. 11
2.1. Giới thiệu tổng quan về PHP framework ......................................................... 11
2.2. Lý do chọn framework CodeIgniter................................................................. 12
2.3. Cấu trúc thư mục của CodeIgniter ................................................................... 14
2.4. Hoạt động của framework CodeIgniter............................................................ 16
PHẦN 2:XÂY DỰNG WEBSITE SỬ DỤNG FRAMEWORK CODEIGNITER 18
CHƯƠNG 3:MÔ TẢ CHỨC NĂNG HỆ THỐNG VÀ PHÂN TÍCH THIẾT KẾ
HỆ THỐNG ............................................................................................................. 18
3.1. Mô tả chức năng hệ thống ............................................................................... 18
3.1.1. Đối với khách hàng truy cập đến website ................................................. 18
3.1.2. Đối với người quản trị website ................................................................. 19

3.2. Phân tích và thiết kế hệ thống.......................................................................... 19
3.2.1. Phân tích yêu cầu người dùng................................................................... 19
3.2.2. Thiết kế hệ thống...................................................................................... 20
3.2.2.1:Xác định các Actor và Usecase của hệ thống ...................................... 20
3.2.2.2. Biểu đồ phân cấp chức năng .............................................................. 21
3.2.2.3. Biểu đồ luồng dữ liệu mức bối cảnh .................................................. 22
3.2.2.4. Biểu đồ luồng dữ liệu ở mức đỉnh ...................................................... 23
3.2.2.5. Biểu đồ Usecase ................................................................................ 24
3.2.2.6. Lược đồ cơ sở dữ liệu ........................................................................ 28
3.2.2.7. Đặc tả Use-case,biểu đồ lớp tham gia ca sử dụng và biểu đồ trình tự . 28
3.2.3.Thiết kế cơ sở dữ liệu ................................................................................ 41
CHƯƠNG 4. XÂY DỰNG WEBSITE DỰA TRÊN FRAMEWORK
CODEIGNITER ...................................................................................................... 45
4.1. Các kĩ thuật áp dụng để xây dựng ứng dụng .................................................... 45
4.2. Giao diện các chức năng của website .............................................................. 50
TÀI LIỆU THAM KHẢO ....................................................................................... 58


DANH MỤC HÌNH ảNH
Hình 1. 1 Mô hình MVC ............................................................................................ 11
Hình 1. 2 Cấu trúc thư mục framework CodeIgniter .................................................. 14
Hình 1. 3 Dòng chảy dữ liệu của CodeIgniter ........................................................... 16
Hình 3. 1 Biểu đồ phân cấp chức năng ....................................................................... 21
Hình 3. 2 Biểu đồ luồng dữ liệu mức bối cảnh ........................................................... 22
Hình 3. 3 Biểu đồ luồng ở mức đỉnh .......................................................................... 23
Hình 3. 4 Sơ đồ Usecase của người dùng và thành viên ............................................. 24
Hình 3. 5 Sơ đồ Usecase tra cứu thông tin của khách hàng ........................................ 25
Hình 3. 6 Sơ đồ Usecase của ban quản trị .................................................................. 26
Hình 3. 7 Sơ đồ Usecase quản lí bán hàng ................................................................. 27
Hình 3. 8 Sơ đồ Usecase thanh toán ........................................................................... 28

Hình 3. 9 Lược đồ cơ sở dữ liệu ................................................................................. 28
Hình 4. 1 Sơ đồ hoạt động quá trình đăng nhập của người dùng ................................ 45
Hình 4. 2 Quá trình thêm sản phẩm vào giỏ hàng ....................................................... 47
Hình 4. 3 Mô tả phân trang ........................................................................................ 48
Hình 4.4 Trang chủ .................................................................................................... 50
Hình 4.5 Danh sách các danh mục sản phẩm và loại sản phẩm tương ứng ................. 51
Hình 4.6 Danh sách sản phẩm mới ............................................................................. 51
Hình 4.7 Chi tiết sản phẩm ........................................................................................ 52
Hình 4.8 Tìm kiếm theo text có chức năng tự gợi ý sản phẩm .................................... 52
Hình 4.9 Thông tin giỏ hàng ...................................................................................... 53
Hình 4.10 Đăng kí thành viên .................................................................................... 53
Hình 4.11 Chỉnh sửa thông tin thành viên .................................................................. 54
Hình 4.12 Quản lý sản phẩm ...................................................................................... 54
Hình 4.13 Thêm sản phẩm mới .................................................................................. 54
Hình 4.14 Quản lý danh mục sản phẩm...................................................................... 55
Hình 4.15 Quản lý danh sách admin .......................................................................... 55
Hình 4.16 Quản lí tin tức ........................................................................................... 55
Hình 4.17 Quản lý giao dịch ...................................................................................... 56
Hình 3.18 Chi tiết đơn hàng ....................................................................................... 56


DANH MỤC CÁC BẢNG
Bảng 1. 1 Danh sách thư viện của CodeIgniter........................................................... 16
Bảng 3. 1 Cấu trúc dữ liệu bảng sản phẩm(Product) .................................................. 41
Bảng 3. 2 Cấu trúc dữ liệu bảng tin tức(News)........................................................... 42
Bảng 3. 3 Cấu trúc dữ liệu bảng danh mục sản phẩm(Catalog) .................................. 42
Bảng 3. 4 Cấu trúc dữ liệu bảng Liên hệ và Support(Contact) .................................... 42
Bảng 3.5 Cấu trúc dữ liệu bảng chi tiết đơn hàng(Order) ........................................... 43
Bảng 3.6 Cấu trúc dữ liệu bảng Slide(Slide) .............................................................. 43
Bảng 3.7 Cấu trúc dữ liệu bảng Support..................................................................... 43

Bảng 3.8Cấu trúc dữ liệu bảng Giao dịch(Transaction) .............................................. 44
Bảng 3.9 Cấu trúc dữ liệu bảng Người dùng(User) .................................................... 44


KÍ HIỆU CÁC CỤM TỪ VIẾT TẮT

✓ PHP: (viết tắt của cụm từ Personal Home Page) là ngôn ngữ lập trình kịch

bản (scripting language) mã nguồn mở được dùng phổ biến để ra tạo các ứng dụng
web chạy trên máy chủ.
MVC: (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. Nói cho dễ hiểu, nó là
mô hình phân bố source code thành 3 phần, mỗi thành phần có một nhiệm vụ riêng
biệt và độc lập với các thành phần khác.
XSS: (viết tắt của Cross-site Scripting) là lỗ hổng cho phép hacker có thể
chèn những đoạn mã client-script (thường là Javascript hoặc HTML) vào trang web,
khi người dùng vào những trên web này, mã độc sẽ được thực thi trên máy của người
dùng.
SQL Injection:là một kỹ thuật tấn công vào câu lệnh cơ sở dữ liệu thông qua
chèn các đoạn mã độc vào SQL để đánh lạc hướng xử lý với mục đích phá hủy dữ liệu
hoặc ăn cắp.
URL:( viết tắt của Uniform Resource Locator) được sử dụng để tham chiếu
tới tài nguyên trên mạng Internet. URL tạo nên khả năng siêu liên kết cho các website.
Mỗi tài nguyên khác nhau lưu trữ trên Internet được gán bằng một địa chỉ chính xác,
địa chỉ đó chính là URL
FTP: ( viết tắt của File Transfer Protocol:Giao thức chuyển nhượng tập tin)
là một giao thức giúp bạn dễ dàng trao đổi các dữ liệu giữa máy tính của bạn với host
và ngược lại.
HTML: (viết tắt củaHyperText Markup Language:Ngôn ngữ đánh dấu siêu
văn bản) Nó dùng để định dạng bố cục, các thuộc tính liên quan đến cách hiển thị của

một đoạn text và được hiển thị trên một chương trình đặc biệc ta gọi là Browser
URI: (viết tắt của Uniform Resource Identifier ) là một chuỗi kí tự được sử
dụng để định danh tên, hoặc tài nguyên trên Internet. Việc định danh này cho phép
tương tác với các tài nguyên trên mạng sử dụng một giao thức xác định.
HTTP: (viết tắt của HyperText Transfer Protocol: giao thức truyền tải siêu
văn bản) là một giao thức ứng dụng trong bộ các giao thức TCP/IP (gồm một nhóm
các giao thức nền tảng cho internet). HTTPhoạt động dựa trên mô hình Client –
Server.











Báo cáo thực tập tốt nghiệp Đại học

Chương 1. Đặt vấn đề bài toán
và định hướng giải pháp

PHẦN 1:CƠ SỞ LÝ THUYẾT VÀ CÔNG NGHỆ
CHƯƠNG 1:ĐẶT VẤN ĐỀ BÀI TOÁN
VÀ ĐỊNH HƯỚNG GIẢI PHÁP
1.1.Đặt vấn đề bài toán

✓ Hiện nay khi đời sống con người càng ngày càng được cải thiện, thì họ lại

càng quan tâm hơn tới việc luyện tập thể dục thể thao nói chung và tập thể hình nói
riêng để tăng cường sức khỏe. Cùng với đó việc chi tiêu cho các sản phẩm như thực
phẩm hỗ trợ hay đồ tập, dụng cụ tập thể hình lại càng tăng cao. Để đáp ứng nhu cầu
đó,không chỉ đòi hỏi các nhà kinh doanh phải có mặt hàng phong phú, chất lượng mà
còn phải đưa sản phẩm đến với người tiêu dùng một cách nhanh nhất, trực quan nhất.
✓ Nhược điểm của hệ thống kinh doanh truyền thống:
● Thống kê khó khăn:Khó liệt kê một cách chính xác ,nhanh chóng số lượng
sản phẩm đã bán ra và còn tồn kho;khó nắm bắt một cách đầy đủ những thông
tin,sởthích,yêu cầu của khách hàng(khó thu thập thông tin người dùng)
● Chi phí mặt bằng cao
● Chi phí quảng cáo và marketing tốn kém
● Cập nhật thông tin,giá cả sản phẩm chậm
● Bán hàng thụ động:Nếu khách hàng có thời gian đến xem hàng,mua hàng
bạn mới có doanh thu.
1.2.Định hướng giải pháp
Ứng dụng công nghệ thông tin vào kinh doanh:Xây dựng một cửa hàng trực
tuyến với nhiều tính năng khắc phục các hạn chế của mô hình kinh doanh truyền thống
với chức năng đặt hàng trực tuyến và thanh toán online.
Ưu điểm:
* Thống kê dễ dàng,nhanhchóng:Thống kê nhanh,một cách chính xác số lượng
sản phẩm đã bán ra và tồn kho.Dễ dàng thu thập thông tin từ người dùng để nắm bắt
một cách đầy đủ những thông tin,sởthích,thói quen mua sắm,yêu cầu và ý kiến của
khách hàng.
* Chi phí mặt bằng thấp
* Chi phí quảng cáo và marketing giảm:Chúng ta có thể áp dụng những hình
thức marketing online hoặc SEO để quảng cáo cho sản phẩm của chúng ta.
* Cập nhật thông tin sản phẩm ngay lập tức.
* Bán hàng chủ động:Cửa hàng không bao giờ đóng cửa,phục vụ 24h/24h,khách
hàng không tốn thời gian đi lại và có thể mua hàng bất cứ lúc nào.
* Không bị giới hạn không gian địa lí giữa người bán và người mua


Nguyễn Thị Thu Phương – K16A

9

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 1. Đặt vấn đề bài toán
và định hướng giải pháp

Phạm vi của hệ thống:
* Phạm vi áp dụng:Trên môi trường web,mọi thiết bị có kết nối internet
* Đối tượng sử dụng:Mọi đối tượng,tất cả mọi đối tượng đều có thể giao dịch
mua bán và tham khảo mọi thông tin tại website thay vì đến trực tiếp cửa hàng.
Công cụ và công nghệ phát triển website:
* Sử dụng công cụ xampp để tạo môi trường server ảo sử dụng cơ sở dữ liệu
mysql
* Sử dụng phần mềm Sublime Text 3 để lập trình
* Sử dụng phần mềm Photoshop để chỉnh sửa ảnh thiết kế
* Sử dụng công nghệ framework CodeIgniter
* Các ngôn ngữ sử dụng:HTML,CSS,Javascript,Jquery,Json,PHP

Nguyễn Thị Thu Phương – K16A

10

TS. Đặng Hải Đăng



Báo cáo thực tập tốt nghiệp Đại học Chương 2. Giới thiệu Framework Codeigniter

CHƯƠNG 2:GIỚI THIỆU FRAMEWORK CODEIGNITER
2.1.Giới thiệu tổng quan về PHP framework
Như chúng ta đã biết, PHP (viết tắt hồi quy của PHP Hypertext Preprocessor) là
một ngôn ngữ script rất phổ biến hiện nay bởi những lý do: mã nguồn mở, linh hoạt,
công cụ mạnh mẽ, dễ học, dễ sử dụng và hoàn toàn miễn phí. Lập trình viên có thể sử
dụng PHP để tạo ra các trang web tin tức, giải trí, giáo dục, thương mai điện tử…Tuy
nhiên mã PHP mà lập trình viên tạo ra sẽ trở nên đơn điệu, lủng củng, trùng lặp, đôi
khi còn tạo ra các lỗ hổng cho website. Đó là lúc lập trình viên cần đến PHP
Framework. Nói một cách dễ hiểu Framework là một thư viện, bộ khung chứa sẵn các
“vật liệu” ở nhiều lĩnh vực khác nhau, lập trình viên chỉ việc gọi ra sử dụng mà không
cần mất nhiều thời gian để tự thiết kế trước khi dùng.
PHP framework làm cho sự phát triển của các ứng dụng web viết bằng PHP trở
nên trôi chảy, ngắn gọn, mạnh mẽ và bảo mật hơn bằng cách cung cấp một cấu trúc cơ
bản để xây dựng những ứng dụng đó. Hay nói cách khác PHP framework cung cấp các
tiện ích, thư viện, các đoạn mã dựng sẵn giúp lập trình viên tiết kiệm được thời gian,
tăng sự ổn định cho ứng dụng, tối ưu và giảm thiểu sự lặp đi lặp lại các đoạn mã.
Ngoài ra PHP framework có thể tương tác chính xác với cơ sở dữ liệu (Database) và
tách phần mã PHP ra khỏi giao diện giúp ứng dụng ổn định hơn và dễ quản lý hơn.
Điều này cho phép lập trình viên dành nhiều thời gian để tạo ra các ứng dụng web hơn
là phí thời gian để viết các đoạn mã lặp lại trong một ứng dụng viết bằng PHP thuần
PHP framework được thiết kế theo một mô hình chuẩn để lập trình viên có thể
dễ dàng sử dụng, quản lý và bảo trì ứng dụng. Đa số các frameword hiện nay đều chọn
MVC làm mô hình thiết kế ứng dụng. MVC là viết tắt của Model View Controller cho
phép tách biệt các mã nghiệp vụ (bussiness logic) và giao diện thành các phần riêng
biệt, điều này đồng nghĩa với việc ta có thể chỉnh sửa chúng một cách riêng lẻ. Mô
hình MVC gồm ba thành phần: Model, View và Controller.


Hình 1. 1 Mô hình MVC

Nguyễn Thị Thu Phương – K16A

11

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học Chương 2. Giới thiệu Framework Codeigniter
Trong đó:
● Model (Tầng dữ liệu): là một đối tượng hoặc một tập hợp đối tượng biểu
diễn cho phần dữ liệu của ứng dụng. Model có nhiệm vụ tương tác đến dữ liệu trong
cơ sở dữ liệu, thường là các thao tác thay đổi dữ liệu như thêm, xóa, sửa, truy vấn dữ
liệu… Nếu dữ liệu trong Model thay đổi thì ngoài View sẽ được cập nhật lại.
● View (Tầng giao diện): là thành phần thể hiện dữ liệu trong Model thành các
giao diện tương tác với người dùng. View cung cấp các menu, nút bấm, hộp đối
thoại,chọn lựa, các checkbox… để người dùng có thể thêm, xóa, sửa, truy xuất hay
tìm kiếm dữ liệu trong hệ thống. Thông thường các thông tin hiển thị trên View được
lấy từ Model
● Controller (Tầng điều khiển): đóng vai trò trung gian giữa Model và View,
là tầng chịu trách nhiệm xử lý các tác động từ giao diện View. Sau khi xử lý các yêu
cầu được gửi từ người dùng Controller sẽ tương tác đến Model để lấy các dữ liệu cần
thiết để đáp ứng các yêu cầu vừa được gửi. Cuối cùng Controller trả dữ liệu này về cho
View.
2.2.Lý do chọn framework CodeIgniter
CodeIgniter là một nền tảng ứng dụng web mã nguồn mở được viết bằng ngôn
ngữ PHP bởi Rick Ellis (CEO của EllisLab, Inc). Phiên bản đầu tiên được phát hành
vào ngày 28/02/2006,CodeIgniter đã được nâng cấp lên phiên bản 2.2.6 phát hành vào

ngày 10/2015 và hiện tại đang là bản 3.0.6 đang được phát triển bởi ExpressionEngine
Development Team thuộc EllisLab, Inc.
Những điểm nổi bật:

✓ Được thiết kế theo mô hình MVC (Model – View – Controller)
✓ Mô hình MVC giúp tách thành phần hiển thị giao diện và phần xử lý của một
ứng dụng thành các phần riêng biệt, từ đó dễ quản lý, bảo trì và nâng cấp ứng
dụng.CodeIgniter đã sử dụng mô hình này để tách các tập tin giao diện ra khỏi các tập
tin xử lý dữ liệu để người thiết kế dễ dàng thay đổi giao diện, nâng cấp và bảo trì
website.
✓ Tốc độ
✓ CodeIgniter là một trong những framework có tốc độ xử lý nhanh nhất. Với
cơ chế lưu nội dung người dùng truy xuất vào bộ đệm (cache), kiểm tra bộ đệm trước
khi thực hiện, nếu tồn tại sẽ lấy ra ngược lại sẽ thực hiện gửi yêu cầu người dùng. Như
vậy sẽ làm giảm lượt truy cập đến cơ sở dữ liệu, tối ưu hóa tốc độ.
✓ Lưu lượng nhỏ
✓ Phiên bản 3.0.6 ( có kèm hướng dẫn ) có dung lượng 2.4mb. Nhẹ hơn rất
nhiều so với các framework khác như Zend 6.02mb (bản chưa đầy đủ), Symfony
3.03mb…
✓ Dễ sử dụng

Nguyễn Thị Thu Phương – K16A

12

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học Chương 2. Giới thiệu Framework Codeigniter


✓ CodeIgniter khá thân thiện với người dùng, trong file download về có kèm
theo một bản hướng dẫn khá đầy đủ và ví dụ minh họa về từng phần, giải thích chi tiết.
CodeIgniter rất phù hợp với người mới làm quen với lập trình.
✓ Thư viện phong phú
CodeIgniter hỗ trợ khá đầy đủ các tiện ích thông dụng cho phép phát triển các
ứng dụng phổ biến nhất như gửi thư, quản lý session, giỏ hàng, truy cập cơ sở dữ liệu,
xử lý ảnh … đến các chức năng bảo mật, mã hóa…
✓ Miễn phí
CodeIgniter được phát hành dưới giấy phép Apache/BSD mở rộng. Bạn có thể
tùy chỉnh, sửa đổi, copy, phát triển và phân phối mã nguồn.
✓ Bảo mật
CodeIgniter hổ trợ bộ lọc XSS (Cross Site Scripting), SQL Injection để lọc dữ
liệu từ POST và COOKIE để ngăn chặn các mã độc. Từ đó làm tăng khả năng bảo mật
cho CodeIgniter.
✓ Search Engine Optimization
Cấu trúc URL được tạo bởi CodeIgniter rất đơn giản và thân thiện. Thay vì sử
dụng các chuỗi truy vấn tiêu chuẩn tiếp cận đến các URL thì CodeIgniter sử dụng một
cách tiếp cận dựa vào các phân khúc (segment).

Nguyễn Thị Thu Phương – K16A

13

TS. Đặng Hải Đăng


Báo cáo thực tập tốtt nghiệp Đại học Chương 2. Giới thiệu
u Framework Codeigniter
2.3.Cấu trúc thư mụ
ục của CodeIgniter


Hình 1. 2 Cấu
C trúc thư mục framework CodeIgniter

✓ Tậpp tin index.php (hàng
(h
thứ 2 từ dưới lên của hình 2) được
ợc xem llà controller
đầu vào tiếp nhận các yêu từ
ừ từ phía người dùng và gửi về hệ thống xử
ử lý ddữ liệu.
✓ Thư mụcc user_guide: chứa
ch
các tập tin web hướng dẫn
ẫn các ssử dụng
CodeIgniter. Bao gồm
m các hướng
h
dẫn cài đặt,cấuhình,cập nhật phiên bản
ản m
mới, sử dụng
các thư viện… Đối với một
ột lập
l trình viên mới bắt đầu thì đây là cuốn
ốn sách thích hhợp
nhất.
✓ Thư mụcc system: llà thành phần cốt lõi của hệ thống, chứa
ứa các th
thư viện, tập
tin ngôn ngữ,, helpers, font…

font…đã được dựng sẵn của CodeIgniter. Lập trình
ình viên ch
chỉ cần
gọi thư viện hay helper cần
ần thiết
thi ra sử dụng mà không cần phải định
nh nghĩ
nghĩa lại
✓ Thư mụcc application:
applicati
là nơi chứa các tập tin được lập trình
ình cho ứng dụng bởi
lập trình viên. Trong đóó có một
m số thư mục, tập tin quan trọng như:
✓ Thư mục cache: làà bộ
b đệm của hệ thống,chứa các trang đã đư
được xử lý trước
đó từ yêu cầu của người dùng
ùng nhằm
nh
giảm lượt truy cập đến cơ sở dữ
ữ liệ
liệu và tăng tốc
độ xử lý của ứng dụng.


Báo cáo thực tập tốt nghiệp Đại học Chương 2. Giới thiệu Framework Codeigniter

✓ Thư mục config: chứa các tập tin cấu hình hệ thống như: autoload.php,
config.php, database.php, routes.php…

✓ Thư mục errors: chứa các tập tin lỗi, các tập tin này sẽ được gọi khi ứng
dụng xảy ra lỗi, như lỗi không tìm thấy là tập tin error_404.php…
✓ Thư mục helpers: chứa các tập tin do lập trình viên tự định nghĩa, trong các
tập tin này chứa các hàm hỗ trợ khi viết ứng dụng.
✓ Thư mục libraries: chứa các tập tin tự định nghĩa giống helper, nhưng thư
mục này chứa các tập tin thư viện.
✓ Thư mục controllers: chứa các lớp controller để nhận các yêu cầu từ người
dùng và truyền đến model.
✓ Thư mục models: chứa các lớp model để tương tác với cơ sở dữ liệu
✓ Thư mục views: chứa các lớp view để hiển thị giao diện cho người sử dụng
tương tác với ứng dụng.
Để tăng khả năng bảo mật cho ứng dụng lập trình viên có thể đưa thư mục
application vào trong system mà không cần cấu hình lại. Và thay đổi tên của thư mục
application thành tên tùy ý. Sau khi đổi tên,cần thiết lập lại tên mới cho biến
$application_folder trong tập tin index.php. Thư mục system cũng có thể đổi tên tùy ý
và cũng phải thiết lập lại tên mới cho biến $system_path trong tập tin index.php.
Một số thư viện của CodeIgniter. Ở phiên bản 3.0.6 CodeIgniter có 29 thư viện:
Tên thư viện

Mô tả

Benchmarking Class

Hỗ trợ đánh giá hiệu năng hệ thống

Calendar

Hỗ trợ tạo lịch tự động

Cart


Hỗ trợ chức năng giỏ hàng

Caching

Hỗ trợ chức năng bộ đệm cache

Config

Hỗ trợ cho phép lập trình viên cấu hình lại hệ thống

Database

Hỗ trợ các chức năng tác động đến cơ sở dữ liệu

Email

Hỗ trợ gửi mail

Encryption

Hỗ trợ mã hóa và giải mã thông tin

File Uploading

Hỗ trợ tải các tập tin từ máy tính lên server

Form Validation

Hỗ trợ chức năng kiểm tra dữ liệu người dung


FTP

Hỗ trợ kết nối FTP

HTML Table

Hỗ trợ xây dựng các bảng table tự động

Image Manipulation

Hỗ trợ xử lý ảnh

Nguyễn Thị Thu Phương – K16A

15

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học Chương 2. Giới thiệu Framework Codeigniter
Input

Hỗ trợ xử lý đầu vào

Javascript

Hỗ trợ sử dụng javascript

Loader


Hỗ trợ tải các thành phần của CodeIgniter

Language

Hỗ trợ hiển thị đa ngôn ngữ

Output

Hỗ trợ xuất thông tin về phía trình duyệt của người dung

Pagination

Hỗ trợ chức năng phân trang

Security

Hỗ trợ tính năng bảo mật của hệ thống

Session

Hỗ trợ xử lý session

Trackback

Cho phép và nhận thông tin trackback

Template Parser

Hỗ trợ xử lý mã giả trong tập tin view


Typography

Hỗ trợ chức năng định dạng văn bản

Unit Testing

Hỗ trợ chức năng unit testing

URI

Hỗ trợ chức năng URI,cho phép lấy thông tin từ URI

User Agent

Cho phép xác định thông tin trình duyệt của người
dùng,thiết bị di động hoặc robot đang truy cập website

XML – RPC

Cho phép gửi yêu cầu đến một XML – RPC hoặc tự xây
dựng một XML – RPC cho hệ thống

Zip Encoding

Hỗ trợ chức năng tạo các file dạng .zip
Bảng 1. 1 Danh sách thư viện của CodeIgniter

2.4.Hoạt động của framework CodeIgniter


Hình 1. 3 Dòng chảy dữ liệu của CodeIgniter

✓ Tập tin index.php được xem là controller đầu vào, thiết lập các tài nguyên
cần thiết để chạy ứng dụng CodeIgniter.

Nguyễn Thị Thu Phương – K16A

16

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học Chương 2. Giới thiệu Framework Codeigniter

✓ 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 đó.
✓ Caching: Nếu dữ liệu mà người dùng yêu cầu đã có lưu trong bộ đệm
Caching thì CodeIgniter sẽ lấy dữ liệu này trả về cho người dùng mà không cần gửi
yêu cầu nền về hệ thống và quá trình xử lý kết thúc
✓ Security: Nếu trong Caching không lưu dữ liệu mà người dùng yêu cầu thì
dòng chảy sẽ chuyển đến Security. Tại đây CodeIgniter sẽ lọc dữ liệu để phòng chống
XXS hoặc SQL Injection. Sau khi lọc, dữ liệu sẽ được chuyển đến Application
Controller.
✓ Application Controller: 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.
✓ View: Dữ liệu sau khi được xử lý sẽ được trả về View dưới dạng html để
hiển thị cho người dùng. Nếu chức năng Caching được bật lên thì dữ liệu này sẽ được
lưu vào cache và sử dụng cho những yêu cầu tiếp theo.

Nguyễn Thị Thu Phương – K16A


17

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

PHẦN 2:XÂY DỰNG WEBSITE SỬ DỤNG FRAMEWORK
CODEIGNITER
CHƯƠNG 3:MÔ TẢ CHỨC NĂNG HỆ THỐNG VÀ PHÂN TÍCH
THIẾT KẾ HỆ THỐNG
3.1.Mô tả chức năng hệ thống
3.1.1. Đối với khách hàng truy cập đến website
● Chức năng xem thông tin sản phẩm và loại sản phẩm
-Sản phẩm hiển thị lên website sẽ được hiển thị đầy đủ thông tin về sản phẩm
như:Hình ảnh sản phẩm,tên sản phẩm,giá,số lượt xem,mức độ đánh giá,..
-Khách hàng có thể click vào từng sản phẩm để xem chi tiết hơn nữa về sản
phẩm.
-Các sản phẩm sẽ được phân loại theo chủng loại,nhà sản xuất.Sự phân loại này
sẽ được người dùng lựa chọn khi tham quan website.
-Trên trang chủ của website,thành phần chính sẽ hiển thị một số sản phẩm mới
nhất,bán chạy nhất của một trong ba danh mục sản phẩm là thực phẩm hỗ trợ,
Accessories-Phụ kiện, Clothing-Sport shoes.
● Chức năng xem tin tức các sản phẩm
-Khách hàng có thể xem trang tin tức cung cấp những tin tức mới nhất về sản
phẩm mới được cập nhật hoặc những tin tức khuyến mãi mới nhất của website.

● Chức năng giỏ hàng và thanh toán giỏ hàng
-Khi tham khảo đầy đủ thông tin về sản phẩm khách hàng có thể đặt mua sản
phẩm ngay tại website thông qua chức năng giỏ hàng mà không cần phải đến địa điểm
giao dịch.
-Giỏ hàng được mô phỏng như giỏ hàng thực tế có thể thêm bớt và cập nhật số
lượng sản phẩm hay xóa một sản phẩm nào đó hoặc xóa toàn bộ sản phẩm trong giỏ
hàng.
-Sau khi khách hàng thôi không mua hàng nữa và chấp nhận thanh toán thì
người dùng sẽ điền các thông tin cá nhân cần thiết để có thể thanh toán
● Chức năng đăng kí thành viên và đăng nhập hệ thống
-Mỗi khách hàng có thể đăng kí làm thành viên trong hệ thống. Mỗi thành viên
sẽ được lưu thông tin cá nhân của mình trong cơ sở dữ liệu của website để thuận tiện
cho lần giao dịch lần sau của khách hàng.
● Chức năng xem và cập nhật thông tin các nhân
-Khách hàng có thể xem lại các thông tin của mình sau khi đã có tài khoản
Nguyễn Thị Thu Phương – K16A

18

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

● Chức năng liên hệ phản hồi
-Khách hàng có thể đóng góp ý kiến hoặc gửi những thắc mắc hay yêu cầu đối
với các sản phẩm của webstie qua trang liên hệ.

● Chức năng tìm kiếm sản phẩm
-Khách hàng có thể tìm kiếm nhanh một sản phẩm nào đó.Có 2 loại tìm kiếm
mà khách hàng có thể sử dụng ở đây đó là tìm kiếm qua tên sản phẩm có chức năng tự
gợi ý, hoặc tìm kiếm qua giá sản phẩm trong khoảng từ nhỏ nhất đến lớn nhất.
3.1.2. Đối với người quản trị website
Người được cấp quyền Admin sẽ được quản lí trang quản trị,sau khi thực hiện
quá trình đăng nhập bằng tài khoản quyền Admin,người quản trị sẽ có các quyền sử
dụng các chức năng sau:
• Quản lí tài khoản khách hàng:Người quản trị có quyền thêm,cậpnhật,xóa
bất kì một tài khoản thành viên nào đã đăng kí
● Quản lí tài khoản Admin:Người quản trị có quyền thêm,cậpnhật,xóa tài
khoản của người quản trị
● Quản lí sản phẩm:Người quản trị có quyền thêm,cập nhật hoặc xóa một sản
phẩm bất kì thuộc danh mục nào đó
● Quản lí danh mục sản phẩm:Người quản trị có quyền thêm,xóa một danh
mục sản phẩm nào đó
● Quản lí trang giới thiệu:Người quản trị có quyền thay đổi nội dung trang
giới thiệu của công ty
• Quản lí thông tin liên hệ:Người quản trị có thể xem được danh sách những
nội dung mà khách hàng liên hệ phản ánh đối với website để từ đó phản hồi qua email
lại khách hàng
● Quản lí tin tức:Người quản trị có thể thêm,cập nhật hay xóa một tin tức nào
đó.
● Quản lí đơn hàng:Các đơn hàng sẽ được lưu lại và thống kê với đầy đủ
thông tin giúp người quản trị dễ dàng quản lí hơn.
● Quản lí ảnh slide:Người quản trị có thể thay đổi những hình ảnh slide chạy
trên trang chủ.
3.2.Phân tích và thiết kế hệ thống
3.2.1. Phân tích yêu cầu người dùng


❖ Yêu cầu của khách hàng





Giao diện dễ sử dụng và có tính thẩm mỹ cao
Cho phép khách hàng đăng kí thành viên và đảm bảo bảo mật thông tin
Xem và thay đổi các thông tin về tài khoản
Hình thức thanh toán phải đảm bảo chính xác

Nguyễn Thị Thu Phương – K16A

19

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

• Việc chuyển tiền cũng phải đảm bảo chính xác
• Thông tin sản phẩm phong phú,đa dạng

➢ Giới thiệu bày bán nhiều loại hàng,nhiều mặt hàng để khách hàng có nhiều
cơ hội lựa chọn về một loại mặt hàng.Thông tin về một sản phẩm phải chi tiết để
khách hàng có thể nắm bắt rõ thông tin về sản phẩm mà mình lựa chọn.Đặc biệt là
những mặt hàng được nhiều khách hàng,quan tâm lựa chọn.

➢ Luôn cập nhật những sản phẩm mới nhất
● Thông tin về bảo hành sản phẩm phải rõ rang
● Cho phép khách hàng tìm kiếm nhanh chóng,chính xác và gợi ý những sản
phẩm mà khách hàng định tìm kiếm
❖ Yêu cầu của người quản trị
Ngoài những yêu cầu như của khách hàng thì hệ thống phải đảm bảo những yêu
cầu sau của ban quản trị:
● Quản lí chung:Liên quan đến các thông tin khách hàng,ban quản trị,..
● Cập nhật thông tin hàng hóa trực tuyến
● Dễ dàng cập nhật và thay đổi hình ảnh,thông tin chi tiết và giá của các sản
phẩm.
● Quản lí các đơn hàng một cách hiệu quả
● Quản lí ,lưu trữ và báo cáo thông tin về đặt hàng và trạng thái giao hàng như
đã giao hàng chưa,đã thanh toán chưa,…
● Thống kê chính xác,nhanh chóng
● Tổng hợp mặt hàng nào bán hết,mặt hàng nào bán chạy,mặt hàng nào tồn
kho
● Tổng hợp lưu trữ được ý kiến phản ánh của khách hàng để có thể phản hồi
một cách nhanh chóng và chính xác nhất.
3.2.2. Thiết kế hệ thống
3.2.2.1:Xác định các Actor và Usecase của hệ thống
● Khách hàng
Có các Usecase chính như:

✓ Đăng kí thành viên
✓ Tìm kiếm sản phẩm:
✓ Tìm kiếm theo tên sản phẩm có tự động gợi ý
✓ Tìm kiếm theo mức giá từ nhỏ nhất đến lớn nhất
✓ Đăng nhập thành viên
✓ Đặt hàng và mua hàng

✓ Thanh toán online:Qua tài khoản bảo kim
● Quản trị viên
✓ Quản lí tài khoản khách hàng:Thêm,sửa,xóa khách hàng
Nguyễn Thị Thu Phương – K16A

20

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

✓ Quản lí tài khoản quản trị:Thêm,sửa,xóa quản trị
✓ Quản lí các sản phẩm:Thêm,sửa,xóa các sản phẩm
✓ Quản lí các sanh mục sản phẩm:Thêm,xóa danh mục sản phẩm
✓ Quản lí đơn hàng
✓ Quản lí liên hệ
✓ Quản lí hỗ trợ
✓ Quản lí tin tức
✓ Quản lí Slide hình ảnh
3.2.2.2. Biểu đồ phân cấp chức năng

Hình 3. 1Biểu đồ phân cấp chức năng

Nguyễn Thị Thu Phương – K16A

21


TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

3.2.2.3. Biểu đồ luồng dữ liệu mức bối cảnh

Hình 3. 2Biểu đồ luồng dữ liệu mức bối cảnh

Nguyễn Thị Thu Phương – K16A

22

TS. Đặng Hải Đăng


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

3.2.2.4. Biểu đồ luồng dữ liệu ở mức đỉnh

Hình 3. 3Biểu đồ luồng ở mức đỉnh

Nguyễn Thị Thu Phương – K16A


23

TS. Đặng Hải Đăng


Báo cáo thực tập tốtt nghiệp Đại học

Chương 3. Mô tả chứcc năng h
hệ thống và
phân tích thi
thiết kế hệ thống

3.2.2.5. Biểu đồ Usecase

❖ Sơ đồ Usecase củ
của thành viên và người dùng

đ Usecase của người dùng
ùng và thành viên
Hình 3.. 4 Sơ đồ


Báo cáo thực tập tốt nghiệp Đại học

Chương 3. Mô tả chức năng hệ thống và
phân tích thiết kế hệ thống

❖ Sơ đồ usecase tra cứu thông tin và sản phẩm của khách hàng


Hình 3. 5 Sơ đồ Usecase tra cứu thông tin của khách hàng

❖ Sơ đồ Usecase của người quản trị Admin

Nguyễn Thị Thu Phương – K16A

25

TS. Đặng Hải Đăng


×