Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin ỦY BAN NHÂN DÂN TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- NGUYỄN THỊ YẾN ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 05 năm 2019 ỦY BAN NHÂN DÂN TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: ỨNG DỤNG PHP, MÔ HÌNH MVC PATTERN ĐỂ XÂY DỰNG WEBSITE QUẢN LÝ BÁN ĐIỆN THOẠI DI ĐỘNG TRỰC TUYẾN Sinh viên thực hiện NGUYỄN THỊ YẾN MSSV: 2115031034 CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN KHÓA 2015 – 2019 Cán bộ hướng dẫn ThS. DƯƠNG PHƯƠNG HÙNG. Quảng Nam, tháng 05 năm 2019 LỜI CẢM ƠN Lời đầu tiên, em xin gởi lời cảm ơn chân thành đến quý thầy cô đã giúp đỡ chúng em thực hiện đề tài này. Đặc biệt là ThS. Dương Phương Hùng đã tận tình giúp đỡ và hướng dẫn em trong suốt quá trình thực hiện đề tài tốt nghiệp này. Đồng thời, em cũng xin cảm ơn quý thầy cô thuộc ngành Công Nghệ Thông Tin trường Đại Học Quảng Nam đã truyền đạt những kiến thức cần thiết và những kinh nghiệm quý báu cho em trong suốt thời gian 4 năm trên giảng đường để em có thể thực hiện tốt đề tài này. Đặc biệt, em xin gởi lời cảm ơn chân thành tới ThS.Hồ Hữu Linh - giáo viên chủ nhiệm lớp DT15CTT03 cùng ThS. Dương Phương Hùng thầy trưởng khoa đã giúp đỡ em rất nhiều trong quá trình học tập và công việc. Cuối cùng, em xin chân thành cảm ơn những người bạn, và các anh chị tại công ty HT ACTIVE đã luôn đồng hành, chỉ bảo nhiệt tình trong quá trình thực tập tại công ty để em có thể hoàn thành đề tài một cách tốt nhất. Trong quá trình thực hiện đề tài, do kiến thức và thời gian còn hạn chế nên không thể tránh khỏi những sai sót. Vì vậy em mong quý thầy cô thông cảm và góp ý để em có thể hoàn thiện đề tài. Và những lời góp ý đó có thể giúp em có thể tránh được những sai lầm sau này. Em xin chân thành cảm ơn i DANH MỤC BẢNG BIỂU Bảng 1.1: Sự khác biệt giữa Abstract class và Interface ................................................ 22 Bảng 2.1: Chức năng đăng nhập. ................................................................................... 28 Bảng2.2: Chức năng tìm kiếm hàng hóa. ....................................................................... 29 Bảng 2.3: Chức năng xem hàng hóa. ............................................................................. 29 Bảng 2.4: Chức năng bình luận. ..................................................................................... 30 Bảng 2.5: Chức năng đặt hàng. ...................................................................................... 31 Bảng 2.6: Chức năng liên hệ - gửi mail. ........................................................................ 31 Bảng 2.7: Chức năng đăng xuất. .................................................................................... 31 Bảng 2.8: Chức năng đăng nhập. ................................................................................... 32 Bảng 2.9: Chức năng quản lý sản phẩm. ........................................................................ 33 Bảng 2.10: Chức năng quản lý nhà sản xuất. ................................................................. 33 Bảng 2.11: Chức năng quản lý người dùng. .................................................................. 34 Bảng 2.12: Chức năng quản lý hóa đơn. ........................................................................ 34 Bảng 2.13: Chức năng quản lý bình luận. ...................................................................... 35 Bảng 2.14: Chức năng quản lý bình luận. ...................................................................... 35 Bảng 2.15: Chức năng tìm kiếm thông tin. .................................................................... 36 Bảng 2.16: Chức năng đăng xuất. .................................................................................. 36 Bảng 2.17: Bảng Products. ............................................................................................. 58 Bảng 2.18: Bảng Factories. ............................................................................................ 58 Bảng 2.19: Bảng User. ................................................................................................... 59 Bảng 2.20: Bảng Role. ................................................................................................... 59 Bảng 2.21: Bảng Userrole. ........................................................................................... 59 Bảng 2.22: Bảng News. .................................................................................................. 60 Bảng 2.23: Bảng Bills .................................................................................................... 60 Bảng 2.24. Bảng Detailbill. ............................................................................................ 61 ii Bảng 2.25. Bảng Promotions. ........................................................................................ 61 Bảng 2.26. Bảng Offers. ................................................................................................. 61 Bảng 2.27. Bảng Comments........................................................................................... 62 Bảng 2.28. Bảng Contacts. ............................................................................................. 62 Bảng 2.29: Bảng Informations ....................................................................................... 62 Bảng 2.30. Bảng Banners. .............................................................................................. 63 Bảng 2.31. Bảng Introduce............................................................................................. 63 Bảng 2.32: Bảng Logo ................................................................................................... 63 Bảng 2.33. Bảng Services .............................................................................................. 63 iii DANH MỤC HÌNH ẢNH Hình 1.1: Phương thức hoạt động của PHP. .................................................................. 10 Hình 1.2: Mô hình MVC. ............................................................................................... 17 Hình 1.3: Mô hình hoạt động chính. .............................................................................. 19 Hình1.4: Mô hình triển khai trong laravel. .................................................................... 26 Hình 2.1: Quan hệ giữa Actor admin với UC. ............................................................... 39 Hình 2.2: Quan hệ giữa Actor nhân viên bán hàng với các UC..................................... 39 Hình 2.3: Quan hệ giữa Actor nhân viên viết bài với các UC. ...................................... 39 Hình 2.4: Quan hệ giữa Actor Khách hàng với các UC................................................. 40 Hình 2.5: Xác định mối quan hệ giữa UC và UC. ......................................................... 40 Hình 2.6: Sơ đồ User case tổng quát. ............................................................................. 40 Hình 2.7: Biểu đồ tuần tự UC đăng nhập. ...................................................................... 46 Hình 2.8: Biểu đồ tuần tự UC quản lý bán hàng. ........................................................... 47 Hình 2.9: Biểu đồ tuần tự quản lý bán hàng. ................................................................. 48 Hình 2.10: Biểu đồ tuần tự UC thanh toán..................................................................... 49 Hình 2.11: Biểu đồ tuần tự UC - Thống kê. ................................................................... 49 Hình 2.12: Biểu đồ tuần tự quản lý người dùng............................................................. 50 Hình 2.13: Biểu đồ tuần tự quản lý tin tức. .................................................................... 50 Hình 2.14: Biểu đồ tuần tự quản lý đăng xuất. .............................................................. 51 Hình 2.15: Biểu đồ cộng tác UC đăng nhập. ................................................................. 51 Hình 2.16: Biểu đồ cộng tác quản lý bán hàng. ............................................................. 52 Hình 2.17: Biểu đồ cộng tác quản lý hàng hóa. ............................................................. 52 Hình 2.18: Biểu đồ cộng tác quản lý thanh toán. ........................................................... 53 Hình 2.19: Biểu đồ cộng tác thống kê. ........................................................................... 53 Hình 2.20: Biểu đồ cộng tác quản lý người dùng. ......................................................... 54 Hình 2.21: Biểu đồ cộng tác quản lý tin tức. ................................................................. 54 iv Hình 2.22: Biểu đồ lớp. .................................................................................................. 55 Hình 2.23. Biểu đồ trạng thái cho chức năng đăng nhập. .............................................. 56 Hình 2.24: Biểu đồ trạng thái cho chức năng quản lý sản phẩm. .................................. 56 Hình 2.25: Biểu đồ trạng thái cho lớp sản phẩm chức năng xem chi tiết sản phẩm. ..... 56 Hình 2.26. Biểu đồ trạng thái cho lớp hóa đơn chức năng đặt hàng. ............................. 57 Hình 2.26: Biểu đồ trạng thái cho lớp hóa đơn chức năng quản lý hóa đơn ................. 57 Hình 2.27. Biểu đồ trạng thái cho chức năng thống kê. ................................................. 57 Hình 3.1. Giao diện đăng nhập hệ thống quản lý website. ............................................ 64 Hình 3.2. Giao diện trang chủ hệ thống. ........................................................................ 64 Hình 3.3. Giao diện hiển thị danh sách người dùng....................................................... 65 Hình 3.4. Giao diện tạo người dùng. .............................................................................. 66 Hình 3.5. Giao diện xem thông tin người dùng. ............................................................ 66 Hình 3.6. Giao diện chỉnh sửa người dùng. ................................................................... 67 Hình 3.7. Giao diện tạo sản phẩm. ................................................................................. 67 Hình 3.8. Giao diện xem chi tiết sản phẩm. ................................................................... 68 Hình 3.9. Giao diện danh sách đơn hàng. ...................................................................... 68 Hình 3.10. Giao diện chi tiết đơn hàng. ......................................................................... 69 Hình 3.11. Xuất hóa đơn sang PDF. .............................................................................. 69 Hình 3.12. Giao diện trang đăng nhập. .......................................................................... 70 Hình 3.13. Giao diện đăng ký tài khoản. ....................................................................... 71 Hình 3.14. Giao diện trang chủ website bán hàng. ........................................................ 72 Hình 3.15. Giao diện trang sản phẩm cùng loại. ............................................................ 73 Hình 3.16. Giao diện trang chi tiết sản phẩm................................................................. 74 Hình 3.17. Giao diện trang tin tức.................................................................................. 75 Hình 3.18. Giao diện trang liên hệ. ................................................................................ 76 Hình 3.19. Xác nhận liên hệ của người dùng bằng email. ............................................. 77 v Hình 3.20. Giao diện đặt hàng. ...................................................................................... 77 Hình 3.21. Giao diện thanh toán hóa đơn. ..................................................................... 78 vi DANH MỤC TỪ VIẾT TẮT Chữ cái viết tắt Ký hiệu Cụm từ đầy đủ PHP Hypertext Preprocessor. HTML HyperText Markup Language CSS Cascading Style Sheets MVC Model – View - Controller OOP Object-oriented programming TMĐT Thương mại điện tử CSDL Cơ sở dữ liệu OECD Organization for Economic Cooperation and Development B2B Business to Business B2C Business to customer W3C World Wide Web Consortium WTO World Trade Organization CMD Command Prompt PK Primary key FK Foreign key vii MỤC LỤC Phần 1. MỞ ĐẦU ........................................................................................................... 1 1.1. Lý do chọn đề tài ................................................................................................... 1 1.2. Mục tiêu của đề tài ................................................................................................ 2 1.3. Đối tượng và phạm vi nghiên cứu ......................................................................... 2 1.3.1. Đối tượng ........................................................................................................ 2 1.3.2. Phạm vi nghiên cứu ......................................................................................... 2 1.4. Phương pháp nghiên cứu ....................................................................................... 2 1.5. Lịch sử nghiên cứu ................................................................................................ 3 1.6. Đóng góp của đề tài ............................................................................................... 3 1.7. Cấu trúc đề tài ........................................................................................................ 3 Phần 2. NỘI DUNG NGHIÊN CỨU ............................................................................ 4 Chương 1: CƠ SỞ LÝ THUYẾT .................................................................................. 4 1.1.Tổng quan về thương mại điện tử ....................................................................... 4 1.1.1. Khái niệm thương mại điện tử ......................................................................... 4 1.1.2. Lợi ích của việc sử dụng thương mại điện tử .................................................. 4 1.1.3. Những thách thức và khó khăn của thương mại điện tử ................................. 5 1.1.4. Cơ sở để phát triển và các loại giao dịch thương mại điện tử ......................... 6 1.2.Tổng quan về ngôn ngữ lập trình PHP............................................................... 6 1.2.1. Lịch sử phát triển của PHP .............................................................................. 6 1.2.3. Ưu và nhược điểm của PHP ............................................................................ 8 1.2.4. Tại sao nên dùng PHP ..................................................................................... 9 1.2.5. Phương thức hoạt động của PHP ................................................................... 10 1.2.6. Các loại kiểu dữ liệu ...................................................................................... 10 1.2.7. Biến - Hằng trong PHP .................................................................................. 11 1.2.8. Biểu thức điều kiện trong PH ........................................................................ 11 viii 1.2.9. Hàm trong PHP .............................................................................................. 12 1.2.10. Session và Cookie trong PHP ..................................................................... 12 1.3.Tổng quan về hệ quản trị cơ sở dữ liệu MySQL ............................................. 13 1.3.1. Lịch sử phát triển của MySQL ...................................................................... 13 1.3.2. Khái niệm ...................................................................................................... 13 1.3.3. Ưu điểm của MySQL .................................................................................... 14 1.3.4. Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL ................................ 15 1.4.Tổng quan về mô hình MVC Pattern ............................................................... 16 1.4.1. Lịch sử ra đời của mô hình MVC .................................................................. 16 1.4.2. Khái niệm ...................................................................................................... 16 1.4.3. Đặc điểm của mô hình MVC ......................................................................... 16 1.4.4. Kiến trúc mô hình MVC ................................................................................ 17 1.4.5. Quy trình hoạt động của mô hình MVC ........................................................ 17 1.4.6. Ưu điểm và nhược điểm của mô hình MVC ................................................. 18 1.4.7. Ứng dụng thực tế mô hình MVC ................................................................... 18 1.4.8. Các thành phần kiến trúc khác theo mô hình MVC ...................................... 18 1.5.Tổng quan về lập trình hướng đối tượng OOP ............................................... 19 1.5.1. Lập trình hướng đối tượng OOP là gì? .......................................................... 19 1.5.2. Ưu điểm của lập trình hướng đối tượng OOP ............................................... 20 1.5.3. Một số khái niệm cơ bản trong lập trình hướng đối tượng ........................... 20 1.5.4. Các tính chất của lập trình hướng đối tượng ................................................. 20 1.5.5. Các mức độ truy cập của một phương thức ................................................... 21 1.5.6. Sự khác biệt giữa Abstract class và Interface ................................................ 21 1.6.Tổng quan về PHP framework Laravel ........................................................... 22 1.6.1. Lịch sử phát triển của laravel ........................................................................ 22 1.6.2. Khái niệm ...................................................................................................... 23 ix 1.6.3. Các tính năng chính của Laravel Framework ................................................ 24 1.6.4. Tại sao nên dùng Framework Laravel ........................................................... 25 1.6.5. Những ưu điểm của Laravel Framework ....................................................... 25 Chương 2: KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ỨNG DỤNG ................... 28 2.1. Khảo sát bài toán ............................................................................................... 28 2.1.1. Khảo sát thực tế ............................................................................................. 28 2.1.2. Yêu cầu chức năng của ứng dụng ................................................................. 28 2.1.3. Đặc tính người dùng ...................................................................................... 37 2.1.4. Yêu cầu phi chức năng .................................................................................. 37 2.2. Phân tích hệ thống ............................................................................................. 37 2.2.1. Xác định các Actor và vai trò của Actor ....................................................... 37 2.2.2. Sơ đồ Use Case ............................................................................................. 38 2.2.3. Xác định Object ............................................................................................. 45 2.2.4. Biểu đồ tương tác .......................................................................................... 46 2.2.5. Biểu đồ lớp .................................................................................................... 55 2.2.6. Biểu đồ trạng thái .......................................................................................... 56 2.3. Thiết kế cơ sở dữ liệu ........................................................................................ 58 Chương 3: CÀI ĐẶT WEBSITE ................................................................................ 64 3.1. Một số giao diện quản lý của website .............................................................. 64 3.1.1. Giao diện đăng nhập vào hệ thống quản lý website ...................................... 64 3.1.2. Giao diện trang chủ ....................................................................................... 64 3.1.3. Giao diện quản lý người dùng ....................................................................... 65 3.1.4. Giao diện quản lý sản phẩm .......................................................................... 67 3.1.5. Giao diện quản lý đơn hàng ........................................................................... 68 3.2. Một số giao diện bán hàng của website ........................................................... 70 3.2.1. Giao diện đăng nhập ...................................................................................... 70 x 3.2.2. Giao diện trang đăng ký tài khoản ................................................................. 71 3.2.3. Giao diện trang chủ mua hàng ....................................................................... 72 3.2.4. Giao diện trang sản phẩm cùng loại .............................................................. 73 3.2.5. Giao diện trang chi tiết sản phẩm .................................................................. 74 3.2.6. Giao diện trang tin tức ................................................................................... 75 3.2.7. Giao diện trang liên hệ .................................................................................. 76 3.2.8. Giao diện trang gửi mail đến người dùng ...................................................... 77 3.2.9. Giao diện trang giỏ hàng ............................................................................... 77 3.2.10. Giao diện thanh toán hóa đơn ..................................................................... 78 Phần 3. KẾT LUẬN VÀ KIẾN NGHỊ ....................................................................... 79 1. Kết luận ............................................................................................................... 79 1.1. Kết quả đạt được ......................................................................................... 79 1.2. Hạn chế của đề tài........................................................................................ 79 1.3. Hướng phát triển ......................................................................................... 80 2. Kiến nghị ............................................................................................................. 80 Phần 4. TÀI LIỆU THAM KHẢO ............................................................................. 81 1 Phần 1. MỞ ĐẦU 1.1. Lý do chọn đề tài Hiện nay, công nghệ ngày càng phát triển mạnh mẽ và được ứng dụng ngày càng nhiều vào các lĩnh vực kinh tế, sản xuất cũng như đời sống thường nhật của con người. Một điểm tiêu biểu trong việc phát triển các công nghệ đó phải kể đến việc ứng dụng công nghệ thông tin vào khắp các lĩnh vực. Công nghệ thông tin đã góp phần to lớn cho sự phát triển của xã hội loài người. Thương mại điện tử đã thay đổi cách thức giao dịch, mua bán truyền thống và ngày càng được mọi người ưu thích sử dụng. Do đó, việc “quản lý mua bán hàng trực tuyến qua mạng ” là không thể thiếu được trong mọi doanh nghiệp, cửa hàng vừa và nhỏ. Năm 2008 là năm đầu tiên Việt Nam có sự phát triển lớn mạnh về lĩnh vực thương mại khi chính thức trở thành thành viên thứ 150 của tổ chức thương mại thế giới WTO. Với sự phát triển mạnh mẽ đó không thể phủ nhận sự đóng góp của thương mại điện tử, một lĩnh vực nóng bỏng hiện nay. Một đất nước đang phát triển mạnh mẽ, cuộc sống con người càng ngày nâng cao, mức tiêu thụ sản phẩm ngày càng tăng, nhu cầu con người ngày càng cao. Vì thế việc trao đổi mua bán cũng như quản lý hàng cần phải có sự thay đổi từ thủ công sang máy móc. Xã hội ngày càng phát triển, mức sống của người dân được nâng cao thu nhập kinh tế ngày càng được cải thiện thì chiếc điện thoại di động không còn trở nên xa lạ với mọi người nữa mà ngược lại nó là một vật dụng không thể thiếu đối với người dân hiện nay. Hầu hết mỗi người đều trang bị cho mình một chiếc điện thoại phù hợp với nhu cầu và túi tiền của mình. Tuy nhiên, với cuộc sống ngày càng bận rộn như hiện nay thì việc muốn mua một chiếc điện thoại mình ưa thích thì người tiêu dùng phải đến tận cửa hàng để chọn lựa vì thế sẽ mất khá nhiều thời gian và công sức. Cùng với các lý do nêu trên, qua tìm hiểu em được biết việc ứng dụng bán điện thoại di động trực tuyến sẽ giúp cho khách hàng giảm bớt được thời gian và công sức phải đến tận cửa hàng để mua. Muốn lựa chọn cho mình một chiếc điện thoại ưng ý phù hợp với túi tiền thì khách hàng chỉ cần ngồi bên chiếc máy tính, điện thoại, ipad có nối mạng internet là có thế mua được mặt hàng điện thoại mình cần. 2 Do đó em xin chọn thực hiện đề tài khóa luận tốt nghiệp của mình là: “ Ứng dụng PHP, MVC Pattern vào xây dựng website quản lý bán điện thoại di động trực tuyến.” cho một của hàng bán điện thoại di động. Việc xây dựng ứng dựng bán hàng trực tuyến sẽ giúp cho công việc kinh doanh trở nên thuận lợi và dễ dàng hơn, đáp ứng được nhu cầu làm việc mọi lúc, mọi nơi, đồng thời thỏa mãn nhu cầu xem thông tin, mua bán trực tuyến,…. Của mọi đối tượng khách hàng. 1.2. Mục tiêu của đề tài - Xây dựng website quản lý bán điện thoại di động trực tuyến với giao diện trực qua, hỗ trợ quản lý tương đối hoàn chỉnh, phục vụ một cách hiệu quả cho người dùng và quản lý của hàng trực tuyến. - Tìm hiểu về thương mại điện tử. - Tìm hiểu và sử dụng được PHP, MVC pattern, OOP và Laravel Framework. - Tìm hiểu và áp dụng được một số công nghệ khác để thiết kế giao diện website như: HTML5 CSS3, Bootstrap 4.x – jquery 3.x, Ajax,…. - Website được xây dựng với định hướng giúp việc mua sắm điện thoại của khách hàng dễ dàng và nhanh gọn hơn, không mất thời gian và công sức. 1.3. Đối tượng và phạm vi nghiên cứu 1.3.1. Đối tượng - Các website quản lý cửa hàng điện thoại di động. - Tổng quan về thương mại điện tử. - Ngoài ngôn ngữ phía backend như: PHP, Laravel Framework, mô hình MVC, OPP thì áp dụng thêm một số công cụ phía frontend như: HTML5 CSS3, Bootstrap 4.x, Jquery 3.x, Ajax,… - Cách phân tích, thiết kế và xây dựng một website thương mại điện tử hoàn chỉnh. 1.3.2. Phạm vi nghiên cứu Nghiên cứu những vấn đề quản trị ở những cửa hàng vừa và nhỏ, có thể định hướng ứng dụng cho các cửa hàng lớn. 1.4. Phương pháp nghiên cứu Phương pháp nghiên cứu được sử dụng trong đề tài bao gồm: 3 - Phương pháp phân tích lý thuyết là phương pháp phân tích, phát hiện và khai thác các khía cạnh khác nhau của lý thuyết để từ đó chọn lọc các thông tin cần thiết để phục vụ cho đề tài nghiên cứu. - Phương pháp quan sát là phương pháp tri giác có mục đích, có kế hoạch thu thập thông tin quan sát được từ thực tế. - Phương pháp chuyên gia là phương pháp xin ý kiến từ giảng viên hướng dẫn, giảng viên bộ môn xác định được hướng xây dựng đề tài, giải quyết các vấn đề khó khăn trong việc thực hiện nội dung khóa luận. - Phương pháp tổng hợp: Áp dụng lựa chọn tốt nhất từ bước phân tích kết hợp với công nghệ, từ đó từng bước hoàn thành đề tài. 1.5. Lịch sử nghiên cứu Đề tài không phải là những vấn đề mới trong khoa học nhưng thực sự là một nghiên cứu ứng dụng lý thuyết và thực tiễn với sinh viên năm cuối về công nghệ thông tin. 1.6. Đóng góp của đề tài Qua đề tài nghiên cứu này, giúp chúng ta có cái nhìn rõ hơn về thương mại điện tử. Nhận thấy được thế mạnh và lợi ích mà thương mại điện tử mang lại. Bên cạnh đó tiếp cận được những cải tiến trong ngôn ngữ lập trình và các công cụ mới. Đồng thời, đề tài hoàn thành sẽ đóng góp vào công tác quản lý, mua bán điện thoại một cách tiện lợi cho thị trường thương mại điện tử. 1.7. Cấu trúc đề tài Nội dung đề tài gồm: Chương I: Cơ sở lý thuyết. Chương II: Khảo sát và phân tích hệ thống ứng dụng. Chương III: Thiết kế và cài đặt hệ thống. Kết luận và kiến nghị. Tài liệu tham khảo. Phụ lục. 4 Phần 2. NỘI DUNG NGHIÊN CỨU Chương 1: CƠ SỞ LÝ THUYẾT 1.1. Tổng quan về thương mại điện tử 1.1.1. Khái niệm thương mại điện tử Hiện nay có nhiều khái nhiệm thương mại điện tử như Electronic Commerce hay e-Commerce trong đó có một khái niệm Thương mại điện tử khá nổi tiếng của các tổ chức quốc tế.Theo tổ chức thương mại thế giới WTO thì thương mại điện tử là việc sản xuất -> tiếp thị -> bán -> phân phối sản phẩm hành hóa và dịch vụ thông qua các phương tiện điện tử. Theo tổ chức hợp tác và phát triển kinh tế OECD có 2 cách định nghĩa rộng và hẹp về giao dịch thương mại điện tử như sau: a. Theo nghĩa rộng Giao dịch thương mại điện tử là việc mua hoặc bán hàng dịch vụ giữa danh nghiệp, người tiêu dùng, chính phủ và các tổ chức nhà nước hoặc tư nhân được tính hàng thông qua các mạng kết nối qua trung gian máy tính.Hàng hóa hoặc dịch vụ được đặt mua qua mạng nhưng việc thanh toán và giao hàng hóa có thể được thực hiện theo phương pháp truyền thống. b. Theo nghĩa hẹp Giao dịch thương mại điện tử là việc mua hoặc bán hàng hóa dịch vụ được tiến hành thông qua internet, giao dịch TMĐT theo định nghĩa này bao gồm: các đơn hàng được nhận hoặc đặt qua bất kì ứng dụng nào trên nền internet trong các giao dịch tự động bất kì hình thức truy cập internet thông qua di động hay tivi loại trừ các đơn hàng qua điện thoại, fax hay email. 1.1.2. Lợi ích của việc sử dụng thương mại điện tử a. Đối với doanh nghiệp Lợi ích lớn nhất mà thương mại điện tử đem lại là tiết kiệm chi phí và tạo thuận lợi cho các bên giao dịch. Với thương mại điện tử bạn không phải tốn kém nhiều cho việc thuê của hàng với đông đảo nhân viên phục vụ, bạn cũng không cần đầu tư nhiều cho kho chứa thay vào đó bạn chỉ cần một khoản tiền nhỏ để xây đựng một website bán hàng qua mạng sau đó chỉ tốn 10 phí để duy trị và vận hành website mỗi tháng. 5 Doanh nghiệp có thể marketing toàn cầu với chi phí cực kì thấp, bạn có thể đưa thông tin quảng cáo của bạn đến với hàng trăm triệu người xem từ khắp nơi trên thế giới.Đây là điều mà chỉ có thương mại điện tử làm được cho doanh nghiệp. b. Đối với người tiêu dùng Thương mại điện tử mở rộng khả năng lựa chọn hàng hóa, dịch vụ người cung cấp. Với thương mại điện tử khách hàng không còn giới hạng về địa lý hay thời gian làm việc, họ có thể mua hàng mọi lúc, mọi nơi. Lựa chọn giữa hàng trăm thậm chí hàng nghìn nhà cung cấp giữa các vùng miền khác nhau. c. Đối với xã hội Thương mại điện tử tạo ra một phương thức kinh doanh và làm việc mới phù hợp với cuộc sống công nghiệp hiện đại. Thương mại điện tử tạo ra một sân chơi mới cho các danh nghiệp buộc họ phải đổi mới, sáng tạo để đưa ra chiến lược kinh doanh và dịch vụ riêng cho sản phẩm dịch vụ từ đó góp phần phát triển cho các doanh nghiệp nói riêng và nền kinh tế tổng thể nói chung. Mặc dù mang lợi những lợi ích kinh tế rất lớn nhưng việc ứng dụng thương mại điện tử cũng không tránh khỏi những thách thức khó khăn. 1.1.3. Những thách thức và khó khăn của thương mại điện tử a. Đối với cơ quan quản lý nhà nước Thách thức về xây dựng và áp dụng chính sách. b. Đối với các cá nhân tổ chức Bản chất của thương mại điện tử là giao dịch một cách gián tiếp, bên mua và bên bán thậm chí còn không biết với nhau điều này dẫn đến những lo ngại riêng giữa người mua và người bán đó là thách thức về lòng tin. Người mua thì lo sợ số thẻ ngân hàng của họ khi truyền đi trên mạng có thể bị kẻ xấu hoặc bên bán lợi dụng và sử dụng bất hợp pháp. Còn người bán thì lo ngại về khả năng thanh toán và quá trình thanh toán của bên mua. c. Đối với các doanh nghiệp Việc thay đổi cơ cấu, nhân sự và quy trình làm việc cũng như là một thách thức đối với nhà quản lý. Để triển khai thành công và hiệu quả thương mại điện tử thì doanh nghiệp phải có một cơ sở hạng tầng thương mại thông tin vững chắc. Tiếp đó phải có đội ngũ IT đủ mạnh để có khả năng vận hành, quản trị và phát triển hệ thống này. 6 1.1.4. Cơ sở để phát triển và các loại giao dịch thương mại điện tử a. Cơ sở để phát triển thương mại điện tử Để phát triển thương mại điện tử cần phải có hội đủ một số cơ sở: - Hạ tầng kỹ thuật internet phải đủ nhanh, mạnh đảm bảo truyền tải các nội dung thông tin bao gồm âm thanh, hình ảnh trung thực và sống động. - Hạ tầng pháp lý: phải có luật về thương mại điện tử công nhận tính pháp lý của các chứng từ điện tử, các hợp đồng điện tử ký qua mạng,… - Phải có cơ sở thanh toán điện tử an toàn bảo mật. - Phải có hệ thống cơ sở chuyển phát hàng nhanh chóng, kịp thời và tin cậy - Phải có hệ thống an toàn bảo mật cho các giao dịch, chống xâm nhập trái phép, chống virus, chống thoái thác . - Phải có nhân lực am hiểu kinh doanh, công nghệ thông tin, thương mại điện tử để triển khai tiếp thị, quảng cáo, xúc tiến, bán hàng và thanh toán qua mạng b. Các loại hình giao dịch thương mại điện tử Business-to-business (B2B) : Mô hình thương mại điện tử giữa các doanh nghiệp với doanh nghiệp. Các loại giao dịch B2B cơ bản: - Bên Bán - (một bên bán nhiều bên mua) là mô hình dựa trên công nghệ web trong đó môt cty bán cho nhiều cty mua. - Bên mua - một bên mua - nhiều bên bán. - Sàn giao dịch - nhiều bên bán - nhiều bên mua. - Thương mại điện tử phối hợp - các đôi tác phối hợp nhau ngay trong quá trình thiết kế chế tạo sản phẩm. Business-t o-consumer (B2C): Mô hình thương mại điện tử giữa doanh nghiệp và người tiêu dùng. Hai loại giao dịch trên là giao dịch cơ bản của thương mại điện tử. Ngoài ra trong thương mại điện tử người ta còn sử dụng các loại giao dịch: Govement-to- Business (G2B), Government-to-citizens (G2C), …. 1.2. Tổng quan về ngôn ngữ lập trình PHP 1.2.1. Lịch sử phát triển của PHP 7 a. PHPFI PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") được phát triển từ một sản phẩm có tên là PHPFI. PHPFI do Rasmus 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 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 trên mạng. Ông đã đặt tên cho bộ mã kịch bản này là ''''Personal Home Page Tools'''' PHPFI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta. Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0. b. PHP 3 PHP 3.0 là phiên bản đầu tiên thấy một hình ảnh gần gũi với các phiên bản PHP mà được biết ngày nay. Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó. c. PHP 4 Một động cơ mới, có tên ''''Zend Engine'''' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, 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 Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20 số tên miền trên mạng Internet. d. 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), 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 Zend Engine 2.0, lõi của PHP 5.0. 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. 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. 8 e. PHP 6 Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử. Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại. f. PHP7 là một phiên bản của ngôn ngữ PHP được giới thiệu vào ngày 3 tháng 9 năm 2015, đây là phiên bản mới nhất và được trông đợi nhất bởi có nhiều sự thay đổi về cú pháp, bổ sung các thư viện hiện đại giúp ngôn ngữ PHP trở nên đa dạng hơn. 1.2.2. Khái niệm về PHP PHP 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ễ 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 C và Java, dễ học 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. 1.2.3. Ưu và nhược điểm của PHP a. Ưu điểm Ưu điểm đầu tiên đó chính là việc PHP được sử dụng miễn phí, vì thế nó là yếu tố vô cùng tuyệt vời cho những ai muốn học về ngôn ngữ lập trình này. Thứ hai, cấu trúc của PHP cực đơn giản, thế nên đối với các bạn lập trình viên khi tìm hiểu và theo họ nó sẽ không bị mất quá nhiều thời gian mới có thể học được. Thứ ba, thư viện mà PHP tạo ra thì có sự phong phú, cũng như được cộng đồng hỗ trợ một cách mạnh mẽ. Thứ tư, khi học về PHP thì các bạn sẽ có được cơ hội về việc làm là rất lớn, mức lương của nó cũng khá cao nếu như chúng tôi không muốn nói là khủng, chắc chắn là các bạn chưa khi nào nghĩ tới. Thứ năm, PHP không chỉ dừng lại ở những tính năng hiện tại, trong tương lai thì nó còn phát triển mạnh mẽ hơn nữa để khẳng định được vị trí của mình 9 luôn là cao ở trong bảng danh sách thực hiện điều tra, khảo sát mỗi năm về ngôn ngữ lập trình trong công nghệ thông tin. b. Nhược điểm của PHP Thứ nhất, PHP có hạn chế về cấu trúc của ngữ pháp, bởi nó không được thiết kế gọn gàng và có phần đẹp mắt như những ngôn ngữ trong lập trình khác. Thứ hai, PHP chỉ có thể hoạt động và sử dụng trên các ứng dụng trong web. 1.2.4. Tại sao nên dùng PHP a. PHP được các ông lớn tin dùng PHP ra đời từ năm 1994, là ngôn ngữ lập trình Web phổ biến nhất hiện nay. Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở rộng cho ứng dụng PHP có thể nói là không có giới hạn. b. Tính Cộng đồng của PHP Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP được coi là khá lớn và có chất lượng. c. Thư viện PHP phong phú Nguyên nhân chủ yếu khiến PHP được đa số lập trình viên tin dùng và ngày càng phát triển mạnh mẽ đó là có các framework đa dạng, thư viện code phong phú giúp chúng ta dễ dàng lựa chọn một sản phẩm phù hợp để triển khai ứng dụng. PHP có thể tương tác với hầu hết các loại ứng dụng phổ biến như xử lý hình ảnh, nén dữ liệu, mã hóa, thao tác file PDF, Office, Email, Streaming… d. PHP có nhiều Framework hỗ trợ Có khá nhiều các Framework hỗ trợ cho PHP khiến nó trở thành một trong những ngôn ngữ lập trình Web phát triển và phổ biến nhất thế giới. Việc sử dụng Framework giúp cho việc lập trình trở nên nhanh và hiệu quả hơn. Một số Framework phổ biến như: Laravel, CodeIgniter, Yii 2, Phalcon, CakePHP,... e. Làm việc với nhiều hệ cơ sở dữ liệu PHP thường đi kèm với MySQL như 1 cặp chiến hữu. PHP hỗ trợ MySQL và các hệ cơ sở dữ liệu khác như Oracle, SQL Server, DB2… f. Tính bảo mật cao 10 Các bản vá lỗi cho PHP cũng như các sản phẩm từ PHP cũng rất nhanh chóng do có nguồn cộng đồng hỗ trợ đông đảo, mạnh mẽ. g. Thị trường tương lai của PHP Với việc ngày càng có nhiều ứng dụng lớn viết bằng PHP, sự đa dạng trong ứng dụng và Framework làm cho thị trường và tương lai dành cho các bạn yêu thích PHP là rất lớn. Rất nhiều công ty đang chọn PHP làm ngôn ngữ phát triển website cho khách hàng cũng như sản phẩm của riêng họ nên việc hiểu biết và chuyên sâu về công nghệ web nói chung và chuyên sâu về PHP nói riêng sẽ là một lợi thế rất lớn cho các bạn. 1.2.5. Phương thức hoạt động của PHP PHP là ngôn ngữ lập trình kịch bản được chạy ở phía server nhằm tạo ra các mã HTML ở phía client (máy khách). Khi người dùng gọi đến trang PHP thì Web server sẽ triệu gọi PHP Engine để phiên dịch trang PHP và trả dữ liệu về trình duyệt của người dùng bằng định dạng HTML. Quá trình này diễn ra khi người dùng tương tác với trang web và trang web cũng thay đổi theo tương ứng tạo thành trang web động. Hình 1.1: Phương thức hoạt động của PHP. 1.2.6. Các loại kiểu dữ liệu a. Kiểu Int (kiểu số nguyên) Kiểu INT(viết tắt của integer) là một kiểu dữ liệu dạng số nguyên và nó có thể hoạt động dưới nhiều kiểu cơ số khác nhau. b. Kiểu Float (kiểu số thực) - Kiểu số thực có thể hiểu nôm na là số có phần dư,.. như: 5.5 hoặc 8.9. - Trong PHP kiểu số thực tồn tại ở 2 dạng là float và double. c. Kiểu Boolean 11 Kiểu boolean trong PHP là một kiểu dữ liệu mà giá trị của nó chỉ tồn tại 2 giá trị TRUE, FALSE (có thể viết hoa, thường cũng được) d. Kiểu String (kiểu chuổi) Kiểu chuỗi trong PHP tồn tại ở hai dạng là String và Char. Để khai báo chuỗi thì giá trị của chuỗi phải được đặt trong cặp dấu ngoặc '''' hoặc ". e. Kiểu Array (kiểu mảng) Kiểu mảng hay còn gọi là array trong PHP là một danh sách các phần tử có cùng, hoặc không cùng kiểu dữ liệu. Nó gồm có 2 loại mảng là mảng một chiều và mảng đa chiều và trong mỗi loại mảng đó nó lại phân ra thành mảng tuần tự và mảng bất tuần tự. Và để truy xuất phần tử trong mảng thì chúng ta cần phải dựa vào vị trí của nó. f. Kiểu Null (kiểu rỗng) Đây là một kiểu dữ liệu rỗng. Khi khai báo biến kiểu này bộ nhớ sẽ tiếp nhận tên biến mà không tốn thêm bất kỳ một ô nhớ nào. g. Kiểu Object Object là một kiểu dữ liệu lưu trữ dữ liệu và thông tin của đối tượng. 1.2.7. Biến - Hằng trong PHP a. Biến Biến là một giá trị có thể thay đổi khi chương trình thực thi. Khi biến được tạo sẽ xuất hiện một vùng nhớ để lưu trữ. Biến trong PHP chỉ tồn tại trong thời gian server phát sinh trang web. Sau khi đã phát sinh xong trang web, tất cả các biến đều bị xóa đi. b. Hằng Khác với biến, hằng số là giá trị không thể thay đổi được. 1.2.8. Biểu thức điều kiện trong PH a. Biểu thức điều kiện IF Là biểu thức điều kiện trong PHP kiểm tra một hoặc tổ hợp biểu thức điều kiện nào đó. Nếu biểu thức trả về true thì thực thi các dòng lệnh. Nếu không thì không làm gì cả. b. Biểu thức If…Else 12 Là biểu thức kiểm tra một hoặc tổ hợp biểu thức điều kiện nào đó. Nếu trả về true thì sẽ thực thi khối lệnh bao trong if , còn không thì thực thi khối lệnh được bao bởi else. c. Biểu thức Elseif Là biểu thức kiểm tra một hoặc một tổ hợp biểu thức điều kiện nào đó, nếu biểu thức trả về giá trị true thì khối lệnh bên trong sẽ được thực thi. d. Biểu thức Switch…Case Là cú pháp kiểm tra sự thỏa mãn của tất cả các trường hợp của biểu thức. Tương tự như elseif. 1.2.9. Hàm trong PHP Hàm nghĩa là một tập hợp các đoạn mã và nó sẽ thực thi các đoạn mã đó khi gọi hàm ra, nó sẽ được thực thi lại nhiều lần hoặc thực thi trong một trường hợp nhất định. Có nghĩa là khi bạn tạo hàm thì các đoạn mã bên trong đó sẽ không thực thi cho đến khi được gọi ra bên ngoài. 1.2.10. Session và Cookie trong PHP a. Session Session là phiên làm việc. Nó là cách đơn giản để lưu trữ 1 biến và khiến biến đó có thể tồn tại từ trang này sang trang khác. Hoạt động của Session: - Session khi sinh ra được lưu trên 1 file có tên dài dòng, khó đoán và được tạo ngẫu nhiên là session id trên máy chủ, và đồng thời ở máy client cũng có 1 cookie sinh ra có nội dung (hay giá trị) đúng như session id (để có thể so khớp session nào là của client nào). - Đối với mỗi ngôn ngữ lập trình web sẽ có tên cookie quy định như php là PHPSESSID, jsp là JSESSIONID,… Các giá trị của biến session sẽ được lưu trong file đó (khác so với các biến thông thường là được lưu trong bộ nhớ server – trong php file nội dung được lưu trong thư mục thiết lập trong file php.ini (tham số session.savepath). b. Cookie Cookie là một phần dữ liệu được lưu trên máy khách. Mỗi khi máy khách gửi một yêu cầu tới máy chủ nào đó, thì nó sẽ gửi phần dữ liệu được lưu trong cookie tương ứng với máy chủ đó. 13 Trong Cookie có một số thông số sau: - Địa chỉ URL mà trình duyệt sẽ gửi cookie tới - Thời gian hết hạn của cookie - Các cặp biến: giá trị được lưu trữ liên tục Hoạt động của Cookie: - Khác với dữ liệu gửi từ form (POST hay GET) thì cookies ẽ được trình duyệt tự động gửi đi theo mỗi lần truy cập lên máy chủ. - Trong quá trình làm việc, cookie có thể bị thay đổi giá trị. Cookie sẽ bị vô hiệu hoá nếu cửa sổ trình duyệt điều khiển cookie đóng lại và cookie hết thời gian có hiệu lực. Theo mặc định, thời gian “sống” của cookies là tồn tại cho đến khi cửa sổ trình duyệt sử dụng cookies bị đóng. Tuy nhiên người ta có thể thiết lập tham số thời gian để cookie có thể sống lâu hơn (6 tháng chẳng hạn). Ví dụ như chế độ Remember ID Password của 1 số trang web. 1.3. Tổng quan về hệ quản trị cơ sở dữ liệu MySQL 1.3.1. Lịch sử phát triển của MySQL Ngày nay ứng dụng web có rất nhiều lựa chọn cơ sở dữ liệu (database), đối với các nên tảng mã nguồn mở nhất là PHP, MySQL là sự lựa chọn vô cùng phổ biến trong một thời gian dài. Phiên bản đầu tiên của MySQL phát hành năm 1995 Công ty Sun Microsystems mua lại MySQL AB trong năm 2008 Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems. Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB. Oracle tiếp tục phát triển MySQL lên phiên bản 5.5. 2013 MySQL phát hành phiên bản 5.6 2015 MySQL phát hành phiên bản 5.7 MySQL đang được phát triển lên phiên bản 8.0. 1.3.2. Khái niệm MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, 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 14 CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. 1.3.3. Ưu điểm của MySQL a. Linh hoạt Sự linh hoạt về flatform là 1 đặc tính nổi bật của MySQL với các phiên bản đang được hỗ trợ của Linux, Unix, Windows, MySQL,….. b. Thực thi cao Các chuyên gia cơ sỡ dữ liệu có thể cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù thông qua kiến trúc storage-engine. MySQL có thể đáp ứng khả năng xử lý những yêu cầu khắt khe nhất của từng hệ thống, MySQL còn đưa ra các “công cụ” cần thiết cho các hệ thống doanh nghiệp khó tính bằng tiện ích tải tốc độ cao, bộ nhớ cache và các cơ chế xử lý nâng cao khác. c. Sử dụng ngay Các tiêu chuẩn đảm bảo của MySQL giúp cho người dùng vững tin và chọn sử dụng ngay, MySQL đưa ra nhiều tùy chọn và các giải pháp để người sử dụng dùng ngay cho server cơ sở dữ liệu MySQL d. Hỗ trợ giao dịch MySQL hỗ trợ giao dịch mạnh 1 cách tự động, thống nhất, độc lập và bền vững, ngoài ra khả năng giao dịch cũng được phân loại và hỗ trợ giao dịch đa dạng mà người viết không gây trở ngại cho người đọc và ngược lại. e. Nơi tin cậy để lưu trữ web và dữ liệu Do MySQL có engine xử lý tốc độ cao và khả năng chèn dữ liệu nhanh, hỗ trợ tốt cho các chức năng chuyên dùng cho web,… Nên MySQL là lựa chọn tốt nhất cho các ứng dụng web và các ứng dụng web doanh nghiệp. f. Bảo mật tốt Doanh nghiệp nào cũng cần tính năng bảo mật dữ liệu tuyệt đối vì đó chính là lợi ích quan trọng hàng đầu và đó cũng là lý do mà các chuyên gia về cơ sỡ dữ liệu chọn dùng MySQL. MySQL có các kỹ thuật mạnh trong việc xác nhận truy cập cơ sở dữ liệu và chỉ có người dùng đã được xác nhận mới có thể truy cập vào server cơ sở dữ liệu. g. Phát triển ứng dụng hỗn hợp 15 MySQL cung cấp hỗ trợ hỗn hợp cho bất kỳ sự phát triển ứng dụng nào nên MySQL được xem là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới. h. Dễ quản lý Quá trình cài đặt MySQL diễn ra khá nhanh chóng trên Microsoft Windows, Linux, Macintosh hoặc Unix. Sau khi cài đặt, các tính năng tự động mở rộng không gian, tự khởi động lại và cấu hình động được thiết lập sẵn sàng cho người quản trị cơ sở dữ liệu làm việc. i. Mã nguồn tự do và hổ trợ xuyên suốt Nhiều doanh nghiệp lo lắng việc sử dụng mã nguồn mở là không an toàn và không được hỗ trợ tốt vì đa số tin vào các phần mềm có bản quyền, nhưng đối với MySQL, các nhà doanh nghiệp hoàn toàn có thể yên tâm về điều này, MySQL có chính sách bồi thường hẳn hoi và luôn hỗ trợ tối đa cho quý doanh nghiệp. j. Chi phí thấp Đối với các dự án phát triển mới, nếu các doanh nghiệp sử dụng MySQL thì đó là một chọn lựa đúng đắn vừa tiết kiệm chi phí vừa đáng tin cậy. 1.3.4. Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL a. Tốc độ MySQL rất nhanh, những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có. b. Dễ sử dụng MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản, ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn . c. Giá thành MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức. d. Hỗ trợ ngôn ngữ truy vấn MySQL hiểu SQL là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại e. Năng lực Nhiều client có thể truy cập đến server trong cùng một thời gian. Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời. f. Kết nối và bảo mật 16 MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào. g. Tính linh động MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS2. MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server. h. Sự phân phối rộng MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn. i. Sự hổ trợ Bạn có thể tìm thấy các tài nguyên có sẵn mà MySQL hỗ trợ. Cộng đồng MySQL rất có trách nhiệm. Họ trả lời các câu hỏi trên mailing list thường chỉ trong vài phút. Khi lỗi được phát hiện, các nhà phát triển sẽ đưa ra cách khắc phục nhanh nhất. 1.4. Tổng quan về mô hình MVC Pattern 1.4.1. Lịch sử ra đời của mô hình MVC MVC là viết tắt của Model - View – Controller đượ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-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 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. 1.4.2. Khái niệm MVC 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. 1.4.3. Đặc điểm của mô hình MVC 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 17 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. 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. 1.4.4. Kiến trúc mô hình MVC Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller: - Model: là nơi chứa những...
NỘI DUNG NGHIÊN CỨU
1.1.1 Khái niệm thương mại điện tử
Hiện nay có nhiều khái nhiệm thương mại điện tử như Electronic Commerce hay e-Commerce trong đó có một khái niệm Thương mại điện tử khá nổi tiếng của các tổ chức quốc tế.Theo tổ chức thương mại thế giới WTO thì thương mại điện tử là việc sản xuất -> tiếp thị -> bán -> phân phối sản phẩm hành hóa và dịch vụ thông qua các phương tiện điện tử
Theo Tổ chức Hợp tác và Phát triển Kinh tế OECD, giao dịch thương mại điện tử được định nghĩa theo hai nghĩa rộng và hẹp:
Giao dịch thương mại điện tử là quá trình thực hiện giao dịch mua hoặc bán hàng hóa/dịch vụ thông qua môi trường mạng internet, kết nối giữa các bên tham gia giao dịch Trong giao dịch thương mại điện tử, hàng hóa hoặc dịch vụ được đặt hàng trực tuyến, còn quá trình thanh toán và giao nhận hàng hóa có thể được thực hiện theo cả hình thức truyền thống (tiền mặt, chuyển khoản) hoặc phương thức trực tuyến (ví điện tử, thẻ tín dụng).
Giao dịch thương mại điện tử (TMĐT) là hình thức mua bán hàng hóa và dịch vụ trực tuyến thông qua hệ thống Internet Bao gồm cả đơn hàng nhận hoặc đặt qua mọi ứng dụng, website trên Internet, thiết bị di động hoặc TV Loại trừ các đơn hàng thông qua điện thoại, fax hoặc email.
1.1.2 Lợi ích của việc sử dụng thương mại điện tử a Đối với doanh nghiệp
Lợi ích lớn nhất mà thương mại điện tử đem lại là tiết kiệm chi phí và tạo thuận lợi cho các bên giao dịch Với thương mại điện tử bạn không phải tốn kém nhiều cho việc thuê của hàng với đông đảo nhân viên phục vụ, bạn cũng không cần đầu tư nhiều cho kho chứa thay vào đó bạn chỉ cần một khoản tiền nhỏ để xây đựng một website bán hàng qua mạng sau đó chỉ tốn 10% phí để duy trị và vận hành website mỗi tháng.
CƠ SỞ LÝ THUYẾT
Tổng quan về thương mại điện tử
1.1.1 Khái niệm thương mại điện tử
Hiện nay có nhiều khái nhiệm thương mại điện tử như Electronic Commerce hay e-Commerce trong đó có một khái niệm Thương mại điện tử khá nổi tiếng của các tổ chức quốc tế.Theo tổ chức thương mại thế giới WTO thì thương mại điện tử là việc sản xuất -> tiếp thị -> bán -> phân phối sản phẩm hành hóa và dịch vụ thông qua các phương tiện điện tử
Theo tổ chức hợp tác và phát triển kinh tế OECD có 2 cách định nghĩa rộng và hẹp về giao dịch thương mại điện tử như sau: a Theo nghĩa rộng
Giao dịch thương mại điện tử là việc mua hoặc bán hàng / dịch vụ giữa danh nghiệp, người tiêu dùng, chính phủ và các tổ chức nhà nước hoặc tư nhân được tính hàng thông qua các mạng kết nối qua trung gian máy tính.Hàng hóa hoặc dịch vụ được đặt mua qua mạng nhưng việc thanh toán và giao hàng hóa có thể được thực hiện theo phương pháp truyền thống b Theo nghĩa hẹp
Giao dịch thương mại điện tử là việc mua hoặc bán hàng hóa dịch vụ được tiến hành thông qua internet, giao dịch TMĐT theo định nghĩa này bao gồm: các đơn hàng được nhận hoặc đặt qua bất kì ứng dụng nào trên nền internet trong các giao dịch tự động bất kì hình thức truy cập internet thông qua di động hay tivi loại trừ các đơn hàng qua điện thoại, fax hay email
1.1.2 Lợi ích của việc sử dụng thương mại điện tử a Đối với doanh nghiệp
Lợi thế lớn nhất của thương mại điện tử là tiềm năng tiết kiệm chi phí đáng kể Không còn tốn kém chi phí thuê địa điểm, nhân viên phục vụ và kho chứa, doanh nghiệp chỉ cần đầu tư một khoản nhỏ vào việc thiết lập website và duy trì chi phí vận hành khoảng 10% mỗi tháng Điều này giải phóng nguồn vốn đáng kể, cho phép doanh nghiệp đầu tư vào các hoạt động cốt lõi khác, tăng khả năng cạnh tranh và tối ưu hóa lợi nhuận.
Doanh nghiệp có thể marketing toàn cầu với chi phí cực kì thấp, bạn có thể đưa thông tin quảng cáo của bạn đến với hàng trăm triệu người xem từ khắp nơi trên thế giới.Đây là điều mà chỉ có thương mại điện tử làm được cho doanh nghiệp b Đối với người tiêu dùng
Thương mại điện tử mở rộng khả năng lựa chọn hàng hóa, dịch vụ người cung cấp Với thương mại điện tử khách hàng không còn giới hạng về địa lý hay thời gian làm việc, họ có thể mua hàng mọi lúc, mọi nơi Lựa chọn giữa hàng trăm thậm chí hàng nghìn nhà cung cấp giữa các vùng miền khác nhau c Đối với xã hội
Thương mại điện tử mang đến phương thức kinh doanh, làm việc mới, phù hợp với nhịp sống công nghiệp Nó tạo ra cạnh tranh mới, thúc đẩy doanh nghiệp cải tiến, sáng tạo để đưa ra chiến lược và dịch vụ riêng, qua đó phát triển doanh nghiệp và nền kinh tế chung Tuy nhiên, bên cạnh những lợi ích kinh tế, việc ứng dụng thương mại điện tử cũng đối mặt với không ít thách thức.
1.1.3 Những thách thức và khó khăn của thương mại điện tử a Đối với cơ quan quản lý nhà nước
Thách thức về xây dựng và áp dụng chính sách b Đối với các cá nhân tổ chức
Bản chất của thương mại điện tử là giao dịch một cách gián tiếp, bên mua và bên bán thậm chí còn không biết với nhau điều này dẫn đến những lo ngại riêng giữa người mua và người bán đó là thách thức về lòng tin Người mua thì lo sợ số thẻ ngân hàng của họ khi truyền đi trên mạng có thể bị kẻ xấu hoặc bên bán lợi dụng và sử dụng bất hợp pháp Còn người bán thì lo ngại về khả năng thanh toán và quá trình thanh toán của bên mua c Đối với các doanh nghiệp
Việc thay đổi cơ cấu, nhân sự và quy trình làm việc cũng như là một thách thức đối với nhà quản lý Để triển khai thành công và hiệu quả thương mại điện tử thì doanh nghiệp phải có một cơ sở hạng tầng thương mại thông tin vững chắc Tiếp đó phải có đội ngũ IT đủ mạnh để có khả năng vận hành, quản trị và phát triển hệ thống này
1.1.4 Cơ sở để phát triển và các loại giao dịch thương mại điện tử a Cơ sở để phát triển thương mại điện tử Để phát triển thương mại điện tử cần phải có hội đủ một số cơ sở:
- Hạ tầng kỹ thuật internet phải đủ nhanh, mạnh đảm bảo truyền tải các nội dung thông tin bao gồm âm thanh, hình ảnh trung thực và sống động
- Hạ tầng pháp lý: phải có luật về thương mại điện tử công nhận tính pháp lý của các chứng từ điện tử, các hợp đồng điện tử ký qua mạng,…
- Phải có cơ sở thanh toán điện tử an toàn bảo mật
- Phải có hệ thống cơ sở chuyển phát hàng nhanh chóng, kịp thời và tin cậy
- Phải có hệ thống an toàn bảo mật cho các giao dịch, chống xâm nhập trái phép, chống virus, chống thoái thác
- Phải có nhân lực am hiểu kinh doanh, công nghệ thông tin, thương mại điện tử để triển khai tiếp thị, quảng cáo, xúc tiến, bán hàng và thanh toán qua mạng b Các loại hình giao dịch thương mại điện tử
Business-to-business (B2B) : Mô hình thương mại điện tử giữa các doanh nghiệp với doanh nghiệp
Các loại giao dịch B2B cơ bản:
- Bên Bán - (một bên bán nhiều bên mua) là mô hình dựa trên công nghệ web trong đó môt cty bán cho nhiều cty mua
- Bên mua - một bên mua - nhiều bên bán
- Sàn giao dịch - nhiều bên bán - nhiều bên mua
- Thương mại điện tử phối hợp - các đôi tác phối hợp nhau ngay trong quá trình thiết kế chế tạo sản phẩm
Business-t o-consumer (B2C): Mô hình thương mại điện tử giữa doanh nghiệp và người tiêu dùng
Hai loại giao dịch trên là giao dịch cơ bản của thương mại điện tử Ngoài ra trong thương mại điện tử người ta còn sử dụng các loại giao dịch: Govement-to-Business (G2B), Government-to-citizens (G2C), ….
Tổng quan về ngôn ngữ lập trình PHP
1.2.1 Lịch sử phát triển của PHP
PHP (viết tắt hồi quy "PHP: Hypertext Preprocessor") được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus 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 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 trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal Home Page Tools'
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0 b PHP 3
PHP 3.0 là phiên bản đầu tiên thấy một hình ảnh gần gũi với các phiên bản PHP mà được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó c PHP 4
Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, 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 4 được đánh dấu bằng sự gia tăng đáng kể về số lượng nhà phát triển sử dụng PHP, lên tới hàng trăm nghìn người Đồng thời, hàng triệu trang web công bố sử dụng PHP, chiếm khoảng 20% số tên miền trên Internet Sự phát triển này mở đường cho PHP 5.
Mặc dù thành công của PHP 4.0, nhóm phát triển đã lắng nghe phản hồi của cộng đồng và nhận ra những điểm yếu của nó, bao gồm hỗ trợ OOP, xử lý XML, thiếu tương thích với MySQL 4.1 và 5.0, và khả năng dịch vụ web kém Điều này đã thúc đẩy Zeev và Andi tạo ra Zend Engine 2.0, cốt lõi của PHP 5.0 PHP 5 Beta 1 ra mắt vào ngày 29 tháng 6 năm 2003 để cộng đồng kiểm tra Sau một loạt bản thử nghiệm, phiên bản chính thức của PHP 5 đã được phát hành vào ngày 13 tháng 7 năm 2004.
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản sử dụng thử Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại f PHP7 là một phiên bản của ngôn ngữ PHP được giới thiệu vào ngày 3 tháng 9 năm 2015, đây là phiên bản mới nhất và được trông đợi nhất bởi có nhiều sự thay đổi về cú pháp, bổ sung các thư viện hiện đại giúp ngôn ngữ PHP trở nên đa dạng hơn
PHP là ngôn ngữ lập trình kịch bản mã nguồn mở được dùng phổ biến để phát triển ứng dụng máy chủ Thích hợp cho web, PHP có thể dễ dàng nhúng vào HTML Tối ưu cho ứng dụng web, PHP có tốc độ nhanh, cú pháp giống C và Java, dễ học, rút ngắn thời gian xây dựng sản phẩm so với các ngôn ngữ khác.
1.2.3 Ưu và nhược điểm của PHP a Ưu điểm Ưu điểm đầu tiên đó chính là việc PHP được sử dụng miễn phí, vì thế nó là yếu tố vô cùng tuyệt vời cho những ai muốn học về ngôn ngữ lập trình này
Thứ hai, cấu trúc của PHP cực đơn giản, thế nên đối với các bạn lập trình viên khi tìm hiểu và theo họ nó sẽ không bị mất quá nhiều thời gian mới có thể học được
Thứ ba, thư viện mà PHP tạo ra thì có sự phong phú, cũng như được cộng đồng hỗ trợ một cách mạnh mẽ
Thứ tư, khi học về PHP thì các bạn sẽ có được cơ hội về việc làm là rất lớn, mức lương của nó cũng khá cao nếu như chúng tôi không muốn nói là khủng, chắc chắn là các bạn chưa khi nào nghĩ tới
Thứ năm, PHP không chỉ dừng lại ở những tính năng hiện tại, trong tương lai thì nó còn phát triển mạnh mẽ hơn nữa để khẳng định được vị trí của mình
9 luôn là cao ở trong bảng danh sách thực hiện điều tra, khảo sát mỗi năm về ngôn ngữ lập trình trong công nghệ thông tin b Nhược điểm của PHP
Thứ nhất, PHP có hạn chế về cấu trúc của ngữ pháp, bởi nó không được thiết kế gọn gàng và có phần đẹp mắt như những ngôn ngữ trong lập trình khác
Thứ hai, PHP chỉ có thể hoạt động và sử dụng trên các ứng dụng trong web
1.2.4 Tại sao nên dùng PHP a PHP được các ông lớn tin dùng
PHP ra đời từ năm 1994, là ngôn ngữ lập trình Web phổ biến nhất hiện nay
Bằng việc xây dựng trên nền ngôn ngữ C và là mã nguồn mở nên khả năng mở rộng cho ứng dụng PHP có thể nói là không có giới hạn b Tính Cộng đồng của PHP
Là một ngôn ngữ mã nguồn mở cùng với sự phổ biến của PHP thì cộng đồng PHP được coi là khá lớn và có chất lượng c Thư viện PHP phong phú
Tổng quan về hệ quản trị cơ sở dữ liệu MySQL
1.3.1 Lịch sử phát triển của MySQL
Ngày nay, các ứng dụng web có nhiều lựa chọn cơ sở dữ liệu Trong số các nền tảng mã nguồn mở, đặc biệt là PHP, MySQL đã trở thành sự lựa chọn phổ biến trong một thời gian dài.
Phiên bản đầu tiên của MySQL phát hành năm 1995
Công ty Sun Microsystems mua lại MySQL AB trong năm 2008
Năm 2010 tập đoàn Oracle thâu tóm Sun Microsystems Ngay lúc đó, đội ngũ phát triển của MySQL tách MySQL ra thành 1 nhánh riêng gọi là MariaDB Oracle tiếp tục phát triển MySQL lên phiên bản 5.5
2013 MySQL phát hành phiên bản 5.6
2015 MySQL phát hành phiên bản 5.7
MySQL đang được phát triển lên phiên bản 8.0
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, 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 MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ
1.3.3 Ưu điểm của MySQL a Linh hoạt
Sự linh hoạt về flatform là 1 đặc tính nổi bật của MySQL với các phiên bản đang được hỗ trợ của Linux, Unix, Windows, MySQL,… b Thực thi cao
Các chuyên gia cơ sỡ dữ liệu có thể cấu hình máy chủ cơ sở dữ liệu MySQL đặc trưng cho các ứng dụng đặc thù thông qua kiến trúc storage-engine MySQL có thể đáp ứng khả năng xử lý những yêu cầu khắt khe nhất của từng hệ thống, MySQL còn đưa ra các “công cụ” cần thiết cho các hệ thống doanh nghiệp khó tính bằng tiện ích tải tốc độ cao, bộ nhớ cache và các cơ chế xử lý nâng cao khác c Sử dụng ngay
Các tiêu chuẩn đảm bảo của MySQL giúp người dùng an tâm sử dụng dịch vụ MySQL cung cấp nhiều tùy chọn và các giải pháp cho phép người dùng triển khai ngay cơ sở dữ liệu MySQL của mình Hỗ trợ giao dịch đảm bảo tính nhất quán của dữ liệu trong các hệ thống phân tán.
MySQL cung cấp tính hỗ trợ giao dịch mạnh mẽ, đảm bảo tính nguyên tử, nhất quán, cô lập và bền vững (ACID) Hệ thống giao dịch của MySQL được phân loại đa dạng, đáp ứng nhiều nhu cầu giao dịch khác nhau mà không gây ảnh hưởng giữa người dùng Ngoài ra, MySQL còn là một nơi lưu trữ web và dữ liệu đáng tin cậy cho doanh nghiệp.
Do MySQL có engine xử lý tốc độ cao và khả năng chèn dữ liệu nhanh, hỗ trợ tốt cho các chức năng chuyên dùng cho web,… Nên MySQL là lựa chọn tốt nhất cho các ứng dụng web và các ứng dụng web doanh nghiệp f Bảo mật tốt
Doanh nghiệp nào cũng cần tính năng bảo mật dữ liệu tuyệt đối vì đó chính là lợi ích quan trọng hàng đầu và đó cũng là lý do mà các chuyên gia về cơ sỡ dữ liệu chọn dùng MySQL MySQL có các kỹ thuật mạnh trong việc xác nhận truy cập cơ sở dữ liệu và chỉ có người dùng đã được xác nhận mới có thể truy cập vào server cơ sở dữ liệu g Phát triển ứng dụng hỗn hợp
MySQL cung cấp hỗ trợ hỗn hợp cho bất kỳ sự phát triển ứng dụng nào nên MySQL được xem là cơ sở dữ liệu mã nguồn mở phổ biến nhất thế giới h Dễ quản lý
Quá trình cài đặt MySQL diễn ra nhanh chóng trên các hệ điều hành phổ biến như Microsoft Windows, Linux, Macintosh hay Unix Sau khi cài đặt, bạn có thể tận dụng các tính năng hữu ích như tự động mở rộng không gian tệp, tự khởi động lại và cấu hình động, tạo điều kiện thuận lợi cho công việc quản trị cơ sở dữ liệu Ngoài ra, MySQL là mã nguồn mở và có cộng đồng hỗ trợ mạnh mẽ, giúp người dùng có thể tiếp cận tài liệu và sự trợ giúp dễ dàng.
Nhiều doanh nghiệp lo lắng việc sử dụng mã nguồn mở là không an toàn và không được hỗ trợ tốt vì đa số tin vào các phần mềm có bản quyền, nhưng đối với MySQL, các nhà doanh nghiệp hoàn toàn có thể yên tâm về điều này, MySQL có chính sách bồi thường hẳn hoi và luôn hỗ trợ tối đa cho quý doanh nghiệp j Chi phí thấp Đối với các dự án phát triển mới, nếu các doanh nghiệp sử dụng MySQL thì đó là một chọn lựa đúng đắn vừa tiết kiệm chi phí vừa đáng tin cậy
1.3.4 Tại sao phải sử dụng hệ quản trị cơ sở dữ liệu MySQL a Tốc độ
MySQL rất nhanh, những nhà phát triển cho rằng MySQL là cơ sở dữ liệu nhanh nhất mà bạn có thể có b Dễ sử dụng
MySQL tuy có tính năng cao nhưng thực sự là một hệ thống cơ sở dữ liệu rất đơn giản, ít phức tạp khi cài đặt và quản trị hơn các hệ thống lớn c Giá thành
MySQL là miễn phí cho hầu hết các việc sử dụng trong một tổ chức d Hỗ trợ ngôn ngữ truy vấn
MySQL hiểu SQL là ngôn ngữ của sự chọn lựa cho tất cả các hệ thống cơ sở dữ liệu hiện đại e Năng lực
Nhiều client có thể truy cập đến server trong cùng một thời gian Các client có thể sử dụng nhiều cơ sở dữ liệu một cách đồng thời f Kết nối và bảo mật
MySQL được nối mạng một cách đầy đủ, các cơ sở dữ liệu có thể được truy cập từ bất kỳ nơi nào trên Internet do đó bạn có thể chia sẽ dữ liệu của bạn với bất kỳ ai, bất kỳ nơi nào g Tính linh động
MySQL chạy trên nhiều hệ thống UNIX cũng như không phải UNIX chẳng hạn như Windows hay OS/2 MySQL chạy được các với mọi phần cứng từ các máy PC ở nhà cho đến các máy server h Sự phân phối rộng
MySQL rất dễ dàng đạt được, chỉ cần sử dụng trình duyệt web của bạn i Sự hổ trợ
Tổng quan về mô hình MVC Pattern
1.4.1 Lịch sử ra đời của mô hình MVC
MVC là viết tắt của Model - View – Controller đượ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-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 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
MVC 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
1.4.3 Đặc điểm của mô hình MVC
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
17 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
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
1.4.4 Kiến trúc mô hình MVC
Mô hình MVC được chia làm 3 lớp xử lý gồm Model – View – Controller:
- Model: là nơi chứa những nghiệp vụ tương tác với dữ liệu hoặc hệ quản trị cơ sở dữ liệu (mysql, mssql… ); nó sẽ bao gồm các class/function xử lý nhiều nghiệp vụ như kết nối database, truy vấn dữ liệu, thêm – xóa – sửa dữ liệu…
- View: là nới chứa những giao diện như một nút bấm, khung nhập, menu, hình ảnh… nó đảm nhiệm nhiệm vụ hiển thị dữ liệu và giúp người dùng tương tác với hệ thống
- Controller: là nới tiếp nhận những yêu cầu xử lý được gửi từ người dùng, nó sẽ gồm những class/ function xử lý nhiều nghiệp vụ logic giúp lấy đúng dữ liệu thông tin cần thiết nhờ các nghiệp vụ lớp Model cung cấp và hiển thị dữ liệu đó ra cho người dùng nhờ lớp View
1.4.5 Quy trình hoạt động của mô hình MVC
- Khi có một yêu cầu từ phía máy client gửi đến server, bộ phận Controller sẽ tiếp nhận và có nhiệm vụ xử lý yêu cầu đó Ngoài ra, khi cần thiết, nó sẽ gọi đến thành phần Model, là bộ phận làm việc với Database
- Khi xử lý xong yêu cầu, tất cả kết quả trả về được đẩy đến View, tại View sẽ lấy ra mã HTML thành giao diện và trả HTML về hiển thị trên trình duyệt
1.4.6 Ưu điểm và nhược điểm của mô hình MVC a Ưu điểm
- Trình tự xử lý rất rõ ràng
- Mô hình MVC quy hoạch các class/function vào các thành phần riêng biêt Controller - Model - View, việc đó làm cho quá trình phát triển - quản lý - vận hành - bảo trì web diễn ra thuận lợi hơn, tạo ra được các chức năng chuyên biệt hoá đồng thời kiểm soát được luồng xử lý
- Tạo mô hình chuẩn cho dự án, khi người có chuyên môn ngoài dự án tiếp cận với dự án dễ dàng hơn
- Mô hình đơn giản, dễ hiểu, 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 Nhược điểm Đối với các dự án tính phức tạp cao thì mô hình MVC trở nên không khả dụng
1.4.7 Ứng dụng thực tế mô hình MVC
Có rất nhiều hệ thống, ứng dụng - phần mềm được xây dựng theo chuẩn mô hình MVC và được giới thiệu, phân phối như :
1.4.8 Các thành phần kiến trúc khác theo mô hình MVC a Design Pattern là gì?
Design Pattern là một kỹ thuật trong lập trình hướng đối tượng, cung cấp cho chúng ta cách tư duy trong các tình huống xảy ra của lập trình hướng đối tượng cũng như trong quá trình phân tích thiết kế và phát triển phần mềm Vì vậy design pattern không phải là một class, cũng không phải là một library và cũng không hề là một ngôn ngữ cụ thể nào cả
Design pattern cung cấp cho chúng ta các mẫu thiết kế các giải pháp cho các vấn đề chung thường gặp trong lập trình đảm bảo sẽ cung cấp cho chúng ta các giải pháp tối ưu trong việc giải quyết các vấn đề trong lập trình b Repository Pattern là gì?
Repository pattern là lớp trung gian giữa tầng business logic và data access, giúp cho việc truy cập dữ liệu chặt chẽ và bảo mật hơn.Đóng vai trò là một lớp kết nối giữa tầng business và model của ứng dụng
Thông thường, các truy xuất và giao tiếp với cơ sở dữ liệu rải rác trong code Điều này gây lãng phí thời gian và công sức khi cần thực hiện thao tác trên cơ sở dữ liệu, bao gồm việc tìm kiếm trong code và các thuộc tính trong bảng để xử lý.
Với repository design pattern thì việc thay đổi ở code sẽ không ảnh hưởng quá nhiều công sức chúng ra chỉnh sửa
Một nơi duy nhất để thay đổi quyền truy cập dữ liệu cũng như xử lý dữ liệu
Một nơi duy nhất chịu trách nhiệm cho việc mapping các bảng vào object
Tăng tính bảo mật và rõ ràng cho code
Tổng quan về lập trình hướng đối tượng OOP
1.5.1 Lập trình hướng đối tượng OOP là gì?
Lập trình hướng đối tượng (tiếng Anh: Object-oriented programming, viết tắt: OOP) là một mẫu hình lập trình dựa trên khái niệm "công nghệ đối tượng", mà trong đó, đối tượng chứa đựng các dữ liệu, trên các trường, thường được gọi là các thuộc tính và mã nguồn, được tổ chức thành các phương thức Phương thức
20 giúp cho đối tượng có thể truy xuất và hiệu chỉnh các trường dữ liệu của đối tượng khác, mà đối tượng hiện tại có tương tác (đối tượng được hỗ trợ các phương thức
Giúp tăng năng xuất và đơn giản hóa công việc xây dựng phần mềm, bảo trì phần mềm
Cho phép lập trình viên tập trung vào các đối tượng giống như trong thực tế
1.5.2 Ưu điểm của lập trình hướng đối tượng OOP
Vì lập trình hướng đối tượng ra đời sau nên nó khắc phục được tất cả các điểm yếu của các phương pháp lập trình trước đó Cụ thể nó các ưu điểm sau:
- Dễ dàng quản lý code khi có sự thay đổi chương trình
- Dễ mở rộng dự án
- Tiết kiệm được tài nguyên đáng kể cho hệ thống
- Có tính bảo mật cao
- Có tính tái sử dụng cao
1.5.3 Một số khái niệm cơ bản trong lập trình hướng đối tượng a Đối tượng (Object)
Trong lập trình hướng đối tượng, đối tượng được hiểu như là 1 thực thể: người, vật hoặc 1 bảng dữ liệu,
Một đối tượng bao gồm 2 thông tin: thuộc tính và phương thức:
Thuộc tính chính là những thông tin, đặc điểm của đối tượng Ví dụ: một người sẽ có họ tên, ngày sinh, màu da, kiểu tóc,
Phương thức là những thao tác, hành động mà đối tượng đó có thể thực hiện Ví dụ: một người sẽ có thể thực hiện hành động nói, đi, ăn, uống, b Lớp (class)
Các đối tượng có các đặc tính tương tự nhau được gom lại thành 1 lớp đối tượng
Bên trong lớp cũng có 2 thành phần chính đó là thuộc tính và phương thức
Ngoài ra, lớp còn được dùng để định nghĩa ra kiểu dữ liệu mới
1.5.4 Các tính chất của lập trình hướng đối tượng a Tính trừu tượng (abstraction)
Tính chất này giúp chúng ta tập trung vào những vấn đề cốt lõi cần thiết của đối tượng thay vì quan tâm đến cách nó thực hiện Nó cũng làm tăng khả năng mở rộng khi sử dụng cùng với tính đa hình và kế thừa trong lập trình hướng đối tượng b Tính kế thừa (inheritance)
Lớ p cha có thể chia sẻ dữ liê ̣u và phương thức cho lớp con kế thừa từ nó, nhờ đó ko phải viết la ̣i các logic chung c Tính đóng gói (encapsulation)
Các dữ liệu và phương thức có liên quan với nhau được đóng gói thành các lớp để tiện cho việc quản lý và sử dụng Đóng gói còn để che giấu một số thông tin và chi tiết cài đặt nội bộ để bên ngoài không thể nhìn thấy d Tính đa hình (polymorphism)
Tính đa hình thể hiện ở việc lớp con ghi đè phương thức của lớp cha hoặc triển khai giao diện Điều này có nghĩa là lớp con có thể định nghĩa lại hành vi của một phương thức cụ thể được định nghĩa trong lớp cha hoặc triển khai các phương thức do giao diện yêu cầu, cho phép các vật thể thuộc các lớp khác nhau phản ứng khác nhau với cùng một lời gọi phương thức.
1.5.5 Các mức độ truy cập của một phương thức
Private: khắt khe nhất, chỉ trong class khai báo biến này mới có quyền sử dụng
Protected: ít khắt khe hơn Private một chút, ở ngoài class không thể truy cập được biến này Tuy nhiên class con thì có thể
Public: có thể truy cập từ mọi nơi thông qua câu lệnh $obj -> tên_biến; 1.5.6 Sự khác biệt giữa Abstract class và Interface
Chỉ có thể kế thừa nhiều interface khác Có thể kế thừa từ 1 lớp và nhiều interface
Chỉ chứa các khai báo và không có phần nội dung
Có thể chứa các thuộc tính thường và các phương thức bình thường bên trong
Không có constructor và cũng không có destructor
Phạm vi truy cập mặc định là public Có thể xác định modifier
Dùng để định nghĩa 1 khuôn mẫu hoặc quy tắc chung
Dùng để định nghĩa cốt lõi của lớp, thành phần chung của lớp và sử dụng cho nhiều đối tượng cùng kiểu
Cần thời gian để tìm phương thức thực tế tương ứng với lớp dẫn đến thời gian chậm hơn 1 chút
Nhanh hơn so với interface
Khi ta thêm mới 1 khai báo Ta phải tìm hết tất cả những lớp có thực thi interface này để định nghĩa nội dung cho phương thức mới Đối với abstract class, khi đĩnh nghĩa 1 phương thức mới ta hoàn toàn có thể định nghĩa nội dung phương thức là rỗng hoặc những thực thi mặc định nào đó Vì thế toàn bộ hệ thống vẫn chạy bình thường
Bảng 1.1: Sự khác biệt giữa Abstract class và Interface
Tổng quan về PHP framework Laravel
1.6.1 Lịch sử phát triển của laravel
Taylor Otwell đã tạo Laravel như một nỗ lực để cung cấp một giải pháp thay thế nâng cao hơn cho CodeIgniter framework, vì nó không cung cấp một số tính năng nhất định như là hỗ trợ tích hợp xác thực (authentication) và ủy quyền (authorization) người dùng
Bản phát hành beta đầu tiên của Laravel được phát hành vào ngày 9 tháng
6 năm 2011, tiếp theo là bản phát hành Laravel 1 sau đó trong cùng một tháng
Laravel 2 được phát hành vào tháng 9 năm 2011 (3 tháng sau), mang lại nhiều cải tiến khác nhau từ tác giả và cộng đồng Các tính năng chính mới bao gồm sự hỗ trợ cho các bộ điều khiển (controller), nó đã làm cho Laravel 2 trở thành một framework tuân thủ đầy đủ MVC, hỗ trợ sẵn cho nguyên lý điều khiển (IoC) và một hệ thống templating gọi là Blade Nhược điểm, hỗ trợ cho các gói của bên thứ ba (third-party packages) đã được gỡ bỏ trong Laravel 2
Laravel 3 được phát hành vào tháng 2 năm 2012 với một loạt các tính năng mới bao gồm giao diện dòng lệnh - commandline interface (CLI) có tên Artisan, hỗ trợ sẵn cho nhiều hệ thống quản lý cơ sở dữ liệu, database migrations, hỗ trợ xử lý events…
Laravel 4, được đặt tên là Illuminate, được phát hành vào tháng 5 năm
2013 Nó được viết thành một khung hoàn chỉnh của Laravel framework, di chuyển bố cục của nó thành một tập các gói riêng biệt được phân phối thông qua Composer, phục vụ như một trình quản lý gói ứng dụng
Laravel 5 được phát hành vào tháng 2 năm 2015 là kết quả của những thay đổi nội bộ đã kết thúc trong việc thay đổi bản phát hành Laravel 4.3 trong tương lai Laravel 5 cũng giới thiệu cấu trúc cây thư mục mới cho các ứng dụng đã phát triển
Vào tháng 3 năm 2015, một khảo sát SitePoint đã liệt kê Laravel là PHP framework phổ biến nhất
Laravel 5.1, phát hành vào tháng 6 năm 2015, là bản phát hành đầu tiên của Laravel để nhận hỗ trợ dài hạn (LTS), với các bản sửa lỗi có sẵn trong hai năm và các bản vá bảo mật trong ba năm
Laravel 5.3, được phát hành vào ngày 23 tháng 8 năm 2016 Các tính năng mới trong 5.3 tập trung vào việc cải thiện tốc độ phát triển bằng cách bổ sung thêm các cải tiến cho các tác vụ phổ biến
Laravel 5.4 Phiên bản này có nhiều tính năng mới, như Laravel Dusk, Laravel Mix, Blade Components và Slots, Markdown Emails và nhiều thứ khác
Laravel 5.5 phát hành vào ngày 30 tháng 8 năm 2017 là phiên bản LTS thứ 2 (Laravel 5.5 sẽ là phiên bản LTS Release tiếp theo)
Laravel 5.6 phát hành vào ngày 7 tháng 2 năm 2018
Laravel 5.7 phát hành vào ngày 4 tháng 9 năm 2018 với những cập nhật Laravel 5.8 phát hành vào ngày 26 tháng 2 năm 2019 Laravel 5.8 tiếp tục các cải tiến được thực hiện trong Laravel 5.7 bằng cách giới thiệu các mối quan hệ Eloquent có một lần, cải thiện xác thực email, đăng ký tự động dựa trên chính sách ủy quyền, bộ đệm và trình điều khiển phiên của DynamoDB, cấu hình múi giờ của trình lập lịch biểu được cải thiện các kênh, tuân thủ trình điều khiển bộ đệm PSR-
16, cải tiến artisan serve lệnh, hỗ trợ PHPUnit 8.0, hỗ trợ Carbon 2.0, hỗ trợ Pheanstalk 4.0 và một loạt các sửa lỗi và cải thiện khả năng sử dụng khác
Framework là một thư viện các lớp đã được xây dựng hoàn chỉnh, bộ khung để phát triển các Phần mềm ứng dụng
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 gồ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
1.6.3 Các tính năng chính của Laravel Framework
- Modularity: chia modul một cách rất rõ ràng và khoa học, với những dự án lớn Laravel hỗ trợ chúng ta chia dự án ra làm những modul nhỏ giúp dự án được quản lí dễ dàng hơn
- Testability: thực hiện test trên từng dòng code và đảm bảo nó chạy đúng như logic và code sẽ không ảnh hưởng đến những phần khác
- Routing: Laravel cung cấp cho chúng ta cách khai báo một route trong dự án cực kì đơn giản và mềm dẻo, với các phương thức như GET, POST, PUT, DELETE
- Configuration Management: Laravel cho phép chúng ta làm việc này rất dễ dàng bằng việc tạo ra 1 file env (Environment) để chúng ta cấu hình các thông số
- QueryBuilder and ORM: Đây là 2 tính năng cực kì quan trọng trong laravel, nó cho phép chúng ta làm việc với CSDL một cách dễ dàng, cung cấp các câu truy vấn ngắn gọn để lấy dự liệu Nó làm việc được với nhiều cơ sở dự liệu khác nhau như PostgreSQL, SQLite, Mysql and SQL Server
Các tính năng Schema Builder, Migration và Seeding cho phép định nghĩa cấu trúc cơ sở dữ liệu ngay trong mã khi sử dụng Laravel, giúp tạo, xóa bảng, cột dễ dàng Tính năng Seeding cung cấp sẵn dữ liệu mẫu trong cơ sở dữ liệu.
Blade là engine template được sử dụng cho phần view của Laravel Blade cho phép hiển thị dữ liệu và khai báo các câu lệnh điều khiển trên view một cách dễ dàng, giúp việc tạo giao diện người dùng trở nên thuận tiện hơn.
- E-Mailing: Laravel cung cấp cho chúng ta thư viện để có thể gửi email trong dự án
- Authentication: Laravel đã cung cấp sẵn toàn bộ các tính năng liên quan đến authentication như login, logout, register, forgot password
- Redis: Đây là phương thức cache dữ liệu giúp cho website chúng ta chạy nhanh hơn và ít truy vấn vào database hơn
- Event and command bus: Tính năng cho phép bắt các sự kiện xảy ra trong ứng dụng
- Queues: Laravel tương thích với nhiều dịch vụ queues như Amazon SQS, Beanstalkd and IronMQ
1.6.4 Tại sao nên dùng Framework Laravel
Laravel sở hữu hệ thống kiến trúc khoa học, đơn giản và thống nhất, giúp người mới tiếp cận dễ dàng nắm bắt So với Zend hay Yii, Laravel đơn giản hơn khi bắt đầu nhưng hoàn toàn có khả năng xây dựng ứng dụng web phức tạp với hiệu suất cao.
Các tài nguyên liên quan đến Laravel rất đa dạng, dễ sử dụng
KHẢO SÁT VÀ PHÂN TÍCH HỆ THỐNG ỨNG DỤNG
Khảo sát bài toán
Khảo sát thực tế từ các của hàng điện thoại di động trên thị trường cho thấy:
- Phần lớn các cửa hàng đều chưa có phần mềm quản lý cũng như chưa có một Website bán hàng online nào, các phương pháp quản lý hầu như đều thực hiện một cách thủ công chủ yếu bằng ghi chép sổ sách,… Thao tác thủ công, mang lại hiệu quả không có tính chính xác cao trong công tác quản lý hoạt động kinh doanh
- Các phương pháp quản lý thông thường vì quá đơn giản, sơ sài nên khả năng lưu trữ bị giới hạn rất nhiều, lại khó tìm kiếm khi cần gấp, gây cản trở quá trình kinh doanh của chủ cửa hàng
2.1.2 Yêu cầu chức năng của ứng dụng a Đặc tả các chức năng phía Frontend
Qui tắc # Chứ c năng Loại
R1.1 Khở i đô ̣ng hệ thống trang bán hàng Ẩn
R1.2 Chọn chức năng đăng nhâ ̣p Hiện
R1.3 Nhập Username và Password vào nhấn đăng nhập Hiện R1.4 Cơ sở dữ liê ̣u kiểm tra thông tin đăng nhâ ̣p hợp lê ̣ hay không Ẩn
R1.4.1 Nếu thông tin đúng, hê ̣ thống thông báo đăng nhâ ̣p thành công
R1.4.2 Nếu sai, hê ̣ thống thông báo đăng nhâ ̣p lỗi và yêu cầu nhâ ̣p lại
R1.5 Khách hàng tiếp tục thực hiện các bước mua sản phẩm Hiện
Bảng 2.1: Chức năng đăng nhập
❖ Chức năng tìm kiếm hàng hóa
Qui tắc # Chứ c năng Loại
R2.1 Bắt đầu làm viê ̣c với hê ̣ thống Hiện
R2.2 Nhập tên sản phẩm, dung lượng, giá thành… mà mình muốn tìm kiếm
R2.3 Cơ sở dữ liệu sẽ so sánh nội dung mà người dùng muốn tìm có trong database Ẩn
R2.3.1 Nếu có sản phẩm thì hệ thống sẽ hiển thị những sản phẩm có liên quan đến nội dung tìm kiếm
R2.3.2 Nếu không có thì hệ thống sẽ thông báo “Không tìm thấy kết quả tìm kiếm”
R2.4 Người dùng xem thông tin sản phẩm mà mình tìm kiếm được Hiện
Bảng2.2: Chức năng tìm kiếm hàng hóa
❖ Chức năng xem hàng hóa
Qui tắc # Chứ c năng Loại
R3.1 Khách hàng truy cập vào địa chỉ của website trên thanh url và chọn vào các trang để xem thông tin
R3.2 Khách hàng chọn một sản phẩm bất kỳ trên trang bán hàng Hiện
R3.3 Thông tin sản phẩm mà khách hàng muốn xem sẽ được xử lý
Hệ thống lấy dữ liệu từ cơ sở dữ liệu, gửi lên cho người dùng Ẩn
R3.4 Khách hàng xem thông tin sản phẩm trên trang chi tiết như : tên sản phẩm, số lượng, giá thành, dung lượng, …
Bảng 2.3: Chức năng xem hàng hóa
Qui tắc # Chứ c năng Loại
R4.1 Khách hàng truy cập vào sản phẩm và nhập nội dung mà mình muốn bình luận đối với sản phẩm
R4.2 Cơ sở dữ liệu lưu bình luận Ẩn
R4.3.1 Bình luận sẽ được người quản trị hệ thống xem xét và sẽ cho hiển thị nếu nó phù hợp
R4.3.2 Bình luận sẽ được người quản trị hệ thống xem xét và sẽ ẩn như nếu nó không phù hợp
Bảng 2.4: Chức năng bình luận
Qui tắc # Chứ c năng Loại
R5.1 Khách hàng truy cập vào trang web Hiện
R5.2 Tìm kiếm sản phẩm Hiện
R5.3 Xem thông tin chi tiết sản phẩm Hiện
R5.4 Chọn và Thêm sản phẩm vào giỏ hàng Hiện
R5.5 Xóa sản phẩm trong giỏ hàng Tù y chọn
R5.6 Xem thông tin trong giỏ hàng Hiện
R5.7 Chỉnh sửa thông tin trong giỏ hàng Hiện R5.8 Xác nhâ ̣n thông tin trong giỏ hàng Hiện R5.9 Cơ sở dữ liê ̣u lưu thông tin giỏ hàng Ẩn
R5.10 Nhập thông tin khách hàng Hiện
R5.11 Cơ sở dữ liê ̣u lưu thông tin giỏ hàng cùng với thông tin khách hàng Ẩn
R5.12 Thông báo đă ̣t hàng thành công Hiện
Bảng 2.5: Chức năng đặt hàng
❖ Chức năng liên hệ - gửi mail
Qui tắc # Chứ c năng Loại
R6.1 Khách hàng truy cập vào trang web và điều hướng tới trang liên hệ
R6.2 Nhập nội dung mà người dùng cần muốn liên hệ vào các ô textbox
R6.3 Cơ sở dữ liệu lưu thông tin của khách hàng Ẩn
R6.4 Hệ thống sẽ gửi email xác nhận với những nội dung cho khách hàng
Bảng 2.6: Chức năng liên hệ - gửi mail
Qui tắc # Chứ c năng Loại
R7.1 Khách hàng truy cập và đăng nhập vào trang web Hiện
R7.2 Khách hàng muốn đăng xuất, bấm vào button đăng xuất trên menu
R7.3 Hệ thống sẽ kiểm tra yêu cầu của khách hàng và đăng xuất tài khoản Ẩn
R7.4 Hệ thống sẽ chuyển đến trang chủ của trang web Hiện
Bảng 2.7: Chức năng đăng xuất
32 c Đặc tả các chức năng phía Backend
Qui tắc # Chứ c năng Loại
R1.1 Khở i đô ̣ng hệ thống trang bán hàng và chuyển hướng đến trang đăng nhập quản trị hệ thống Ẩn
R1.2 Nhập Username và Password vào nhấn đăng nhập Hiện
R1.3 Cơ sở dữ liê ̣u kiểm tra thông tin đăng nhâ ̣p hợp lê ̣ hay không Ẩn
R1.3.1 Nếu thông tin đúng, hê ̣ thống thông báo đăng nhâ ̣p thành công
R1.3.2 Nếu sai, hê ̣ thông báo đăng nhâ ̣p lỗi và yêu cầu nhâ ̣p la ̣i Hiện R1.5 Quản lý làm viê ̣c với hê ̣ thống Hiện
Bảng 2.8: Chức năng đăng nhập
❖ Chức năng quản lý sản phẩm
Qui tắc # Chứ c năng Loại
R2.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản lý và điều hướng đến trang quản lý sản phẩm
R2.2 Người dùng xem chi tiết sản phẩm Hiện
R2.3 Người dùng khởi đô ̣ng giao diê ̣n tiến hành chọn các công việc cần thực hiện
R2.3.1 Nhập sản phẩm mới Hiện
R2.4 Cơ sở dữ liê ̣u cập nhật thông tin đã thêm, sửa, xóa Ẩn R2.5.1 Hệ thống thông báo câ ̣p nhâ ̣t dữ liê ̣u thành công Hiện
R2.5.2 Hệ thống sẽ thông báo lỗi nếu như hành động xảy ra thất bại
Bảng 2.9: Chức năng quản lý sản phẩm
❖ Chức năng quản lý nhà sản xuất
Qui tắc # Chứ c năng Loại
R3.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản lý và điều hướng đến trang quản lý nhà sản xuất
R3.2 Người dùng khởi đô ̣ng giao diê ̣n chỉnh sửa tiến hành chọn các công việc cần thực hiện
R3.2.1 Nhập nhà sản xuất mới Hiện
R3.2.2 Sửa nhà sản xuất Hiện
R3.2.3 Xóa nhà sản xuất Hiện
R3.3 Cơ sở dữ liê ̣u cập nhật thông tin đã thêm, sửa, xóa Ẩn R3.4.1 Hệ thống thông báo câ ̣p nhâ ̣t dữ liê ̣u thành công Hiện R.4.2 Hệ thống sẽ thông báo lỗi nếu như hành động xảy ra thất bại Hiện
Bảng 2.10: Chức năng quản lý nhà sản xuất
❖ Chức năng quản lý người dùng
Qui tắc # Chứ c năng Loại
R4.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản lý và điều hướng đến trang quản lý người dùng
R4.2 Người dùng xem chi tiết thông tin người dùng Hiện
R4.3 Người dùng khởi đô ̣ng giao diê ̣n tiến hành chọn các công việc cần thực hiện
R4.3.1 Nhập người dùng mới Hiện
R4.3.2 Sửa thông tin người dùng Hiện
R4.4 Cơ sở dữ liê ̣u cập nhật thông tin đã thêm, sửa, xóa Ẩn R4.5.1 Hệ thống thông báo câ ̣p nhâ ̣t dữ liê ̣u thành công Hiện R4.5.2 Hệ thống sẽ thông báo lỗi nếu như hành động xảy ra thất bại Hiện
Bảng 2.11: Chức năng quản lý người dùng
❖ Chức năng quản lý hóa đơn
Qui tắc # Chứ c năng Loại
R5.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản lý và điều hướng đến trang quản lý hóa đơn
R5.2 Người dùng xem chi tiết thông tin hóa đơn đã được đặt thành công
R5.3 Người dùng xuất hóa đơn bằng PDF Hiện
R5.4 Người dùng có thể thay đồi trạng thái thanh toán của hóa đơn
R5.5 Người dùng xóa hóa đơn Tùy chọn
R5.6 Cơ sở dữ liê ̣u cập nhật lại thông tin Ẩn R5.7.1 Hệ thống thông báo câ ̣p nhâ ̣t dữ liê ̣u thành công Hiện
R5.7.2 Hệ thống sẽ thông báo lỗi nếu như hành động xảy ra thất bại
Bảng 2.12: Chức năng quản lý hóa đơn
❖ Chức năng quản lý bình luận
Qui tắc # Chứ c năng Loại
R6.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản Hiện
35 lý và điều hướng đến trang quản lý bình luận
R6.2.1 Nếu người dùng xem chi tiết thông tin bình luận và trang thái sẽ chuyển thành “ đã xem”
R6.2.2 Nếu người dùng chưa xem thì hệ thống sẽ để trạng thái “ chưa xem”
R6.3 Người dùng xóa bình luận Tùy chọn
R6.4 Cơ sở dữ liê ̣u cập nhật lại thông tin Ẩn
R6.5.1 Hệ thống thông báo câ ̣p nhâ ̣t dữ liê ̣u thành công Hiện
R6.5.2 Hệ thống sẽ thông báo lỗi nếu như hành động xảy ra thất bại
Bảng 2.13: Chức năng quản lý bình luận
❖ Chức năng quản lý liên hệ
Qui tắc # Chứ c năng Loại
R7.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản lý và điều hướng đến trang quản lý liên hệ
R7.2.1 Nếu người dùng xem chi tiết thông tin liên hệ và trang thái sẽ chuyển thành “ đã xem”
R7.2.2 Nếu người dùng chưa xem thì hệ thống sẽ để trạng thái “ chưa xem”
R7.3 Người dùng xóa liên hệ Tùy chọn
R7.4 Cơ sở dữ liê ̣u cập nhật lại thông tin Ẩn
R7.5.1 Hệ thống thông báo câ ̣p nhâ ̣t dữ liê ̣u thành công Hiện R7.5.2 Hệ thống sẽ thông báo lỗi nếu như hành động xảy ra thất bại Hiện
Bảng 2.14: Chức năng quản lý bình luận
❖ Chức năng tìm kiếm thông tin
Qui tắc # Chứ c năng Loại
R8.1 Người dùng sau khi đã đăng nhập vào được hệ thống quản lý Hiện
R8.2 Nhập thông tin mà mình tìm kiếm ứng với nội dung của từng trang quản lý
R8.3 Cơ sở dữ liệu sẽ so sánh nội dung mà người dùng muốn tìm có trong database Ẩn
R8.3.1 Nếu có thì hệ thống sẽ hiển thị những thông tin có liên quan đến nội dung tìm kiếm
R8.3.2 Nếu không có thì hệ thống sẽ thông báo “Không tìm thấy kết quả tìm kiếm”
R8.4 Người dùng xem chi tiết nội dung mà mình tìm kiếm được Hiện
Bảng 2.15: Chức năng tìm kiếm thông tin
Qui tắc # Chứ c năng Loại
R9.1 Người dùng truy cập và đăng nhập vào trang quản trị hệ thống Hiê ̣n
R9.2 Người dùng muốn đăng xuất, bấm vào button đăng xuất trên menu
R9.3 Hệ thống sẽ kiểm tra yêu cầu người dùng và đăng xuất tài khoản Ẩn
R9.4 Hệ thống sẽ chuyển đến trang đăng nhập của trang quản trị Hiện
Bảng 2.16: Chức năng đăng xuất
- Khách hàng: Xem sản phẩm, tìm kiếm sản phẩm, xem thông tin, thêm sản phẩm vào giỏ hàng, chỉnh sửa giỏ hàng, xóa sản phẩm trong giỏ hàng, đăng nhập, đă ̣t mua, thanh toán, đăng xuất
- Nhân viên bán hàng: tìm kiếm, kiểm tra thông tin sản phẩm được đă ̣t và thông tin khách hàng đă ̣t hàng, khai báo thanh toán cho đơn hàng
- Nhân viên viết bài: tìm kiếm, viết bài tin tức, trả lời thắc mắc khách hàng qua bình luận và email, nhập liệu, thiết kế logo, nhãn hiệu cho website
- Admin: Quản lý tất cả hệ thống
2.1.4 Yêu cầu phi chức năng
- Máy hoa ̣t đô ̣ng tốt và máy được cài win7 ram 2G trở lên
- Phần mềm laragon hoặc xampp: MySql để quản lý cơ sở dữ liệu
- Visual Studio Code: Viết code và tạo giao diện cho ứng dụng.
- Composer: Công cụ dùng để quản lý thư viện trong PHP.
- Cmd hoặc Git Bash Here dùng để viết câu lệnh command line đối với laravel.
- GitHub: dùng để lưu trữ dự án để tránh các trường hợp máy bị sự cố bất ngờ.
- Tốc độ xử lý phải nhanh, không để người dùng chờ quá lâu
- Độ tin cậy cao: các kết quả đưa ra chính xác, đầy đủ, ngắn gọn
- Áp du ̣ng cho tất cả hê ̣ điều hành
- Có kết nối ma ̣ng internet: sử du ̣ng trình duyê ̣t web (cốc cốc, chrome, opera, )
Phân tích hệ thống
2.2.1 Xác định các Actor và vai trò của Actor
- Khách hàng (Customer): Tìm hàng, xem hàng, đăng nhập, đặt hàng, đăng xuất, thanh toán
- Nhân viên bán hàng (Sale): Đăng nhập, tìm kiếm, quản lý sản phẩm, quản lý giảm giá, quản lý hóa đơn, xuất hóa đơn, quản lý comment, quản lý thanh toán
- Nhân viên viết bài (Writer): Quản lý tin tức, quản lý liên hệ, quản lý hình ảnh, quản lý thông tin cửa hàng, quản lý ưu đãi, quản lý logo, quản lý comment, quản lý thiết bị
- Admin: Quản lý được tất cả các chức năng trong hệ thống
2.2.2 Sơ đồ Use Case a User Case
Gồm các User Case sau:
- UC - Quản lý bán hàng
- UC - Quản lý sản phẩm
- UC - Báo cáo thống kê
- UC - Quản lý khách hàng
- UC - Quản lý người dùng
- UC - Quản lý quyền người dùng
- UC- Quản lý hóa đơn
- UC - Quản lý tin tức
- UC - Quản lý liên hệ
- UC - Quản lý giảm giá
- UC - Quản lý ưu đãi
- UC - Quản lý bình luận
39 b Xác định mối quan hệ giữa Actor và UC
❖ Quan hệ giữa Actor admin với các UC
Hình 2.1: Quan hệ giữa Actor admin với UC
❖ Quan hệ giữa Actor nhân viên bán hàng với các UC
Hình 2.2: Quan hệ giữa Actor nhân viên bán hàng với các UC
❖ Quan hệ giữa Actor nhân viên viết bài với các UC
Hình 2.3: Quan hệ giữa Actor nhân viên viết bài với các UC
❖ Quan hệ giữa Actor Khách hàng với các UC
Hình 2.4: Quan hệ giữa Actor Khách hàng với các UC c Xác định mối quan hệ giữa UC và UC
Hình 2.5: Xác định mối quan hệ giữa UC và UC d Sơ đồ User Case tổng quát
Hình 2.6: Sơ đồ User case tổng quát
41 e Đặc tả các User Case có trong hệ thống
- Tác nhân chính: Quản lý, người bán hàng, người viết bài, khách hàng
Người dùng truy cập vào hệ thống với nhiều vai trò khác nhau Quản trị viên (Admin) thực hiện các công việc quản trị hệ thống, trong khi khách hàng có thể đăng nhập vào trang bán hàng để đặt hàng.
• B1: Chọn chức năng đăng nhập vào hệ thống
• B2: Hệ thống hiển thị form đăng nhập và yêu cầu người dùng nhập Username và Password
• B3: Người dùng nhập Usename và password sau đó nhấn đăng nhập
• B4: Hệ thống kiểm tra thông tin nhân viên vừa nhập và xác nhận thông tin hợp lệ
• B5.1: Hệ thống thông báo đăng nhập thành công
• B5.2: Hệ thống sẽ báo lỗi nếu tài khoản không đúng và đăng nhập lại hoặc hủy đăng nhập
• B6: Người dùng thoát khỏi chức năng đăng nhập
❖ UC - Quản lý bán hàng
➢ Tác nhân: Quản lý, nhân viên bán hàng, khách hàng
➢ Đặc tả: Quản lý quá trình bán hàng, xem hàng, đặt hàng…
• B1: Khách hàng truy câ ̣p vào hê ̣ thống
• B2: Khách hàng tìm kiếm hàng hóa cần tìm
• B3: Khách hàng xem thông tin chi tiết hàng hóa
• B4: Khách hàng đă ̣t mua hàng hóa
• B5: Khách hàng kiểm tra hàng trong giỏ hàng
• B6: Khách hàng thêm, xóa , sửa hàng hóa trong giỏ hàng
• B7: Khách hàng nhâ ̣p thông tin đă ̣t hàng
• B8: Khách hàng tiến hành đă ̣t hàng
➢ Tác nhân chính: Quản lý
➢ Đặc tả: Báo cáo thống kê của tất cả các đơn hàng được đặt
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Chọn ngày / tháng / năm bắt đầu và ngày / tháng / năm kết thúc để thống kê
• B3: Hệ thống sẽ hiển thị đơn hàng trong khoảng thời gian được chọn nếu có và thông báo không có đơn hàng nếu trong khoảng thời gian đó không có đơn hàng nào được đặt
❖ UC - Quản lý giảm giá
➢ Tác nhân chính: Quản lý, người bán hàng
➢ Đặc tả: Quản lý giảm giá, gồm mã giảm giá theo mức phần trăm giảm giá, có thể tạo, sửa, xóa mức giảm giá
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các loại giảm giá
• B3: Thêm giảm giá mới, kiểm tra phần trăm giảm giá đã tồn tại chưa, nếu chưa thì tạo mới, nếu rồi thì quay tạo lại
• B4: Xóa một giảm giá, tìm theo Id để xóa giảm giá, nếu có id thì xóa, ngược lại thực hiện xóa lại hoặc thoát khỏi quá trình
• B5: Sửa một giảm giá, tìm theo Id để sửa giảm giá, nếu có id thì sửa, ngược lại thực hiện sửa lại hoặc thoát khỏi quá trình
❖ UC - Quản lý người dùng
➢ Tác nhân chính: Quản lý
➢ Đặc tả: Quản lý thành viên người dùng trong hệ thống, cũng như khách hàng đăng ký thành viên
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Hiển thị danh sách tất cả người dùng
• B3: Xem chi tiết thông tin người dùng
• B4: Thêm mới người dùng: Thêm thông tin vào các trường yêu cầu, hệ thống kiểm tra thông tin đúng và kiểm tra thông tin như email, tên đăng nhập đã tồn tài hay chưa, nếu nhập đúng thì cho tạo tài khoản và ngược lại thì báo lỗi
❖ UC - Quản lý nhà sản xuất
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Quản lý nhà sản xuất của sản phẩm bao gồm : Mã nhà sản xuất, tên nhà sản xuất,…
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Hiển thị danh sách nhà sản xuất
• B3: Thêm một nhà sản xuất mới: Thêm thông tin vào các trường yêu cầu, hệ thống kiểm tra thông tin đúng thì cho tạo và ngược lại thì báo lỗi
❖ UC - Quản lý hóa đơn
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Xem lại thông tin đặt hàng bao gồm: Số lượng, Tên sản phẩm, ngày đặt hàng, tổng giá,…
• B1: Hiển thị danh sách thông tin sản phẩm mà khách hàng đã đặt
• B2: Người dùng có thể xuất hóa đơn sang PDF
• B3: Người dùng thay đổi trạng thái thanh toán khi khách hàng đã thanh toán thành công
❖ UC - Quản lý sản phẩm
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Quản lý sản phẩm, gồm mã sản phẩm, có thể thêm, sửa, xóa sản phẩm
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các sản phẩm
• B3: Thêm sản phẩm, kiểm tra thông tin, nếu sản phẩm chưa tồn tại thì thêm vào, ngược lại thực hiện lại kết thúc quá trình
• B4: Sửa sản phẩm, sửa theo id, kiểm tra id, nếu tồn tại thì sửa, ngược lại thực hiện lại, hoặc kết thúc quá trình
• B5: Xóa sản phẩm, xóa theo id và kết thúc quá trình
❖ UC - Quản lý ưu đãi
➢ Tác nhân chính: Quản lý, nhân viên bán hàng
➢ Đặc tả: Quản lý ưu đãi, gồm mã ưu đãi có thể tạo, sửa, xóa ưu đãi
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các loại ưu đãi
• B4: Xóa một ưu đãi, tìm theo Id để xóa ưu đãi, nếu có id thì xóa, ngược lại thực hiện xóa lại hoặc thoát khỏi quá trình
• B5: Sửa một ưu đãi, tìm theo Id để sửa ưu đãi, nếu có id thì sửa, ngược lại thực hiện sửa lại hoặc thoát khỏi quá trình
❖ UC - Quản lý tin tức
➢ Tác nhân chính: Quản lý, nhân viên bán hàng, nhân viên viết bài
➢ Đặc tả: Quản lý tin tức, gồm thông tin của tin tức, có thể thêm, sửa, xóa tin tức
➢ Điều kiện: Có sự thay đổi cho quá trình
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các tin tức đã có
• B3: Thêm tin tức, nhập đúng các trường theo yêu cầu Nếu nhập đúng thì hệ thống sẽ hiển thị thông báo thê thành công ngược lại sẽ báo lỗi và nhập lại hoặc thoát
• B4: Sửa tin tức, sửa theo id, kiểm tra id, nếu tồn tại thì sửa, ngược lại thực hiện lại, hoặc kết thúc quá trình
• B5: Xóa tin tức, xóa theo id và kết thúc quá trình
❖ UC - Quản lý liên hệ
➢ Tác nhân chính: Quản lý, nhân viên viết bài
➢ Đặc tả: Đọc liên hệ và gửi mail phản hồi khách hàng
• B1: Đăng nhập vào trang quản lý với quyền đã quy định
• B2: Có thể xem danh sách các liên hệ mà khách hàng gửi đến
B3: Hệ thống sẽ tự động cập nhật trạng thái xem của người dùng, nếu quản trị viên đã xem thì trạng thái sẽ thay đổi, ngược lại nếu chưa xem thì trạng thái sẽ giữ nguyên.
➢ Tác nhân: Quản lý, nhân viên bán hàng, khách hàng
➢ Đặc tả: Khách hàng sau khi đăt hàng thì sẽ tiến hành thanh toán và người quản trị hệ thống tiến hành thay đổi trang thái cho khách hàng
• B1: Yêu cầu thông tin đă ̣t hàng từ khách hàng
• B2: Kiểm tra thông tin đặt hàng và thời ha ̣n nhâ ̣n hàng
• B3: Khác hàng thanh toán tiền
• B4: Quản lý tiến hành thanh toán 2.2.3 Xác định Object
- Nhân viên ( Nhân viên bán hàng, nhân viên viết bài )
2.2.4 Biểu đồ tương tác a Biểu đồ tuần tự
❖ Biểu đồ tuần tự “UC - Đăng nhập”
Hình 2.7: Biểu đồ tuần tự UC đăng nhâ ̣p
❖ Biểu đồ tuần tự “UC - Quản lý bán hàng”
Hình 2.8: Biểu đồ tuần tự UC quản lý bán hàng
❖ Biểu đồ tuần tự “ UC - Quản lý hàng hóa”
Hình 2.9: Biểu đồ tuần tự quản lý bán hàng
❖ Biểu đồ tuần tự “UC – Thanh toán”
Hình 2.10: Biểu đồ tuần tự UC thanh toán
❖ Biểu đồ tuần tự “UC - Thống kê”
Hình 2.11: Biểu đồ tuần tự UC - Thống kê
❖ Biểu đồ tuần tự “UC - Quản lý người dùng”
Hình 2.12: Biểu đồ tuần tự quản lý người dùng
❖ Biểu đồ tuần tự “UC - Quản lý tin tức”
Hình 2.13: Biểu đồ tuần tự quản lý tin tức
❖ Biểu đồ tuần tự “ UC - Quản lý đăng xuất”
Hình 2.14: Biểu đồ tuần tự quản lý đăng xuất b Biểu đồ cộng tác
❖ Biểu đồ cộng tác “ Đăng nhập”
Hình 2.15: Biểu đồ cộng tác UC đăng nhập
❖ Biểu đồ cộng tác “Quản lý bán hàng”
Hình 2.16: Biểu đồ cộng tác quản lý bán hàng
❖ Biểu đồ cộng tác “Quản lý hàng hóa”
Hình 2.17: Biểu đồ cộng tác quản lý hàng hóa
❖ Biểu đồ cộng tác “Quản lý thanh toán”
Hình 2.18: Biểu đồ cộng tác quản lý thanh toán
❖ Biểu đồ cộng tác “ thống kê”
Hình 2.19: Biểu đồ cộng tác thống kê
❖ Biểu đồ cộng tác “quản lý người dùng”
Hình 2.20: Biểu đồ cộng tác quản lý người dùng
❖ Biểu đồ cộng tác “quản lý tin tức”
Hình 2.21: Biểu đồ cộng tác quản lý tin tức
2.2.6 Biểu đồ trạng thái a Sản phẩm
❖ Biểu đồ trạng thái cho chức năng đăng nhập
Hình 2.23 Biểu đồ trạng thái cho chức năng đăng nhập
%3C mxGraphM odel% 3E% 3Croot% 3E% 3C mxCell %20id%3D %220% 22%2F% 3E%3C mxC ell% 20i d% 3D% 221%22% 20parent %3D %220% 22%2F %3E% 3C mxC ell% 20i d% 3D% 222%22% 20val ue%3D %22%22% 20st yl e% 3D% 22edgeSt yle%3Dort hog onalEdgeSt yl e% 3Bht ml %3D 1%3Bverti cal Align% 3Dbott om% 3BendArrow%3D open% 3BendSiz e% 3D8%3Bstr okeCol or% 3D% 23ff 0000% 3Bentr yX%3D 0% 3Bentr yY% 3D0.5%3Bentr yD x% 3D0%3Bentr yD y% 3D0%3B% 22% 20edg e% 3D% 221%22% 20parent %3D %22 1% 22%3E% 3C mxG eometr y% 20r elati ve%3D%221%22% 20as % 3D% 22g eometr y% 22% 3E%3C mxPoint %20x%3D %22280% 22% 20y% 3D% 2235% 22%20as% 3D% 22targetP oint% 22%2F % 3E%3C mxPoi nt %20x%3D %22220% 22%20y%3D %2235%22% 20as % 3D% 22s ourcePoi nt %22% 2F% 3E% 3CArray% 20as %3D %22poi nts %22% 2F% 3E% 3C% 2F mxG eometr y%3E% 3C %2F mxC ell% 3E%3C %2Froot% 3E% 3C% 2F mxGr aphM odel% 3E
❖ Biểu đồ trạng thái cho lớp sản phẩm chức năng quản lý sản phẩm
Hình 2.24: Biểu đồ trạng thái cho chức năng quản lý sản phẩm
❖ Biểu đồ trạng thái cho lớp sản phẩm chức năng xem chi tiết sản phẩm
Hình 2.25: Biểu đồ trạng thái cho lớp sản phẩm chức năng xem chi tiết sản phẩm
❖ Biểu đồ trạng thái cho lớp hóa đơn chức năng đặt hàng
Hình 2.26 Biểu đồ trạng thái cho lớp hóa đơn chức năng đặt hàng
❖ Biểu đồ trạng thái cho lớp hóa đơn chức năng quản lý hóa đơn
Hình 2.26: Biểu đồ trạng thái cho lớp hóa đơn chức năng quản lý hóa đơn
❖ Biểu đồ trạng thái chức năng thống kê
Hình 2.27 Biểu đồ trạng thái cho chức năng thống kê
Thiết kế cơ sở dữ liệu
STT Mã cột Mô tả Kiểu dữ liệu Not Null Khóa Ghi chú
1 Id Mã sản phẩm Int(10) Yes PK
2 Name Tên sản phẩm Varchar(255) Yes
3 Factory_id Mã nhà sản xuất
4 Promotion_id Mã giảm giá Int(10) Yes FK
5 In_stock Số lượng trong kho
6 Price Đơn Giá Int(11) Yes
7 Image Hình ảnh Text Yes
10 Description Mô tả Text Yes
11 Storage Dung lượng Varchar(255) Yes
12 Slug Tối ưu URL Varchar(100) Yes
❖ Bảng Factories (nhà sản xuất)
STT Mã Cột Mô tả Kiểu dữ liệu Not Null Khóa Ghi chú
1 Id Mã nhà sản xuất Int(10) Yes PK
2 Name Tên nhà sản xuất Varchar(255) Yes
3 Slug Tối ưu URL Varchar(50) Yes
STT Mã cột Mô tả Kiểu dữ liệu Not Null Khóa Ghi chú
1 Id Mã người dùng Int(10) Yes PK
2 Username Tên đăng nhập Varchar(20) Yes
3 Name Họ và tên Varchar(50) Yes
4 Password Mật khẩu Varchar(255) yes
5 Phone Số Điện Thoại Varchar(10) Yes
8 Address Địa Chỉ Varchar(255) Yes
❖ Bảng Roles (quyền người dùng)
STT Mã cột Mô tả Kiểu dữ liệu Not null Khóa Ghi chú
1 Id Mã phân quyền Int(10) yes PK
2 Name Tên phân quyền Varchar(255) yes
STT Mã cột Mô tả Kiểu dữ liệu Not Null Khóa Ghi chú
1 Id Mã Int(10) yes PK
2 Role_id Mã phân quyền Int(10) yes FK
3 User_id Mã nhân viên Int(10) yes FK
STT Mã cột Mô tả Kiểu dữ liệu Not null Khóa Ghi chú
1 Id Mã tin tức Int(10) yes PK
2 User_id Mã người dùng Int(10) Yes FK
3 Title Tiêu đề Varchar(255) yes
5 Contents Nội dung Longtext yes
Hình ảnh nội dung Text
7 Cover_image Ảnh bìa Text Yes
6 Slug Tối ưu URL Varchar(255) Yes
STT Mã cột Mô tả Kiểu dữ liệu Not null Khóa Ghi chú
1 Id Mã Hóa Đơn Int(10) yes PK
2 User_id Mã người dùng Int(10) FK
3 Username Tên khách hàng Varchar(50) yes
4 Address Địa chỉ Varchar(255) yes
7 Status Trạng thái Tinyint yes
1: đã thanh toán 2: Hủy đơn hàng
8 Total Tổng tiền Int(10) yes
❖ Bảng Bill_details (chi tiết hóa đơn)
STT Mã cột Tên Khóa Kiểu dữ liệu Not Null Khóa Ghi chú
1 Id Mã chi tiết Int(10) yes PK
2 Bill_id Mã Hóa Đơn Int(10) yes FK
3 Product_id Mã Sản Phẩm Int(10) yes FK
4 Quantity Số lượng Smallint(6) yes
5 Price Đơn Giá Int(11) yes
6 Amount Tổng tiền Int(11) yes
7 Product_name Tên sản phẩm Varchar(100) yes
8 Product_color Màu sản phẩm Varchar(45) yes
9 Product_promotion Giảm giá Int(10) yes
10 Product_storage Dung lượng Varchar(255) yes
STT Mã cột Mô tả Kiểu dữ liệu Not null Khóa Ghi chú
1 Id Mã khuyến mãi Int(10) yes PK
2 Percent Phần trăm Int(11) yes
3 Slug Tối ưu URL Varchar(255) yes
4 Status Trạng thái Int(11) yes
STT Mã cột Mô tả Kiểu dữ liệu Not null Khóa Ghi chú
1 Id Mã ưu đãi Int(10) yes PK
2 Factory_id Mã nhà sản xuất Int(10) yes
3 Title Tiêu đề Varchar(255) yes
6 Image Hình ảnh Text yes
7 Slug Tối ưu URL Varchar(255) yes
STT Mã cột Mô tả Kiểu dữ liệu Not null khóa Ghi chú
1 Id Mã bình luận Int(10) Yes PK
2 Parent_id Mã con Smallint FK
3 Product_id Mã sản phẩm Int(10) Yes FK
4 User_id Mã người dùng Int(10) FK
5 Content Nội dung Longtext Yes
6 Status Trạng thái Tinyint yes
STT Mã cột Mô tả Kiểu dữ liệu Not null khóa Ghi chú
1 Id Mã liên hệ Int(10) Yes PK
2 Parent_id Tên người liên hệ Smallint FK
3 Product_id Email Int(10) Yes FK
4 Content Nội dung Longtext Yes
5 Status Trạng thái Tinyint yes
❖ Bảng Informations (thông tin cửa hàng)
STT Mã cột Mô tả Kiểu dữ liệu Not null khóa Ghi chú
1 Id Mã Int(10) Yes PK
2 Title Tiêu đề Varchar(255) yes
3 Content Nội dung Longtext Yes
4 Slug Tối ưu URL Varchar(255) yes
STT Mã cột Mô tả Kiểu dữ liệu Not null khóa Ghi chú
1 Id Mã Int(10) Yes PK
❖ Bảng Introduces (giới thiệu cửa hàng)
STT Mã cột Tên khóa Kiểu dữ liệu Not null khóa Ghi chú
1 Id Mã Int(10) Yes PK
3 Address Địa chỉ Longtext Yes
❖ Bảng Logo (hình ảnh logo)
STT Tên khóa Mã cột Kiểu dữ liệu Not null khóa Ghi chú
1 Mã id int(10) Yes PK
STT Tên khóa Mã cột Kiểu dữ liệu Not null khóa Ghi chú
1 Mã id int(10) Yes PK
3 Ảnh biểu tượng Icon Text Yes
CÀI ĐẶT WEBSITE
Một số giao diện quản lý của website
3.1.1 Giao diện đăng nhập vào hệ thống quản lý website
Khi muốn sử dụng website quản lý người dùng phải được cấp email và mật khẩu để đăng nhập vào hệ thống
Hình 3.1 Giao diện đăng nhập hệ thống quản lý website
Khi có email và mật khẩu người dùng có thể đăng nhập vào hệ thống quản lý
Hình 3.2 Giao diện trang chủ hệ thống
3.1.3 Giao diện quản lý người dùng a Giao diện hiển thị danh sách người dùng
Hình 3.3 Giao diện hiển thị danh sách người dùng
66 b Giao diện tạo người dùng
Hình 3.4 Giao diện tạo người dùng c Giao diện xem thông tin người dùng
Hình 3.5 Giao diện xem thông tin người dùng
67 d Giao diện chỉnh sửa người dùng
Hình 3.6 Giao diện chỉnh sửa người dùng
3.1.4 Giao diện quản lý sản phẩm
Quản lý danh sách sản phẩm, thêm chi tiết sản phẩm, chỉnh sửa và xóa một sản phẩm a Giao diện tạo sản phẩm
Hình 3.7 Giao diện tạo sản phẩm
68 b Giao diện xem chi tiết sản phẩm
Hình 3.8 Giao diện xem chi tiết sản phẩm
3.1.5 Giao diện quản lý đơn hàng a Giao diện danh sách đơn hàng
Hình 3.9 Giao diện danh sách đơn hàng
69 b Giao diện chi tiết đơn hàng
Hình 3.10 Giao diện chi tiết đơn hàng c Giao diện xuất hóa đơn sang PDF
Hình 3.11 Xuất hóa đơn sang PDF
Một số giao diện bán hàng của website
Khách hàng đăng nhập vào website bán hàng để có thể tham gia các chương trình quản lý, tri ân khách hàng đồng thời có thể đặt hàng thuận lợi hơn
Hình 3.12 Giao diện trang đăng nhập
3.2.2 Giao diện trang đăng ký tài khoản
Người dùng đăng ký tài khoản để có thể đăng nhập vào website
Hình 3.13 Giao diện đăng ký tài khoản
72 3.2.3 Giao diện trang chủ mua hàng
Hình 3.14 Giao diện trang chủ website bán hàng
3.2.4 Giao diện trang sản phẩm cùng loại
Giao diện hiển thị những sản phẩm cùng một loại danh mục nhà sản xuất
Hình 3.15 Giao diện trang sản phẩm cùng loại
74 3.2.5 Giao diện trang chi tiết sản phẩm
Hình 3.16 Giao diện trang chi tiết sản phẩm
75 3.2.6 Giao diện trang tin tức
Hình 3.17 Giao diện trang tin tức
3.2.7 Giao diện trang liên hệ
Người dùng có thể liên hệ với người quản lý website bán hàng
Hình 3.18 Giao diện trang liên hệ
3.2.8 Giao diện trang gửi mail đến người dùng
Hệ thống sẽ gửi mail cho người dùng sau khi người dùng gửi nội dung liên hệ đến với hệ thống quản lý
Hình 3.19 Xác nhận liên hệ của người dùng bằng email
3.2.9 Giao diện trang giỏ hàng
Hình 3.20 Giao diện đặt hàng
78 3.2.10 Giao diện thanh toán hóa đơn
Hình 3.21 Giao diện thanh toán hóa đơn