I. Giới thiệu về Đồ án Website quản lý nhà thuốc
Đồ án Website quản lý nhà thuốc bằng Spring Boot là một dự án khóa luận tốt nghiệp toàn diện, được thực hiện bởi các sinh viên tại Trường Đại học Sư phạm Kỹ thuật TP.HCM. Đề tài này kết hợp các công nghệ hiện đại như Spring Boot Framework, Hibernate, và JPA để xây dựng một hệ thống quản lý bán hàng và quản lý nhà thuốc hoàn chỉnh. Dự án không chỉ cung cấp giao diện thân thiện cho khách hàng mà còn bao gồm hệ thống quản trị mạnh mẽ cho các quản trị viên. Với mục tiêu tối ưu hóa quy trình kinh doanh của các nhà thuốc, website quản lý nhà thuốc này đã được thiết kế để xử lý các nghiệp vụ phức tạp như quản lý sản phẩm, quản lý kho hàng, và tính toán công nợ một cách hiệu quả.
1.1. Tính cấp thiết của đề tài
Trong bối cảnh chuyển đổi số ngày càng trở nên thiết yếu, các nhà thuốc cần một giải pháp quản lý toàn diện. Hệ thống quản lý nhà thuốc online giúp tối ưu hóa hoạt động bán hàng, quản lý tồn kho, và cải thiện trải nghiệm khách hàng. Đây là nhu cầu cấp bách trong ngành y tế và dược phẩm hiện nay.
1.2. Mục đích của đề tài
Mục tiêu chính của đồ án Spring Boot này là xây dựng một nền tảng website mua bán toàn diện cho nhà thuốc. Hệ thống bao gồm hai phần chính: giao diện client-side cho người mua hàng và admin dashboard cho quản lý. Đây là một bài học tập thực tế về phát triển ứng dụng web với các công nghệ tiên tiến.
II. Công nghệ và công cụ được sử dụng
Dự án Website quản lý nhà thuốc Spring Boot sử dụng một bộ công nghệ hiện đại và mạnh mẽ. Phần backend được xây dựng trên Spring Boot Framework, một framework phát triển ứng dụng Java chuyên biệt, kết hợp với Hibernate và JPA để tương tác cơ sở dữ liệu. Phần frontend sử dụng HTML5, CSS3, Bootstrap UI, Thymeleaf 3, JavaScript, và jQuery để tạo giao diện người dùng responsive. REST API được sử dụng để kết nối giữa frontend và backend một cách hiệu quả. Các công cụ Ajax cho phép các yêu cầu không đồng bộ, cải thiện trải nghiệm người dùng. CSDL MySQL được chọn để lưu trữ dữ liệu an toàn và hiệu suất cao.
2.1. Spring Boot Framework và Backend
Spring Boot là framework Java phổ biến nhất hiện nay, cung cấp các tính năng mạnh mẽ để phát triển ứng dụng. Hibernate ORM giúp ánh xạ đối tượng Java tới các bảng cơ sở dữ liệu. JPA (Java Persistence API) chuẩn hóa cách tương tác với CSDL, giúp code dễ bảo trì và mở rộng.
2.2. Frontend technologies và giao diện người dùng
Thymeleaf 3 là template engine mạnh mẽ cho Spring Boot. Bootstrap UI cung cấp các component responsive đẹp mắt. JavaScript với jQuery và Ajax tạo các tương tác động mà không cần tải lại trang. HTML5 và CSS3 đảm bảo tính tương thích với các trình duyệt hiện đại.
III. Thiết kế cơ sở dữ liệu và kiến trúc hệ thống
Cơ sở dữ liệu của hệ thống quản lý nhà thuốc được thiết kế chi tiết với nhiều bảng dữ liệu liên kết. Các bảng chính bao gồm: Sản phẩm (chứa thông tin thuốc), Loại sản phẩm (phân loại thuốc), Nhà cung cấp (thông tin cung cấp), Đơn hàng (thông tin mua bán), Khách hàng (thông tin người dùng), Công nợ (quản lý nợ), và Bình luận (đánh giá sản phẩm). Mối quan hệ giữa các bảng được thiết kế theo chuẩn cơ sở dữ liệu quan hệ, đảm bảo tính toàn vẹn dữ liệu. Khóa ngoài được sử dụng để liên kết các bảng, tạo ra một cơ sở dữ liệu normalized có hiệu suất cao. Kiến trúc này cho phép truy vấn SQL nhanh chóng và hỗ trợ các báo cáo phức tạp.
3.1. Lược đồ cơ sở dữ liệu chi tiết
Lược đồ ER (Entity-Relationship) hiển thị tất cả các thực thể và mối quan hệ. Mỗi bảng có khóa chính (Primary Key) định danh duy nhất các bản ghi. Khóa ngoài (Foreign Key) kết nối các bảng với nhau. Chỉ mục (Index) được tạo trên các cột thường xuyên tìm kiếm để tăng tốc độ truy vấn.
3.2. Các bảng dữ liệu quan trọng
Bảng Products lưu trữ chi tiết sản phẩm như tên, giá, tồn kho. Bảng Orders ghi lại tất cả các giao dịch mua bán. Bảng Users quản lý tài khoản khách hàng và admin. Bảng Suppliers theo dõi thông tin nhà cung cấp. Bảng Debts quản lý công nợ phát sinh từ hoạt động kinh doanh.
IV. Chức năng chính và kết quả đạt được
Đồ án Website quản lý nhà thuốc bằng Spring Boot cung cấp một bộ chức năng hoàn chỉnh cho cả phía khách hàng và quản trị viên. Phía client có thể duyệt sản phẩm, tìm kiếm thuốc theo loại, xem chi tiết sản phẩm, bình luận đánh giá, thêm vào giỏ hàng, và thanh toán đơn hàng. Phía admin có thể quản lý danh sách sản phẩm (thêm, sửa, xóa), quản lý loại sản phẩm, quản lý nhà cung cấp, theo dõi đơn hàng, quản lý công nợ, xem báo cáo doanh thu, và quản lý tài khoản người dùng. Hệ thống được kiểm thử kỹ lưỡng theo từng màn hình và quy trình nghiệp vụ. Dự án đã đạt được mục tiêu ban đầu, tạo ra một nền tảng quản lý nhà thuốc hiệu quả, dễ sử dụng, và có khả năng mở rộng cao.
4.1. Tính năng phía khách hàng
Khách hàng có thể đăng ký tài khoản, đăng nhập an toàn, duyệt danh sách sản phẩm, tìm kiếm theo tên hoặc loại thuốc, xem chi tiết sản phẩm với giá và tồn kho, viết bình luận và đánh giá sao, thêm vào giỏ hàng, quản lý giỏ hàng, và thanh toán đơn hàng. Có tính năng quên mật khẩu an toàn để phục hồi tài khoản.
4.2. Tính năng phía quản trị viên
Admin dashboard cung cấp thống kê doanh thu chi tiết, quản lý toàn bộ sản phẩm trong kho, thêm mới loại sản phẩm, quản lý danh sách nhà cung cấp, theo dõi tất cả đơn hàng, quản lý công nợ khách hàng, và xuất báo cáo. Giao diện admin được tối ưu hóa cho tốc độ và hiệu quả cao.