Trong báo cáo nảy, chúng tôi sẽ trình bày quá trình phân tích, thiết kế, và triên khai trang web ban dé gia dung, bao gồm cả việc hiểu về yêu cầu của khách hàng, xây dựng co so dữ liệu,
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO BÀI TẬP LỚN
MÔN : CÔNG NGHỆ PHAN MEM
DE TAI XAY DUNG WEBSITE BAN DO GIA DUNG
Giảng viên hướng, dẫn: Đào Thị Lệ Thủy
Sinh viên thực hiện:
Họ và tên Mã sinh viên
Trang 2MỤC LỤC
QUY TRÌNH LÀM VIỆC NHÓM Q11 212111111111112121 2111111111511 k1 2e 3 90587101 4 TOM TAT BAI TOÁN
FN ¡nan ớớỚ‹4g}).BR B 13
4.2 Biếu đồ phân cấp chức năng(BED) 2222222252921 212123125212221212121 1121212521202 062 14 4.3 Sơ đồ luồng dữ liệu(DEPD) À 2Q S3 221212121211111111212121111111121 212201 2121121112212 12122 Xe 14
5.1 Phan tich dt GQu 0 0.00.0.ccccccccc cscs eecsseseceeeeesscecesesseeneeeeeeenseteneaseseneansestevaneeteesseseees 16 5.2 Các thực thế và mối liên kết giữa các thực thế 22 eceeeee cence cee eects 16
Trang 3IS Vi 8N Image 4 3 Biển đồ usecase đăng nhập - - 2919121111 112121 211111211121 221 11818211111 22101 212111155 Image 4 4 Biển đồ usecase đăng ký - - - TT T191 2111211121111111111111211121212121 210120101 0101211 2 c1
Image 4 5 Biểu đồ usecase người dùng vào website
Image 5 1 Mô hình thực thê liên kếT 5-5-2 2+2 S52 232125 532311 2321252552111 1712111117115 5E 1201012 ce cớ 19
Trang 4DANH MỤC BẢNG
E0 S8; i9 sa 20 Table 5 2 Bảng Topc
Table 5 3 Bang Product
Trang 5QUY TRÌNH LÀM VIỆC NHÓM
4 Phân tích chức năng, nghiệp vụ Cả nhóm
5 Phân tích và thiệt kê dữ liệu Cả nhóm
6 Cài đặt cơ sở dữ liệu Phạm Khánh Toàn
7 Thiet ké giao dién đô họa Cả nhóm
TA dựng chức năng đăng nhập, đăng ký, đôi mật Hỗ Anh Pháp
9 Xây dựng chức năng thêm, sửa, xóa sản phầm Nguyễn Duy Mạnh
10 Xây dựng chức năng ø1ỏ hàng Phạm Khánh Toàn
11 Xây dựng chức năng thanh toán Nguyễn Minh Chiên
12 Xây dựng chức năng tìm kiêm sản phâm Nguyên An Huy
H6 Anh Pháp
Trang 6
LỜI NÓI ĐẦU
Trong thời đại số hóa ngày càng phát triển, việc mua sắm trực tuyến đã trở thành một phần quan trọng của cuộc sống hảng ngày Việc tiếp cận và lựa chọn sản phẩm gia dụng phù hợp với nhu cầu của mỗi gia đình ngay từ nhà đã tro nén dé đảng và thuận tiện hơn bao giờ hết Trong bối cảnh nảy, việc xây dựng một trang web bán đồ gia dụng là một bước quan trọng đê mang đến cho người tiêu dùng sự lựa chọn và trải nghiệm mua sắm tốt hơn
Chúng tôi xin trân trọng giới thiệu báo cáo này, với mục tiêu chia sẻ và trình bay quá trình phat trién trang web bán đồ gia dụng Báo cáo này là sản phâm của sự công hiến
và nỗ lực của đội ngũ phát triển, với mục tiêu đáp ứng nhu cầu của khách hàng thông qua một nền tảng trực tuyến thú vị và tiện lợi
Trong báo cáo nảy, chúng tôi sẽ trình bày quá trình phân tích, thiết kế, và triên khai trang web ban dé gia dung, bao gồm cả việc hiểu về yêu cầu của khách hàng, xây dựng
co so dữ liệu, phát triển øiao điện đồ họa hấp dẫn, và triển khai các tính năng quan trọng như quản lý sản phâm, đăng nhập, giỏ hàng, và thanh toán
Chúng tôi hy vọng rằng báo cáo này sẽ mang lại cái nhìn sâu rộng về quá trình xây dựng trang web bán đỗ gia dung, cũng như giúp đội ngũ phát triển, khách hàng, và những người quan tâm có cái nhìn tổng quan về dự án này Chúng tôi chắc chắn rằng trang web này sẽ đóng góp vào việc làm cho trải nghiệm mua sắm trực tuyến của khách hàng trở nên thuận lợi và đảng nhớ hon
Trang 7TOM TAT BAI TOAN
Với mức độ phức tạp và quy mô ứng dụng, cộng thêm vấn đề thời gian cho nên
đề tài “Xây dựng Website bán đồ gia dụng ” chỉ dừng ở mức tìm hiểu ngôn ngữ lập trinh Web PHP & MYSQL, va ap dung xay dựng ứng dụng thực nghiệm trang Web bán đỗ gia dụng
Với giao diện thân thiện, đễ dàng sử dụng trang web cung cấp cho khách hàng các tính năng cần thiết: Hiện thị sản phẩm, tìm kiếm sản phẩm, thêm sản phâm vảo giỏ hang, thanh toán sản phâm
Trang 8I Tìm hiểu về PHP & MySQL và các công nghệ
1 PHP
PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại
mã lệnh chủ yếu được dùng đề phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tông quát Nó rất thích hợp với web và có thê dễ đàng nhúng vào trang HTML Do được tôi ưu hóa cho các ứng dụng web, tốc
độ nhanh, nhỏ gọn, cú pháp giống ngôn ngữ lập trình C vả ngôn ngữ lập trinh Java, dé hoc và thời gian xây dựng sản phâm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phỏ biến nhất thế giới Một tập tin PHP có phần mở rộng *.php, nó có thê chứa các văn bản, mã nguồn HTML, CSS, Javascript, Jquery và đương nhiên có thé chứa mã nguồn PHP
Đối với các trang PHP khi có yêu cầu xem trang web thì Server sẽ tiến hành phát sinh trang web đó từ mã nguồn PHP sang mã nguồn HTML, sau đó mới chuyên mã nguồn đó về trình duyệt web đề người dùng xem Vì các trình duyệt web không thể đọc được các mã nguồn PHP mà chỉ đọc được các mã nguồn HTML
PHP thực hiện với tốc độ rất nhanh và hiệu quả Một Server bình thường có thể
đáp ứng được hơn hàng chục triệu truy cập trong một ngày
PHP hỗ trợ kết nói tới rất nhiều cơ sở dữ liệu khác nhau như PostgreSQL, Microsoft SQL Server, Oracle, dbm, filePro Ngoai ra con ho tro ket noi téi ODBC thông qua đó có thê kết nối với nhiều ngôn ngữ khác mà ODBC hỗ trợ PHP cung cấp một hệ thống thư viện phong phú và ngày càng phát triển Do PHP noay từ đầu được thiết kế nhằm mục đích xây đựng và phát triển các ứng dụng trên web nên PHP cung cấp rất nhiều hàm xây dựng sẵn giúp thực hiện các công việc rất dễ đàng: pửi, nhận mail, làm việc với cookie
PHP là một ngôn ngữ rất dễ dùng, đễ học và đơn giản hơn nhiều so với các ngôn ngữ khác như Perl, Java
Đặc biệt, PHP la ngôn ngữ mã nguồn mở Có rất nhiều phần mềm website mã nguồn mo duoc viet trén nén tang cua PHP nhu Joomla, Drupal, Nukeviet
2 Framework Laravel
Laravel là một PHP Framework mã nguồn mở và miễn phí, được phát triển bởi Taylor Otwell và nhăm mục tiêu hồ trợ phát triền các ứng dụng web theo câu trúc model- view- controller (MVC) Những tính năng nôi bật của Laravel bao
Trang 9gồm cú pháp dễ hiệu- rõ ràng, một hệ thống đóng gói Modular và quản lý gói phụ thuộc, nhiêu cách khác nhau đề truy cập vào các cơ sở dữ liệu quan hệ, nhiều tiện ích khác nhau hồ trợ việc triên khai vào bảo trì ứng dụng
Vào khoảng Tháng 3 năm 2015, các lập trình viên đã có một cuộc bình chọn PHP framework phé bién nhat, Laravel da giành vị trí quán quân cho PHP framework phô biến nhất năm 2015, theo sau lần lượt là Symfony2, Nette, Codelgniter, Yu2 vao mot số khác Trước đó, Tháng 8 năm 2014, Laravel đã trở thành project PHP phổ biến nhất và được theo dõi nhiều nhất trên Github
Laravel được phát hành theo giấy phép MIT, với source code được lưu trữ tại Github
Ưu điểm của Laravel:
- Dễ dang str dung: lap trình viên chỉ cần có những kiến thức cơ bản nhất vé lập trinh web với PHP là có thê bắt tay vào việc làm một proJect nhỏ Document mà Laravel cung cap trén trang chu cua minh được việt rat rd rang va để hiểu
- _ Xây dựng theo mô hình MVC: Laravel được xây dựng và phát triển theo mô hình MVC (Model-View-Controller) nhờ đó mà cấu trúc và cách tô chức code trong project được sắp xếp một cách hợp lý dễ dàng cho việc maintain cũng như
phát triển về lâu dài
- Các tính năng dựng sẵn: bản thân Laravel đã cung cấp cho người dùng rất nhiều các nhóm tính năng giúp quá trình phát triển trở nên nhanh chóng hơn rất
nhiều lần
- _ Các tính năng bảo mật: để giúp lập trình viên có thé tôi đa thời gian tập chung vảo việc phát triển các tính năng, Laravel đã cung cấp sẵn cho người dùng các tính năng bảo mật cơ bản như:
- ORM cua Laravel str dung PDO thay vi mysqli dé chéng lai tan cong SQL Injection
- Laravel su dung m6t field token an dé chống lại tan công kiểu CSRE
- _ Các biến được đưa ra view mặc định đều được Laravel escape dé tranh tan cong XSS
- Blade template: 6 phan view, Laravel cung c4p san cho ngwoi ding mét template engine co tén là blade, giúp người dùng có thê sử dụng code php bên trong file ø1ao điện của mình một cách thuận lợi và không bị rồi mắt như sử dung cap thé <?php ?> thông thường:
- Cộng đồng mạnh mẽ: có rất nhiều người đang sử dụng Laravel và hầu như câu hỏi nào cùng có lời giải
3 MySQL
MySQL là hệ quản trị dữ liệu miễn phí, được tích hợp sử dụng chung với Apache, PHP Chinh yéu tổ phát triển trong cộng đồng mã nguồn mở nên MySQL đã
Trang 10qua rất nhiều sự hỗ trợ của những lập trình viên yêu thích mã nguồn 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 quát toà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ình vậ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
MySQL la co so dit liéu tốc độ cao, ôn định và để sử dụng, hoạt động trên nhiều
hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet
MyS§QL miễn phí hoàn toàn cho nên bạn có thé tai ve MySQL tr trang chu MySQL la
một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở đữ liệu quan hệ sử đụng ngôn ngữ truy vấn có cấu trúc (SQL) MySQL đang được sử dụng cho nhiều công việc kinh doanh từ nhỏ tới lớn:
My§QL là mã nguồn mở vì thế sử dụng không mắt phí
MyS§QL sử dụng một Form chuẩn của ngôn ngữ đữ liệu nổi tiếng là SQL
My§QL làm việc trên nhiều Hệ điều hành vả với nhiều ngôn ngữ như PHP, PERL,
C, C+, Java,
MySQL làm việc nhanh với các tập dữ liệu lớn
My§QL hỗ trợ các cơ sở dữ liệu lớn, lên tới 50 triệu hàng hoặc nhiều hơn nữa trong một bảng Kích cỡ file mặc định được giới hạn cho một bang 1a 4 GB(Gigabyte), nhưng bạn có thê tăng kích cỡ này (nếu hệ điều hành của bạn có thé xu ly no) dé đạt
tới giới hạn lý thuyết là 8 TB (Terabyte)
My§QL có thể điều chỉnh Giấy phép GPL mã nguồn mở cho phép lập trình viên sửa
đổi phần mém MySQL đề phù hợp với môi trường cụ thé cua họ
4 Angular
Angular được xe là một open source (mã nguồn mo) hay frameworks mién phi chuyên dụng cho công việc thiết kế web Angular được phát triển từ những năm 2009
và được duy tri bo1 Google Frameworks nay duoc xem là frameworks front end manh
mẽ nhất chuyên dụng bởi các lập trình viên cắt HTML cao cấp
Anpular được ứng dụng rộng rãi với mục đích xây dựng project Single Page
Application (SPA) Hién tai, Version stable cua Angular la Angular 9 (released on February 7, 2020) voi TypeScript 3.6 va 3.7
Trên thực tế, Angular sở hữu hai phién ban hoan toan khac nhau nhu sau:
Phiên bản 1: Phiên bản này có tên chính thức là AngularJS đến hiện nay nó vẫn đang được phát triên hoàn thiện bởi các chuyên gia Vào năm 2018, thì phiên bản 1.7.3 đã được nhà sản xuât phát hành
Đây là phiên bản được hoàn thành thực sự dựa trên Javasertpt bởi những lập trình viên viet ma theo ngôn neữ JavaserIpt thì nó thường dê làm và đề tìm kiêm Tuy nhiên, hiệu
Trang 11năng khi so sánh với phiên bản ReactJS thi vẫn còn nhiều công ty xây dựng phải cân nhắc sử dụng Angular với phiên bản khac 1
Phiên bản 2: Phiên bản này được gọi với cái tên chính thức là Aneular Nó sở hữu tư duy thay đôi hoàn toàn với phiên bản thứ 1 và mang lại tham vọng giúp cho Angular
có thê đánh bại ReactJS AngularJS duoc xem 1a m6t trong những framework sở hữu cấu trúc ứng dụng dạng động và cho phép bạn có thê sử dụng HTML như là ngôn ngữ mẫu cũng như mở việc mở rộng cú pháp của HTML
Nhờ vậy, việc diễn đạt các thành phần ứng dụng của người lập trình sẽ trở nên súc tích
e Bạn có thê dễ đàng Unit test
e_ Có thể tái sur dung component dé dang hon
e Hỗ trợ cho các lập trình viên có thê viết code được ít hơn với nhiều chức năng hơn
e Bạn có thể chạy AngularJS trên nhiều loại trình duyệt khác nhau lẫn PC hoặc mobile
Nhược điểm:
- _ Không an toàn: Thông thường, bản chất của AngularJS là một trong những các Front End, ma front end nay thường vốn không thê bảo mật bằng Back End
Chính vì vậy, khi sử dụng API thì bạn cần xây dựng cho một hệ thống kiểm tra
dữ liệu sao cho việc trả về được tốt nhất
- _ Với một số trình duyệt sở hữu tính năng Disable Javascript nên có nghĩa lả website sẽ không hoàn toàn có thé str dụng được dựa trên những trình duyệt đó nữa
5 Giới thiệu công nghệ thiết kế UML- Draw.io
Draw.io là một công cụ vẽ sơ đồ rất mạnh mẽ, hỗ trợ nhiều hình khối, chạy online
không cần cài đặt mà lại miễn phí và không bị giới hạn số biểu đồ như nhiều tool vẽ nền web khác Bạn có thê vẽ sơ đồ về mạng, điện, phác thảo vị trí các căn phòng trong nhà, hay vẽ các quy trình kinh doanh, vận hảnh, sản xuắt, Những người làm công nghé cing sẽ thích Draw.io vì nó cho phép bạn vẽ hàng tá sơ đỗ thiết kế phần mềm, phần cứng và hệ thống Draw.io có thư viện template rất phong phú đề bạn có thê bắt đầu nhanh hơn, không phải tự mình vẽ lại hết tự đầu
Draw.io có rất nhiều mẫu biêu đồ đã được tạo sẵn với các hình dáng khác nhau phủ hợp với nhiều công việc và ngành nghé, bạn có thé lựa chọn một mẫu trong đó để chỉnh sửa lại hoặc tạo ra một mẫu mới tùy theo nhu cầu của mình Trang web được tạo
ra với mục đích tạo một biểu đồ nhanh sọn, do đó tất cả công việc của bạn chỉ là kéo
Trang 12thả các thành phần đã được tạo sẵn trong thanh công cụ và thả nó vào đúng vị trí mong muôn
4.1 Ưu điềm của Draw.io
4.2
- Có thể lựa chọn một số khung đã được tạo sẵn giúp rút ngắn thời gian
- Tao khung khá thoải mái (tủy ý co giãn kích thước khung)
- Diéu chỉnh linh hoạt
- _ Xuất, nhập file dé dang, có thể chia sẻ file cho người khác
Nhược điểm Draw.io
- _ Khó căn khung cho biếu đồ
- _ Không thể responsive được (không có dạng hiển thị khác trên màn hình mobile)
- Quan ly cac thanh phan chưa tốt lắm nên việc chuyển đổi màu sắc cùng lúc nhiều khối phải mắt thời gian đề chọn nhiều thành phần Xuất dưới các dạng như xml, html nhưng lại bị mã hóa
Trang 13II Tim hiều bài toán và phân tích thiết kế hệ thống
I1 Mục đích
- _ Xây dựng trang web bán đỗ gia dụng với giao diện đẹp, dễ dàng sử dụng
2 Phạm vi và đối tượng
- _ Demo trang web bán đỗ gia dụng dành cho các đôi tượng muốn mua sắm
hang gia dụng online tiện lợi tiết kiệm thời gian
- Đôi tượng sử dụng:
- Khách hàng:
- Nha quan tri:
3 Khao sat
3.1 Khao sat ngwoi ding
Sau khi thu thập khảo sát người dùng về bán đồ gia dụng , ta thống kê được các chức năng cơ bản sau cho người dùng như sau:
- Chức năng đăng nhập
- Chức năng đăng ký
- Chức năng admin:
+ Quản lý sản phâm (Thêm sản phẩm, Sửa sản phẩm, Xóa sản phẩm)
+ Quản lý khách hàng (Hiện danh sách user)
+ Quản lý loại (Sửa loại)
+ Quản lý đơn hàng (Hiện danh sách các đơn hàng, Cập nhật tình trạng đơn hàng, Hiện thông tin đơn hàng)
+ Quản lý doanh thu (Hiện doanh thu)
- Chức năng của người dùng: