TỔNG QUAN VỀ ĐỀ TÀI
MỤC TIÊU VÀ YÊU CẦU
- Xây dựng ứng dụng website mua bán nông sản
- Hệ thống cần thực hiện được các chức năng sau:
+ Quản lý người mua hàng
+ Thống kê người dùng, sản phẩm và đơn hàng
- Xây dựng giao diện trang dụng
- Phân quyền 2 nhóm người dùng
- Hiển thị thông tin sản phẩm chi tiết sản phẩm
- Thêm xoá sửa sản phẩm
- Xây dựng tính năng giỏ hàng: thêm, cập nhật, xoá giỏ hàng
- Xây dựng tính năng đăng ký và quản lý tài khoản
- Sử dụng công cụ lập trình: Subline text, Xamp, SQL server 2012
- Sử dụng ngôn ngữ: Html, CSS, PHP, framwork Larave (PHP).
CƠ SỞ LÝ THUYẾT
2.1 Ngôn ngữ lập trình PHP
PHP, hay còn gọi là PHP: Hypertext Preprocessor, là một ngôn ngữ lập trình kịch bản mã nguồn mở, chủ yếu được sử dụng để phát triển ứng dụng cho máy chủ Với khả năng nhúng dễ dàng vào HTML và tối ưu hóa cho các ứng dụng web, PHP nổi bật với tốc độ nhanh, cú pháp giống C và Java, cùng với độ dễ học Nhờ những ưu điểm này, PHP đã nhanh chóng trở thành một trong những ngôn ngữ lập trình web phổ biến nhất hiện nay.
PHP là ngôn ngữ mã nguồn mở phổ biến, có thể chạy trên cả Apache và IIS, vượt trội hơn ASP.NET với số lượng website thiết kế bằng PHP ngày càng tăng Cấu trúc PHP đơn giản, giúp người học dễ dàng tiếp cận, đặc biệt nếu đã nắm vững HTML và C Thư viện phong phú và hệ thống CMS miễn phí đa dạng cùng sự hỗ trợ mạnh mẽ từ cộng đồng, giúp người dùng dễ dàng tìm kiếm tài liệu và nhận hỗ trợ nhanh chóng.
Việc cài đặt môi trường phát triển cho ứng dụng chạy trên máy chủ Apache và kết hợp với hệ quản trị cơ sở dữ liệu MySQL rất đơn giản Người dùng có thể sử dụng các bộ cài đặt duy nhất như XAMPP cho Windows và Linux hoặc MAMP cho MacOS.
- Các tính năng chính của PHP:
+ Tích hợp cơ sở dữ liệu dễ dàng
+ Bootstrap là một nền tảng (framework) miễn phí, mã nguồn mở, dựa trên
HTML, CSS & Javascript Nó được tạo ra để xây dựng các giao diện Website tương thích với tất cả các thiết bị có kích thước màn hình khác nhau
Bootstrap cung cấp các đối tượng cơ bản như typography, forms, buttons, tables, navigation, modals, và image carousels, cùng với nhiều thành phần và hỗ trợ Javascript, giúp thiết kế Responsive trở nên dễ dàng, thuận tiện và nhanh chóng hơn.
Bootstrap giúp tiết kiệm thời gian cho các nhà thiết kế giao diện website nhờ vào các thư viện chứa mã sẵn có Lập trình viên có thể áp dụng những đoạn mã này vào website của mình mà không cần phải viết lại từ đầu, giúp tối ưu hóa quy trình phát triển giao diện.
+ Bootstrap dễ dàng sử dụng, chỉ cần có kiến thức cơ bản về html, css
Bootstrap nổi bật với khả năng tự động điều chỉnh kích thước trang web, giúp trang hiển thị tối ưu trên mọi loại màn hình, từ điện thoại, tablet cho đến laptop và máy tính để bàn.
+ Bootstrap tương thích với tất cả các trình duyệt hiện đại như: chrome, firefox, internet explorer, cốc cốc, safari và opera
Laravel là một framework PHP 5.3 xuất sắc, được thiết kế để phát triển web một cách rõ ràng và hiệu quả Nó giúp lập trình viên tránh khỏi mã spaghetti, tạo điều kiện cho việc xây dựng những ứng dụng tuyệt vời với cú pháp đơn giản Laravel mang đến trải nghiệm phát triển thú vị và sáng tạo, giúp lập trình viên tập trung vào việc phát triển ứng dụng thay vì gặp phải những khó khăn không cần thiết.
- Đặc tính nổi trội của Laravel:
+ Đơn giản: các chức năng của Laravel rất dễ hiểu và thực hiện
+ Ngắn gọn: hầu hết các chức năng của Laravel hoạt động liên tục với cấu hình rất nhỏ, dựa vào các quy tắc chuẩn để giảm bớt code-bloat
Hướng dẫn sử dụng Laravel được trình bày một cách hợp lý và luôn được cập nhật đầy đủ Nhà lập trình và người sáng tạo framework này cam kết cập nhật tài liệu trước mỗi phiên bản mới, giúp người học lập trình có được thông tin mới nhất.
- Đặc điểm khiến Laravel nổi trội:
Bundles trong Laravel tương tự như PEAR trong PHP, mang đến sự tiện lợi trong việc quản lý và cài đặt các gói Laravel còn tích hợp công cụ command-line Artisan, giúp đơn giản hóa quá trình cài đặt và sử dụng các gói.
+ Eloquent ORM: là file thực thi PHP Active Record tiên tiến nhất hiện có
+ Migrations: trog laravel, migrations được xây dựng trong framework, chúng có thể thực hiện thông quan Artisan command-line
+ Unit-testting: laravel là một framework tuyệt vời để tích hợp PHP Unit
+ Redis: Laravel hỗ trợ Redis rất ngắn gọn
- Cấu trúc thư mục Laravel:
The app folder is the main directory containing all created projects and the core code for your application, while the Console directory holds files defining commands for Artisan The Exceptions directory is responsible for managing and directing errors, and the Controllers directory contains the project's controllers Middleware files that filter and block requests are stored in the Middleware directory The Providers folder includes files that declare services and bind them into the Service Container The bootstrap directory contains the framework's startup files, along with configuration files for auto-loading, routing, and caching The config folder encompasses all configuration files, and the database directory houses two subdirectories: migrations for database creation and manipulation, and seeds for creating sample data The factories directory within the database contains files that define table columns for generating sample data, while migrations hold files for creating and modifying data, and seeds include files for adding additional data.
Thư mục public trong CSDL chứa file khởi động index.php cùng với các tệp css, javascript và hình ảnh Thư mục resources lưu trữ các tệp view và raw, bao gồm các tệp biên soạn như LESS, SASS và JavaScript Trong khi đó, thư mục views chứa các tệp view phục vụ cho giao diện người dùng, và thư mục routes tập hợp tất cả các điều khiển route.
The project directory includes essential routing files such as web.php, channels.php, api.php, and console.php The api.php file manages application routes, including user-related functionalities like registration and login Meanwhile, the web.php file governs the routes for views Additionally, the storage folder contains compiled Blade templates, file-based sessions, file caches, and other project-generated files.
+ Thư mục app, dùng để chứa những file sinh ra từ project
+Thư mục framework, chứa những file sinh ra từ framework và caches
+ Thư mục logs, chứa những file logs
The /storage/app/public directory stores user-generated files, such as images The tests directory holds files related to testing, including PHPUnit tests The vendor directory contains libraries managed by Composer.
2.4 Tìm hiểu về mô hình MVC:
MVC là viết tắt của Model, View và Controller, là một mô hình thiết kế quan trọng trong kỹ thuật phần mềm Mô hình này chia source code thành ba phần riêng biệt, mỗi phần tương ứng với một hoạt động cụ thể, giúp tổ chức và quản lý mã nguồn hiệu quả hơn.
Model (M) là phần quan trọng trong ứng dụng, chịu trách nhiệm lưu trữ toàn bộ dữ liệu và đóng vai trò cầu nối giữa View và Controller Model có thể được thể hiện dưới dạng cơ sở dữ liệu hoặc file XML, cho phép thực hiện các thao tác như xem, truy xuất và xử lý dữ liệu một cách hiệu quả.
QUY TRÌNH XÂY DỰNG PHẦN MỀM
Quy trình công nghệ phần mềm bao gồm tất cả các hoạt động cần thiết để phát triển sản phẩm công nghệ Mỗi nhóm và công ty có phương pháp riêng trong việc xây dựng phần mềm, tạo nên sự đa dạng và phức tạp trong quy trình này Nhóm chúng tôi đã chọn mô hình thác nước để tổ chức xây dựng phần mềm website.
Hình 1 5 Quy trình xây dựng phần mềm
3.1 Khảo sát và lập kế hoạch
- Khảo sát - bước đầu tiên của quá trình phát triển phần mềm
Lập kế hoạch tiến độ là bước đầu tiên và cốt lõi trong phát triển phần mềm, giúp xác định phạm vi dự án, phương tiện thực hiện và cách thức hệ thống mới đáp ứng các mục tiêu chiến lược kinh doanh Quá trình này cũng xem xét nguồn lực hiện có, các vấn đề về chi phí, thời gian thực hiện và xác định giải pháp tối ưu.
3.2 Xác định yêu cầu và phân tích tính khả thi
Để tạo ra một giải pháp khả thi và thiết kế hấp dẫn, nhóm phát triển cần hiểu rõ mục tiêu của dự án và thu thập đầy đủ các yêu cầu cần thiết.
Phân tích khả thi là bước quan trọng trong việc đánh giá tất cả các yếu tố kỹ thuật và kinh tế tác động đến quá trình phát triển ứng dụng Việc xem xét thời gian, nguồn lực và nhiệm vụ, cùng với ước tính mức độ tham gia của các thành viên trong nhóm, sẽ giúp xác định chi phí và lợi nhuận của dự án một cách chính xác.
- Thiết kế phần mềm là một thành phần ưu việt của chu trình phát triển sản phẩm
Trong giai đoạn thiết kế, giải pháp thực tế được hình thành thông qua việc phát triển kiến trúc phần mềm chi tiết, nhằm đáp ứng các yêu cầu cụ thể của dự án.
Thiết kế phần mềm được tùy chỉnh bởi các kiến trúc sư và kỹ sư phần mềm, thiết lập quy trình và tiêu chuẩn công việc cụ thể Giai đoạn này bao gồm việc xây dựng giải pháp tổng thể rõ ràng cùng với cấu trúc và thiết kế cơ sở dữ liệu Toàn bộ cấu trúc dự án được hình thành với nguyên mẫu cuối cùng và mô hình thử nghiệm, phục vụ cho các giai đoạn tiếp theo trong quá trình phát triển phần mềm.
- Giai đoạn phát triển là viết mã và chuyển đổi tài liệu thiết kế thành phần mềm thực tế trong quá trình phát triển phần mềm
Giai đoạn này của chu kỳ phát triển phần mềm là dài nhất và đóng vai trò xương sống cho toàn bộ quy trình, vì vậy cần chú ý đến một số yếu tố quan trọng.
Nhóm kỹ sư phần mềm cần đảm bảo mã nguồn đáp ứng các yêu cầu kỹ thuật và mong đợi của các bên liên quan Nếu các giai đoạn phát triển trước đó được thực hiện cẩn thận, phần mềm sẽ sẵn sàng để sử dụng và phù hợp với yêu cầu dự án Chu kỳ phát hành phần mềm bao gồm các giai đoạn alpha, beta, bản phát hành ứng viên và cuối cùng là bản dựng sản xuất Khi kiến trúc hoàn chỉnh và các chức năng đã được phát triển theo kế hoạch, giai đoạn thử nghiệm sẽ được bắt đầu.
Nhóm Đảm bảo chất lượng thực hiện nhiều thử nghiệm như kiểm tra chức năng, tích hợp hệ thống, khả năng tương tác và kiểm tra sự chấp nhận của người dùng để đảm bảo mã sạch và đáp ứng mục tiêu kinh doanh Việc xác minh và xác nhận là rất quan trọng để đảm bảo ứng dụng hoặc giải pháp được hoàn thành thành công Sau khi phần mềm không còn lỗi, giai đoạn triển khai sẽ bắt đầu.
3.6 Thực hiện và triển khai Đây là giai đoạn khi quá trình cài đặt thực tế của giải pháp chế tạo diễn ra Nó được thực hiện từng bước theo kế hoạch triển khai Ứng dụng mới được xây dựng và thử nghiệm được chuyển sang sản xuất bao gồm truyền dữ liệu và thành phần trong khi trong các bản phát hành tiếp theo, chỉ những thay đổi cụ thể mới được triển khai Tùy thuộc vào mức độ phức tạp của dự án, nó có thể là một bản phát hành đơn giản (nếu dự án đơn giản) hoặc phát hành ngẫu nhiên (theo từng giai đoạn) trong trường hợp một dự án phức tạp hơn Giờ đây, các nhà phân tích hệ thống và người dùng cuối thực sự có thể thấy và dùng thử ứng dụng đã sẵn sàng
3.7 Vận hành và bảo trì
Giai đoạn cuối cùng trong phát triển phần mềm là bảo trì và cập nhật thường xuyên, đòi hỏi sự chú ý tối đa Đây là thời điểm sản phẩm được hoàn thiện, nâng cấp và tinh chỉnh dựa trên phản hồi thực tế về hiệu suất Việc tăng cường chức năng ứng dụng không chỉ nâng cao hiệu suất mà còn đáp ứng nhu cầu thực tế của người dùng, cho phép thêm các khả năng mới hoặc điều chỉnh theo yêu cầu bổ sung của họ.
CÁC QUY TRÌNH NGHIỆP VỤ (BUSSINESS PROCESS MODEL BPM) 17
4.1 Mô hình nghiệp vụ đăng ký tài khoản
- Bước 1: Khách hàng nhập thông tin cá nhân để đăng ký tài khoản
- Bước 2: Hệ thống kiểm tra email hoặc số điện thoại đã đăng ký hay chưa
- Bước 3: Hệ thống tiến hành xác nhận email hoặc số điện thoại khách hàng
- Bước 4: Sau khi xác nhận thông tin đúng thì hệ thống gửi thống báo đăng ký tài khoản thành công
Hình 1 6 Mô hình BPM đăng ký tài khoản
4.2 Mô hình nghiệp vụ đặt hàng
- Bước 1: Khách hàng xem và lựa chọn sản phẩm cần đặt hàng
Hệ thống sẽ kiểm tra tình trạng hàng hóa mà khách hàng yêu cầu, xác định xem sản phẩm còn hàng hay không thông qua cơ sở dữ liệu lưu trữ trong kho.
Nếu sản phẩm khách hàng yêu cầu không còn, hệ thống sẽ gợi ý cho khách hàng chọn sản phẩm khác Ngược lại, nếu sản phẩm còn hàng, hệ thống sẽ yêu cầu khách hàng xác nhận đơn hàng và nhập thông tin cá nhân nếu họ chưa đăng nhập.
- Bước 4: Khách hàng tiếp tục chọn và mua sản phẩm khác và thêm sản phẩm vào giỏ hàng
- Bước 5: Tiến hành thanh toán giỏ hàng
Hệ thống sẽ tiến hành kiểm tra và gửi thông tin xác nhận đến khách hàng Khách hàng cần xác nhận thông tin là chính xác; nếu có sai sót, vui lòng cập nhật lại thông tin giao hàng.
- Bước 7: Thanh toán trực tiếp qua ngân hàng hoặc thành toán tiền mặt
- Bước 8: Khách hàng xem đơn hàng đã đặt và theo dõi quá trình giao hàng
Hình 1 7 Mô hình BPM đặt hàng
4.3 Mô hình nghiệp vụ giao hàng
- Bước 1: Cửa hàng hoặc kho đóng gói sản phẩm và gửi cho nhân viên giao hàng
- Bước 2: Nhân viên giao hàng sẽ tiếp nhận đơn hàng và xác nhận địa điểm giao hàng cho khách
- Bước 3: Nhân viên giao hàng tiến hành giao hàng cho khách
Nếu khách hàng từ chối nhận hàng, bộ phận giao hàng sẽ lưu sản phẩm vào kho tạm và tiếp tục giao trong những ngày tiếp theo Nếu sau hai lần giao hàng vẫn không thành công, quá trình giao hàng sẽ kết thúc và sản phẩm sẽ được gửi về cửa hàng Ngược lại, nếu khách hàng nhận hàng, đơn hàng sẽ được đánh dấu hoàn thành và quá trình giao hàng sẽ kết thúc.
Hình 1 8 Mô hình BPM giao hàng
4.4 Mô hình nghiệp vụ đổi trả hàng
- Bước 1: Khách hàng thông báo cho cửa hàng thông tin hàng hóa bị lỗi
- Bước 2: Cửa hàng tiếp nhận thông tin từ khách hàng và phản hồi cho khách hàng chính sách đổi trả
- Bước 3: Khách hàng sẽ gửi hàng hóa và các thông tin liên quan tới hàng hóa cần đổi như: Phiếu mua hàng, …
- Bước 4: Cửa hàng sẽ tiếp nhận hàng hóa và kiểm tra hàng hóa có đáp ứng các điều kiện để được đổi trả
Bước 5: Thông báo cho khách hàng về chính sách đổi trả hàng hóa Nếu hàng hóa đủ điều kiện, tiến hành thực hiện quy trình đổi trả; ngược lại, hàng hóa không đủ tiêu chuẩn sẽ không được đổi.
Hình 1 9 Mô hình BPM đổi trả hàng
4.5 Các biểu mẫu liên quan
- Các biếu mẫu thu hoạch tại tiki.vn gồm:
+ Quy trình đăng ký hoặc đăng nhập
Hình 1 10 Đăng ký hoặc đăng nhập tài khoản tại Tiki.vn + Biểu mẫu mua hàng và thêm vào giỏ hàng
Hình 1 11 Mua hàng và thêm vào giỏ hàng tại Tiki.vn + Tiến hành đặt hàng tại Tiki.vn
Hình 1 12 Tiến hành đặt hàng tại Tiki.vn + Lựa chọn phương thức thanh toán
Hình 1 13 Lựa chọn phương thức thanh toán tại Tiki.vn
+ Đăng ký bán hàng cùng Tiki.vn
Hình 1 14 Đăng ký bán hàng cùng Tiki.vn
PHÂN TÍCH THIẾT KẾ HỆ THỐNG
GIỚI THIỆU
- Hệ thống là một tập hợp các yếu tố hoặc thành phần được tổ chức cho một mục đích chung
PHÂN TÍCH DỮ LIỆU
6.1 Giới thiệu mô hình thực thể ERD (Entity-Relationship Diagram)
Mô hình thực thể kết hợp (Entity Relationship Model - ERD) được giới thiệu vào năm 1976 và hiện nay được sử dụng phổ biến trong thiết kế cơ sở dữ liệu ở mức quan niệm.
- Mô hình thực thể kết hợp được biểu diễn dưới dạng sơ đổ thực thể liên kết (Enity Relationship Diagram – ERD)
Mô hình thực thể bao gồm các thành phần quan trọng, trong đó thực thể là đối tượng cần quản lý, được biểu diễn bằng hình chữ nhật và đi kèm với danh sách các thuộc tính.
Thuộc tính là dữ liệu và tính chất dùng để mô tả đặc trưng của một thực thể, trong khi mối liên kết thể hiện sự ghép nối giữa hai hay nhiều thực thể, phản ánh mối quan hệ giữa chúng.
PHÂN TÍCH XỬ LÝ
7.1 Giới thiệu mô hình phân cấp chức năng DFD (Data flow diagram)
Mô hình DFD (Data Flow Diagram) là một công cụ hệ thống cân xứng, thể hiện cách thức dữ liệu và tiến trình tương tác với nhau Nó mô tả cách thông tin di chuyển giữa các tiến trình và chức năng khác nhau trong hệ thống, giúp người dùng hiểu rõ hơn về quy trình xử lý dữ liệu.
7.2 Mô hình DFD của hệ thống
- Mô hình DFD mức ngữ cảnh:
Hình 2 3 Mô hình DFD mức ngữ cảnh
- Mô hình DFD mức đỉnh:
Hình 2 4 Mô hình DFD mức đỉnh
Hình 2 5 Mô hình DFD mua hàng
- Mô hình DFD giao hàng:
Hình 2 6 Mô hình DFD giao hàng
- Mô hình DFD thống kê:
Hình 2 7 Mô hình DFD thông kê
MÔ HÌNH BFD (Business Function Diagram)
8.1 Giới thiệu về mô hình BFD
Mô hình phân rã chức năng (BFD - Business Function Diagram) là một công cụ hữu ích để biểu diễn sự phân chia có thứ bậc của các công việc cần thực hiện Trong mô hình này, mỗi công việc chính được chia thành các công việc con, với số lượng cấp độ phân chia phụ thuộc vào kích thước và độ phức tạp của hệ thống.
8.2 Mô hình BFD của hệ thống
Hình 2 8 Mô hình BFD của hệ thống
THIẾT KẾ HỆ THỐNG
GIỚI THIỆU VỀ MÔ HÌNH QUAN HỆ
Mô hình quan hệ dữ liệu (Relational Data Model) là một cách biểu diễn cơ sở dữ liệu dưới dạng các quan hệ, trong đó mỗi quan hệ được thể hiện qua một bảng chứa giá trị dữ liệu Mỗi hàng trong bảng đại diện cho các giá trị của dữ liệu, thể hiện một mối quan hệ hoặc một thực thể cụ thể Tên của các bảng và cột giúp làm rõ ý nghĩa của các giá trị trong từng hàng.
Dữ liệu được biểu diễn dưới dạng một tập hợp các quan hệ Trong mô hình quan hệ, dữ liệu được lưu trữ dưới dạng bảng.
LƯỢC ĐỒ DIAGRAM
Hình 3.1 Mô hình BFD của hệ thống
CÁC BẢNG TRONG CƠ SỞ DỮ LIỆU
Bảng người dùng là bảnglưu trữ thông tin tài khoản của người dùng bao gồm thông tin cá nhân và thông tin đăng nhập
STT Tên trường Kiểu dữ liệu Mô tả
The database structure consists of several interconnected tables, including `admins`, which stores admin user details such as ID, username, name, email, and password The `carts` table tracks user cart items, while `categories` organizes products by category name and slug The `galeries` table contains image URLs, and the `images` table links products to their respective galleries `inventories` manage product quantities, and `order_cancels` record canceled orders The `orders` table captures user order details, including user ID, product name, quantity, and pricing information Additionally, the `product_images` table associates images with products, and the `products` table holds product details, including category ID, promotion ID, and descriptions The `promotions` table details promotional offers, including start and end dates Finally, the `reports` table links inventories to orders and cancellations, while the `roles` and `users` tables manage user roles and account information, respectively.
2 Username Varchar Tài khoản người dùng
3 Email Varchar Email người dùng
4 Password Varchar Mật khẩu người dùng
Kiểm tra user có phải là admin không,nếu giá trị 1 là admin, nếu giá trị
6 Email_verified_at Timestamp Thời gian xác thực emaol
7 Remember_token Varchar Mã đăng nhập cho người dùng chọn nhớ tài khoản
8 Address Varchar Địa chỉ người dùng
9 Created_at Datetime Thời gian tạo dữ liệu người dùng
10 Update_at Datetime Thời gian thay đổi dữ liệu người dùng lần cuối
11 Name Varchar Tên người dùng
Bảng 3 1 Cấu trúc bảng Users
Bảng sản phẩm là nơi lưu trữ thông tin chi tiết về sản phẩm, bao gồm tên sản phẩm, mã sản phẩm, hình ảnh hiển thị và các thông tin liên quan khác.
T Tên trường Kiểu dữ liệu Mô tả
1 Id Int unsigned Khóa chính
2 Id_category Int unsigned Khóa ngoại liên kết với bảng categories
3 Id_promotion Int unsigned Khóa ngoại liên kết với bảng promotions
4 Description_produ ct Varchar Mô tả chi tiết sản phẩm
5 Name_product Varchar Tên sản phẩm
6 Price_product Decimal Giá của sản phẩm
7 Quantity_product Int unsigned Số lượng sản phẩm
8 Image_product Varchat Hình ảnh của sản phẩm
9 Created_at Datetime Thời gian tạo
10 Update_at Datetime Thời gian cập nhật lần cuối
11 Slug_product Varchar Đường dẫn URL đến sản phẩm
Bảng 3 2 Cấu trúc bảng Products
11.3 Bảng sản phẩm (product_images)
Bảng ảnh sản phẩm là nơi lưu trữ hình ảnh chi tiết của từng sản phẩm Mối quan hệ giữa bảng sản phẩm chi tiết và bảng ảnh sản phẩm là quan hệ một-nhiều, cho phép mỗi sản phẩm có thể có nhiều hình ảnh đi kèm.
STT Tên trường Kiểu dữ liệu Mô tả
1 Id Int unsigned Khóa chính
2 Id_product Int unsigned Khóa ngoại liên kết với bảng product
3 Id_image Int unsigned Khóa ngoại liên kết với bảng image
Bảng 3 3 Cấu trúc bảng Product_images
Bảng đơn hàng là bảng lưu trữ thông tin đơn hàng của người dùng bao gồm thông tin cá nhân và phương thức thanh toán
T Tên trường Kiểu dữ liệu Mô tả
1 Id Int unsigned Khóa chính
2 Id_user Int unsigned Khóa ngoại liên kết với bảng users
3 Name Int Tên trên đơn hàng
4 Addres Varchar Địa chỉ cụ thể
5 Name_product Varchar Tên sản phẩm
6 Quantity Tinyint Số lượng sản phẩm
7 Code Int unsigned Đếm số lần mua hàng của một khách hàng
9 Price_promotion Decimal Khóa ngoại liên kết với bảng promotions
10 Toal_money Decimal Tổng tiền
11 Created_at Datetime Thời gian tạo
12 Update_at Datetime Thời gian cập nhật lần cuối
Bảng 3 4 Cấu trúc bảng Orders
11.5 Bảng quên mật khẩu (password_resets)
Khi khách hàng quên mật khẩu tài khoản sẽ bấm vào quên mật khẩu để lấy lại password
T Tên trường Kiểu dữ liệu Mô tả
3 Created_at Timestamp Thời gian tạo
Bảng 3 5 Cấu trúc bảng Password_reset
Bảng khuyến mãi chứa những thông tin khuyến mãi của sản phẩm
T Tên trường Kiểu dữ liệu Mô tả
1 Id Int unsigned Khóa chính
2 Name_promotion Varchar Tên chương trình khuyến mãi
3 Product_id Int Khóa ngoại liên kết với bảng product
4 Price_promotion Decimal Giá khuyến mãi
5 Start_day Date Ngày bắt đầu khuyến mãi
6 End_day Date Ngày kết thúc khuyến mãi
Bảng 3 6 Cấu trúc bảng Promotions
Bảng giỏ hàng là bảng chứa thông tin sản phẩm người dùng đã chọn đưa vào giỏ và tổng tiền của những sản phẩm đã chọn
STT Tên trường Kiểu dữ liệu Mô tả
1 Id Int unsigned Khóa chính
2 Id_users Int unsigned Khóa ngoại liên kết với bảng users
3 Id_promotion Int unsigned Khóa ngoại liên kết với bảng promotions
4 Quantity Tinyint unsigned Số lượng
5 Total_money Decimal Tổng tiền
6 Created_at Datetime Thời gian tạo
7 Update_at Datetime Thời gian cập nhật lần cuối
Bảng 3 7 Cấu trúc bảng Carts
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH
Hình 4 1 Giao diện đăng nhập
- Giao diện đăng ký tài khoản
Hình 4 2 Giao diện đăng ký tài khoản
- Giao diện reset password sẽ xác nhận bằng cách nhận email xác nhận và đổi mật khẩu
Hình 4 3 Giao diện reset pasword
Chia ra làm 3 phần chính:
+ Phần Header chứa logo, banner và thanh điều hướng của trang web giúp điều hướng tới các trang khác
+ Phần Content ở giữa: hiển thị các sản phẩm, ngoài ra phần sidebar bên phải giúp tìm kiếm theo danh mục sản phẩm
+ Phần Footer: Chứa các thông tin về cửa hàng như email, số điện thoại, giờ mở cửa, …
Hình 4 4 Giao diện trang chủ
- Giao diện trang chi tiết sản phẩm
Giao diện giỏ hàng bao gồm các chức năng quan trọng như hiển thị thông tin chi tiết của sản phẩm đã đặt, cho phép người dùng cập nhật số lượng sản phẩm và xóa sản phẩm không mong muốn khỏi giỏ.
Hình 4 5 Giao diện chi tiết sản phẩm
Giao diện trang thanh toán hiển thị thông tin chi tiết về sản phẩm đã đặt, cùng với các trường nhập liệu để người dùng điền thông tin thanh toán cần thiết nhằm thực hiện giao dịch.
Hình 4 6 Giao diện thanh toán
Bao gồm các thông tin của user, có các chức năng update thông tin và hủy đơn hàng
Hình 4 7 Giao diện thông tin khách hàng
- Giao diện đăng nhập của Admin
Hình 4 8 Giao diện đăng nhập của Admin
- Giao diện trang quản trị Admin: Có các chức năng có thể quản lý tất cả thông tin như user, sản phẩm, hình ảnh, đơn hàng, …
+ Bao gồm các chức năng chỉnh sửa thông tin trong mỗi phần quản lý
Hình 4 9 Giao diện trang quản trị
- Trang quản lý user: Liệt kê các thông tin của user, có chức năng có thể cập nhật lại thông tin của user
Hình 4 10 Giao diện quản lý Users
- Giao diện quản lý danh mục sản phẩm
Hình 4 11 Giao diện dang mục sản phẩm
- Giao diện thông tin các sản phẩm
Hình 4 12 Giao diện thông tin sản phẩm
- Giao diện hình ảnh sản phẩm
Hình 4 13 Giao diện hình ảnh sản phẩm
- Giao diện quản lý đơn hàng: có 2 chế độ là chấp nhận giao hàng và chưa chấp nhận giao hàng
Hình 4 14 Giao diện quản lý đơn hàng
- Giao diện các đơn hàng đã hủy
Hình 4 15 Giao diện các đơn hàng đã hủy