✓ 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 đủ
Trang 1VIỆ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
Trang 2VIỆN ĐẠI HỌC MỞ HÀ NỘI CỘNG HOÀ XÃ HỘI CHỦ NGHĨA
VIỆT NAM
Độc lập - Tự do – Hạnh phúc
KHOA CN ĐIỆN TỬ - THÔNG TIN
ĐỀ TÀI ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC
Họ và tên sinh viên: Nguyễn Thị Thu Phương
Ngành đào tạo: Công nghệ Kỹ thuật điện tử, Truyền thông Hệ đào tạo:
ĐHCQ
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
(Ký, ghi rõ họ tên) (Ký, ghi rõ họ tên)
Trang 3Mở Đầ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
Trang 4NHậN XÉT
Trang 5Mụ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
Trang 6DANH 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
Trang 7DANH 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
Trang 8KÍ 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
Trang 9Bá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)
Ư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
Trang 10Bá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
Trang 11Bá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
Trang 12Bá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 độ
Trang 13Bá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…
✓ 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)
Trang 14Báo cáo thực tập tốt nghiệp
tin ngôn ngữ, helpers, font…
gọi thư viện hay helper cần thi
Hình 1 2 Cấu trúc thư mục framework CodeIgniter
p tin index.php (hàng thứ 2 từ dưới lên của hình 2) được xem l
ừ từ phía người dùng và gửi về hệ thống xử lý d
c user_guide: chứa các tập tin web hướng dẫn các s
m các hướng dẫn cài đặt,cấuhình,cập nhật phiên bản m
ột lập trình viên mới bắt đầu thì đây là cuốn sách thích h
c system: là thành phần cốt lõi của hệ thống, chứa các th, helpers, font…đã được dựng sẵn của CodeIgniter Lập trình viên ch
ần thiết ra sử dụng mà không cần phải định nghĩ
c application: là nơi chứa các tập tin được lập trình cho
ó có một số thư mục, tập tin quan trọng như:
à bộ đệm của hệ thống,chứa các trang đã đưùng nhằm giảm lượt truy cập đến cơ sở dữ liệ
được xử lý trước
ữ liệu và tăng tốc
Trang 15Bá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:
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
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
HTML Table Hỗ trợ xây dựng các bảng table tự động
Image Manipulation Hỗ trợ xử lý ảnh
Trang 16Bá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
Trang 17Bá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
Trang 18Bá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
Trang 19Bá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
Trang 20Bá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à
• 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,…
✓ 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
Trang 21Bá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à
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
Trang 22Bá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
Trang 23Bá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
Trang 24Báo cáo thực tập tốt nghiệp
Usecase của thành viên và người dùng
4 Sơ đồ Usecase của người dùng và thành viên
c năng hệ thống và thiết kế hệ thống
ùng và thành viên
Trang 25Bá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
Trang 26Bá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
Hình 3 6 Sơ đồ Usecase của ban quản trị
Trang 27Báo cáo thực tập tốt nghiệp
❖ Sơ đồ Usecase quả
Hình 3
❖ Sơ đồ Usecase thanh toán
phân tích thi
Usecase quản lí bán hàng
Hình 3 7 Sơ đồ Usecase quản lí bán hàng
Usecase thanh toán
c năng hệ thống và thiết kế hệ thống
Trang 28Bá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
Hình 3 8 Sơ đồ Usecase thanh toán 3.2.2.6 Lược đồ cơ sở dữ liệu
Hình 3 9 Lược đồ cơ sở dữ liệu 3.2.2.7 Đặc tả Use-case,biểu đồ lớp tham gia ca sử dụng và biểu đồ trình tự
A.Use-case đăng ký
❖ Đặc tả Use-case
✓ Mô tả tóm tắt
-Tên ca sử dụng:Đăng kí
-Mục đích:Giúp khách hàng đăng kí tài khoản trên trang web
-Tóm lược:Khách hàng có nhu cầu mua các mặt hàng có trên website
-Đối tác:Khách hàng
✓ Mô tả các kịch bản:
-Tiền điều kiện:Không có
-Kịch bản chính:
1.Load Form giao diện chính
2.Khách hàng click vào menu “Đăng kí”
3.Hệ thống yêu cầu hiển thị các thông tin yêu cầu để đăng kí:tên đăng
nhập,mậtkhẩu,email,… các thông tin cá nhân liên quan khác
4.Khách hàng cung cấp các thông tin và tạo tài khoản cho khách hàng
5.Hệ thống xác nhận thông tin và tạo tài khoản cho khách hàng
6.Lấy thông tin khách hàng
7.Hệ thống trả về kết quả
8.Hiển thị
Trang 29Bá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
Các kịch bản khả dĩ:Người dùng không nhập đầy đủ hoặc không tuân theo
những quy định của các trường.Người dùng cần cung cấp lại thông tin hoặc ca sử dụng kết thúc
❖ Biểu đồ lớp tham gia ca sử dụng
Hình 3.10
❖ Biểu đồ trình tự
Hình 3.11