TỔNG QUAN VỀ HỆ THỐNG
Mục đích của đồ án
Hiện nay, sự phát triển nhanh chóng của khoa học kỹ thuật không chỉ nâng cao chiều sâu mà còn mở rộng chiều rộng, đóng vai trò quan trọng trong sự tiến bộ của văn minh nhân loại Công nghệ thông tin đã được ứng dụng rộng rãi, giúp cải thiện chất lượng cuộc sống Nhờ Internet, mọi người và gia đình, dù ở xa đến đâu, vẫn có thể kết nối gần gũi với nhau.
Mạng Internet hiện nay đã trở thành một phần thiết yếu trong mọi lĩnh vực, đặc biệt là trong các doanh nghiệp kinh doanh hàng hóa Nó đóng vai trò quan trọng trong việc trao đổi thông tin, mua bán và giao dịch hàng hóa, giúp doanh nghiệp hoạt động hiệu quả hơn.
Cuộc sống vật chất có thể đo đếm, nhưng cuộc sống tinh thần lại vô giá, đặc biệt trong bối cảnh con người ngày càng bận rộn với công việc và các mối quan hệ xã hội Trong thế giới phát triển không ngừng về khoa học, kỹ thuật và kinh tế, Việt Nam cũng không nằm ngoài xu hướng này Khi muốn thể hiện tình yêu, sự quan tâm hay lòng kính trọng, hoa trở thành lựa chọn hàng đầu Hoa luôn là món quà ý nghĩa, thể hiện cái đẹp và là nơi gửi gắm những thông điệp yêu thương chân thành, là món quà tuyệt vời dành cho người thân, gia đình và bạn bè.
Nhận thấy nhu cầu cao trong việc chọn và đặt hoa, tôi đã quyết định xây dựng một website riêng để tự quản lý và kinh doanh Mục tiêu của website là mang lại sự thuận tiện cho mọi người trong việc lựa chọn và đặt mua hoa một cách dễ dàng.
Yêu cầu của đồ án
Để đồ án có tính khả thi và thực tế thì nó cần đáp ứng đƣợc những chức năng nhƣ sau:
Khách hàng có thể dễ dàng tham quan trang web mà không cần đăng ký tài khoản, tìm kiếm hoa, xem thông tin và so sánh giá cả giữa các loại hoa Chỉ khi quyết định mua hoa, họ mới cần thực hiện đăng ký và đăng nhập.
Cho phép khách hàng đăng ký tài khoản cũng nhƣ đăng nhập trên hệ thống
Tìm kiếm những loại hoa mong muốn theo danh mục hoa hoặc
Cho phép khách hàng vào tham quan trang web, xem hình ảnh cũng nhƣ thông tin và mua hoa tại trang web đó
Ngoài ra khách hàng còn có thể xem những loại hoa nào đang bán chạy nhất, những loại hoa nào đắt nhất , rẻ nhất …trên hệ thống
Về người quản trị (admin) là người chịu trách nhiệm quản lý toàn bộ trang web, sẽ có các chức năng nhƣ sau:
Quản lý các tài khoản trong hệ thống, thống kê số lƣợng tài khoản theo từng quyền (admin và khách hàng)
Quản lý các danh mục hoa có trên hệ thống: thêm, sửa, xóa các thể loại cho phù hợp
Xem thông tin trang web của mình nhƣ ngày giờ tạo, tên tài khoản tạo,…
Quản lý các đơn đặt hàng, xác nhận đã thanh toán, xóa đơn đặt hàng hết hạn
Để thu hút khách hàng hiệu quả, việc trang trí website trở nên đặc biệt và nổi bật so với các đối thủ là rất quan trọng Bạn có thể thực hiện điều này bằng cách thay đổi hình đại diện, hình nền, ảnh bìa và slogan, giúp tạo ấn tượng mạnh mẽ và khác biệt cho trang web của mình.
Giải quyết đồ án
Admin (Nhà quản trị) là người quản lý trang web, có quyền đăng nhập vào tài khoản để cấu hình và thực hiện các thao tác thêm, sửa, xóa dữ liệu Họ cũng có trách nhiệm theo dõi chi tiết đơn hàng, quản lý thông tin về danh mục, sản phẩm, nhà cung cấp và đơn đặt hàng.
Khách hàng là những người hoặc công ty tìm kiếm sản phẩm trực tuyến, có khả năng chọn danh mục hoa yêu thích Họ truy cập trang web để xem và lựa chọn sản phẩm, sau đó thêm vào giỏ hàng và tạo đơn hàng cho nhà quản trị Khách hàng cần đăng ký tài khoản và mật khẩu để thuận tiện cho các giao dịch sau, đồng thời có cơ hội nhận các chương trình khuyến mãi và giảm giá từ cửa hàng (nếu có).
Khách hàng vãng lai (Free User) là những người có khả năng xem và mua sản phẩm trong danh mục mà không cần đăng nhập Họ có thể thêm sản phẩm vào giỏ hàng và thực hiện giao dịch thanh toán dễ dàng Tuy nhiên, nhóm này không được hưởng các ưu đãi và chương trình giảm giá khuyến mãi từ trang web.
Mô hình hóa cửa hàng bán hoa
Hình 1: Mô hình hóa cửa hàng
Mô hình đƣợc mô tả nhƣ sau:
Quy trình 1: Khi trang chủ đƣợc hiện thị, khách hàng có thể xem sản phẩm của các danh mục hoa có trong list danh sách
Quy trình 2: Sau khi đã chọn đƣợc sản phẩm, khách hàng sẽ cho vào giỏ hàng
Quy trình 3: Trong giỏ hàng của mình, khách hàng có thể cập nhập số lƣợng thêm hoặc bớt đi sản phẩm
Quy trình 4: Khách hàng sẽ lập đơn hàng sau khi đã quyết định chọn những sản phẩm có trong giỏ hàng
Quy trình 5: Phiên giao dịch sẽ kết thúc khi khách hàng đặt xong đơn đặt hàng
Quy trình mua hàng của khách hàng
SẢN PHẨM 1 xem xem xem xem
Cho hàng vào giỏ kết thúc giao dịch
Hình 2:Quy trình mua hàng
Quy trình mua hàng của khách hàng trong cửa hàng nhƣ sau: có 2 loại khách hàng
Nếu khách hàng đã là thành viên của cửa hàng, họ chỉ cần đăng nhập vào tài khoản bằng tên đăng nhập và mật khẩu để được chào mừng Sau khi đăng nhập thành công, khách hàng có thể tham quan cửa hàng trực tuyến và xem thông tin chi tiết về từng sản phẩm Khi tìm thấy sản phẩm ưng ý, khách hàng có thể thêm vào giỏ hàng bằng cách nhấn nút “Mua ngay” Họ có thể chọn nhiều sản phẩm, cập nhật số lượng hoặc xóa sản phẩm không cần thiết Khi đã hoàn tất việc chọn hàng, khách hàng chỉ cần nhấn nút “Tiến hành thanh toán” để thiết lập đơn đặt hàng và hoàn tất giao dịch.
Khi khách hàng lần đầu mua sắm tại cửa hàng, họ có thể đăng ký thành viên để thuận tiện cho các giao dịch sau Để đăng ký, khách hàng chỉ cần nhấn vào nút “Đăng Ký” và điền đầy đủ thông tin cá nhân Sau khi hoàn tất, khách hàng sẽ nhận được tài khoản với tên đăng nhập và mật khẩu, giúp việc mua sắm lần sau trở nên dễ dàng hơn Quy trình mua hàng sẽ diễn ra tương tự như khi khách hàng đã là thành viên.
Nhập tên đăng nhập, mật khẩu Nhập thông tin khách hàng lần đầu mua hàng thành viên muốn đăng ký thành viên
Bạn có thể cho sản phẩm vào giỏ hàng mà không cần đăng ký thành viên Sau khi đã chọn hàng, bạn chỉ cần đăng nhập để xem giỏ hàng và tiếp tục mua sắm như bình thường.
Tổng quan về công nghệ sử dụng
Việc lựa chọn ngôn ngữ lập trình cần đáp ứng đƣợc các yêu cầu sau:
Chương trình viết bằng ngôn ngữ phải chạy được trên các máy tính có hệ điều hành khác nhau nhƣ Windows, Unix, Linux,…
Có tính an toàn và bảo mật cao
Trong sáng, dễ hiểu, dễ sửa chữa và bảo trì
Mã nguồn rõ ràng, tách biệt giữa mã nguồn với giao diện html
Hướng đối tượng để phù hợp với nhu cầu đồ án đặt ra
Việc lựa chọn hệ quản trị cơ sở dữ liệu cần đáp ứng đƣợc những yêu cầu sau:
Ngân hàng dữ liệu thích hợp với mô hình thông tin phong phú và đáp ứng đƣợc về nhu cầu áp dụng vào thực tiễn
Phải có các công cụ hữu hiệu để ngăn chặn tranh chấp và xung đột dữ liệu
Ngôn ngữ lập trình mạch lạc và dễ sử dụng giúp lập trình viên phát triển ứng dụng một cách linh hoạt và nhanh chóng, đáp ứng mọi nhu cầu trong hệ thống.
Ngôn ngữ lập trình Java và hệ quản trị cơ sở dữ liệu SQL Server 2005 được lựa chọn trong đồ án này vì chúng phổ biến, dễ cài đặt và dễ quản trị, đáp ứng tốt các yêu cầu của bài toán.
Java Servlets là chương trình hoạt động trên Web server hoặc Application server, đóng vai trò như một tầng trung gian giữa yêu cầu từ trình duyệt web hoặc HTTP client và các cơ sở dữ liệu hoặc ứng dụng trên HTTP server.
Sử dụng Servlets, bạn có thể thu thập dữ liệu đầu vào từ người dùng qua các biểu mẫu trên trang web, hiển thị các bản ghi từ cơ sở dữ liệu hoặc nguồn khác, và tạo ra các trang web động.
Hình 3- Hình ảnh minh họa về vòng đời của một Servlet
1 Tải Servlet Class vào bộ nhớ
Khi servlet được nạp lần đầu, các bước 1, 2 và 3 sẽ được thực thi một lần duy nhất Mặc định, servlet chỉ được tải khi nhận yêu cầu đầu tiên từ người dùng Tuy nhiên, bạn có thể cấu hình ServletContainer để tải các servlet ngay khi khởi động.
Bước 4 được thực thi nhiều lần, khi yêu cầu (request) của người dùng tới Servlet,
Servlet sử dụng phương thức service() để xử lý yêu cầu từ người dùng, sau đó gọi một trong hai phương thức doGet() hoặc doPost() Trong servlet, cần phải ghi đè và xử lý logic trong các phương thức này để đáp ứng đúng yêu cầu.
Bước 5 được thực thi khi gỡ bỏ triển khai (undeloy) ứng dụng web hoặc tắt
Java Servlets là các chương trình độc lập sử dụng Common Gateway Interface (CGI) và mang lại nhiều lợi thế so với CGI.
Hiệu năng tốt hơn đáng kể
Servlets hoạt động trong không gian địa chỉ của một máy chủ web, cho phép xử lý yêu cầu từ Client mà không cần tạo một tiến trình riêng biệt cho mỗi yêu cầu.
Servlets là độc lập trên nền tảng bởi vì chúng đƣợc viết bằng Java
Bởi vì viết bằng Java (mà Java cung cấp tình bảo mật cao trên Server) nên Servlets là đáng tin cậy
Thư viện đầy đủ của các lớp trong Java luôn sẵn có cho Servlets, cho phép chúng giao tiếp hiệu quả với Applet, cơ sở dữ liệu hoặc phần mềm khác thông qua các Socket và kỹ thuật RMI.
Servlets thực hiện các tác vụ chủ yếu sau:
Đọc dữ liệu hiển thị (explicit) được gửi bởi Client hoặc trình duyệt bao gồm HTML Form trên trang web, hoặc có thể từ Applet hoặc chương trình tùy chỉnh từ HTTP Client.
Đọc dữ liệu yêu cầu HTTP ẩn (implicit) đƣợc gửi bởi Client (hoặc trình duyệt) bao gồm cookie, các loại media
Xử lý dữ liệu để đưa ra kết quả có thể yêu cầu sử dụng cơ sở dữ liệu, thực hiện gọi đến RMI hoặc CORBA, gọi một dịch vụ web, hoặc tính toán phản hồi trực tiếp.
Gửi dữ liệu hiển thị, chẳng hạn như tài liệu, tới các Client hoặc trình duyệt có thể thực hiện dưới nhiều định dạng khác nhau, bao gồm văn bản (HTML hoặc XML), nhị phân (hình ảnh GIF), Excel, và nhiều định dạng khác.
Gửi phản hồi HTTP ẩn tới các Client hoặc trình duyệt để thông báo về kiểu tài liệu được trả về, chẳng hạn như HTML, đồng thời thiết lập Cookie, tham số Caching và thực hiện các tác vụ khác.
Java Servlets là các lớp trong Java chạy bởi một Web Server mà có một trình thông dịch hỗ trợ Java Servlets
Servlets được phát triển thông qua các gói javax.servlet và javax.servlet.http, là một phần mở rộng của thư viện lớp Java, nhằm hỗ trợ các dự án phát triển quy mô lớn Các lớp này thực hiện chức năng của Java Servlet và JSP.
Java Servlet được tạo và biên dịch tương tự như các lớp khác trong Java Sau khi cài đặt các gói servlet và thêm chúng vào Classpath, bạn có thể biên dịch Servlet bằng bộ biên dịch JDK hoặc bất kỳ bộ biên dịch nào khác.
PHÂN TÍCH, THIẾT KẾ HỆ THỐNG
Các chức năng chính của hệ thống
2.1.1 Yêu cầu về phần cứng và phần mềm:
Hệ thống được thiết kế với tiêu chí dễ dàng sử dụng và triển khai rộng rãi, do đó yêu cầu về phần cứng và phần mềm không quá nghiêm ngặt, phù hợp với hầu hết các hệ điều hành và hệ quản trị cơ sở dữ liệu phổ biến.
Hệ điều hành hỗ trợ chương trình: Windows , Linux, Unix, …
Hệ quản trị cơ sở dữ liệu SQL server 2005
Phần mềm: Eclipse, Tomcat 8.0, Photoshop CS 6, Paint,…
Website chia làm hai phần:
Phần cho nhà quản trị
Phần cho khách hàng có nhu cầu xem,tìm kiếm và đặt mua
2.1.3 Yêu cầu về chức năng:
Đăng nhập: Đăng nhập vào hệ thống để quản trị toàn bộ website
Xem thông tin trang web
Xem số lƣợng tài khoản khách hàng
Xem thống kê số lƣợng danh mục hoa
Quản lý tài khoản, bao gồm các công việc: tìm kiếm, xóa tài khoản có trong hệ thống
Quản lý danh mục, bao gồm các công việc: tìm kiếm, thêm, sửa, xóa các thể loại hoa trong trang web
Quản lý đơn đặt hàng, bao gồm cập nhật đơn đặt hàng
Trang trí trang web, bao gồm cập nhật hình đại diện, hình nền, màu sắc,
Chức năng của khách hàng:
Đăng nhập: Khách hàng đăng nhập vào hệ thống để mua hoa
Tìm kiếm hoa dựa vào tên hoa
Tìm kiếm hoa dựa vào giá sản phẩm
Khi xem chi tiết hoa khách hàng có thể lựa chọn mua
Cho vào giỏ hàng và tiến hành thanh toán
2.1.4 Yêu cầu phi chức năng
Giao diện của website cần phải dễ hiểu và gần gũi, giúp khách hàng dễ dàng tìm thấy thông tin cần thiết Bên cạnh đó, website cũng nên cung cấp các loại hoa bán chạy và những mẫu hoa mới nhất để thu hút sự chú ý của người tiêu dùng.
Đảm bảo an toàn thông tin khách hàng là yếu tố quan trọng hàng đầu trong giao dịch mua bán trực tuyến, đặc biệt trong quá trình đặt hàng và thanh toán.
Bảo mật: Đồng thời website cần phải có tính dễ nâng cấp, sửa chữa, cập nhật chức năng mới
Tốc độ truy cập: Đảm bảo tốc độ truy cập trên website ngay khi có cùng lúc nhiều người truy cập vào.
Biểu đồ use case
2.2.1 Biểu đồ use case của admin
2.2.2 Biểu đồ use case khách hàng
2.2.3 Biểu đồ use case quản lý sản phẩm
2.2.4 Biểu đồ use case quản lý danh mục hoa
2.2.5 Biểu đồ use case quản lý nhà cung cấp
2.2.6 Biểu đồ use case quản lý đơn đặt hàng
Thiết kế cơ sở dữ liệu
Cơ sở dữ liệu của đồ án gồm các bảng sau:
7 ChiTietDonDatHang Chi tiết đơn đặt hàng
8 SanPhamKhuyenMai Sản phẩm khuyến mại
Chi tiết về các bảng nhƣ sau:
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaDanhMuc Int Mã danh mục Khóa chính
2 TenDanhMuc nvarchar(100) Tên danh mục
3 MoTaDanhMuc varchar(100) Mô tả danh mục
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaNCC Int Mã nhà cung cấp Khóa chính
2 TenNCC nvarchar(100) Tên nhà cung cấp
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 TenDangNhap nvarchar(50) Tên đăng nhập Khóa chính
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaSanPham Int Mã sản phẩm Khóa chính
2 TenSanPham nvarchar(100) Tên sản phẩm
3 GiaSanPham money Giá sản phẩm
4 HinhAnhSanPham nvarchar(100) Hình ảnh sản phẩm
6 MaDanhMuc Int Mã danh mục Khóa ngoài
7 MaNCC Int Mã nhà cung cấp Khóa ngoài
8 SoLuongTon Int Số lƣợng tồn
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaDonDatHang int Mã đơn đặt hàng
2 MaKhachHang varchar(50) Mã khách hàng
3 EmailNguoiNhan nvarchar(100) Email người nhận
4 DienThoaiNguoiNhan nvarchar(50) Điện thoại người nhận
5 TenNguoiNhan nvarchar(100) Tên người nhận
6 MoTaDonDatHang nvarchar(100) Mô tả đơn đặthàng
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaDonDatHang Int Mã đơn đặt hàng Khóa chính
2 MaSanPham Int Mã sản phẩm Khóa chính
4 MoTaChiTiet nvarchar(100) Mô tả chi tiết
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaKM Int Mã khuyến mại Khóa chính
2 MaSanpham Int Mã sản phẩm Khóa ngoại
3 NgayBatDau datetime Ngày bắt đầu
4 NgayKetThuc datetime Ngày kết thúc
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 MaTT Int Mã thanh toán Khóa chính
2 TenDangNhap nvarchar(50) Tên đăng nhập
5 HinhThucTT varchar(50) Hình thức thanh toán
6 ThoiGianGiao datetime Thời gian giao
STT Tên cột Kiểu dữ liệu Diễn giải Ràng buộc
1 TenDangNhap nvarchar(50) Tên đăng nhập Khóa chính
Hình 5: Sơ đồ Diagram Database