MỞ ĐẦU 1. LÝ DO CHỌN ĐỀ TÀI Từ lâu, ngành nội thất đã trở thành một lĩnh vực phát triển mạnh mẽ và tiềm năng với nhu cầu ngày càng tăng của người tiêu dùng. Trong thời đại công nghệ số hiện nay, việc có một website chuyên nghiệp và hấp dẫn là yếu tố quan trọng để xây dựng thương hiệu và thu hút khách hàng. Dưới đây là những lý do quan trọng mà chúng em đã chọn đề tài "Xây dựng website thương mại điện tử về nội thất" cho đồ án của chúng em: Thể hiện xu hướng kinh doanh hiện đại: Xây dựng một website chuyên nghiệp cho ngành nội thất là cách để chúng tôi đáp ứng xu hướng kinh doanh hiện đại.
Với sự phát triển mạnh mẽ của Internet, người tiêu dùng ngày càng có xu hướng tìm kiếm và mua sắm trực tuyến., đặc biệt là trên website trong thời đại công nghệ phổ biến như hiện nay. Một website chất lượng không chỉ giúp tăng cường sự hiện diện trực tuyến của doanh nghiệp nội thất, mà còn tạo điều kiện thuận lợi cho khách hàng tiếp cận và mua sắm sản phẩm. Tiếp cận và mở rộng thị trường: Một website chuyên nghiệp sẽ giúp tiếp cận được một đối tượng khách hàng rộng lớn hơn. Thay vì chỉ phục vụ khách hàng trong khu vực địa phương, chúng tôi có thể mở rộng thị trường đến khắp quốc gia hoặc thậm chí quốc tế.
Điều này giúp tăng cơ hội kinh doanh và tạo điều kiện cho sự phát triển bền vững của doanh nghiệp. Tạo dựng và củng cố hình ảnh thương hiệu: Một website chuyên nghiệp là nền tảng để xây dựng và củng cố hình ảnh thương hiệu. Website sẽ cho phép trình bày thông tin về sản phẩm, giới thiệu về công ty, các giải thưởng hoặc chứng chỉ chất lượng, và những phản hồi tích cực từ khách hàng. Tất cả những điều này góp phần xây dựng niềm tin và sự tin tưởng từ phía khách hàng, từ đó tạo nên lợi thế cạnh tranh trong ngành nội thất.
Tăng tính tương tác và trải nghiệm khách hàng: Một website có giao diện thân thiện, dễ sử dụng và tương tác sẽ tạo ra trải nghiệm tốt cho khách hàng. Có thể tích hợp các chức năng như tìm kiếm sản phẩm, đặt hàng trực tuyến. Điều này giúp tăng tính tiện ích và thu hút khách hàng trở lại lần sau. Theo kịp xu hướng công nghệ và truyền thông: Xây dựng website về nội thất giúp theo kịp xu hướng công nghệ và truyền thông hiện nay.
Các công nghệ mới như thiết bị di động, tích hợp trực tuyến, và truyền thông xã hội đã tạo ra nhiều cơ hội tiếp 13 cận khách hàng một cách hiệu quả. Nắm bắt và áp dụng những xu hướng này vào trang web để đáp ứng và vượt qua sự mong đợi của khách hàng. Việc xây dựng website chuyên nghiệp và hấp dẫn cho ngành nội thất là một bước quan trọng để tạo dựng thương hiệu, tăng cường sự hiện diện trực tuyến và thu hút khách hàng. Bằng cách áp dụng các công nghệ và xu hướng mới nhất, chúng em hy vọng sẽ đạt được thành công trong việc xây dựng một website hiệu quả và mang lại lợi ích cho doanh nghiệp.
MỤC TIÊU Từ những lý do chọn đề tài như trên, nhóm định hướng xây dựng một website đáp ứng được các mục tiêu như: - Tạo ra một giao diện thân thiện với người dùng, hiệu suất hoạt động cao ổn định lâu dài - Cung cấp thông tin đầy đủ và chi tiết về sản phẩm và dịch vụ: - Tạo điều kiện thuận lợi cho khách hàng tiếp cận và mua sắm trực tuyến - Xây dựng website thân thiện dưới góc nhìn người dùng cũng như dễ quản lý dưới góc nhìn của admin 14 1. CÔNG NGHỆ SỬ DỤNG Hình 1. Công nghệ sử dụng 1. PHƯƠNG PHÁP NGHIÊN CỨU Lý thuyết thực tiễn: Tìm hiểu tính năng, giao diện các trang web trực tuyến có sẵn.
Tìm hiểu tài liệu về công nghệ sử dụng Tham khảo chuyên gia: Tham khảo ý kiến của giảng viên hướng dẫn và người có kinh nghiệm liên quan đến các vấn đề của đề tài Phát triển mô hình: Phát triển dự án theo mô hình phát triển phần mềm từ đặc tả, thiết kế đến hoàn thành sản phẩm. 15 CHƯƠNG 2: KIẾN THỨC CƠ BẢN 2. TỔNG QUAN VỀ MERN STACK 2. Khái niệm về MERN Stack MERN viết đầy đủ là MERN stack, là một bộ công nghệ mã nguồn mở liên quan đến JavaScript.
Gồm các công nghệ: MongoDB, Express, React/React Native và Nodejs. MERN stack đã được công nhận là một lựa chọn đáng tin cậy và hiệu quả cho việc phát triển các ứng dụng web. Hơn nữa, tính chất open source của các thành phần trong MERN stack đảm bảo sự hỗ trợ rộng rãi từ cộng đồng, các bản cập nhật liên tục và truy cập vào một loạt các tài nguyên. Các thành phần trong MERN stack MERN stack là một tập hợp các công nghệ dựa trên JavaScript được sử dụng cùng nhau để phát triển các ứng dụng web.
Stack này bao gồm MongoDB, Express, React và Node. React là một thư viện JavaScript mã nguồn mở cho front-end, dùng để xây dựng giao diện người dùng dựa trên các thành phần. MongoDB là một cơ sở dữ liệu có dạng NoSQL. Đặc điểm của nó là không có ràng buộc quan hệ, phân tán, mã nguồn mở, có khả năng lưu trữ, xử lý một lượng rất nhỏ cho tới lượng dữ liệu cực lớn.
Trong mô hình MEAN stack, MongoDB đóng vai trò là cơ sở dữ liệu cho website và có khả năng kết nối dễ dàng với NodeJS và ExpressJS. NodeJS là một môi trường cho phép chạy JavaScript ở phía server mà không cần trình duyệt. Nó có nhiệm vụ tiếp nhận những Request và gửi trả những Response nếu có, cụ thể trong mô hình MEAN stack thì những Request này sẽ đến từ Angular ở phía client hay browser của người dùng. NodeJS cũng có nhiệm vụ xử lý những tính toán logic ở phía server, xử lý vấn đề bảo mật như xác thực, phân quyền… hay khả năng thao tác với các tập tin và giao tiếp với cơ sở dữ liệu MongoDB.
ExpressJS là một framework của NodeJS, nó cũng cấp thêm những chức năng giúp cho quá trình làm việc bằng NodeJS được dễ dàng hơn, cụ thể có thể là giúp dễ 16 dàng hơn khi xử lý những Request tới những địa chỉ khác nhau từ phía người dùng. Nói chung, ExpressJS giúp cho công việc xử lý ở phía backend trở nên dễ dàng và nhanh chóng hơn. Cách thức MERN stack hoạt động Hình 2. Cách thức Mern stack hoạt động 2.
Ưu điểm của MERN Stack Vì MERN stack là một môi trường JavaScript toàn diện, nó cung cấp một trải nghiệm mã nguồn mở, nhất quán và có khả năng mở rộng bao trùm toàn bộ quy trình phát triển ứng dụng và phù hợp với lập trình viên ở các mức độ kỹ năng khác nhau. Nó cho phép các developer sử dụng một ngôn ngữ duy nhất và một bộ công cụ nhất quán để xây dựng cả front-end và back-end của ứng dụng của họ, giảm thiểu thời gian và độ phức tạp của phát triển. Và vì MERN stack là một framework mã nguồn mở phổ biến, các developer sẽ có được một cộng đồng nhiệt tình và hỗ trợ để chia sẻ kiến thức, giải quyết vấn đề và học hỏi liên tục. Ngoài ra, việc không có phí bản quyền có thể mang lại những khoản tiết kiệm chi phí đáng kể.
17 MERN stack xuất sắc trong việc xây dựng các giao diện người dùng tương tác và có khả năng mở rộng. Điều này làm cho nó trở thành một lựa chọn tốt cho việc xây dựng các ứng dụng phải xử lý lượng truy cập lớn và đáp ứng sự tăng trưởng nhanh chóng. Phần lớn khả năng mở rộng này là nhờ vào việc sử dụng MongoDB, một cơ sở dữ liệu định hướng tài liệu nổi tiếng với tốc độ và hiệu quả trong các hoạt động lưu trữ và truy xuất dữ liệu. MERN stack hỗ trợ nhiều tùy chọn triển khai và nền tảng, bao gồm nhiều môi trường dựa trên đám mây.
Sự linh hoạt này cho phép các developer chọn nền tảng đám mây phù hợp nhất với yêu cầu của họ. Ngoài ra, MERN stack cung cấp một trải nghiệm phát triển nhất quán trên các nền tảng đa dạng. Điều này hữu ích cho việc di chuyển ứng dụng giữa các nền tảng khác nhau, chẳng hạn từ Amazon Web Services (AWS) sang Oracle Cloud Infrastructure (OCI), mà không cần phải thay đổi mã nhiều. Khả năng di chuyển này giúp tiết kiệm thời gian và công sức quý báu và đảm bảo sự đồng nhất về giao diện và chức năng, bất kể nền tảng cơ bản.
Tổng quan NodeJS là một framework môi trường hỗ trợ dịch và thực thi chương trình được viết bằng JavaScript mà không cần dùng tới trình duyệt. NodeJS ra đời nhờ những lập trình viên đầu tiên của JavaScript mở rộng nó từ một ngôn ngữ chỉ có thể thực thi trên trình duyệt thành ngôn ngữ có thể thực thi độc lập trên máy tính. NodeJS cũng giống với trình duyệt hiện nay, được chạy dựa trên V8 JavaScript engine - công cụ giúp trình duyệt dịch và thực thi JavaScript. Ngoài ra, NodeJS cung cấp một số thư viện không có sẵn trong V8 engine ● Một số khái niệm tiêu biểu trong NodeJS - Event: mỗi một thao tác, yêu cầu (request) đến server đều được NodeJS xem là một sự kiện (event) 18 - Event Queue: hàng đợi sự kiện là nơi tất cả các sự kiện (event) đã đi vào sẽ lần lượt được xử lý theo cơ chế FIFO, tức là các sự kiện đến server trước sẽ được NodeJS xử lý trước, các sự kiện đến server sau sẽ được xử lý sau.
- Callbacks: là các thao tác, các xử lý, các hàm sẽ được thực hiện sau khi đã thực thi hoàn thành một hàm định nghĩa callback. Việc sử dụng callback giúp cho lập trình viên quản lý các vấn đề về. - Message: nội dung thông báo tương ứng với từng callback. - Blocking I/O: là cơ chế được ứng dụng trong phần lớn các ngôn ngữ server-side, cơ chế này quản lý các request đến server và lần lượt cho thực hiện yêu cầu của request tiếp theo khi request đang xử lý đã hoàn thành.
Từ đây dễ thấy được rằng nếu các yêu cầu xử lý của request đến sớm tiêu tốn nhiều thời gian thì các request đến sau bắt buộc phải đợi toàn bộ thời gian xử lý này. Với NodeJS việc quản lý các request yêu cầu được thay thế bằng cơ chế xử lý Non-Blocking I/O để giải quyết vấn đề thời gian chờ nêu trên. - Thread Pool: là một chương trình viết bằng ngôn ngữ C++ được tích hợp bên trong NodeJS, chương trình này cho phép xử lý đa luồng.