TỔNG QUAN
Giới thiệu đề tài
Việc kinh doanh – mua bán là nhu cầu không thể thiếu đối với mỗi chúng ta. Trong thời đại cạnh tranh hiện nay việc giới thiệu sản phẩm kinh doanh đến từng cá nhân với chi phí thấp, hiệu quả cao là một vấn đề nan giải của người kinh doạnh cùng với nhu cầu mua sắm với những sản phẩm đa chủng loại, đạt chất lượng, và hợp túi tiền của người tiêu dùng vì vậy thương mại điện tử đã được ra đời và dần dần phất triển trên toàn thế giới Việc phổ biến các sản phẩm của cửa hàng kinh doanh đến khách hàng thông qua các bảng báo giá tuy nhiên chi phí khá cao vì số lượng sản phẩm ngày một đa dạng và giá cả thay đổi liên tục và tính phổ biến không cao chưa đáp ứng được nhu cầu của người dùng Mặt khác cửa hàng còn gặp nhiều khó khăn như chưa quản lí được người dùng, thông tin nhà sản xuất, quản lý sản phẩm ….
Nắm bắt được tình hình trên, em tiến hành thiết kế trang Web bán quần áo online để mong sao giúp cho các cửa hàng phát triển nhanh hơn, giúp cho chủ cửa hàng quản lí cửa hàng một cách tốt hơn.
Mục đích làm đề tài
Khi xây dựng một Website, đầu tiên chúng ta phải hình dung ra ta cần phải thiết kế những gì cho Website của mình Không có chủ định và mục tiêu rõ ràng thì cả Website đó trở nên sai lầm, lan man và cuối cùng đi tới một hướng khó có thể trở lại Thiết kế cẩn thận và định hướng rõ là chìa khóa tới thành công của việc xây dựng một Website Vận dụng tổng hợp những kiến thức đã học để tiến hành thiết kế một Website bán quần áo online nhằm giải quyết những khó khăn hiện tại của cửa hàng.
Tìm hiểu thực trạng thương mại điện tử tại Việt Nam để triển khai hệ thống thương mại điện tử tại cửa hàng cho phù hợp Khai phá lợi ích của Internet để hướng đến một môi trường kinh doanh toàn cầu Giảm chi phí bán hàng tiếp thị và giao dịch Bằng phương tiện Internet/Web, một nhân viên bán hàng có thể giao dịch với rất nhiều khách hàng.
Các công nghệ sử dụng
TÌM HIỂU VỀ PHP – LARAVEL – MYSQL
Ngôn ngữ PHP
PHP là từ viết tắt của thuật ngữ Personal Home Page Đây là một dạng mã lệnh hoặc một chuỗi ngôn ngữ kịch bản Trong đó, ngôn ngữ PHP chủ yếu được phát triển để dành cho những ứng dụng nằm trên máy chủ Mỗi khi các lập trình viên PHP viết các chương trình thì các chuỗi lệnh sẽ được chạy ở trên server, từ đó sinh ra mã HTML Nhờ vậy mà những ứng dụng trên các website có thể chạy được một cách dễ dàng.
Ngôn ngữ PHP thông thường sẽ phù hợp với việc lập trình website bởi nó có thể dễ dàng kết nối với các website khác có sử dụng HTML để chạy trên các trình duyệt web Vì vậy, đây là ngôn ngữ lập trình được người dùng đánh giá là khá dễ đọc Ngôn ngữ PHP cũng trở thành ngôn ngữ web dev phổ biến mà các lập trình viên phải học trước khi bắt đầu vào nghề.
Framework Laravel
2.1 Framework là gì ? PHP Framework là gì ?
Framework chính là một thư viện với các tài nguyên có sẵn cho từng lĩnh vực để lập trình viên sử dụng thay vì phải tự thiết kế Có Framework,lập trình viên chỉ tìm hiểu và khai thác những tài nguyên đó, gắn kết chúng lại với nhau và hoàn chỉnh sản phẩm của mình Đối với lập trình viên trong mỗi một lĩnh vực, họ cần phải xây dựng các lớp chương trình để xây dựng nên những phần mềm, ứng dụng thành phẩm.
PHP Framework là thư viện làm cho sự phát triển của những ứng dụng web viết bằng ngôn ngữ PHP trở nên trôi chảy hơn Bằng cách cung cấp 1 cấu trúc cơ bản để xây dựng những ứng dụng đó Hay nói cách khác, PHP framework giúp bạn thúc đẩy nhanh chóng quá trình phát triển ứng dụng. Giúp bạn tiết kiệm được thời gian, tăng sự ổn định cho ứng dụng Giảm thiểu số lần phải viết lại code cho lập trình viên.
2.2 Mô hình MVC là gì ?
MVC (Model-View-Controller) là mẫu kiến trúc phần mềm trên máy tính nhằm mục đích tạo lập giao diện cho người dùng Theo đó, hệ thống MVC được chia thành ba phần có khả năng tương tác với nhau và tách biệt các nguyên tắc nghiệp vụ với giao diện người dùng.
Ba thành phần ấy bao gồm:
Controller: Giữ nhiệm vụ nhận điều hướng các yêu cầu từ người dùng và gọi đúng những phương thức xử lý chúng.
Model: Là thành phần chứa tất cả các nghiệp vụ logic, phương thức xử lý, truy xuất database, đối tượng mô tả dữ liệu như các Class, hàm xử lý…
View: Đảm nhận việc hiển thị thông tin, tương tác với người dùng, nơi chứa tất cả các đối tượng GUI như textbox, images…
Bằng cách này, thông tin nội hàm được xử lý tách biệt với phần thông tin xuất hiện trong giao diện người dùng Bảo đảm các nguyên tắc nghề nghiệp của lập trình viên.
2.3 Ưu và nhược điểm của Laravel Ưu điểm của Laravel là gì?
- Sử dụng các tính năng mới nhất của PHP
Sử dụng Laravel 8 giúp các lập trình viên tiếp cận những tính năng mới nhất mà PHP cung cấp, nhất là đối với Namespaces, Interfaces, Overloading, Anonymous functions và Shorter array syntax.
- Nguồn tài nguyên vô cùng lớn và sẵn có
Nguồn tài nguyên của Laravel rất thân thiện với các lập trình viên với đa dạng tài liệu khác nhau để tham khảo Các phiên bản được phát hành đều có nguồn tài liệu phù hợp với ứng dụng của mình.
- Tích hợp với dịch vụ mail
Lavarel là framework được trang bị API sạch trên thư viện
SwiftMailer, do đó, bạn có thể gửi thư qua các dịch vụ dựa trên nền tảng đám mây hoặc local.
- Tốc độ xử lý nhanh
Laravel hỗ trợ hiệu quả cho việc tạo lập website hay các dự án lớn trong thời gian ngắn Vì vậy, nó được các công ty công nghệ và lập trình viên sử dụng rộng rãi để phát triển các sản phẩm của họ.
Laravel được đón nhận và trở nên sử dụng phổ biến vì nó rất dễ sử dụng Thường chỉ mất vài giờ, bạn có thể bắt đầu thực hiện một dự án nhỏ với vốn kiến thức cơ bản nhất về lập trình với PHP.
Laravel cung cấp sẵn cho người dùng các tính năng bảo mật mạnh mẽ để người dùng hoàn toàn tập trung vào việc phát triển sản phẩm của mình:
Sử dụng PDO để chống lại tấn công SQL Injection.
Sử dụng một field token ẩn để chống lại tấn công kiểu CSRF.
Mặc định đều được Laravel escape các biến được đưa ra view mặc định, do đó có thể tránh được tấn công XSS.
Nhược điểm của Laravel là gì?
- So với các PHP framework khác, Laravel bộc lộ khá ít nhược điểm Vấn đề lớn nhất có thể kể đến của framework này là thiếu sự liên kết giữa các phiên bản, nếu cố cập nhật code, có thể khiến cho ứng dụng bị gián đoạn hoặc phá vỡ.
- Bên cạnh đó, Lavarel cũng quá nặng cho ứng dụng di động, khiến việc tải trang trở nên chậm chạp.
2.4 Những tính năng hữu ích của Laravel
Những tính năng tuyệt vời có thể kể đến của Laravel là:
Composer: sử dụng để nâng cấp, cài đặt…
Eloquent ORM: thao tác với cú pháp đẹp mắt và đơn giản.
Restful API: hỗ trợ biến Laravel thành một web service API.
Artisan: cung cấp các lệnh cần thiết để phát triển ứng dụng.
View: giúp code sạch sẽ hơn rất nhiều.
Migrations: hỗ trợ tạo các trường trong cơ sở dữ liệu, thêm các cột trong bảng, tạo mối quan hệ giữa các bảng, hỗ trợ quản lý cơ sở dữ liệu. Authentication: cung cấp sẵn các tính năng đăng nhập, đăng ký, quên mật khẩu…
Unit Testing: hỗ trợ test lỗi để sửa chữa sẽ lựa chọn sản phẩm nào cần xóa sẽ có icon “Delete” tương ứng bên cạnh. Sau khi xóa xong thì sẽ hiện thị lại danh sách sản phẩm.
1.2.5 Quản lí sản phẩm giảm giá
- Chức năng này cho phép người quản lý quản lý toàn bộ tài nguyên, dữ liệu của các sản phẩm đang được giảm giá Các thông tin sản phẩm gồm:
Chi tiết: Tên sản phẩm, đơn giá, giảm giá, giá hiện tại
Nhập sản phẩm: Khi nhập đầy đủ thông tin về sản phẩm, hệ thống sẽ lưu sản phẩm ở CSDL với một ID riêng biệt cho các sản phẩm để dễ dàng quản lý.
Sửa sản phẩm: Chức năng này được thực hiện khi thông tin của sản phẩm này đã có trong CSDL Sau đó thao tác giống với nhập sản phẩm. Xóa sản phẩm: Chức năng này được thực hiện vì cửa hàng không còn được sản xuất hoặc không tiếp tục bán sản phẩm đó trên thị trường nữa Quản lý sẽ lựa chọn sản phẩm nào cần xóa sẽ có icon “Delete” tương ứng bên cạnh. Sau khi xóa xong thì sẽ hiện thị lại danh sách sản phẩm giảm giá
1.2.6 Thống kê các đơn hàng, doanh thu, sản phẩm bán được nhiều nhất
- Có chức năng thống kê doanh thu, sản phẩm đã bán, đơn hàng và khách hàng
- Hiển thị các mặt hàng hot nhất dựa vào id sản phẩm mà người dùng thêm vào Cart nhiều nhất.
2 Phân tích thiết kế hệ thống
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
Phân tích thiết kế hệ thống
Khách hàng: Người có nhu cầu mua sắm các mặt hàng Khác với việc đặt hàng trực tiếp tại cửa hàng, khách hàng phải hoàn toàn tự thao tác thông qua từng bước cụ thể để có thể mua được hàng Trên web, các mặt hàng sẽ được sắp xếp theo từng loại mặt hàng giúp cho khách hàng dễ dàng tìm kiếm Trong hoạt động này, khách hàng chỉ cần chọn một mặt hàng nào đó từ trong danh mục thì những thông tin về mặt hàng đó sẽ hiện thị lên màn hình như: hình ảnh, đơn giá, hình ảnh mô tả, mô tả,… và bên cạnh là nút đẻ thêm sản phẩm vào Cart (giỏ hàng) Đây là
Cart điện tử mà trong đó chứa các thông tin về hàng hóa lẫn số lượng khách hàng muốn mua và hoàn toàn được cập nhật trong Cart.
Khi khách hàng đặt hàng thi hệ thống hiển thị trang xác lập đơn đặt hàng cùng thông tin về khách hàng và sản phẩm Cuối cùng là do khách hàng tùy chọn đặt hàng hay không?
Nhà quản lý: Người làm chủ hệ thống, có quyền kiểm soát mọi hoạt động của hệ thống Nhà quản lý được cung cấp một Email và Password để đăng nhập vào hệ thống thực hiện những chức năng của mình.
Nếu như quá trình đăng nhập thành công thì quản lý có thể thực hiện những công việc: quản lý cập nhật các sản phẩm, tiếp nhận đơn khách hàng, kiểm tra đơn hàng và xử lý đơn hàng Khi có như cầu nhập hàng từ nhà cung cấp thì tiến hàng liên lạc với nhà cung cấp để đặt hàng và cập nhật sản phẩm vào trong CSDL.Xác định các tác nhân và chức năng đối với Website
2.2 Biểu đồ các tác nhân sử dụng
Hình 8: Biểu đồ tổng quan các tác nhân sử dụng
THIẾT KẾ CƠ SỞ DỮ LIỆU
Sơ đồ mối quan hệ thực thể
Hình 9: Biểu đồ mô hình E-R-D
1.2 Thuộc tính các thực thể
Hình 13: Thực thể Order_detail
Hình 15: Thực thể Customer_detail
Xác định các bảng thực thể
Bảng số liệu 1: Table Cartegory
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã danh mục
Name Varchar 255 Tên danh mục
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
Bảng số liệu 2: Table Product
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã danh mục
Foreign key Cartegory_id Int 11 Mã danh mục
Name Varchar 255 Tên sản phẩm
Images Longtext Ảnh sản phẩm
Detail Longtext Chi tiết sản phẩm
Trending Int 11 Ảnh nổi bật ở banner
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
Bảng số liệu 3: Table Order
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã danh mục
Foreign key Customer_id Int 11 Mã khách hàng
Subtotal Varchar 255 Tổng sản phẩm
Total Varchar 255 Tổng sản phẩm
Username Varchar 255 Tên tài khoản
Phone Varchar 255 Số điện thoại
Payment Varchar 255 Hình thức thanh toán
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
Bảng số liệu 4: Table Order_detail
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã danh mục
Foreign key Order_id Int 11 Mã khách hàng
Foreign key Product_id Int 11 Mã sản phẩm
Quantity Varchar 255 Số lượng sản phẩm trong hóa đơn
Prices Varchar 255 Giá từng sản phẩm trong đơn hàng
Total_prices Varchar 255 Tổng giá trị đơn hàng
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
Bảng số liệu 5: Table Customer
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã khách hàng
Secret_key Int 11 Mã bảo mật
Verify_code Varchar 255 Verify_code
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
Bảng số liệu 6: Table Customer_detail
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã quản trị
Foreign key Secret_key Int 11 Mã bảo mật
Verify_code Varchar 255 Mã bảo mật
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
Bảng số liệu 7: Table Admin
Tính chất Tên trường Kiểu dữ liệu Kích cỡ Chú thích
Primary key Id Int 10 Mã khách hàng
Customer_id Int 11 Mã khách hàng
Name Varchar 255 Tên khách hàng
Phone Varchar 255 Số điện thoại
Created_at Timestamp Thời gian tạo
Updated_at Timestamp Thời gian cập nhật
THIẾT KẾ WEBSITE
Giao diện cho trang khách hàng
1.2 Trang tất cả sản phẩm
Hình 18: Trang tất cả sản phẩm
Hình 19: Trang sản phẩm đang giảm giá
1.4 Trang đăng ký tài khoản
Hình 20: Trang đăng ký tài khoản
1.6 Trang thông tin của User khi đã đăng nhập
Hình 22: Trang thông tin của User khi đăng nhập
1.7 Trang hiển thị đơn mua của User
Hình 23: Trang hiển thị đơn mua của User
Hình 24: Trang đổi mật khẩu
Giao diện cho trang quản lý
2.1 Trang quản lí danh mục
Hình 27: Trang quản lí danh mục
2.2 Trang quản lí thương hiệu
Hình 28: Trang quản lí thương hiệu
2.3 Trang quản lí sản phẩm
Hình 29: Trang quản lí sản phẩm
2.4 Trang quản lí sản phẩm đang giảm giá
Hình 30: Trang quản lí sản phẩm đang giảm giá
2.5 Trang quản lí đơn hàng
Hình 31: Trang quản lí đơn hàng
2.6 Trang thống kê doanh thu
Hình 32: Trang thống kê doanh thu
Kết quả đạt được
Áp dụng được nhiều kiến thức để phân quyền cho trang web.
Tìm hiểu được thêm Framework PHP -Laravel để làm trang web
Quản lý được những thông tin cần thiết cho Admin.
Nắm bắt rõ về cách hoạt động của PHP và tại sao PHP lại rất mạnh trong việc phát triển Website.
Nâng cao tính thẩm mỹ hơn trong việc UI-UX.
Hạn chế tồn tại
Chưa có nhiều kinh nghiệm thực tế nên xây dựng trang Web vẫn còn nhiều sơ hở và bugs.
Giao diện chưa thật sự bắt mắt đối với nhiều khách hàng kĩ tính.
Một số chức năng còn hạn chế, một số lại thừa thãi.
CSDL còn chưa được chặt chẽ về việc bảo đảm tính toàn vẹn của dữ liệu.
Hướng phát triển
Tạo sự linh động, hấp dẫn giữa các trang web hơn.
Tối ưu code lại để dễ dàng quản lý.
Tìm hiểu sau hơn về ngôn ngữ PHP và MySQL để đáp ứng nhiều nhu cầu người dùng hơn.
Tìm hiểu về nhiều ngôn ngữ, các phầm mềm ứng dụng để nâng cao giao diện đẹp hơn, thân thiện hơn.
Xây dựng trang Web mới với quy mô lớn hơn với nhiều ứng dụng, chức năng.
Tài liệu tham khảo
https://www.youtube.com/playlist? list=PL3V6a6RU5ogEAKIuGjfPEJ77FGmEAQXTT https://stackoverflow.com https://www.w3schools.com/