TỔNG QUAN
Lý do chọn đề tài
Ngành Công nghệ thông tin đang phát triển nhanh chóng, ứng dụng rộng rãi trong mọi lĩnh vực của cuộc sống toàn cầu và Việt Nam Đây là phần không thể thiếu trong cuộc sống hiện đại, thúc đẩy công nghiệp hóa và hiện đại hóa đất nước Việc áp dụng thành quả khoa học công nghệ vào đời sống và công việc là rất cần thiết Sự kết hợp giữa công nghệ thông tin và truyền thông hóa là yếu tố quyết định trong hoạt động của các công ty và tổ chức, đóng vai trò quan trọng và không thể thiếu Công nghệ thông tin và truyền thông hóa thay đổi tư duy, giúp con người năng động và kết nối nhanh chóng, từ đó nâng cao hiệu quả và năng suất công việc.
C# (hay C sharp) là ngôn ngữ lập trình đơn giản và hiện đại, được phát triển bởi Microsoft vào năm 2000 Ngôn ngữ này hướng đối tượng và được xây dựng dựa trên nền tảng của hai ngôn ngữ mạnh mẽ là C++ và Java.
ASP.Net MVC là một framework lập trình web hiện đại của Microsoft, áp dụng mô hình thiết kế MVC, một phương pháp đã có từ lâu trong ngành công nghệ phần mềm Ứng dụng theo mô hình MVC bao gồm ba thành phần tách biệt: Model, View và Controller Tương tự như cấu trúc Three-Tier, mô hình MVC giúp phân tách ba tầng trong lập trình web, từ đó tối ưu hóa ứng dụng và dễ dàng trong việc thêm mới hoặc chỉnh sửa mã nguồn và giao diện.
Mục đích, mục tiêu đề tài
- Nắm chắc được được kỹ năng và kiến thức về lập trình
- Tìm hiểu về lập trình hướng đối tượng trong ngôn ngữ C#
- Tìm hiểu về mô hình MVC5 để xây dựng website bán hàng thời trang
- Nắm bắt được quy trình làm web hoàn chỉnh và theo tiêu chuẩn
- Vận Dụng được tính chất của lập trình Hướng Đối Tượng
- Ứng dụng của mô hình MVC5 vào việc xây dựng web bán hàng thời trang
- Mở rộng đối tượng khách hàng cho shop bán hàng thời trang
Phương pháp nguyên cứu
Nhóm 13 đã tiến hành khảo sát thực tế tại cửa hàng và nghiên cứu các tài liệu có sẵn trên internet để đáp ứng các yêu cầu của đề tài.
Qua đó nhóm có sẵn thông tin yêu cầu từ thực tế của cửa hàng và xu thế phát triển của cửa hàng trong tương lai
Nhóm chúng em rất cảm ơn sự quan tâm từ khoa Công nghệ Thông tin trường HUTECH, đặc biệt là sự hướng dẫn tận tình của ThS Dương Thành Phết trong quá trình thực hiện đồ án này.
Đối tượng nguyên cứu
Người quản lý, kinh doanh: Cần có một trang thông tin quản lý cửa hàng, nhân viên, sản phẩm, nhằm quản bá thương hiệu, mở rộng thị trường
Khách hàng: Cần có những thông tin về sản phẩm mong muốn mà không mất thời gian công sức đến tận cửa hàng.
Yêu cầu xây dựng web
Thiết kế logo, banner ấn tượng, phù hợp
Lập trình sao cho khách hàng (người đặt làm web) có thể thay đổi những hình ảnh trong banner
Hình ảnh minh họa trong banner thể hiện về dịch vụ của Công ty – Cửa hàng Cam kết bán sản phẩm chính hãng
Các chức năng cần phải rõ ràng và dễ tìm kiếm
Cung cấp khả năng soạn thảo và đăng tải bài viết lên website với giao diện thân thiện cho người xem, dễ tiếp cận, trực quan và hiệu quả
Module quản lý tin tức cho phép người quản trị liên tục cập nhật thông tin mới, sửa hoặc xóa các thông tin đã đăng
Trình soạn thảo bài viết đơn giản dễ hiểu hoặc có thể soạn thảo trên các công cụ soạn thảo rồi cập nhật lên website
• Tính năng dành cho người sử dụng
Hiển thị tin tức theo các mục như tin mới, tin quan trọng, hoặc theo chủ đề như thị hiếu khách hàng, thông tin khuyến mãi vào dịp lễ tết, và tin tức thời trang quốc tế và trong nước, giúp người dùng dễ dàng truy cập thông tin mà họ quan tâm.
• Tính năng chung Các sản phẩm được trình bày theo danh mục sản phẩm riêng biệt
Sản phẩm sẽ được mô tả chi tiết kèm với hình ảnh để khách hàng có thể chọn lựa và phân biệt các sản phẩm với nhau
Khách hàng có thể dễ dàng tìm kiếm sản phẩm thông qua công cụ tìm kiếm hoặc theo danh mục sản phẩm được trình bày.
Sau khi chọn được sản phẩm ưng ý khách hàng có thể chọn tiếp các sản phẩm khác và liên hệ đặt hàng
Module sản phẩm sẽ được chia làm nhiều danh mục
Là một phần quan trọng trong hệ thống thương mại điện tử, module này kết hợp với Giỏ Hàng để tạo thành một hệ thống hoàn chỉnh cho việc quảng cáo sản phẩm và bán hàng trực tuyến.
• Tính năng dành cho người quản trị
Dễ dàng đưa sản phẩm và dịch vụ lên website với khả năng tạo ra số lượng danh mục và danh mục con không hạn chế Bạn có thể quản lý nhiều sản phẩm lớn, bao gồm danh mục sản phẩm mới, sản phẩm bán chạy, sản phẩm được đặt hàng nhiều nhất và sản phẩm khuyến mại Mỗi sản phẩm có thể hiển thị với nhiều kiểu hình ảnh và kèm theo mô tả chi tiết.
(màu sắc, kích cỡ…), bảng giá, thời hạn khuyến mại và tất cả các thông tin liên quan đến sản phẩm
Tuỳ ý chỉnh sửa, kiểm tra, thêm mới hoặc xoá bỏ(ẩn) một sản phẩm hay một danh mục sản phẩm
Cập nhật số lượng hàng tồn trong kho, đề xuất nhập hàng
Hệ thống ghi nhận và báo cáo cung cấp thông tin chi tiết về số lượng khách hàng mua sắm trực tuyến, xác định những khách hàng có tần suất mua cao nhất, theo dõi số lượng đơn đặt hàng theo ngày, tháng, quý, và liệt kê các sản phẩm bán chạy nhất.
• Tính năng dành cho khách hàng
Khách hàng có thể theo dõi đơn đặt hàng của mình mọi lúc, giúp họ hoàn toàn kiểm soát thông tin chi tiết về quá trình thực hiện đơn hàng.
Khách hàng tự do lựa chọn so sánh các sản phẩm với nhau, đánh giá sản phẩm sau khi mua
Hệ thống tìm kiếm cho phép khách hàng nhanh chóng tìm thấy sản phẩm mong muốn bằng cách nhập từ khóa liên quan Danh mục sản phẩm sẽ hiển thị tên, mô tả và thông tin chi tiết về từng sản phẩm.
Là module con quan trọng trong hệ thống thương mại điện tử, nó cho phép khách hàng kiểm soát món hàng mà bản thân muốn mua
Shopping Cart cho phép khách hàng đặt hàng trực tuyến thông qua website công ty đồng thời cung cấp hệ thống thanh toán trực tuyến dễ dàng, tiện lợi
Khách hàng có khả năng tự quản lý và theo dõi đơn đặt hàng của mình, đồng thời có thể huỷ bỏ hoặc thay đổi thông tin đơn hàng trong khoảng thời gian cho phép.
Hệ thống báo cáo bán hàng cho phép người quản trị quản lý được số đơn đặt hàng
Dữ liệu thống kê được cập nhật liên tục theo thời gian (theo giờ, ngày, tháng, quý, năm) và theo loại sản phẩm, giúp người quản trị xác định sản phẩm nào được đặt nhiều nhất và ít nhất, cũng như khoảng thời gian cụ thể cho từng loại sản phẩm.
Tra cứu: cho phép người duyệt web có thể thực hiện tìm kiếm thông tin trên site thông qua gõ từ hoặc nhóm từ cần tìm dạng free text
Sitemap: Bản đồ Website Đưa các thông tin để người duyệt web có thể liên hệ với công ty qua địa chỉ, số điện thoại, email, …
Ngoài ra trên site cung cấp một form dạng “contact us” dành cho người duyệt web khi cần liên hệ hoặc gửi ý kiến, nhận xét
Khảo sát (Survey): Trưng cầu ý kiến người duyệt web
Mục đếm số người truy cập website Liên kết với mạng xã hội để mở rộng nguồn khách hàng
Chức năng hiển thị danh sách Banner quảng cáo Chức năng hiển thị vị trí giữa các banner trên website Chức năng thêm, xóa, sửa, khóa Banner quảng cáo
Module này tạo điều kiện cho việc giao tiếp liên tục giữa công ty và khách hàng, giúp bạn dễ dàng thu thập phản hồi, yêu cầu và ý kiến đóng góp từ họ Nhờ đó, bạn có thể cải thiện sản phẩm và dịch vụ của mình một cách hiệu quả hơn.
• Tính năng dành cho người quản trị
Cung cấp hệ thống quản trị thông tin phản hồi từ phía khách hàng, giúp người quản trị dễ dàng tìm kiếm và giải quyết thông tin
• Tính năng dành cho người sử dụng
Tạo một biểu mẫu cho phép khách hàng nhập yêu cầu, ý kiến đóng góp và thông tin liên quan, giúp lưu trữ dữ liệu vào hệ thống và gửi trực tiếp đến email của quản trị viên.
Khách hàng cần đăng nhập vào tài khoản để thực hiện mua hàng; nếu chưa có tài khoản, vui lòng chuyển sang form đăng ký Form đăng ký yêu cầu cung cấp một số thông tin cơ bản như Tên, Số điện thoại và Mật khẩu, hoặc có thể đăng nhập bằng tài khoản mạng xã hội.
Hệ thống sẽ yêu cầu khách hàng nhập địa chỉ + email khi khách hàng đặt đơn đầu tiên Lần mua hàng tiếp theo không cần nữa
Người quản trị phải đăng nhập vào tài khoản đặc quyền để quản lý trang web
Hệ thống show sản phẩm khách hàng chọn mua + giá từng sản phẩm, tổng giá tiền phải trả, ngày dự kiến nhận hàng
Cho khách hàng linh động việc thanh toán tiền mặt khi nhận hàng (COD) hoặc thanh toán trực tuyến
Khi ấn đặt hàng sẽ được hệ thống xác nhận nhanh chóng.
Bố cục đề tài
Nội dung gồm 4 phần : Phần 1: Tổng quan
Nhóm đã tiến hành khảo sát thực tế nhằm xác định mục đích hoàn thành dự án, các mục tiêu mà nhóm mong muốn đạt được, và trình bày cấu trúc của đồ án.
Phần 2: Cơ sở lý thuyết
Nhóm đã tiến hành nghiên cứu ngôn ngữ lập trình hướng đối tượng C# và môi trường thực hiện đồ án, cùng với sơ đồ Use case Chúng tôi áp dụng phương pháp lập trình hướng đối tượng trong C# với mô hình MVC5 để phát triển website bán hàng thời trang.
Phần 3: Kết quả thực nghiệm Trong phần này, nhóm sẽ trình bày quy trình làm web của nhóm từ việc lên ý tưởng đến khi hoàn thành web
Phần 4: Kết luận và kiến nghị Phần này sẽ nêu những kết luận chung, khẳng định những kết quả đề ra, những đóng góp, đề xuất mới và kiến nghị cải tiến web.
CƠ SỞ LÝ THUYẾT
Lược sử C#
Microsoft phát triển C# vào năm 2000 để đáp ứng nhu cầu ngày càng tăng về ứng dụng web, điều mà Visual Basic (VB) và C++ không thể thực hiện Kiến trúc của C# được xây dựng dựa trên hai ngôn ngữ mạnh mẽ là C++ và Java, giúp các developer dễ dàng làm quen và phát triển ứng dụng.
C và C++ có thể dễ dàng chuyển sang dùng C#.
Các phiên bản C#
C # 1.0 được phát hành với NET 1.0 và VS2002 (tháng 1 năm 2002)
C # 1.2 (đủ kỳ lạ); phát hành với NET 1.1 và VS2003 (tháng 4 năm 2003) Phiên bản đầu tiên để gọi Disposevề IEnumerators mà thực hiện IDisposable Một vài tính năng nhỏ khác
C # 2.0 được phát hành với NET 2.0 và VS2005 (tháng 11 năm 2005) Các tính năng mới chính: generic, phương thức ẩn danh, loại nullable, khối lặp
C# 3.0 được phát hành cùng với NET 3.5 và Visual Studio 2008 vào tháng 11 năm 2007, mang đến nhiều tính năng mới quan trọng như biểu thức lambda, phương thức mở rộng, cây biểu thức, kiểu ẩn danh, gõ ngầm (var) và biểu thức truy vấn.
C# 4.0 được phát hành cùng với NET 4 và Visual Studio 2010 vào tháng 4 năm 2010, mang đến nhiều tính năng mới quan trọng như liên kết muộn (dynamic), phương sai chung cho đại biểu và giao diện, hỗ trợ COM tốt hơn, đối số được đặt tên, kiểu dữ liệu tuple và các tham số tùy chọn.
C # 5.0 được phát hành với NET 4.5 và VS2012 (tháng 8 năm 2012) Các tính năng chính : lập trình async, thuộc tính thông tin người gọi Thay đổi đột phá: đóng vòng biến
C# 6.0 được phát hành cùng với NET 4.6 và Visual Studio 2015 vào tháng 7 năm 2015, được phát triển bởi Roslyn Phiên bản này giới thiệu nhiều tính năng mới, bao gồm bộ khởi tạo cho các thuộc tính được triển khai tự động, khả năng sử dụng lệnh để nhập thành viên tĩnh, bộ lọc ngoại lệ, bộ khởi tạo phần tử, cũng như hỗ trợ từ khóa await trong các khối catch và finally Ngoài ra, C# 6.0 cũng cho phép thêm các phương thức mở rộng trong bộ khởi tạo bộ sưu tập.
C# 7.0 được phát hành cùng với NET 4.7 và Visual Studio 2017 vào tháng 3 năm 2017, mang đến nhiều tính năng mới quan trọng như tuples, ref local và ref return, khớp mẫu với các câu lệnh chuyển đổi dựa trên mẫu, khai báo tham số nội tuyến out, hàm cục bộ, chữ nhị phân, dấu tách chữ số và khả năng trả về async tùy ý.
C # 7.1 được phát hành cùng với VS2017 v15.3 (Tháng 8 năm 2017) Các tính năng mới: async main , suy luận tên thành viên , biểu thức mặc định , khớp mẫu với tướng
C# 7.2 được phát hành cùng với Visual Studio 2017 phiên bản 15.5 vào tháng 11 năm 2017, mang đến nhiều tính năng mới như công cụ sửa đổi truy cập được bảo vệ riêng tư, Span, con trỏ bên trong và stackonly struct.
C# 7.3, được phát hành cùng với Visual Studio 2017 v15.7 vào tháng 5 năm 2018, giới thiệu nhiều tính năng mới như enum, đại biểu và các ràng buộc loại không quản lý Phiên bản này cũng cải tiến các tính năng không an toàn như khởi tạo stackalloc, bộ đệm được lập chỉ mục và các câu lệnh fixed tùy chỉnh Hơn nữa, độ phân giải quá tải đã được cải thiện, cho phép biến biểu thức trong khởi tạo và truy vấn Các toán tử so sánh == và != cũng được định nghĩa cho các bộ dữ liệu, trong khi các trường sao lưu thuộc tính tự động giờ đây có thể được nhắm mục tiêu bởi các thuộc tính.
C # 8.0 được phát hành với Net Core 3.0 và VS2019 v16.3 (tháng 9 năm
Năm 2019, các tính năng mới nổi bật bao gồm loại tham chiếu nullable, luồng không đồng bộ, chỉ số và phạm vi, thành viên chỉ đọc, khai báo sử dụng, phương thức giao diện mặc định, hàm cục bộ tĩnh và tăng cường chuỗi nguyên văn nội suy.
C # 9.0 vẫn còn trong bản xem trước Dự kiến sẽ được phát hành vào tháng
Vào tháng 11 năm 2020, Net 5 đã ra mắt với nhiều tính năng mới nổi bật, bao gồm thuộc tính chỉ init, bản ghi, biểu thức, lớp dữ liệu, và bản ghi vị trí Ngoài ra, chương trình cấp cao nhất và các mẫu kết hợp được cải thiện như mẫu đơn giản, mẫu quan hệ và mẫu logic cũng được giới thiệu Các cải tiến khác bao gồm nhập mục tiêu với biểu thức kiểu mục tiêu mới, trả về covariant, và các tính năng nhỏ như thư giãn thứ tự ref và partials, kiểm tra null tham số, loại bỏ tham số trong lambda, và hỗ trợ cho các thuộc tính trên hàm cục bộ.
Mục đích sử dụng C#
C# là ngôn ngữ lập trình đa năng, được sử dụng rộng rãi để phát triển nhiều loại chương trình và ứng dụng khác nhau Với tính linh hoạt cao, C# thường được áp dụng trong ba lĩnh vực chính, trong đó nổi bật là phát triển ứng dụng web.
Ngôn ngữ lập trình C# hiện có thể được sử dụng trên mọi nền tảng, cho phép bạn phát triển các trang web động và ứng dụng web thông qua nền tảng NET cũng như các nền tảng mã nguồn mở khác.
Microsoft đã tạo ra C# cho chính Microsoft Vì vậy, không cần nghi ngờ vì sao C# lại rất phổ biến trong việc xây dựng các ứng dụng Windows
Các nhà phát triển có thể yên tâm nhờ vào sự hỗ trợ từ cộng đồng và các tài liệu phát triển ứng dụng, cũng như các chương trình cụ thể cho kiến trúc nền tảng của Microsoft, đặc biệt trong lĩnh vực lập trình game.
Trong ngành công nghiệp game, ngôn ngữ lập trình C# được các nhà phát triển ưa chuộng nhờ vào sức mạnh trong việc tạo ra các trò chơi “hot” hiện nay Game engine Unity, một trong những công cụ phát triển game phổ biến nhất, cũng được xây dựng bằng C++ và C# Một trong những ưu điểm nổi bật của C# là thời gian phát triển nhanh hơn, nhờ vào tính năng nhập tĩnh, khả năng dễ đọc và giảm thiểu thời gian debug.
Sở hữu thư viện khổng lồ, cung cấp các chức năng cấp cao so với các ngôn ngữ khác như Java hay C++
Mang lại sự đơn giản và hiệu quả Đồng thời còn hỗ trợ các lập trình viên viết các đoạn code phức tạp
Có ngân hàng bộ nhớ mở rộng, giảm thời gian develop o Đường cong học tập thấp
Các developer, đặc biệt là full-stack developer, thường ưa chuộng ngôn ngữ C# vì nó giúp tiết kiệm thời gian phát triển và có đường cong học tập thấp Điều này cho phép các developer dành ít thời gian hơn để học C# so với các ngôn ngữ khác Sự đơn giản và dễ sử dụng của C# rất phù hợp cho cả những developer mới, đồng thời ngôn ngữ này cũng có khả năng mở rộng cao.
Phát triển phần mềm cần ngôn ngữ lập trình dễ bảo trì và mở rộng, và C# đáp ứng yêu cầu này Tính nghiêm ngặt của mã hóa tĩnh giúp các chương trình trở nên nhất quán, cho phép các lập trình viên dễ dàng thực hiện điều chỉnh và bảo trì.
Các developer làm việc với các dự án cũ bằng C# sẽ không gặp phải những thay đổi đáng kể nào trong công việc của họ Hơn nữa, họ còn nhận được sự hỗ trợ mạnh mẽ từ cộng đồng.
Kể từ khi Microsoft phát triển C#, ngôn ngữ này đã nhận được sự hỗ trợ mạnh mẽ từ cộng đồng Trong lĩnh vực phát triển phần mềm, sự tồn tại của một cộng đồng là rất quan trọng, vì đây là nơi các developer có thể tìm kiếm sự trợ giúp và thông tin chi tiết Ngôn ngữ lập trình không chỉ là một nền tảng hay dịch vụ có đường dây trợ giúp, mà còn là nơi để các developer kết nối với những người có cùng sở thích Họ có thể tìm thấy câu trả lời và giải pháp từ những người đã có kinh nghiệm Một ví dụ điển hình là StackOverflow, một trong những cộng đồng lớn nhất về lập trình.
Công cụ hỗ trợ
Visual Studio là phần mềm hỗ trợ lập trình website hiệu quả, thuộc sở hữu của Microsoft Ra mắt lần đầu vào năm 1997 với tên mã Project Boston, Visual Studio đã được Microsoft phát triển và tích hợp nhiều công cụ phát triển thành một sản phẩm duy nhất.
Hình 2.1 Minh họa cho Visual Studio
Visual Studio là một hệ thống toàn diện cho phát triển ứng dụng, bao gồm trình chỉnh sửa mã, thiết kế và gỡ lỗi Với Visual Studio, người dùng có thể dễ dàng viết code, sửa lỗi và chỉnh sửa thiết kế ứng dụng chỉ với một phần mềm duy nhất Hơn nữa, người dùng còn có khả năng thiết kế giao diện và trải nghiệm tương tự như khi phát triển ứng dụng Xamarin, UWP bằng XAML hoặc Blend.
Phần mềm Visual Studio bao gồm hai phiên bản chính: Visual Studio Enterprise và Visual Studio Professional, cả hai đều là phiên bản có phí và thường được các công ty lập trình chuyên nghiệp sử dụng Ngoài ra, Microsoft cũng cung cấp phiên bản Community miễn phí, với các tính năng cơ bản, phù hợp cho những lập trình viên không chuyên, người mới bắt đầu tìm hiểu công nghệ, các nhà phát triển cá nhân, dự án mở, và các tổ chức phi lợi nhuận với dưới 5 người dùng.
Visual Studio là phần mềm lập trình hệ thống hàng đầu, không có sản phẩm nào có thể thay thế Với nhiều tính năng hấp dẫn, Visual Studio được đánh giá cao, đặc biệt là khả năng hỗ trợ đa nền tảng.
Phần mềm lập trình Visual Studio của Microsoft hỗ trợ sử dụng trên nhiều nền tảng khác nhau Không giống như các trình viết code khác, Visual
Studio hỗ trợ trên cả hệ điều hành Windows, Linux và Mac, mang lại sự tiện lợi tối đa cho lập trình viên trong quá trình phát triển ứng dụng Nó cũng hỗ trợ đa ngôn ngữ lập trình, giúp người dùng linh hoạt hơn trong việc lựa chọn công cụ phù hợp.
Visual Studio hỗ trợ đa ngôn ngữ lập trình như C#, F#, C/C++, HTML, CSS, Visual Basic và JavaScript, cùng với khả năng hoạt động trên nhiều nền tảng Nhờ đó, phần mềm này có thể nhanh chóng phát hiện và thông báo lỗi trong các chương trình của bạn.
Visual Studio code cũng hỗ trợ website, đặc biệt trong công việc soạn thảo và thiết kế web
Kho tiện ích mở rộng phong phú
Visual Studio hỗ trợ nhiều ngôn ngữ lập trình đa dạng, nhưng nếu bạn muốn sử dụng ngôn ngữ khác, có thể dễ dàng tải xuống các tiện ích mở rộng Tính năng này hoạt động như một chương trình độc lập, giúp bảo đảm hiệu năng của phần mềm không bị ảnh hưởng.
Hầu hết các tệp dữ liệu mã của Visual Studio được tổ chức trong các thư mục tương tự nhau, giúp người dùng dễ dàng quản lý Ngoài ra, Visual Studio còn cung cấp một số thư mục đặc biệt để lưu trữ an toàn, giúp việc tìm kiếm và sử dụng tệp trở nên thuận tiện hơn.
Kho lưu trữ an toàn
Với Visual Studio, bạn có thể yên tâm về khả năng lưu trữ, vì phần mềm này đã tích hợp GIT và nhiều kho lưu trữ an toàn phổ biến hiện nay.
Visual Studio cung cấp tính năng màn hình đa nhiệm, cho phép người dùng mở nhiều tập tin và thư mục cùng lúc, ngay cả khi chúng không liên quan đến nhau.
Khi lập trình với Visual Studio, công cụ này cung cấp cho lập trình viên các tùy chọn thay thế để điều chỉnh mã nguồn, giúp cải thiện tính tiện dụng cho người dùng.
Hỗ trợ thiết bị đầu cuối
Phần mềm Visual Studio tích hợp nhiều loại thiết bị đầu cuối, cho phép người dùng thực hiện các thao tác cần thiết mà không cần phải chuyển đổi giữa hai màn hình hoặc quay về thư mục gốc.
Visual Studio hỗ trợ kết nối với GitHub, cho phép người dùng sao chép và kéo thả mã code trực tiếp Các mã code này có thể được chỉnh sửa và lưu lại trong phần mềm.
Tính năng nhắc Intellisense, phổ biến trong các phần mềm lập trình như Visual Studio, được đánh giá cao về tính chuyên nghiệp Nó không chỉ phát hiện các đoạn mã không đầy đủ mà còn nhắc nhở lập trình viên, gợi ý sửa đổi, tự động khai báo biến khi cần thiết, và giúp bổ sung cú pháp còn thiếu.
Tính năng bình luận là một công cụ hữu ích cho lập trình viên, giúp họ ghi chú và ghi nhớ các công việc cần hoàn thành, từ đó tránh bỏ sót bất kỳ công đoạn nào trong quá trình lập trình.
Mô hình dữ liệu
Mã sản phẩm Tăng tự động, Khóa chính
Type_id (int) Not null
Mã loại Khóa ngoại của bảng
Lượt view của sản phẩm
Tổng giá trị rating của sản phẩm
Số lần ratring của sản phẩm
Trạng thái Giá trị quy ước:
Last_update Ngày cập nhật cuối cùng
Default = last date to update
Tên file hình ảnh sản phẩm
Tên thuộc tính Giải thích Chú thích
Quy ước mã loại: F: female M:male K:Kid
Kí tự đầu là giới tính
Kí tự tiếp theo là quần hay áo
Các kí tự sau là số bất kì
Ví dụ: Áo sơ mi nam cao cổ
Quần đùi nữ bla bla
Type_name (string) Not null
Ngày cập nhật cuối cùng
Default = last date to update
Tên thuộc tính Giải thích Chú thích
Mã chi tiết sản phẩm Khóa chính, tăng tự động
Product_id (int) Not null
Mã sản phẩm Khóa ngoại từ bảng
Kích cỡ sản phẩm Quy ước:
Màu sản phẩm Quy ước:
0: màu đen 1: màu vàng 2: màu xanh 3: màu đỏ 4: màu xám 5: màu trắng
6: màu khác (nhiêu đây được rồi)
Số lượng sản phẩm tồn kho
Tên thuộc tính Giải thích Chú thích
Mã khuyến mãi Khóa chính tăng tự động
From_date (datetime) Not null
Ngày bắt đầu khuyến mãi
To_date (datetime) Not null
Ngày kết thúc khuyến mãi
Discount_by_price (int) null
Giảm giá theo tiền mặt, ví dụ 100K
Discount_by_ratio (float) null
Last_update (datetime) Default = last update
Ngày cập nhật cuối cùng
State Trạng thái Quy ước:
0: hết hạn 1: chờ áp dụng 2: đã áp dụng
Tên thuộc tính Giải thích Chú thích
Mã user Khóa chính tăng tự động
User_role (int) Not null
Quyền của user Quy ước:
Full_name (string) Not null
Create_date (datetime) Default = date insert
Bảng hóa đơn, phiếu nhập Lưu ý bảng hóa đơn với phiếu nhập được gom thành một bảng
Tên thuộc tính Giải thích Chú thích
Payment_id Số phiếu Khóa chính tăng tự động
Người lập Khóa ngoại từ bảng user
Create_date (datetime) Default = date insert
State < 5: đơn hàng 0: đơn hủy
1: đơn chờ xác nhận 2: đơn đang lấy hàng 3: đơn đang vận chuyển
4: thành công State > 5: phiếu nhập 5: hủy
6: chờ nhận hàng 7: đã nhận hàng
Bảng Payment detail, chi tiết đơn hàng hoặc phiếu nhập:
Tên thuộc tính Giải thích Chú thích
Số thứ tự Khóa chính tăng tự động
Product_id (int) Not null
Mã sản phẩm Khóa ngoại từ bảng product
Số phiếu Khóa ngoại từ bảng đơn hàng
Price (float) null Đơn giá
Tên thuộc tính Giải thích Chú thích
Mã banner Khóa chính tăng tự động
Ngày bắt đầu hiển thị
Ngày tạo url (string (30)) null Đường dẫn đến trang nội dung của banner
Tên thuộc tính Giải thích Chú thích
Mã post Khóa chính tăng tự động
Last_update (datetiem) Default = last update
Ngày cập nhật cuối cùng
Post_type (int) Not null
Loại bài viết Quy ước:
0: khuyến mãi 1: thông tin thời trang
2: quảng cáo sản phẩm ( sản phẩm mới, hot,
Title Chù đề bài viết
Tên thuộc tính Giải thích Chú thích
Mã liên hệ Khóa chính tăng tự động
Sender_full_name (string(250)) Not null
Sender_phone String(15) Not null
Số điện thoại người gửi
Sender_email String(100) Not null
Loại liên hệ Quy ước:
0: góp ý 1: báo cáo lỗi 2: yêu cầu hỗ trợ
Trạng thái liên hệ Quy ước:
0: chưa xử lý 1: đang xử lý 2: đã xử lý
Create_date Datetime Default = date insert
Bảng Admin: Tài khoản cho admin
Tên thuộc tính Giải thích Chú thích
Khóa chính tăng tự động
Tên tài khoản đăng nhập
Last_update Datetime Default = last update
Ngày cập nhật cuối cùng
Sơ đồ
2.4.1 Mô hình thực thể ERD:
Hình 2.3 Mô hình ERD 2.4.2 Sơ đồ usecase:
Hình 2.4 Sơ đồ usecase Admin
Hình 2.6 Sơ đồ usecase giỏ hàng
Hình 2.7 Sơ đồ usecase trang chi tiết sản phẩm
Hình 2.8 Sơ đồ usecase trang loại sản phẩm
Khách hàng sẽ đăng ký tài khoản bằng cách nhấn vào nút đăng ký và cần điền đầy đủ thông tin yêu cầu.
Khi đăng ký cần valid thông tin khách hàng nhập:
• Số điện thoại phải từ 10-11 số
Password cần được mã hóa trước khi lưu vào database Đăng nhập Khách hàng đăng nhập bằng cách điền chính xác:
• Số điện thoại đã đăng ký
Khách hàng sẽ xem danh sách sản phẩm như:
Khách hàng có thể đặt hàng ngay khi xem sản phẩm, và sản phẩm sẽ được lưu trong giỏ hàng để chờ thanh toán Tại trang đặt hàng, khách hàng có khả năng chỉnh sửa thông tin giao hàng theo nhu cầu.
Khách hàng có thể xem lịch sử đơn đặt hàng của mình ở trang quản lý tài khoản
Thanh toán Khách hàng có thể thanh toán bằng cách:
Khách hàng cần đăng nhập mới sử dụng chức năng này
Khách hàng có thể chỉnh sửa thông tin tài khoản của mình:
Khách hàng cần đăng nhập mới sử dụng chức năng này
Khách hàng có thể tư vấn qua messenger tại mọi trang của khách hàng
Bình luận Khách hàng có thể bình luận tại trang tin tức, trang chi tiết sản phẩm
Khách hàng dùng tài khoản facebook để bình luận
Admin có thể quản lý thêm xóa sửa sản phẩm tại trang admin
Chỉ có admin mới được dùng chức năng này
Admin có thể quản lý tin tức, thêm xóa sửa tin tức
Chỉ có admin mới được dùng chức năng này
Có thể soạn thảo văn bảng
Admin có thể xem quản lý đơn đặt hàng, thêm xóa sửa đơn đặt hàng
Chỉ có admin mới được dùng chức năng này
Admin có thể quản lý thông tin khuyến mãi Có thể thêm xóa sửa thông tin khuyến mãi
Chỉ có admin mới được dùng chức năng này
Admin có thể xem quản lý tài khoản của khách hàng Có thể thêm tài khoản admin mới
Chỉ có admin mới được dùng chức năng này.
KẾT QUẢ THỰC NGHIỆM
Các giai đoạn hoàn thành web
- Giai đoạn 1: Tìm hiểu đề tài, phân tích đề tài, tìm công cụ thích hợp để thực hiện đồ án
- Giai đoạn 2: Phân chia công việc: Thiết kế, code, các công việc hỗ trợ liên quan hoàn thành đồ án
- Giai đoạn 3: Thực hiện đồ án đã đề ra theo công việc được phân chia
- Giai đoạn 4: Kiểm thử: Web chạy hoàn toàn code, sửa lại chỗ lỗi, chỉnh sửa lần cuối nộp bài
Giao diện web
- Trang chủ: o Hiển thị các banner o Hiển thị 8 sản phẩm mới nhất o Hiển thị 2 tin tức gần đây
- Trang đăng nhập và đăng kí: o Trang đăng ký
Người dùng có thể đăng ký tài khoản bằng số điện thoại Nếu số điện thoại đã được đăng ký trước đó, hệ thống sẽ hiển thị thông báo Ngoài ra, nếu người dùng nhập sai định dạng số điện thoại, cũng sẽ có thông báo lỗi xuất hiện.
▪ Tất cả các ô input đều bắt buộc nhập (nếu nhập thiếu website sẽ hiển thị thông báo)
▪ Ô nhập lại mật khẩu và ô mật khẩu phải trùng nhau (nếu nhập không trùng website sẽ hiển thị thông báo)
▪ Khi đăng ký thành công sẽ hiện thông báo và số điện thoại vừa đăng ký sẽ hiển thị bên form đăng nhập o Trang đăng nhập
Người dùng cần đăng nhập bằng số điện thoại và mật khẩu Nếu thông tin nhập sai, website sẽ hiển thị thông báo yêu cầu người dùng nhập lại.
▪ Khi đăng nhập thành công người dùng sẽ được chuyển tới trang chủ
Hình 3.2 Trang đăng nhập và đăng kí
- Trang sản phẩm và sản phẩm khuyến mãi: o Trang sản phẩm
▪ Hiển thị tất cả sản phẩm đang bán của cửa hàng
▪ Có chức năng phân trang, sắp xếp, tìm kiếm, lựa số lượng sản phẩm hiện thị trên một trang
▪ Hiển thị loại sản phẩm o Trang sản phẩm khuyến mãi
▪ Có cùng chức năng với trang sản phẩm nhưng chỉ hiển thị các sản phẩm đang được khuyến mã
Hình 3.3 Trang sản phẩm
Hình 3.4 Trang chi tiết sản phẩm
Trang chi tiết sản phẩm cung cấp thông tin chi tiết về sản phẩm, cho phép người dùng thêm hàng vào giỏ, xem và bình luận về sản phẩm Ngoài ra, trang còn hiển thị các sản phẩm tương tự và danh sách loại sản phẩm để người dùng dễ dàng lựa chọn.
Hình 3.5 Trang chi tiết sản phẩm
- Trang tin tức và chi tiết tin tức: o Trang tin tức:
▪ Hiển thị tất cả tin tức của cửa hàng o Trang chi tiết tin tức:
▪ Hiển thị chi tiết tin tức mà khách hàng muốn xem
Hình 3.6 Trang tin tức
Hình 3.7 Trang chi tiết tin tức
Trang liên hệ cung cấp địa chỉ, số điện thoại và các phương tiện truyền thông để khách hàng dễ dàng liên lạc trực tiếp Ngoài ra, có form liên hệ với tất cả các ô nhập bắt buộc, giúp khách hàng gửi yêu cầu tới cửa hàng; nếu thiếu thông tin, hệ thống sẽ hiển thị thông báo lỗi Sau khi gửi thành công, website sẽ thông báo cho người dùng Khách hàng cũng có thể liên hệ qua ô chat messenger với cửa hàng.
Hình 3.8 Trang liên hệ
Trang giỏ hàng hiển thị tất cả sản phẩm mà người dùng đã thêm vào giỏ cùng với giá tiền Người dùng có thể dễ dàng thay đổi số lượng sản phẩm hoặc xóa sản phẩm không mong muốn Ngoài ra, trang cũng giới thiệu một số sản phẩm mới để người dùng tham khảo.
Hình 3.9 Trang giỏ hàng
- Trang thanh toán: o Người dùng muốn thanh toán bắt buộc phải đăng nhập o Phần thanh toán gồm có 4 bước:
Xác nhận địa chỉ giao hàng, tên và số điện thoại là bước đầu tiên trong quy trình đặt hàng Những thông tin này sẽ được tự động lấy từ tài khoản đang đăng nhập, nhưng người dùng có quyền thay đổi nếu cần thiết.
▪ Bước 2: Chọn phương thức giao hàng (người dùng bắt buộc chọn 1 trong 3 phương thức giao hàng)
▪ Bước 3: Chọn phương thức thanh toán (người dùng chọn phương thức thanh toán thông qua paypal hoặc thanh toán khi nhận hàng)
Bước 4: Xác nhận đơn hàng là bước quan trọng, nơi người dùng sẽ được kiểm tra lại sản phẩm, giá tiền và phí ship Nếu người dùng chọn thanh toán qua PayPal, họ sẽ được chuyển đến trang PayPal để hoàn tất giao dịch Ngược lại, nếu chọn phương thức thanh toán tại nhà, đơn hàng sẽ được lưu lại và website sẽ chuyển đến trang đơn hàng.
Hình 3.10 Trang thanh toán (Bước 1)
Hình 3.11 Trang thanh toán (Bước 2)
Hình 3.12 Trang thanh toán (Bước 3)
Hình 3.13 Trang thanh toán (Bước 4)
- Trang lịch sử đơn hàng và chi tiết đơn hàng: o Trang lịch sử đơn hàng
▪ Hiển thị tất cả đơn hàng của tài khoản đang đăng nhập
▪ Hiển thị trạng thái của đơn hàng ( chưa xét, đang giao, đã xét , thành công) o Trang chi tiết đơn hàng
▪ Hiển thị chi tiết hóa đơn mà người dùng chọn
Hình 3.15 Trang lịch sử các đơn hàng
Hình 3.16 Trang chi tiết đơn hàng
Trang thông tin tài khoản cho phép người dùng xem và chỉnh sửa thông tin cá nhân Người dùng có thể thay đổi mật khẩu tài khoản, yêu cầu mật khẩu mới và xác nhận lại phải trùng khớp, đồng thời cần nhập đúng mật khẩu cũ Nếu không đáp ứng đủ điều kiện, hệ thống sẽ hiển thị thông báo lỗi Sau khi thay đổi mật khẩu thành công, người dùng sẽ được tự động đăng xuất và chuyển đến trang đăng nhập.
Hình 3.17 Trang thông tin tài khoản 3.1.2 Người quản trị:
Hình 3.18 Trang đăng nhập tài khoản người quản trị
- Trang chính: o Hiển thị 2 Donut Chart
▪ Chart Product Types: Thể hiện tỷ lệ loại sản phẩm trang web hiện đang kinh doanh
▪ Chart Payment State: Thể hiện tình trạng duyệt đơn hàng, giao hàng o Hiển thị 1 Spline Chart: Thể hiện biến động thu nhập trong tháng vừa qua
Hình 3.19 Trang chính Admin
The Product Management page includes essential functions such as Edit, Create, Detail, and the ability to export data to Excel and PDF formats It also features a Search function and customizable Column visibility options Additionally, the State column has predefined values for better organization and management.
Hình 3.20 Trang quản lý sản phẩm
- Trang Edit (Chỉnh sửa thông tin):
▪ Last Update: tự động lấy ngày hiện tại
▪ Create Day: tự dộng lấy ngày tạo sản phẩm
Người dùng có thể chọn một ảnh từ máy tính, và tên ảnh sẽ tự động được đổi thành dạng imageName = "Product_" + ProductID + "_1.jpg" Nếu sản phẩm đã có hình ảnh trước đó, ảnh cũ sẽ được chuyển vào thùng rác với tên imageName = Username + DateTime + "Product_" + ProductID + "_1.jpg", trong đó Username là tên đăng nhập của tài khoản thực hiện đổi ảnh mới và DateTime là thời gian tại thời điểm đổi ảnh Ảnh mới sẽ được đổi tên theo dạng imageName = "Product_" + ProductID + "_1.jpg" để thay thế vị trí của ảnh cũ.
▪ Nút Cancel: quay về trang Product
▪ Nút Save: tiến hành lưu lại thông tin thay đổi
Hình 3.21 Trang Edit (thuộc Trang Product)
- Trang Detail (xem thông tin sản phẩm):
▪ Nút Edit: Thực hiện chuyển sang trang Edit
▪ Nút Back: Quay về trang Product
Hình 3.22 Trang Detail (thuộc Trang Product)
Trang Create cho phép người dùng thêm sản phẩm mới với các thông tin đã được chỉ định Người dùng có thể nhấn nút Create để tiến hành tạo sản phẩm, hoặc chọn nút Cancel để quay lại trang Product Ngoài ra, nút Chọn tệp hoạt động tương tự như trong chức năng Edit trên trang Product.
Hình 3.23 Trang Create (thuộc trang Product)
Chú thích: Các trang còn lại đều được kế thừa các chức năng từ trang Product
Phần tiếp theo chỉ giải thích những điểm đổi mới
- Trang Banner: o State (Trạng thái): Quy ước:
Hình 3.24 Trang quản lý banner
Hình 3.25 Trang Edit (thuộc trang Banner)
Hình 3.26 Trang Detail (thuộc trang Banner)
Hình 3.27 Trang Create (thuộc trang Banner)
- Trang Contact: o State (Trạng thái): Quy ước:
▪ 2: đã xử lý o Contact Type (Loại liên hệ): Quy ước:
Hình 3.28 Trang quản lý liên hệ
Hình 3.29 Trang Edit (thuộc trang Contact)
Hình 3.30 Trang Detail (thuộc trang Contact)
Hình 3.31 Trang Create (thuộc trang Contact) o State: Quy ước:
▪ 1: Chờ xác nhận (On hold)
▪ 2: Đang lấy hàng (Being prepared)
▪ 3: Đang vận chuyển (On way)
▪ 4: Giao hàng thành công (Received)
Hình 3.32 Trang quản lý thanh toán
Hình 3.33 Trang Edit (thuộc trang Payment)
Hình 3.34 Trang Detail (thuộc trang Payment)
Hình 3.35 Trang Create (thuộc trang Payment)
- Trang Post: o State: Quy ước:
▪ 1: Hiện o Post type: Quy ước:
▪ 2: Quảng cáo sản phẩm (mới, hot,…)
Hình 3.36 Trang quản lý đăng bài
Hình 3.37 Trang Edit (thuộc trang Posts)
Hình 3.38 Trang Detail (thuộc trang Posts)
Hình 3.39 Trang Create (thuộc trang Posts)
- Trang Discount: o State: quy ước:
Hình 3.40 Trang quản lý khuyến mãi
Hình 3.41 Trang Edit (thuộc trang Discounts)
Hình 3.42 Trang Detail (thuộc trang Discounts)
Hình 3.43 Trang Create (thuộc trang Discounts)
- Trang User: o User_role (Quyền của user): Quy ước
Hình 3.44 Trang quản lý người dùng
Hình 3.45 Trang Edit (thuộc trang User)
Hình 3.46 Trang Detail (thuộc trang User)
Hình 3.47 Trang Create (thuộc trang User)
Hình 3.48 Trang quản lý chi tiết hóa đơn
Hình 3.49 Trang Edit (thuộc trang Payment Detail)
Hình 3.50 Trang Detail (thuộc trang Payment Detail)
Hình 3.51 Trang Create (thuộc trang Payment Detail)
- Trang Product Detail: o Size (Kích cỡ sản phẩm): Quy ước:
▪ S – XXL: cho áo o Color (màu sản phẩm): Quy ước:
Hình 3.52 Trang quản lý chi tiết sản phẩm
Hình 3.53 Trang Edit (thuộc trang Products Detail)
Hình 3.54 Trang Detail (thuộc trang Products Detail)
Hình 3.55 Trang Create (thuộc trang Products Detail)
- Trang Product Type: o Type_id (Mã loại):Quy ước
▪ Q: quần Độ dài 6: Kí tự đầu là giới tính Kí tự tiếp theo là quần hay áo Các kí tự sau là số bất kì
Ví dụ: Áo sơ mi nam cao cổ Có mã là: MA01873 Quần đùi nữ bla bla
Có mã là FQ18972 o State: Quy ước:
Hình 3.56 Trang quản lý loại sản phẩm
Hình 3.57 Trang Edit (thuộc trang Products Type)
Hình 3.58 Trang Detail (thuộc trang Products Type)
Hình 3.59 Trang Create (thuộc trang Products Type)
- Trang Administrator: o Chỉ account có username: admin mới có quyền thấy và truy cập vào trang này
Hình 3.60 Trang quản lý người quản trị
Hình 3.61 Trang Edit (thuộc trang Admins)
Hình 3.62 Trang Detail (thuộc trang Admins)
Hình 3.63 Trang Create (thuộc trang Admins)