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.83 MB, 69 trang )
<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">
<b>Thái Nguyên, 2021</b>
Sinh viên thực hiện : Nguyễn Đức Tuyên
Mã Sinh Viên : DTC165D4801030013 Giáo viên hướng dẫn: Tô Hữu Nguyên
<b>ĐẠI HỌC THÁI NGUYÊN</b>
<b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG</b>
</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2"><b>TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG THÁI NGUYÊNKHOA CÔNG NGHỆ THÔNG TIN</b>
Sinh viên thực hiện : Nguyễn Đức Tuyên
</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3"><b>LỜI NÓI ĐẦU</b>
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là một trong những yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức, cũng như của các cơng ty, nó đóng vai trị hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ. Mạng Internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở thành một cơng cụ khơng thể thiếu, là nền tảng chính cho sự truyền tải, trao đổi thơng tin trên tồn cầu. Giờ đây, mọi việc liên quan đến thông tin trở nên thật dễ dàng cho người sử dụng: chỉ cần có một máy tính kết nối internet và một dịng dữ liệu truy tìm thì gần như lập tức… cả thế giới về vấn đề mà bạn đang quan tâm sẽ hiện ra, có đầy đủ thơng tin, hình ảnh và thậm chí đơi lúc có cả những âm thanh nếu bạn cần… Bằng internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn và chi phí thấp hơn nhiều so với cách thức truyền thống. Chính điều này, đã thúc đẩy sự khai sinh và phát triển của thương mại điện tử và chính phủ điện tử trên khắp thế giới, làm biến đổi đáng kể bộ mặt văn hóa, nâng cao chất lượng cuộc sống con người. Trong hoạt động sản xuất, kinh doanh, giờ đây, thương mại điện tử đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp. Đối với một cửa hàng hay shop, việc quảng bá và giới thiệu đến khách hàng các sản phẩm mới đáp ứng được nhu cầu của khách hàng sẽ là cần thiết. Vậy phải quảng bá thế nào đó là xây dựng được một Website cho cửa hàng của mình quảng bá tất cả các sản phẩm của mình bán.
Vì vậy, chúng em đã thực hiện đồ án “Xây dựng website bán giầy online trên mơ hình MVC” có nội dung như sau:
Người chủ doanh nghiệp mong muốn đưa các sản phẩm đó lên website của mình. Khách hàng có thể đặt mua hàng trên website mà không cần đến cửa hàng.
</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4"><b>LỜI CẢM ƠN</b>
<i>Trong lời đầu tiên của báo cáo đồ án tốt nghiệp “Xây dựng website bán</i>
<i>giầy online trên mơ hình MVC” này, em muốn gửi những lời cám ơn và biết ơn</i>
chân thành nhất của mình tới tất cả những người đã hỗ trợ, giúp đỡ em về kiến thức và tinh thần trong quá trình thực hiện đồ án.
Trước hết em xin chân thành cám ơn Thầy Tô Hữu Nguyên, Giảng viên Khoa Công Nghệ Thông Tin, Trường Đại Học Công Nghệ Thông Tin và Truyền Thông Thái Nguyên, người đã trực tiếp hướng dẫn, nhận xét, giúp đỡ em trong suốt quá trình thực hiện đồ án.
Xin chân thành cảm ơn ban giám hiệu nhà trường, các thầy cô trong Khoa Công Nghệ Thông Tin và các phòng ban nhà trường đã tạo điều kiện tốt nhất cho em cũng như các bạn khác trong suốt thời gian học tập và làm tốt nghiệp Với kiến thức hạn chế, tài liệu tham khảo chưa nhiều nên đồ án khơng tránh khỏi những sai sót, kính mong q thầy cơ cùng các bạn chia sẻ, góp ý để đồ án được hồn thiện.
Em xin chân thành cảm ơn!
Thái Nguyên, Ngày 3 Tháng 6 Năm 2021 Sinh viên
Nguyễn Đức Tuyên
</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">1.2.3. Xuất giá trị ra trình duyệt...5
1.2.4. Biến, hằng, chuỗi và các kiểu dữ liệu...5
1.2.5. Các phương thức được sử dụng trong lập trình PHP...6
1.2.6. Cookie và Session trong PHP...7
1.2.7. Hàm...8
<b>CHƯƠNG 2 : MƠ HÌNH KIẾN TRÚC MVC...10</b>
2.1. MVC là gì?...10
2.2. Xuất Xứ của mơ hình MVC...10
2.3. Đặc điểm của mơ hình MVC...11
</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">3.4.4. Yêu cầu đặt ra...19
3.5. Phân tích và thiết kế cơ sở dữ liệu...20
3.5.1. Định nghĩa bài tốn...20
3.7. Thiết kế cơ sở dữ liệu...39
3.8. Mơ hình dữ liệu quan hệ...44
<b>CHƯƠNG 4: HOÀN THIỆN SẢN PHẨM...45</b>
4.1. Giao diện trang chủ dành cho khách hàng...45
4.1.1. Giao diện trang chủ...45
</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">4.1.10. Thanh toán bằng Paypal...49
4.1.11. Thanh toán bằng MOMO (QR)...50
4.1.12. Thanh toán bằng ATM (Banking)...50
4.1.13. Xem đơn hàng đã mua...51
4.1.14. Chat khi cần hỗ trợ...51
4.1.15. Email thông báo đã mua hàng...52
4.2. Giao diện dành cho quản lý...52
4.2.1. Giao diện đăng nhập...52
4.2.2. Giao diện xem thông tin...52
4.2.3. Giao diện thêm thông tin...53
4.2.4. Giao diện sửa thông tin...53
4.2.5. Chức năng xuất ra file excel,pdf,csv,copy...53
4.2.6. Chức năng thống kê doanh số theo tháng...54
4.2.7. Chức năng thống kê hàng tồn kho...54
4.2.8. Chức năng thống kê doanh thu...55
4.3. Up load Website lên Host...55
<b>TÀI LIỆU THAM KHẢO...56</b>
<b>KẾT LUẬN...57</b>
</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8"><b>NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN</b> Thái Nguyên, Ngày 3 Tháng 6 Năm 2021
Giáo viên hướng dẫn
<i><small>(Ký tên,ghi rõ họ tên)</small></i>
</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9"><b>CHƯƠNG 1 : TỔNG QUAN VỀ MYSQL VÀ PHP1.1 Tổng quan về MySQL</b>
<i>MySQL là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung vớiApache, PHP. Chính yếu tố phát triển trong cộng đồng mã nguồn mở nênMySQL đã qua rất nhiều sự hỗ trợ của những lập trình viên u thích mã nguồn</i>
<i>mở. MySQL cũng có cùng một cách truy xuất và mã lệnh tương tự với ngôn ngữSQL. Nhưng MySQL khơng bao qt tồn bộ những câu truy vấn cao cấp nhưSQL. Về bản chất MySQL chỉ đáp ứng việc truy xuất đơn giản trong quá trìnhvận hành của website nhưng hầu hết có thể giải quyết các bài toán trong PHP.</i>
<b>1.1.1 Khởi động và sử dụng</b>
<i>Chúng ta sử dụng command như sau: MySQL –hname –uuser –ppass Để </i>
truy cập vào cơ sở dữ liệu.
<i>Hoặc sử dụng bộ appserv để vào nhanh hơn theo đường dẫn sau:</i>
<i>26 Start/ Appserv/ MySQL command Line client Sau đó nhập password mà</i>
chúng ta đã đặt vào.
<b>1.1.2 Một số thuật ngữ</b>
<i>NULL : Giá trị cho phép rỗng.</i>
<i>AUTO_INCREMENT : Cho phép giá trị tăng dần (tự động).UNSIGNED : Phải là số nguyên dương</i>
<i>PRIMARY KEY : Cho phép nó là khóa chính trong bảng.</i>
<b>1.1.3. Loại dữ liệu trong MySQL</b>
IU
</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10"><b>1.1.4. Những cú pháp cơ bản- Tạo một cơ sở dữ liệu:</b>
CREATE DATABASE tên_cơ_sở_dữ_liệu; Cú pháp sử dụng cơ sở dữ liệu:
<i>Use tên_database; Cú pháp thoát khỏi cơ sở dữ liệu: Exit Tạo một bảng </i>
trong cơ sở dữ liệu: CREATE TABLE user (<tên_cột><mơ_tả>,…,<tên_cột_n> …..<mơ_tả_n>)
<i>Hiển thị có bao nhiều bảng: show tables;</i>
<i>Hiển thị có bao nhiêu cột trong bảng: show columns from table; Thêm 1 </i>
cột vào bảng:
ALTER TABLE tên_bảng ADD <tên_cột><thuộc_tính> AFTER <tên_cột>
<b>- Thêm giá trị vào bảng:</b>
INSERT INTO Tên_bảng(tên_cột) VALUES(Giá_trị_tương_ứng);
<b>- Truy xuất dữ liệu:</b>
SELECT tên_cột FROM Tên_bảng;
<b>- Truy xuất dữ liệu với điều kiện:</b>
SELECT tên_cột FROM Tên_bảng WHERE điều kiện; Truy xuất dữ liệu và sắp xếp theo trình tự:
SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc không) ORDER BY Theo quy ước sắp xếp. Trong đó quy ước sắp xếp bao gồm hai thơng số là ASC (từ trên xuống dưới), DESC (từ dưới lên
<b>- Truy cập dữ liệu có giới hạn:</b>
SELECT tên_cột FROM Tên_bảng WHERE điều kiện (có thể có where hoặc khơng) LIMIT vị trí bắt đầu, số record muốn lấy ra
<b>- Cập nhật dữ liệu trong bảng:</b>
<i>Update tên_bảng set tên_cột=Giá trị mới WHERE (điều kiện). Nếu khơng</i>
có ràng buộc điều kiện, chúng sẽ cập nhật toàn bộ giá trị mới của các record trong bảng.
</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="11">DELETE FROM tên_bảng WHERE (điều kiện). Nếu khơng có ràng buộc điều kiện, chúng sẽ xóa tồn bộ giá trị của các record trong bảng.
<b>1.2 TỔNG QUAN VỀ PHP1.2.1 Lịch sử phát triển</b>
<i>Được phát triển từ một sản phẩm có tên là PHP/FI. PHP/FI do Rasmus</i>
<i>Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các</i>
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
<i>trên mạng. Ơng đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page</i>
PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với
<i>các phiên bản PHP mà chúng ta được biết ngày nay. Nó đã được Andi Gutmansvà Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước</i>
đó. PHP 3.0 đã chính thức được cơng bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm.
PHP 4
Vào mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được cơng bố,
<i>Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của</i>
<i>PHP. Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của</i>
<i>Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công,</i>
và lần đầu tiên được giới thiệu vào giữa năm 1999. PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời.
PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn. Cộng đồng PHP đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP),
<i>xử lý XML, khơng hỗ trợ giao thức máy khách mới của MySQL 4.1 và 5.0, hỗtrợ dịch vụ web yếu. Những điểm này chính là mục đích để Zeev và Andi viết</i>
</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="12"><i>Zend Engine 2.0, lõi của PHP 5.0. Một thảo luận trên Slashdot đã cho thấy</i>
việc phát
</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì đã có mặt trên mạng
<i>Internet vào khoảng tháng 7 năm 2002.</i>
<i>Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được cơng bố đểcộng đồng kiểm nghiệm. Đó cũng là phiên bản đầu tiên của Zend Engine 2.0.</i>
Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của
<i>hai tính năng rất được chờ đợi: Iterators, Reflection nhưng namespaces một tính</i>
năng gây tranh cãi khác đã bị loại khỏi mã nguồn. Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ
<i>hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều</i>
lỗi và thêm khá nhiều hàm mới. 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.
<b>1.2.2 Cấu trúc cơ bản</b>
PHP cũng có thẻ bắt đầu và kết thúc giống với ngôn ngữ HTML. Chỉ khác đối với PHP chúng ta có nhiều cách để thể hiện.
Mặc dù có 4 cách thể hiện. Nhưng đối với 1 lập trình viên có kinh nghiệm thì việc sử dụng cách 1 vẫn là lựa chon tối ưu.
</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="14">Trong PHP để kết thúc 1 dòng lệnh chúng ta sử dụng dấu ";"
Để chú thích 1 đoạn dữ liệu nào đó trong PHP ta sử dụng dấu "//" cho từng dòng. Hoặc dùng cặp thẻ "/*…*/" cho từng cụm mã lệnh.
Ví dụ: <?php echo ”Hello world!”; ?>
<b>1.2.3. Xuất giá trị ra trình duyệt</b>
Để xuất dữ liệu ra trình duyệt chúng ta có những dịng cú pháp sau : + echo "Thơng tin";
+ printf "Thông tin";
Thông tin bao gồm : biến, chuỗi, hoặc lệnh HTML ….
Nếu giữa hai chuỗi muốn liên kết với nhau ta sử dụng dấu "."
<b>1.2.4. Biến, hằng, chuỗi và các kiểu dữ liệu- Biến</b>
Biến được xem là vùng nhớ dữ liệu tạm thời. Và giá trị có thể thay đổi được. Biến được bắt đầu bằng ký hiệu "$". Và theo sau chúng là 1 từ, 1 cụm từ nhưng phải viết liền hoặc có gạch dưới.
1 biến được xem là hợp lệ khi nó thỏa các yếu tố :
+ Tên của biến phải bắt đầu bằng dấu gạch dưới và theo sau là các ký tự, số hay dấu gạch dưới.
+ Tên của biến không được phép trùng với các từ khóa của PHP.
Trong PHP để sử dụng 1 biến chúng ta thường phải khai báo trước, tuy nhiên đối với các lập trình viên khi sử dụng họ thường xử lý cùng một lúc các công việc, nghĩa là vừa khai báo vừa gán dữ liệu cho biến.
Bản thân biến cũng có thể gán cho các kiểu dữ liệu khác. Và tùy theo ý định của người lập trình mong muốn trên chúng.
<b>- Hằng</b>
Nếu biến là cái có thể thay đổi được thì ngược lại hằng là cái chúng ta không thể thay đổi được. Hằng trong PHP được định nghĩa bởi hàm define theo cú pháp:
<i>define (string tên_hằng, giá_trị_hằng ).</i>
Cũng giống với biến hằng được xem là hợp lệ thì chúng phải đáp ứng 1 số
</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">+ Hằng khơng có dấu "$" ở trước tên.
+ Hằng có thể truy cập bất cứ vị trí nào trong mã lệnh + Hằng chỉ được phép $last_name= ‘Van A’;
Để liên kết 1 chuỗi và 1 biến chúng ta thường sử dụng dấu "."
<b>- Kiểu dữ liệu</b>
Các kiểu dữ liệu khác nhau chiếm các lượng bộ nhớ khác nhau và có thể
<i>được xử lý theo cách khác nhau khi chúng được theo tác trong 1 script. Trong</i>
PHP chúng ta có 6 kiểu dữ liệu chính như sau :
<i>Chúng ta có thể sử dụng hàm dựng sẵn GETtype() của PHP4 để kiểm tra</i>
kiểu của bất kỳ biến.
<b>1.2.5. Các phương thức được sử dụng trong lập trình PHP</b>
<i>Có 2 phương thức được sử dụng trong lập trình PHP là GET và POSTPhương thức GET</i>
Phương thức này cũng được dùng để lấy dữ liệu từ form nhập liệu. Tuy nhiên
<i>nhiệm vụ chính của nó vẫn là lấy nội dung trang dữ liệu từ webserver.</i>
Ví dụ:
Với url sau: shownews.php?id=50
<i>Vậy với trang shownews ta dùng hàm $_GET["id"] sẽ được giá trị là 50. Phương thức POST</i>
</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">Phương thức này được sử dụng để lấy dữ liệu từ form nhập liệu. Và chuyển
<i>chúng lên trình chủ webserver.</i>
<b>1.2.6. Cookie và Session trong PHP</b>
<i>Cookie và Session là hai phương pháp sử dụng để quản lý các phiên làm việc giữa</i>
người sử dụng và hệ thống. Cookie
<i>Cookie là 1 đoạn dữ liệu được ghi vào đĩa cứng hoặc bộ nhớ của máy người sử</i>
<i>dụng. Nó được trình duyệt gởi ngược lên lại server mỗi khi browser tải 1 trang</i>
<i>web từ server.</i>
<i>Những thông tin được lưu trữ trong Cookie hoàn toàn phụ thuộc vào websitetrên server. Mỗi website có thể lưu trữ những thơng tin khác nhau trong Cookie,ví dụ thời điểm lần cuối ta ghé thăm website, đánh dấu ta đã login hay chưa,</i>
<i>Cookie được tạo ra bởi website và gởi tới browser, do vậy 2 website khác nhau</i>
<i>(cho dù cùng host trên 1 server) sẽ có 2 Cookie khác nhau gởi tới browser.Ngoài ra, mỗi browser quản lý và lưu trữ Cookie theo cách riêng của mình, chonên 2 browser cùng truy cập vào 1 website sẽ nhận được 2 Cookie khác nhau.</i>
<small>1.</small> <i>Để thiết lập Cookie ta sử dụng cú pháp:</i>
<i>SetCookie("tên Cookie","giá trị", thời gian sống) Tên Cookie là tên mà </i>
chúng ta đặt cho phiên làm việc.
<i>Giá trị là thông số của tên Cookie.</i>
Ví dụ: setCookie("name","admin",time()+3600);
<small>2.</small> <i>Để sử dụng lại Cookie vừa thiết lập, chúng ta sử dụng cú pháp:Cú pháp: $_COOKIE["tên Cookies"]</i>
<i>Tên Cookie là tên mà chúng ta thiết lập phía trên.</i>
<small>3.</small> <i>Để hủy 1 Cookie đã được tạo ta có thể dùng 1 trong 2 cách sau:+ Cú pháp: setCookie("Tên Cookie")</i>
<i>Gọi hàm setCookie với chỉ duy nhất tên Cookie mà thôi+ Dùng thời gian hết hạn Cookie là thời điểm trong quá khứ.</i>
</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17"><i>Một cách khác quản lý người sử dụng là Session. Session được hiểu làkhoảng thời gian người sử dụng giao tiếp với 1 ứng dụng. Một Session được bắt</i>
đầu khi người sử dụng truy cập vào ứng dụng lần đầu tiên, và kết thúc khi người
<i>sử dụng thoát khỏi ứng dụng. Mỗi Session sẽ có được cấp một định danh (ID)</i>
khác nhau.
<i>- Để thiết lập 1 Session ta sử dụng cú pháp: Session_start()</i>
<i>Đoạn code này phải được nằm trên các kịch bản HTML. Hoặc những lệnh</i>
<i>echo,printf. Để thiết lập 1 giá trị Session, ngoài việc cho phép bắt đầu thực thiSession. Chúng ta còn phải đăng ký 1 giá trị Session. Để tiện cho việc gán giá trị</i>
<i>cho Session đó.</i>
Ta có cú pháp sau: Session_register("Name")
<small>4.</small> <i>Giống với Cookie. Để sử dụng giá trị của Session ta sử dụng mã lệnh sau:Cú pháp: $_SESSION["name"]</i>
<i>Với Name là tên mà chúng ta sử dụng hàm Session_register("name") để khai báo.</i>
<small>5.</small> <i>Để hủy bỏ giá trị của Session ta có những cách sau:</i>
<i>Session_destroy() // Cho phép hủy bỏ toàn bộ giá trị của SessionSession_unset()// Cho phép hủy bỏ Session .</i>
<b>1.2.7. Hàm</b>
Để giảm thời gian lặp lại 1 thao tác code nhiều lần, PHP hỗ trợ người lập trình việc tự định nghĩa cho mình những hàm có khả năng lặp lại nhiều lần trong
<i>website. Việc này cũng giúp cho người lập trình kiểm sốt mã nguồn một cách</i>
mạch lạc. Đồng thời có thể tùy biến ở mọi trang. Mà không cần phải khởi tạo hay viết lại mã lệnh như HTML thuần.
<b>Hàm tự định nghĩa Cú pháp: function function_name()</b>
//Lệnh thực thi }
Tên hàm có thể là một tổ hợp bất kỳ những chứ cái, con số và dấu gạch dưới, nhưng phải bắt đầu từ chứ cái và dấu gạch dưới.
</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="18">Hàm tự định nghĩa với các tham số
<i>PHP cung cấp nhiều hàm cho phép triệu gọi lại file. Như hàm include("URL đến file"), require("URL Đến file").</i>
<i>Ngoài hai cú pháp trên cịn có include_once(), require_once(). Hai hàm này cũng</i>
có trách nhiệm gọi lại hàm. Những chúng sẽ chỉ gọi lại duy nhất 1 lần mà thôi.
<b>.3. Kết hợp PHP và MySQL trong ứng dụng website Kết nối cơ sở dữ liệu</b>
Lựa chọn cơ sở dữ liệu
Thực thi câu lệnh truy vấn
<i>MySQL_query("Câu truy vấn ở đây");</i>
</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19"><b>CHƯƠNG 2 : MƠ HÌNH KIẾN TRÚC MVC2.1. MVC là gì?</b>
MVC là viết tắt của Model – View – Controller. Là một trong những design pattern. Được vận hành để tách mã lệnh thành 3 phần riêng biệt. Ở mỗi phần MVC sẽ có những chức năng đặc thù. Để xử lý các tác vụ mà request gởi tới. MVC làm cho mã lệnh trở nên trong sáng, dễ phát triển và dễ nâng cấp theo thời gian. Để làm việc tốt đối với MVC, chúng ta cần nắm thật vững kiến thức OOP. Bản chất của các framework khác cũng được hình thành trên lý thuyết MVC. Do vậy nếu chúng ta nắm tốt MVC. Thì ở những framework khác chắc chắn sẽ khơng cảm thấy khó hiểu.
Model: Là thành phần chịu trách nhiệm xử lý các thao tác trên database. Và gởi trả kết quả thông qua view.
View: Là phần hiển thị thông tin trên website, sau khi đi qua controller và nhận kết quả từ phía model thì view là bước cuối cùng để chuyển thông tin tới người dùng.
Controller: Là phần điều hướng các request tới những tác vụ tương ứng. Controller là một phần không thể thiếu ở bất cứ framework nào. Vì nó có trách nhiệm gởi và nhận request từ hệ thống tới người sử dụng.
<b>2.2. Xuất Xứ của mơ hình MVC</b>
Tất cả bắt đầu vào những năm 70 của thế kỷ 20, tại phịng thí nghiệm Xerox PARC ở Palo Alto. Sự ra đời của giao diện đồ họa (Graphical User Interface) và lập trình hướng đối tượng (Object Oriented Programming) cho phép lập trình viên làm việc với những thành phần đồ họa như những đối tượng đồ họa có thuộc tính và phương thức riêng của nó. Khơng dừng lại ở đó, những nhà nghiên cứu ở Xerox PARC còn đi xa hơn khi cho ra đời cái gọi là kiến trúc MVC (Viết tắt của Model
– View – Controller).
MVC được phát minh tại Xerox Parc vào những năm 70, bởi TrygveReenskaug. MVC lần đầu tiên xuất hiện công khai là trong Smalltalk –
</div><span class="text_page_counter">Trang 20</span><div class="page_container" data-page="20">80. Sau đó trong một thời gian dài hầu như khơng có thơng tin nào về MVC, ngay cả trong tài liệu 80 Smalltalk. Các giấy tờ quan trọng đầu tiên đ ợcƣ công bố trên
</div><span class="text_page_counter">Trang 21</span><div class="page_container" data-page="21">MVC là “A Cookbook for Using the Model – View – Controller User Interface Paradigm in Smalltalk – 80”, bởi Glenn Krasner và Stephen Pope, xuất bản trong tháng 8 tháng 9 năm 1988.
<b>2.3. Đặc điểm của mơ hình MVC</b>
Cái lợi ích quan trọng nhất của mơ hình MVC là nó giúp cho ứng dụng dễ bảo trì, module hóa các chức năng, và được xây dựng nhanh chóng. MVC tách các tác vụ của ứng dụng thành các phần riêng lẻ model, view, controller giúp cho việc xây dựng ứng dụng nhẹ nhàng hơn. Dễ dàng thêm các tính năng mới, và các tính năng cũ có thể dễ dàng thay đổi. MVC cho phép các nhà phát triển và các nhà thiết kế có thể làm việc đồng thời với nhau. MVC cho phép thay đổi trong 1 phần của ứng dụng mà không ảnh hưởng đến các phần khác.
Sở dĩ như vậy vì kiến trúc MVC đã tách biệt (decoupling) sự phụ thuộc giữa các thành phần trong một đối tượng đồ họa, làm tăng tính linh động (flexibility) và tính tái sử dụng (reusebility) của đối tượng đồ họa đó. Một đối tượng đồ họa bấy giờ có thể dễ dàng thay đổi giao diện bằng cách thay đổi thành phần View của nó trong khi cách thức lưu trữ (Model) cũng như xử lý (Controller) không hề thay đổi. Tương tự, ta có thể thay đổi cách thức lưu trữ (Model) hoặc xử lý (Controller) của đối tượng đồ họa mà những thành phần cịn lại vẫn giữ ngun.
Chính vì vậy mà kiến trúc MVC đã được ứng dụng để xây dựng rất nhiều framework và thư viện đồ họa khác nhau. Tiêu biểu là bộ thư viện đồ họa của ngơn ngữ lập trình hướng đối tượng SmallTalk (cũng do Xerox PARC nghiên cứu và phát triển vào thập niên 70 của thế kỷ 20). Các Swing Components của Java cũng được xây dựng dựa trên kiến trúc MVC. Đặc biệt là nền tảng ASP.NET MVC Frame work.
<b>2.4. Kiến trúc mơ hình MVC</b>
Trong kiến trúc MVC, một đối tượng đồ họa người dùng(GUI Compone nt) bao gồm 3 thành phần cơ bản: Model, View, và Controller. Model có trách nhiệm đối với toàn bộ dữ liệu cũng như trạng thái của đối tượng đồ họa. View
</div><span class="text_page_counter">Trang 22</span><div class="page_container" data-page="22">chính là thể hiện trực quan của Model, hay nói cách khác chính là giao diện của
</div><span class="text_page_counter">Trang 23</span><div class="page_container" data-page="23">đối tượng đồ họa. Và Controller điều khiển việc tương tác giữa đối tượng đồ họa với người sử dụng cũng như những đối tượng khác.
Khi người sử dụng hoặc những đối tượng khác cần thay đổi trạng thái của đối tượng đồ họa, nó sẽ tương tác thơng qua Controller của đối tượng đồ họa. Controller sẽ thực hiện việc thay đổi trên Model. Khi có bất kỳ sự thay đổi nào xảy ra ở Model, nó sẽ phát thơng điệp ( broadcast message) thông báo cho View và Controller biết. Nhận được thông điệp từ Model, View sẽ cập nhật lại thể hiện của mình, đảm bảo rằng nó ln là thể hiện trực quan chính xác của Model. Cịn Controller, khi nhận được thơng điệp từ Model, sẽ có những tương tác cần thiết phản hồi lại người sử dụng hoặc các đối tượng khác.
Lấy ví dụ một GUI Component (thành phần đồ họa người dùng) đơn giản là Checkbox. Checkbox có thành phần Model để quản lý trạng thái của nó là check hay uncheck, thành phần View để thể hiện nó với trạng thái tương ứng lên màn hình, và thành phần Controller để xử lý những sự kiện khi có sự tương tác của người sử dụng hoặc các đối tượng khác lên Checkbox. Khi người sử dụng nhấn chuột vào Checkbox, thành phần Controller của Checkbox sẽ xử lý sự kiện này, yêu cầu thành phần Model thay đổi dữ liệu trạng thái. Sau khi thay đổi trạng thái, thành phần Model phát thông điệp đến thành phần View và Controller. Thành phần View của Checkbox nhận được thông điệp sẽ cập nhật lại thể hiện của Checkbox, phản ánh chính xác trạng thái Checkbox do Model lưu giữ. Thành phần
</div><span class="text_page_counter">Trang 24</span><div class="page_container" data-page="24">Controller nhận được thông điệp do Model gởi tới sẽ có những tương tác phản hồi với người sử dụng nếu cần thiết.
<b>2.4.1. Thành phần Controller</b>
Controller có trách nhiệm chính là điều hướng các u cầu của người sử dụng. Như vậy trên toàn ứng dụng của ta, tất cả các request đều sẽ phải đi tới controller. Và tại đây, ứng với các tham số người sử dụng truyền mà ta đưa họ đến một tác vụ nào đó trên ứng dụng.
Tại các tác vụ này, chúng sẽ thông qua lớp model để làm việc và trả kết quả trở về controller. Cuối cùng controller sẽ đẩy dữ liệu thao tác tới view. View là thành phần cuối cùng mà người sử dụng nhận được khi họ giở request tới ứng dụng.
Có thể hiểu controller, giống với kỹ thuật đa cấp với các tác vụ chạy ứng dụng phân cấp theo từng nhánh riêng biệt như: Module, action...
<b>2.4.2. Thành phần Model</b>
Model là thành phần chủ yếu được sử dụng để thao tác xử lý dữ liệu. Trong các framework, Model vẫn thường sử dụng theo phương thức Active Record. Một trong những design pattern. Chúng có tác dụng rút ngắn thời gian viết câu truy vấn cho người sử dụng. Biến những câu truy vấn phức tạp trở nên gần gũi và thân thiện với người sử dụng thông qua các thư viện được định nghĩa sẵn.
Model thường sẽ là các phương thức có trách nhiệm xử lý các tác vụ như: select, insert, update, delete các record trong database. Ứng với các lấy dữ liệu, model thường sử dụng mảng để gởi trả kết quả về. Vì mảng có thể cho phép model lưu trữ nhiều thông tin hơn, nên thường các record khi bóc tách chúng sẽ mang các dữ liệu của database một cách chi tiết.
Khi sử dụng models, ta cũng cần tn theo ngun tắc chính của chúng là khơng xuất giá trị trực tiếp trong model. Mà tất cả những dữ liệu ấy, phải đưa vào mảng và trả về theo phương thức. Và tiếp tục ở view ta sẽ sử dụng nó để lấy dữ liệu ra.
</div><span class="text_page_counter">Trang 25</span><div class="page_container" data-page="25"><b>2.4.3. Thành Phần View</b>
View là phần hiển thị thông tin tương phản khi gởi và nhận request. Trước đây, khi người lập trình chưa nghĩ tới view. Họ thường thao tác xử lý dữ liệu ngay trực tiếp trên ứng dụng và đổ cả dữ liệu ngay trên file PHP đó. Điều này làm cho ứng dụng trở nên cồng kềnh, và đặc biệt rất khó cho việc bảo trì nâng cấp sau này. Nhất là đối với designer, việc thay đổi giao diện của một website luôn làm cho họ cảm thấy đau đầu vì phải vọc thẳng vào core.
Trước đây, để giải quyết tình huống này. Người ta thường sử dụng template để phân tách website thành 2 mảng riêng biệt. Một là giao diện và một là core. Việc chỉnh sửa giao diện trở nên đơn giản hơn đối với họ so với cách viết thập cẩm kia. Tuy nhiên, các thư viện này thực chất sẽ làm cho ứng dụng của chúng ta trở nên chậm chạp hơn bao giờ hết. Bởi chúng phải phiên dịch nhiều lần các kịch bản.
Chẳng hạn, để dễ thao tác, smarty sẽ dịch ngược các yêu cầu của bạn sang ngôn ngữ của nó. Sau đó chúng sẽ chuyển ngơn ngữ đó sang PHP và thao tác xử lý trên nó. Việc này sẽ làm ứng dụng chậm chạp, do cứ phải dịch qua, dịch lại một kịch bản. Trong khi, với sự kết hợp của PHP thuần, ứng dụng của bạn sẽ nhanh và ổn định hơn nhiều. Và view cũng là một phần trong việc nâng cấp những hạn chế ấy. Chúng giúp giảm thiểu tối đa quá trình biên dịch nhiều lần. Và làm cho ứng dụng trở nên mạnh mẽ và chuyên nghiệp hơn nhiều so với cách lập trình thuần.
Cách thức hoạt động của MVC
</div><span class="text_page_counter">Trang 26</span><div class="page_container" data-page="26">Đây là một cách đơn giản để mô tả lại luồng sự kiện được xử lý trong MVC: User tương tác với View, gửi yêu cầu đến Controller.
Controller nhận và điều hướng chúng đến đúng 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ý Controller sẽ nhận kết quả từ Model và gửi về View để hiển thị lại kết quả vừa nhận cho người dùng.
<b>2.5. Ưu điểm và nhược điểm của MVC2.5.1. Ưu điểm</b>
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, các chuyên gia sẽ tiếp cận – tìm hiểu những dự án đó một cách nhanh chóng và hiệu quả. 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. Học một nhưng có thể hiểu và sử dụng được mười.
Giúp các chuyên gia lập trình, nhà quản lý, nhà đầu tư, PM… 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. Nó khơng phải ngơn ngữ, nhưng khi họ cùng nhìn vào nó thì sẽ tự hiểu nó là gì, khi đó họ có thể trao đổi các yêu cầu và bàn bạc cơng việc.
Đâ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
</div><span class="text_page_counter">Trang 27</span><div class="page_container" data-page="27">Đâ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ỏ
<b>2.5.2. Nhược điểm</b>
Yêu cầu về chuyên môn khá cao, có kiến thức vững về các mơ hình chuẩn;Khó triển khai với những dự án yêu cầu phúc tạp hơn.
Hiện nay đang có một khái niệm mơ hình mới đó là HMVC đang dần thay
<b>thế cho MVC.</b>
Mặc dù, MVC tỏ ra lợi thế hơn nhiều so với cách lập trình thơng thường. Nhưng MVC ln phải nạp, load những thư viện đồ sộ để xử lý dữ liệu. Chính điều này làm cho mơ hình trở nên chậm chạp hơn nhiều so với việc code tay thuần túy.
<b>2.6. Cấu trúc Web MVC</b>
Trong thư mục admin chứa các thư mục mơ hình MVC: Controller, Model, View và các thành phân khác được phân chia rõ rang.
</div><span class="text_page_counter">Trang 28</span><div class="page_container" data-page="28"><b>CHƯƠNG 3: ỨNG DỤNG VÀO BÀI TỐN THỰC TẾ3.1. Tên đề tài.</b>
<b>Tìm Hiểu Mơ Hình MVC(PHP) và Ứng dụng để xây dựng Websitebán giầy online</b>
<b>3.2. Lí do chọn đề tài:</b>
Ngày nay, việc áp dụng Website trong việc phát triển kinh doanh của cửa hàng, Công Ty trở nên rất phổ biến và hiệu quả, trong đó ngành thời trang cũng có sử dụng nhiều đến Website để giới thiệu và quảng bá sản phẩm của cửa hàng, cơng ty mình. Việc lên mạng tìm kiếm và mua sản phẩm trở nên khá gần gũi với các bạn trẻ ngày nay. Bên cạnh đó, Website cịn giúp giới thiệu hình ảnh cửa hàng, Công Ty đến với mọi người. Do vậy, nhóm em quyết định thực hiện đề tài này với mong muốn đưa đến nhiều sự lựa chọn hơn cho khách hàng, và phát triển cửa hàng, Công Ty trên quy mô lớn hơn.
<b>3.3. Lựa chọn công cụ ngôn ngữ thực hiện:</b>
Để thực hiện xây dựng website này nhóm em chọn PHP và HTML.
PHP rất thích hợp với việc viết cho web, bên cạnh đó khi sử dụng chúng cũng có thể nhúng được vào trang HTML một cách dễ dàng. Hiện nay, PHP đang là một ngơn ngữ lập trình cho web được sử dụng và biết đến vô cùng phổ biến trên thế giới. Lý do là bởi việc tối ưu hóa các ứng dụng của web, việc có tốc độ nhanh và nhỏ gọn. Bên cạnh đó, các cú pháp của PHP cũng giống với là C và Java nên các lập trình viên có thể học và xây dựng được một sản phẩm là tương đối nhanh so với các ngôn ngữ khác.
<b>3.4. Khảo sát xây dựng hệ thống3.4.1. Đặt vấn đề</b>
Ngày nay cơng nghệ thơng tin đã có những bước tiến phát triển mạnh mẽ về cả chiều sâu và chiều rộng. Máy tính điện tử giờ đây khơng cịn là thứ q hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí của con người. Những năm gần đây, việc cập nhật các thông tin cũng như thực hiện các giao dịch qua mạng internet ngày càng trở nên phổ biến. Và một loại hình kinh
</div><span class="text_page_counter">Trang 29</span><div class="page_container" data-page="29">doanh này mang
</div><span class="text_page_counter">Trang 30</span><div class="page_container" data-page="30">lại rất nhiều lợi ích cho người tiêu dùng cũng như nhà cung cấp. Phần lớn khách hàng có nhu cầu mua hàng thì phải đến các cửa hàng, siêu thị hay các trung tâm thương mại để lựa chọn những mặt hàng hợp với nhu cầu của mình. Cơng việc này tốn kém nhiều thời gian và chi phí đi lại cho người tiêu dùng, đơi khi khách hàng cịn mua phải hàng kém chất lượng. Tất cả những bất cập đó sẽ được loại bỏ với sự ra đời của website bán hàng qua mạng. Khi khách hàng có nhu cầu mua hàng, dù ở nhà hay công sở hay bất cứ nơi đâu có mạng internet, khách hàng chỉ cần truy cập vào những trang web bán hàng qua mạng là có thể tìm kiếm được nhũng mặt hàng mà mình muốn mua, khách hàng có thể thực hiện các thủ tục được hướng dẫn trên trang web là có thể mua được hàng, nhân viên của cơng ty đó sẽ giao hàng đến tận nơi cho khách hàng. Ngồi những lợi ích mà Internet mang lại cho người tiêu dùng nó cịn giúp cho nhà cung cấp phát triển rất nhiều trong việc mở rộng thị trường, giúp thương hiệu của công ty được nhiều người biết đến, từ đó giảm được rất nhiều chi phí quảng cáo cho sản phẩm và rất thuận tiện trong việc quản lý sản phẩm và chăm sóc khách hàng theo đúng phương trâm đặt ra.
<b>3.4.2. Website cần xây dựng</b>
Nhận thấy rằng, khi sử dụng khi sử dụng mysql trên xampp để thiết kế và lưu trữ cơ sở dữ liệu thì khả năng lưu trữ dữ liệu của nó là rất lớn, nó cịn có khả năng phân tán dữ liệu cao. Cơ sở dữ liệu lưu trữ được khối lượng lớn vì vậy khi ứng dụng trên website, ứng dụng Website có số lượng người truy cập cùng một lúc rất lớn thì ln đáp ứng được nhu cầu cần thiết. Vì vậy chúng em đã sử dụng mysql trên xampp để thiết kế và lưu trữ CSDL cho website để đáp ứng nhu cầu bài toán đặt ra.
Môi trường triển khai : ứng dụng được triển khai trên môi trường web. Công cụ và ngôn ngữ sử dụng để thiết kế trang web:
- html, Css, Mvc - bootstrap - javascrip
</div><span class="text_page_counter">Trang 31</span><div class="page_container" data-page="31">- mysql trên xampp
<b>3.4.3. Website cần xây dựng</b>
- Nhóm chức năng đăng ký, đăng nhập thành viên.
- Nhóm chức năng xem thơng tin : Xem thông tin sản phẩm, giỏ hàng, đơn hàng, thông tin cá nhân, xem thông tin đơn hang đã mua.
- Nhóm chức năng quản lý thơng tin: Quản lý thông tin cá nhân, quản lý thông tin khách hàng, quản lý danh mục sản phẩm.
- Nhóm chức năng nhập, xuất hàng và cập nhật thông tin lên website - Nhóm chức năng mua hàng, tiếp nhận và xử lý đơn hang,thanh tốn. - Nhóm chức năng thống kê, báo cáo, biểu đồ
Khách hàng là những người có nhu cầu mua sắm hàng hóa, họ sẽ tìm kiếm các mặt hàng cần thiết từ hệ thống và đặt mua các mặt hàng này. Vì thế phải có các chức năng sau:
- Hiển thị danh sách các mặt hàng của cửa hàng để khách hàng xem, lựa chọn và mua.
- Khách hàng xem các thông tin tin tức mới
- Sau khi khách hàng chọn và đặt hàng trực tiếp thì phải hiện lên
đơn hàng để khách hàng có thể nhập thơng tin mua hàng và xem hố đơn mua hang và tiến hành thanh toán
</div><span class="text_page_counter">Trang 32</span><div class="page_container" data-page="32"><i><b>Thứ hai : Dành cho người quản trị: Người làm chủ ứng dụng có quyền kiềm</b></i>
soát mọi hoạt động của hệ thống. Người này được cấp username và password để đăng nhập hệ thống thực hiện chức năng của mình
- Chức năng cập nhật, sửa, xoá các mặt hàng, loại hàng, nhà sản xuất, tin tức (phải kiểm sốt được hệ thống). Nó địi hỏi sự chính xác.
- Tiếp nhận kiểm tra đơn đặt hàng của khách hàng. Hiển thị đơn đặt hàng. - Thống kê theo ngày, khoảng thời gian. Ngoài các chức năng trên thì trang
Web phải được thiết kế sao cho dễ hiểu, giao diện mang tính dễ dùng đẹp mắt và làm sao cho khách hàng thấy được thông tin cần tìm, cung cấp các thơng tin quảng cáo hấp dẫn, các tin tức khuyến mãi để thu hút khách hàng. Điều quan trọng là phải đảm bảo an tồn tuyệt đối thơng tin khách hàng trong q trình đặt mua qua mạng.
<b>3.5. Phân tích và thiết kế cơ sở dữ liệu3.5.1. Định nghĩa bài toán</b>
Sau khi khảo sát hiện trạng của hệ thống và xây dựng hệ thống thì em đã đưa ra các tệp CSDL của “Xây dựng website bán giầy online”.
Các tệp CSDL được lưu trong file shop_giay.sql trong file báo cáo.
Qua quá trình khảo sát, phân tích thực trạng và xây dựng hướng phát triển cho hệ thống mới em đã xây dựng cấu trúc của hệ thống “Xây dựng website bán giầy online”
Hệ thống mua bán giầy là một Website cung cấp cho người sử dụng, nhà quản lý những chức năng cần thiết để tiến hành giao dịch, quản lý sự hoạt động cũng như theo dõi tình hình phát triển cửa hàng của mình. Đối với khách hàng, hệ thống cho phép xem thông tin về sản phẩm của cửa hàng. Sau khi đăng ký làm thành viên, khách hàng có thể chọn sản phẩm trên website đưa vào giỏ hàng và tiến hành giao dịch mua bán. Sau khi chọn hàng xong khách hàng chuyển qua việc thanh toán bằng một trong các hình thức thanh tốn, đồng thời chọn địa điểm giao hàng. Sau khi đã thực hiện xong, khách hàng nhấn xác nhận để hoàn tất giao dịch.
</div><span class="text_page_counter">Trang 33</span><div class="page_container" data-page="33">Đối với các nhân viên, là người sẽ tiếp nhận đơn hàng do người quản lý chuyển đến, thực hiện việc giao hàng và xác nhận việc giao hàng đã hoàn tất.
Đối với quản lý sẽ xử lý các thống kê của cửa hàng .
<b>3.5.2. Các nhóm chức năng của hệ thống</b>
Chức năng của hệ thống có thể chia làm các nhóm chức năng chính như sau: 1. Nhóm chức năng đăng ký, đăng nhập thành viên
2. Nhóm chức năng xem thơng tin, bao gồm xem thông tin giỏ hàng, xem thông tin đơn hàng, xem thông tin sản phẩm, xem thơng tin cá nhân
3. Nhóm chức năng quản lý thơng tin, bao gồm quản lý thông tin cá nhân, quản lý danh sách thành viên, quản lý danh mục sản phẩm,
4. Nhóm chức năng mua hàng, tiếp nhận và xử lý đơn hàng
<b>3.5.3. Xác định các tác nhân</b>
Dựa vào mơ tả bài tốn, ta có thể xác định được các tác nhân chính của hệ thống như sau:
<b>KHÁCH HÀNG : là người giao dịch với hệ thống thông qua các đơn đặt hàng,</b>
khách hàng có thể chọn các loại sản phẩm, chọn địa điểm giao hàng. Khách hàng có thể đăng ký làm thành viên của hệ thống.
<b>NGƯỜI QUẢN LÝ: là người điều hành, quản lý và theo dõi mọi hoạt động của</b>
hệ thống.
<b>NHÂN VIÊN: là người tiếp nhận và xử lý các đơn hàng .THÀNH VIÊN: những khách hàng đã đăng ký.</b>
Sau khi đăng nhập để trở thành thành viên, ngoài những chức năng chung của người sử dụng, cịn có thêm một số chức năng khác phục vụ cho công việc cụ thể của từng đối tượng.
<b>3.6. Xác định các USE CASE , xây dựng biểu đồ USE CASE chi tiết3.6.1. Xác định các Use case</b>
- Tác nhân “Khách hàng” có các UC sau: Đăng ký làm thành viên Tìm kiếm
</div><span class="text_page_counter">Trang 34</span><div class="page_container" data-page="34"> Xem thông tin sản phẩm Xem thông tin giỏ hàng Chọn sản phẩm cần mua
Thêm, bớt sản phẩm trong giỏ hàng Thực hiện việc mua hàng
<sup>Thanh tốn</sup>
- Tác nhân “Người quản lý” có các UC sau: Tiếp nhận đơn hàng
Giao cho nhân viên thực hiện Quản lý danh sách thành viên Quản lý danh mục sản phẩm Quản lý banner
Quản lý các Admin
Quản lý các loại sản phẩm - Tác nhân “Nhân viên” có các UC sau:
Thực hiện việc xử lý đơn hàng Thống kê
Ngoài ra, các “Thành Viên” của hệ thống bao gồm các khách hàng đã đăng ký làm thành viên cịn có các UC sau:
Đăng nhập
Xem thông tin cá nhân Sửa đổi thông tin cá nhân
</div>