LỜI MỞ ĐẦUTrong thời đại mà công nghệ thông tin phát triển mạnh, bên cạnh đó diễn biến phức tạpcủa dịch bệnh COVID-19 gây khó khăn trong việc mua sắm trực tiếp tại cửa hàng thìmua sắm On
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC
PHẦN MỀM MÃ NGUỒN MỞ
Giảng viên giảng dạy
Sinh viên thực hiện
Mã số sinh viên
Chuyên ngành
Khóa
: ThS Nguyễn Thị Hồng : Lê Đình Hoàng Thái : 1900009507
: Kỹ thuật phần mềm : 2019
Tp.HCM, tháng 01/2022
NGUYÊN TAT THANH
Trang 2TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
TRUNG TÂM KHẢO THÍ
PHIẾU CHẤM THI TIỂU LUẬN/BÁO
CÁO
Môn thi: Phần mềm mã nguồn mở Lớp học phần: 19DTH1A
Sinh viên thực hiện: Lê Đình Hoàng Thái MSSV: 1900009507
Đề tài tiểu luận/báo cáo của sinh viên: Trang web bán đồng hồ
Phần đánh giá của giảng viên (căn cứ trên thang rubrics của môn học):
Tiêu chí (theo CĐR
Điểm tối đa
Điểm đạt được
Trang 4TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH CỘNG HÒA
XÃ HỘI CHỦ NGHĨA VIỆT NAM
KHOA CÔNG NGHỆ THÔNG TIN Độc
lập - Tự do - Hạnh phúc
NHIỆM VỤ ĐỒ ÁN MÔN HỌC
(Sinh viên phải đóng tờ này vào cuốn báo cáo)
Họ và tên: LÊ ĐÌNH HOÀNG THÁI
Chuyên ngành: Kỹ thuật phần mềm
Email: tlee692001@gmail.com
Tên đề tài: Xây dựng trang web bán đồng hồ
Giảng viên giảng dạy: ThS Nguyễn Thị Hồng
Thời gian thực hiện: 24/12/2021 đến 05/01/2022
Nhiệm vụ: Phân tích tìm hiểu về Phần mềm mã nguồn
mở và thiết kế Trang web bán
đồng hồ
Nội dung: Tìm hiểu về Phần mềm mã nguồn mở Tìm
hiểu đề tài xây dựng trang web
bán đồng hồ Xây dựng giao diện.Lập trình xử lý các sự
kiện
Phương pháp: sử dụng ngôn ngữ PHP và framework
Laravel để thực hiện đề tài xây
dựng trang web Quản lý bán đồng hồ
Nội dung và yêu cầu đã được thông qua Bộ môn.
Tp.HCM, ngày tháng năm 2022
MSSV: 1900009507 Lớp: 19DTH2A SĐT: 0869331145
Trang 5GIẢNG VIÊN GIẢNG
Trang 6Em xin gửi lời cám ơn đến anh, chị, bạn bè, đồng nghiệp bằng nhiều hình thức khác nhau
đã giúp đỡ em trong quá trình học tập tại trường cũng như trong thời gian hoàn thành đồ
Trang 7LỜI MỞ ĐẦU
Trong thời đại mà công nghệ thông tin phát triển mạnh, bên cạnh đó diễn biến phức tạpcủa dịch bệnh COVID-19 gây khó khăn trong việc mua sắm trực tiếp tại cửa hàng thìmua sắm Online là lựa chọn tối ưu của mọi người.Ngày này đồng hồ Online đã không còn
xa lạ tuy nhiên vẫn có nhiều người giữ thói quen mua tại cửa hàng để được nhìn và thử tạichỗ.Áp dụng các kiến thức đã được học cùng với sự yêu thích đồng hồ của bản thân, emlựa chọn đề tài “Xây dựng website bán đồng hồ Online “ ” sử dụng ngôn ngữ PHP vàframework Laravel để hoàn thiện học phần Phần mềm mã nguồn mở với mục tiêu tạo rawebsite cung cấp đa dạng đồng hồ, giúp người mua dễ dàng tìm mua đồng hồ trên trangweb và hệ thống hỗ trợ người quản trị trong việc quản lý website một cách nhanh chóng
và đon giản nhất
Trong quá trình thực hiện, được sự hướng dẫn và hỗ trợ nhiệt tình của giảng viên tuynhiên bản thân em còn nhiều thiếu sót, mong thầy cô bỏ qua và bổ sung thêm để đề tàiđược hoàn thiện hon
Em xin chân thành cảm on!
Trang 8NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
TP Hồ Chí Minh, ngày tháng năm 2022
GIẢNG VIÊN HƯỚNG DẪN
(Ký tên)
Trang 9MỤC LỤC
LỜI CẢM ƠN 5
LỜI MỞ ĐẦU 6
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 7
MỤC LỤC 8
DANH MỤC CÁC BẢNG BIỂU 10
DANH MỤC CÁC BẢNG HÌNH 11
DANH MỤC CÁC TỪ VIẾT TẮT 13
CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 14
1.1 Giới thiệu đề tài: 14
1.2 Lý do chọn đề tài 14
1.3 Mục tiêu đề tài 14
1.4 Các công cụ hỗ trợ 14
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 15
2.1 TỔNG QUAN VỀ PHẦN MỀM MÃ NGUỒN MỞ 15
2.1.1 Khái niệm: 15
2.2 GIỚI THIỆU VỀ PHP VÀ FRAMEWORK LARAVEL 15
2.2.1 PHP là gì? 15
2.2.2 Ngôn ngữ PHP có thể làm được gì? 16
2.2.3 Ngôn ngữ PHP có khác biệt thế nào so với những ngôn ngữ lập trình khác 18
2.2.4 Lập trình PHP là gì? 19
2.2.5 Thu nhập của lập trình PHP 20
2.2.6 Muốn phát triển nghề lập trình PHP cần gì 20
2.2.7 Framework Laravel là gì? 21
2.2.8 Framework là gì? PHP Framework là gì? 23
2.2.9 Mô hình MVC là gì? 24
2.2.10 Lịch sử phát triển của Laravel 25
2.2.11 Ưu điểm của Laravel là gì? 26
2.2.12 Nhược điểm của Laravel là gì? 27
2.2.13 Cài đặt Framework Laravel 27
2.3 XAMPP 29
CHƯƠNG 3: GIỚI THIỆU VỀ WEBSITE BÁN ĐỒNG HỒ 30
3.1 Khảo sát thực trạng 30
3.2 Giới thiệu website đồng hồ Online “MEN WATCH” 31
Trang 103.3 Phương pháp nghiên cứu 31
CHƯƠNG 4: CÀI ĐẶT WEBSITE BÁN ĐỒNG HỒ ONLINE “MEN WATCH” 32
4.1 Thiết kế chi tiết chức năng và phương thức 32
4.2 Thiết kế giao diện Website 33
4.2.1 Giao diện trang chủ 33
4.2.2 Giao diện các loại sản phẩm 36
4.2.3 Giao diện trang Chi tiết sản phẩm 37
4.2.4 Giao diện đặt hàng 38
4.2.5 Giao diện Admin 39
4.2.6 Giao diện Admin Danh sách đơn hàng 40
4.2.7 Giao diện Admin Danh sách sản phẩm 40
4.2.8 Giao diện Admin Danh sách Loại sản phẩm 42
CHƯƠNG 5: KẾT LUẬN 43
5.1 Kết quả đạt được 43
5.2 Hạn chế của đề tài 43
5.3 Hướng phát triển 43
5.4 Tài liệu tham khảo 43
Trang 11DANH MỤC CÁC BẢNG HÌNH
Hình 1 PHP 17
Hình 2 Lập trình PHP 19
Hình 3 Kĩ Năng PHP 21
Hình 4 Laravel 22
Hình 5 Framwork 23
Hình 6 ASP.NET.MVC 24
Hình 7 Laravel 25
Hình 8 Ưu điểm Laravel 26
Hình 9 Laravel Instal 27
Hình 10 Giao diện trang chủ Website 31
Hình 11 Bật xampp và start apeche & MySQL 32
Hình 12 Giao diện trang chủ 1 33
Hình 13 Giao diện trang chủ 2 34
Hình 14 Giao diện trang chủ 3 34
Hình 15 Điều kiện đặt ribbon 35
Hình 16 Kết quả đặt banner 35
Hình 17 Điều kiện hiển thị giá 35
Hình 18 Kết quả hiển thị giá của sản phẩm 36
Hình 19 Chọn loại sản phẩm 36
Hình 20 Giao diện trang Sản phẩm đông hồcao cấp 37
Hình 21 Sản phẩm khác 37
Hình 22 Giao diện chi tiết sản phẩm 38
Hình 23 Giao diện chi tiết sản phẩm 2 38
Hình 24 Giao diện đặt hàng 39
Hình 25 Giao diện admin 39
Hình 26 Giao diện Admin Danh sách đơnhàng 40
Hình 27 Giao diện Admin Danh sách sản phẩm 40
Hình 28 Giao diện thêm, sửa sản phẩm 41
Trang 12Hình 29 Giao diện Danh sách loại sản phẩm 42Hình 30 Giao diện thêm loại sản phẩm 42
Trang 13CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu đề tài:
Tên đề tài: Website bán đồng hồ
Giới thiệu: Website cho phép chủ doanh nghiệp quản lý các sản phẩm có trong cửa hàng
Xây dựng ứng dụng theo nhu cầu của chủ cửa hàng nhỏ bán lẻ
Giao diện đơn giản dễ sử dung
Website thực hiện được các chức năng: thêm, xóa, sửa các sản phẩm và xuất danh sáchcác sản phẩm có trong cửa hàng với đầy đủ thông tin
Trang 14CHƯƠNG 2: CƠ SỞ LÝ THUYẾT
2.1 TỔNG QUAN VỀ PHẢN MỀM MÃ NGUÒN MỞ
2.1.1 Khái niệm:
Phần mềm mã nguồn mở là những phần mềm được cung cấp dưới cả dạng mã và nguồn,không chỉ là miễn phí về giá mua mà chủ yếu là miễn phí về bản quyền: người dùng cóquyền sửa đổi, cải tiến, phát triển, nâng cấp theo một số nguyên tắc chung quy định tronggiấy phép phần mềm mã nguồn mở mà không cần xin phép ai, điều mà họ không đượcphép làm đối với các phần mềm nguồn đóng
Nhà cung cấp phần mềm nguồn mở có quyền yêu cầu người dùng trả một số chi phí vềcác dịch vụ như: bảo hành, huấn luyện, nâng cấp, tư vấn, vv là những dịch vụ thực sự
để phục vụ người dùng, nhưng không được bán các sản phẩm nguồn mở vì nó là tài sảncủa trí tuệ chung, không phải là tài sản riêng của một nhà cung cấp nào Ưu điểm củaphần mềm mã nguồn mở: Phần mềm được sao chép hoàn toàn miễn phí, tự do sử dụngchương trình cho mọi mục đích, tự do để nghiên cứu cấu trúc của chương trình, chỉnh sửaphù hợp với nhu cầu, truy cập vào mã nguồn, tự do phân phối lại các phiên bản cho nhiềungười, tự do cải tiến chương trình và phát hành những bản cải tiến vì mục đích côngcộng
Nhược điểm của mã nguồn mở:
- Tính bảo mật thấp
- Thiếu sáng tạo
- Tính tự do - tùy biến không cao
Một số mã nguồn mở đang được sử dụng hiện nay là: Joomla, Drupal, PHP, Magento,Zencart,
2.2 GIỚI THIỆU VỀ PHP VÀ FRAMEWORK LARAVEL
2.2.1 PHP là gì?
PHP là dạng viết tắt của thuật ngữ Personal Home Page Đây là một chuỗi ngôn ngữ kịchbản hoặc một dạng mã lệnh Trong đó, ngôn ngữ PHP chủ yếu được phát triển dành chocác ứng dụng nằm trên máy chủ Khi các lập trình viên PHP viết chương trình, các chuỗi
Trang 15lệnh sẽ được chạy ở trên server nhằm sinh ra mã HTML Nhờ đó, những ứng dụng trên
các website có thể chạy một cách dễ dàng
Ngôn ngữ PHP thông thường phù hợp với việc lập trình web vì nó có thể dễ dàng kết nốivới các website có sử dụng HTML để chạy trên những trình duyệt web Chính vì vậy,ngôn ngữ lập trình này luôn được coi là khá dễ học Và PHP cũng trở thành ngôn ngữweb dev phổ biến nhất mà các lập trình viên sẽ cần phải học khi mới bắt đầu vào nghề
Trang 16Hình 1 PHP
Trong số những ứng dụng của PHP là gì có thể kể đến:
• Thiết lập các chương trình cho máy chủ: Ứng dụng chủ đạo của PHP là gì đó
chính là việc xây dựng các chương trình dành cho những server máy chủ Để cóthể viết được các chương trình chạy trên máy chủ, các lập trình viên sẽ cần phảithực hiện những công việc như: phân tích cú pháp ngôn ngữ lập trình PHP, xâydựng máy chủ web, trình duyệt web Các lập trình viên có thể xây dựng outputbằng các trình duyệt web phổ biến
• Tạo dòng tập lệnh: Các PHP Dev có thể tạo một dòng tập lệnh để có thể chạy
chương trình PHP mà không cần bất cứ máy chủ nào Đây là kiểu lập trìnhthường được sử dụng trên các hệ điều hành như: Linux, các trình lập tác vụ trênWindows
• Xây dựng các ứng dụng làm việc: Với những điểm mạnh vốn có của PHP Có
thể đây chưa phải là phương thức tốt nhất để xây dựng những ứng dụng phầnmềm Nhưng nếu như bạn đang muốn đi sâu hơn vào việc tạo lập những phầnmềm từ PHP là gì Bạn cũng có thể sử dụng PHP - GTK như một ngôn ngữ nềntảng để có thể xây dựng các phần mềm của riêng mình PHP - GTK là một
Trang 17• nhánh mở rộng hơn của ngôn ngữ lập trình này và nó không có sẵn
phiên bản phân phối chính hiện nay
• • Hỗ trợ cho một loại cơ sở dữ liệu khác nhau: Đây chính là ứng dụng mạnh
nhất nếu như được hỏi PHP dùng để làm gì Nếu trang web có hỗ trợ cơ sở dữliệu tốt sẽ giúp ích rất nhiều cho việc vận hành cũng như backup dữ liệu nếukhông may có những tình huống tấn công an ninh mạng xảy ra
• Hiện nay, PHP có thể sử dụng trên rất nhiều hệ điều hành phổ biến trên thị
trường
như: Linux, Microsoft Windows, macOS Vì vậy, các DEV có thể tự do lựa chọn một
hệ điều hành để tự lập trình cho mình Vì thế, ngôn ngữ lập trình PHP đã và đang đem lạirất nhiều hữu ích trong hoạt động công nghệ thông tin hiện nay
2.2.3 Ngôn ngữ PHP có khác biệt thế nào so với những ngôn ngữ lập trình
khác
• PHP là một ngôn ngữ lập trình Tuy nhiên, ngôn ngữ lập trình này không chạy trênmột trình duyệt mà chủ yếu tương thích với một máy chủ web Khi bạn mở mộttrang web bất kỳ, máy chủ sẽ chạy tập lệnh PHP được liên kết để trả lại websitecho bạn
• HTML: Ngôn ngữ này sẽ được dùng để tạo lập một trang web hoàn chỉnh HTMLchủ yếu được dùng để lên cấu trúc cơ bản cho một trang web Hiện nay, bất cứtrang web nào cũng cần phải sử dụng ngôn ngữ HTML để xây dựng website
• CSS: CSS chủ yếu được sử dụng nhằm trang trí cho website của bạn được đẹp mắthơn CSS có tất cả những hiệu ứng khác nhau để có thể giúp cho website của bạntrở nên bắt mắt và thu hút thêm nhiều lượt người xem hơn
• Java Script: Ngôn ngữ lập trình này sẽ cung cấp cho website của bạn sức mạnhnhất định Khi sử dụng Javascript, các lập trình viên có thể đặt những phép tính,điều kiện khác nhau nhằm kiểm tra khả năng phản ứng của website trong điều kiệnthực tế
Trang 18• Lập trình website: Các IT thường dùng PHP để có thể thiết kế những website.
Rất nhiều nền tảng khác nhau hiện nay đều được tạo bởi PHP Trong đó có thể
kể đến những mạng xã hội rất nổi tiếng trên thế giới như Facebook, Youtubeđều lấy PHP làm nền tảng gốc
• Quản trị website: Việc quản trị các website của một PHP dev cũng thường
xuyên phải làm Tuy nhiên, công việc này thường không có thu nhập so với các
dự án thiết kế website khác nhau:
• Phát triển ngôn ngữ PHP: Bản chất là một ngôn ngữ với mã nguồn mở PhP
cũng được phát triển bởi một cộng đồng IT với rất nhiều thành viên Tác giảcủa PHP cũng liên tục update những bản mới nhất trên thị trường để có thể giúpcác nhân viên IT hoạt động một cách dễ dàng hơn
Trang 19• Và những công việc này nhằm mục đích cuối cùng là nâng cao hiệu quả hoạt động của
phần mềm máy tính Vì thế, nếu muốn phần mềm được vận hành hiệu quả, nhà tuyểndụng sẽ cần phải rất kỹ càng trong việc tuyển dụng IT
• Và nếu ở Việt Nam, mức thu nhập của một ứng viên cũng rất khá Nếu như bạn
trường, lương dành cho nhân viên thiết kế web PHP cũng đã lên tới con số 16 triệu/tháng Và con số này sẽ không chỉ dừng lại ở 16 triệu nếu như năng lực của bạn đã đượcchứng minh trong thực tế
• Khả năng ngoại ngữ
• Khả năng ngoại ngữ, đặc biệt là tiếng Anh là điều bắt buộc dành cho mọi IT hiệnnay
Trang 20100% phần mềm máy tính hiện đều dùng tiếng Anh để vận hành Vì thế, nếu không cóngoại ngữ tốt thì bạn sẽ rất khó có thể tiến xa với ngành nghề này.
• Tuy nhiên, không cần các ứng viên CNTT phải quá thành thạo ngoại ngữ Bạn chỉcần
đọc hiểu được tốt các tài liệu chuyên ngành là hoàn toàn có thể bắt nhịp với công việcđược
Trang 21• • Kỹ năng giao tiếp
• Đối với nhiều nhân viên IT, mặc dù có kiến thức chuyên môn rất tốt nhưng mãi
thăng tiến tới những vị trí cao hơn Điều này có thể được kết luận bởi vấn đề là: kỹ nănggiao tiếp của bạn còn quá kém Ngoài việc giỏi công việc, các nhân viên lập trình PHPcòn cần có cách thức truyền tải ý tưởng sao cho người khác có thể hiểu rõ được mìnhđang muốn nói cái gì Vì vậy, nếu muốn thăng tiến lên các vị trí cao hơn, khả năng giaotiếp cũng là điều không thể thiếu được
Trang 22• Hình 4 Laravel
•
• Những lý do khiến Laravel trở nên rộng rãi:
• Cú pháp dễ hiểu - rõ ràng
• Hệ thống đóng gói modular và quản lý gói phụ thuộc
• Nhiều cách khác nhau để truy cập vào các cơ sở dữ liệu quan hệ
• Nhiều tiện ích khác nhau hỗ trợ việc triển khai vào bảo trì ứng dụng
Trang 25• 2.2.10 Lịch sử phát triển của Laravel
Trang 26• 2.2.11 Ưu điểm của Laravel là gì?
•
• Hình 8 Ưu điểm Laravel
•
• Sử dụng các tính năng mới nhất của PHP
• Sử dụng Laravel 5 giúp các lập trình viên tiếp cận những tính năng mới nhất màPHP
cung cấp, nhất là đối với Namespaces, Interfaces, Overloading, Anonymous functions vàShorter array syntax
• Nguồn tài nguyên vô cùng lớn và sẵn có
• Nguồn tài nguyên của Laravel rất thân thiện với các lập trình viên với đa dạng tàiliệu
khác nhau để tham khảo Các phiên bản được phát hành đều có nguồn tài liệu phù hợpvới ứng dụng của mình
Trang 27Vì vậy, nó được các công ty công nghệ và lập trình viên sử dụng rộng rãi để phát triểncác sản phẩm của họ
• Dễ sử dụng
Trang 28• Laravel được đón nhận và trở nên sử dụng phổ biến vì nó rất d sử dụng Thường
hoàn toàn tập trung vào việc phát triển sản phẩm của mình:
• Sử dụng PDO để chống lại tấn công SQL Injection
• Sử dụng một field token ẩn để chống lại tấn công kiểu CSRF
• Mặc định đều được Laravel escape các biến được đưa ra view mặc định, do đó cóthể
tránh được tấn công XSS
2.2.12 Nhược điểm của Laravel là gì?
• So với các PHP framework khác, Laravel bộc lộ khá ít nhược điểm Vấn đề lớn
Trang 29• Những tính năng tuyệt vời có thể kể đến của Laravel là:
• Composer: sử dụng để nâng cấp, cài đặt
• Eloquent ORM : thao tác với cú pháp đẹp mắt và đơn giản.
• Restful API : hỗ trợ biến Laravel thành một web Service API.
• Artisan : cung cấp các lệnh cần thiết để phát triển ứng dụng.
• View : giúp code sạch sẽ hơn rất nhiều.
• Migrations : hỗ trợ tạo các trường trong cơ sở dữ liệu, thêm các cột trong bảng, tạo
mối quan hệ giữa các bảng, hỗ trợ quản lý cơ sở dữ liệu
• Authentication : cung cấp sẵn các tính năng đăng nhập, đăng ký, quên mật khẩu.
• Unit Testing : hỗ trợ test lỗi để sửa chữa.
• Hướng dẫn cài đặt Laravel
• Thao tác cài đặt Laravel không quá phức tạp Các bạn có thể tham khảo chi tiết bêndưới
đây:
• Yêu cầu hệ thống để cài đặt Laravel
• Để có thể cài Laravel, bạn phải đáp ứng được các yêu cầu bắt buộc sau:
• Thông qua Laravel Installer
• Bạn mở Terminal (CMD hoặc Git Bash), gõ dòng lệnh sau: “ composer global require