CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI VÀ CÁC CÔNG NGHỆ SỬ DỤNG 1. Giới thiệu đề tài. Lý do chọn đề tài. Với xu thế phát triển của công nghệ 4.0 ngày nay, mọi mặt trong cuộc sống của con người ngày càng được tăng cao, đặc biệt là sự tiện lợi và nhanh chóng trong trải nghiệm của mua dùng khi mua bán hàng hóa ngày càng được người dùng chú trọng và yêu cầu cao hơn.
Đây cũng là yếu tố then chốt quyết định tới việc phát triển của một nền tảng website thương mại điện tử không chỉ đơn thuần là một cửa hàng trực tuyến mà còn là sự kết hợp độc đáo giữa công nghệ và trải nghiệm người dùng. Đã từ lâu, việc mua sắm trực tuyến đã trở thành một phần không thể thiếu trong cuộc sống hàng ngày của chúng ta. Tuy nhiên, với sự bùng nổ của công nghệ, việc tìm kiếm sản phẩm một cách nhanh chóng và thuận tiện ngày càng trở nên quan trọng hơn. Điều này thúc đẩy việc phát triển của các hệ thống tìm kiếm sản phẩm thông minh dựa trên hình ảnh để tạo ra một chức năng thuận tiện cho việc tìm kiếm sản phẩm trên website, giúp tăng trải nghiệm của người dùng khi sử dụng một website thương mại điện tử.
Xuất phát từ những yếu tố trên, em quyết định tìm hiểu và thực hiện đề tài "Xây dựng website bán thực phẩm kết hợp tìm kiếm sản phẩm bằng hình ảnh". Qua việc thực hiện đề tài này, em muốn tìm hiểu và đưa ra các giải pháp nhằm giải quyết việc mua bán thực phẩm và kết hợp với chức năng tìm kiếm sản phẩm bằng hình ảnh.nhằm mang lại trải nghiệm tốt nhát cho khách hàng khi mua thực phẩm và tìm kiếm sản phẩm. Mục tiêu của đề tài. - Xây dựng website nhằm mục đích giới thiệu, quảng cáo, mua bán các loại thực phẩm rau, củ, quả nhằm thúc đẩy hiệu suất kinh doanh cho cửa hàng.
- Tìm hiểu và tích hợp các phương thức thanh toán online, xây dựng các hình thức liên hệ trao đổi giữa khách hàng và quản lý của cửa hàng nhằm tăng trải nghiệm 4 và sự thuận lợi cho người sử dụng. - Giúp quản lý cửa hàng có thể quản lý sản phẩm, người dùng, các giao dịch mua bán và xem các thống kê một cách trực quan. - Nghiên cứu và xây dựng chức năng tìm kiếm sản phẩm bằng hình ảnh giúp người dùng có thể tìm kiếm sản phẩm một cách dễ dàng hơn. Các công nghệ sử dụng.
Cơ sở dữ liệu MySQL. Giới thiệu chung. MySQL là một hệ thống quản trị cơ sở dữ liệu quan hệ (RDBMS) mã nguồn mở hoạt động theo mô hình client-server. MySQL được sử dụng rất phổ biến và có thể được setup trên nhiều loại hệ điều hành khác biệt như Windows, Linux và Mac OS.
Với MySQL, ta có thể tạo và kết nối cơ sở dữ liệu với các website được viết bằng rất nhiều các ngôn ngữ lập trình khác nhau như Java, C#, NodeJS, PHP,. một cách rất đơn giản và không tốn nhiều thời gian. Ưu điểm của MySQL. Dễ sử dụng: MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và 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.
Mã nguồn mở: MySQL là một hệ quản trị cơ sở dữ liệu mã nguồn mở, điều này có nghĩa là bạn có thể sử dụng, chỉnh sửa và phân phối nó một cách tự do mà không cần mua bản quyền. Hiệu suất cao: MySQL được thiết kế để đạt hiệu suất cao và xử lý dữ liệu nhanh chóng. Nó có khả năng xử lý tải công việc cao mà không gây trễ hoặc sụp đổ. 5 Mở rộng linh hoạt: MySQL hỗ trợ nhiều tính năng mở rộng, bao gồm lập trình truyền thống, các hàm lưu trữ và cơ chế nhân bản (replication) cho dự án tăng cường.
Hỗ trợ đa nền tảng: MySQL hỗ trợ nhiều hệ điều hành và có phiên bản cho nhiều nền tảng khác nhau, bao gồm Windows, Linux, và macOS. Nhược điểm của MySQL. Hạn chế về hiệu suất cho các ứng dụng lớn: MySQL thích hợp cho nhiều ứng dụng, nhưng có thể gặp hạn chế về hiệu suất cho các ứng dụng lớn và phức tạp với tải công việc cao. Giới hạn: Theo thiết kế, MySQL không có ý định làm tất cả và nó đi kèm với các hạn chế về chức năng mà một vào ứng dụng có thể cần.
Dung lượng hạn chế: Nếu số bản ghi của bạn lớn dần lên thì việc truy xuất dữ liệu là khá khó khăn. Ngôn ngữ lập trình Java và Spring Framework. Giới thiệu ngôn ngữ lập trình Java. Java là một ngôn ngữ lập trình hướng đối trượng, dễ học và dễ đọc, được sử dụng trong nhiều lĩnh vực khác nhau như phát triển ứng dụng web, di động, máy tính cá nhân, máy chủ, và thiết bị nhúng.
JVM và quá trình hoạt động của một ứng dụng Java. [1] JVM (Java Virtual Machine - Máy Ảo Java) là một máy ảo có trách nhiệm thực thi mã bytecode Java. JVM là một thành phần quan trọng của ngôn ngữ lập trình Java và giúp Java trở thành một ngôn ngữ đa nền tảng, có khả năng chạy trên nhiều hệ điều hành và môi trường khác nhau mà không cần biên dịch lại mã nguồn. Quá trình hoạt động của một chương trình Java diễn ra như sau: 6 + Chuong trình được viết bằng code Java bằng IDE hoặc một trình soạn thảo văn bản.
+ Mã nguồn Java được biên dịch thành bytecode bằng trình biên dịch Java (javac). Bytecode là một mã trung gian không phụ thuộc vào nền tảng và có định dạng. + Bytecode và các tài nguyên liên quan (hình ảnh, âm thanh, tệp tin cấu hình) được đóng gói thành một file JAR (Java Archive) hoặc WAR (Web Archive) tùy thuộc vào loại ứng dụng (ứng dụng desktop hoặc ứng dụng web). + Bytecode được thực thi trên máy ảo Java (JVM).
Điều này giúp bytecode có thể chạy trên nhiều nền tảng khác nhau. + JVM chạy bytecode và thực hiện ứng dụng Java trên máy tính hoặc thiết bị cụ thể. Giới thiệu framework Spring. [2] Spring Framework là một framework phát triển ứng dụng Java phía máy chủ (server-side) mạnh mẽ và phổ biến, được sử dụng rộng rãi trong phát triển ứng dụng web và ứng dụng doanh nghiệp.
Nó giúp tạo các ứng dụng có hiệu năng cao, dễ kiểm thử, sử dụng lại code… Spring được thiết kế dựa trên nguyên tắc thiết kế mô-đun, cho phép bạn sử dụng chỉ những phần của framework mà bạn cần. Nó cũng được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming. Các module chính được sử dụng trong framework Spring: + Spring boot: Đưa ra một bộ thư viện để xây dựng ứng dụng Spring. + Spring Security; Bảo vệ ứng dụng với việc triển khai, xác thực, phân quyền.
7 + Spring JPA: Cung cấp truy cập cơ sở dữ liệu và xử lý dữ liệu. + Spring REST : Cho phép sử dụng và mô tả các RESTful API. Ngôn ngữ lập trình JavaScript và Frmework VueJS. Giới thiệu ngôn ngữ lập trình Javascript.
JavaScript là một ngôn ngữ lập trình phía máy khách (client-side) được sử dụng phổ biến cho phát triển ứng dụng web. Javascript được sử dụng rộng rãi trong các ứng dụng Website. Javascript được hỗ trợ hầu như trên tất cả các trình duyệt như Firefox, Chrome,. trên máy tính lẫn điện thoại.
Ưu điểm của JS. JavaScript là một ngôn ngữ đa mục tiêu, có thể được sử dụng để phát triển ứng dụng web, ứng dụng di động, ứng dụng máy tính cá nhân, và nhiều loại ứng dụng khác. Javascript có thể hoạt động trên nhiều nền tảng khác nhau, từ Windows, macOS cho đến các hệ điều hành trên mobile. Javascript là một ngôn ngữ dễ tiếp cận, bạn sẽ dễ dàng học nó mà không cần phải cài đặt quá nhiều phần mềm.
Nhược điểm của JS, Bảo Mật: JavaScript chạy trên máy chủ của người dùng, nên có nguy cơ bị tấn công bởi các kỹ thuật như cross-site scripting (XSS). Khả Năng Xử Lý Lỗi (Error Handling): Xử lý lỗi trong JavaScript có thể phức tạp và khó khăn, đặc biệt là khi phải theo dõi các sự kiện xảy ra trong mã JavaScript. Khả Năng Hiệu Suất: Một số ứng dụng JavaScript có thể trở nên chậm khi 8 phải xử lý nhiều tính toán hoặc tải dữ liệu lớn, đặc biệt trên các thiết bị có tài nguyên hạn chế. Giới thiệt về framework VueJS.js là một framework JavaScript mã nguồn mở được thiết kế để xây dựng giao diện người dùng (UI) động cho các ứng dụng web hiện đại đặc biệt là các ứng dụng SPAs (Single Page Applications).
Ưu điểm của VueJS. Dễ Học và Sử Dụng: Vue.js dễ học và sử dụng, đặc biệt đối với người mới bắt đầu trong lập trình Front-end. Tính Linh Hoạt: Vue.js hỗ trợ các mô hình phát triển từ dự án nhỏ đến ứng dụng lớn.js sử dụng khái niệm components, cho phép bạn tạo ra các thành phần giao diện riêng biệt và tái sử dụng chúng trong nhiều nơi khác nhau trong ứng dụng. Vue Router: Vue.js đi kèm với Vue Router, một thư viện cho việc quản lý định tuyến (routing) trong các ứng dụng Vue.
Điều này giúp xây dựng các ứng dụng đơn trang (SPAs) một cách dễ dàng. Vuex: Vuex là một trạng thái quản lý (state management) cho các ứng dụng Vue. Nó giúp quản lý trạng thái toàn cục của ứng dụng một cách hiệu quả, đặc biệt trong các ứng dụng lớn và phức tạp. Hiệu năng: Vue.js được thiết kế với hiệu năng cao và tối ưu hóa để đảm bảo rằng ứng dụng Vue chạy mượt mà và nhanh nhẹn.
Nhược điểm của VueJS. Kích thước của cơ sở mã nguồn: Khi ứng dụng trở nên lớn, mã nguồn Vue.js có thể trở nên phức tạp và khó quản lý. Hạn chế về thư viện hỗ trợ: Một số thư viện hoặc plugin của bên thứ ba có 9 thể không được hỗ trợ tốt hoặc gây xung đột với Vue. Ngôn ngữ lập trình Python và Framework Flask.
Giới thiệt ngôn ngữ lập trình Python. [4] Python là một ngôn ngữ lập trình thông dịch, ngắn gọn, dễ học, giúp cho các lập trình viên có thể tập trung vào việc giải quyết vấn đề thay vì lo lắng về các chi tết cú pháp phức tạp. Python được sử dụng cho các mục đích: Phát triển website, khoa học dữ liệu, trí tuệ nhân tạo (AI), đồ họa máy tính, tự động hóa, và nhiều lĩnh vực khác. Quá trình hoạt động của một ứng dụng Python diễn ra như sau: + Chương trình được viết bằng Python được thực thi bằng trình thông dịch (Interpreter) (do Python là ngôn ngữ lập trình thông dịch nên không cần phải được biên dịch thành mã máy).
Trình thông dịch Python sẽ đọc từng dòng mã và thực thi chúng từ trên xuống dưới.