MỞ ĐẦU 1. TÍNH CẤP THIẾT CỦA ĐỀ TÀI - Với thực trạng hiện nay đó là công việc quản lý diễn ra trên giấy tờ, nhưng khối lượng dữ liệu thì ngày một lớn, website “Quản lý mua bán và quản lý nhà thuốc” ra đời nhằm mục đích giải quyết những vướng mắc trên, giúp cho công việc quản lí trở nên đơn giản , hiệu quả và chính xác hơn bằng việc tự động hóa quá trình quản lý các yếu tố liên quan như thuốc, hóa đơn, nhân viên ,…. - Mọi yêu cầu của khách hàng đều sẽ thực hiện một cách nhanh chóng, không mất nhiều thời gian chờ đợi như trước đây. Chính xác và đầy đủ: các yêu cầu của khách hàng được đáp ứng một cách đầy đủ và chính xác, không có sự sai lệch như khi áp dụng việc quản lý bằng giấy tờ một cách thủ công như trước kia.
Độ chính xác gần như 100%. Quản lý dễ dàng: Người làm công tác quản lí có thể tra cứu tất cả các thông tin trong kho dữ liệu một cách nhanh chóng và kết quả trả về hoàn toàn chính xác và hết sức nhanh chóng. MỤC ĐÍCH CỦA ĐỀ TÀI - Tìm hiểu Springboot Framework, Hibernate Framework, Bootstrap Framework về cách thức hoạt động, cấu hình và tích hợp vào dự án. Từ đó xây dựng một server có độ bảo mật với Spring Security, một giao diện đẹp có mức độ trải nghiệm người dùng cao với Bootstrap Framework - Với sự phát triển của các công nghệ liên quan đến lĩnh vực phát triển website, nhu cầu thị trường ngày càng lớn, yêu cầu khách hàng ngày càng cao về mặt thẩm mĩ lẫn tính năng và trải nghiệm người dùng, chúng em đã chọn đề tài “Website mua bán và quản lý nhà thuốc” với những mục đích sau: + Tìm hiểu Springboot để xây dựng phía server.
+ Tìm hiểu Bootstrap để xây dựng giao diện người dùng. + Tìm hiểu Spring Security để tăng tính bảo mật cho website. + Nâng cao kỹ năng trong giải quyết vấn đề, tìm kiếm thông tin + Năng cao kỹ năng trình bày và viết báo cáo 1 do an 3. CÁCH TIẾP CẬN VÀ PHƯƠNG PHÁP NGIÊN CỨU 3.
Đối tượng nghiên cứu - Nghiên cứu và sử dụng HTML, CSS, Bootstrap, Thymeleaf để xây đựng giao diện trang web. - Nghiên cứu Springboot, Spring Security để xây dựng server. - Sử dụng hệ quản trị cơ sở dữ liệu SQL Server để xây dựng database lưu trữ dữ liệu website. Phương pháp nghiên cứu - Để phục vụ cho việc phát triển và hoàn chỉnh website ta cần tìm hiểu và áp dụng các mảng kiến thức sau vào đề tài: + Kỹ thuật phân tích thiết kế hệ thống thông tin + Tài liệu về hệ quản trị cơ sở dữ liệu SQL Server + Có kiến thức về Java, Javascript + Có kiến thức về HTML, CSS, Bootstrap, jQuery.
+ Kỹ thuật Ajax, token, cookie, session + Mô hình MVC 4. KẾT QUẢ DỰ KIẾN ĐẠT ĐƯỢC - Tương thích trên nhiều thiết bị: điện thoại, máy tính, máy tính bảng - Các tính năng liên quan đến quản lý - Các tính năng tìm kiếm - Các tính năng liên quan đến cá nhân hóa người dùng (đăng nhập, xem giỏ hàng, thanh toán, các sản phẩm đã mua) - Tính năng thanh toán online - Tính năng thống kê, biểu đồ, báo cáo - Tính năng mua bán 2 do an PHẦN 2: NỘI DUNG 1. CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. CÁC NGÔN NGỮ ĐƯỢC SỬ DỤNG - Các ngôn ngữ được sử dụng trong website: Java, Javascript 1.
CÁC CÔNG NGHỆ ĐƯỢC SỬ DỤNG 1. Công nghệ Springboot - Khái niệm + Spring framework là một Java Platform mã nguồn mở, một giải pháp gọn nhẹ dành cho Java Enterprise. Với Spring Framework các nhà phát triển có thể tạo ra các mã có hiệu suất cao, dễ kiểm thử và có thể sử dụng lại được. + Mục tiêu của Spring Framework là làm cho việc phát triển ứng dụng J2EE dễ dàng hơn và thúc đẩy việc lập trình tốt hơn bằng mô hình POJO-based.
+ Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming. + Spring Framework là một tập hợp của nhiều dự án con. Trong đó có những dự án lớn sau: spring MVC, spring data, spring security, spring boot, spring batch, spring integration, spring social. + Spring Boot là một module của spring framework, cung cấp tính năng RAD (Rapid Application Development) – Phát triển ứng dụng nhanh.
+ Nó là một chuẩn cho cấu hình thiết kế phần mềm, tăng cao năng suất cho developer. Cấu trúc về Springboot Framework [1] 3 do an - Kiến trúc Dưới đây là kiến trúc tổng thể của spring framework Hình 1. Kiến trúc spring framework [2] + Test: tầng này cung cấp khả năng hỗ trợ kiểm thử với Junit và TestNG + Spring core container: bao gồm module spring core, beans, context và expression language (EL): • Spring core, bean cung cấp tính năng IOC và Dependency Injection. • Spring context hỗ trợ đa ngôn ngữ (internationalization), các tính năng Java EE như EJB, JMX.
• Expression Language được mở rộng từ Expression Language trong JSP. Nó cung cấp hỗ trợ việc setting/getting giá trị, các method cải tiến cho phép truy cập collections, index, các toán tử logic… + AOP, Aspects and Instrumentation là những module hỗ trợ cài đặt lập trình hướng khía cạnh (Aspect Oriented Programing), hỗ trợ tích hợp AspectJ. + Data Access/Integration là nhóm bao gồm JDBC, ORM, OXM, JMS và module Transaction. Những module này cung cấp khả năng giao tiếp với database.
4 do an + Web: nhóm này gồm Web, Web-Servlet…hỗ trợ việc tạo ứng dụng web. Công nghệ Hibernate - Hibernate framework là một giải pháp ORM (Object Relational Mapping) mã nguồn mở, gọn nhẹ. Hibernate giúp đơn giản hóa sự phát triển của ứng dụng Java để tương tác với cơ sở dữ liệu. - Tool ORM giúp đơn giản hóa việc tạo dữ liệu, thao tác dữ liệu và truy cập dữ liệu.
Đó là kỹ thuật lập trình để ánh xạ đối tượng vào dữ liệu lưu trữ trong cơ sở dữ liệu. Cấu trúc Hibernate [3] - Lợi ích của Hibernate Framework + Mã nguồn mở và nhẹ. + Hiệu suất nhanh: vì bộ nhớ cache được sử dụng trong nội bộ Hibernate Framework. + Truy vấn cơ sở dữ liệu độc lập: HQL (Hibernate Query Language) là phiên bản hướng đối tượng của SQL.
Vì vậy, chúng ta không cần phải viết các truy vấn dữ liệu cụ thể. + Tạo bảng tự động: Hibernate cung cấp phương tiện để tạo ra các bảng cơ sở dữ liệu tự động. Vì vậy, không cần tạo ra các bảng trong cơ sở dữ liệu bằng tay. + Đơn giản lênh join phức tạp: Có thể lấy dữ liệu từ nhiều bảng một cách dễ dàng với Hibernate.
HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU Hệ quản trị được dùng trong dự án là SQL Server. - Giới thiệu + SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational Database Management System) sử dụng câu lệnh SQL (Transact-SQL) để trao đổi dữ liệu giữa máy client và máy cài SQL Server. Một RDBMS bao gồm databases, database engine và các ứng dụng dùng để quản lý dữ liệu và các bộ phận khác trong RDBMS. + SQL Server được tối ưu để có thể chạy trên môi trường cơ sở dữ liệu rất lớn lên đến Tera-Byte và có phục vụ cùng lúc hàng ngàn user.
- Kiến trúc + Client: Nơi khởi tạo yêu cầu + Query: Truy vấn SQL là ngôn ngữ bậc cao. + Logical Units: Keyword, biểu thức, toán tử… + N/W Packets: Code liên quan đến mạng + Protocol + Server: Nơi SQL Services được cài đặt và có database + Relational Engine: Phân tích, tối ưu hóa và thực thi Query + Query Parser và Compiler: Kiểm tra cú pháp của truy vấn và chuyển đổi truy vấn sang ngôn ngữ máy + Query Optimizer: Chuẩn bị output là Execute Plan bằng cách lấy input truy vấn, các thống kê và cây Algebrizer. + Execution Plan: Chứa thứ tự các bước thực hiện + Query Executor: Đây là nơi truy vấn được thực hiện từng bước một. + Storage Engine: Lưu trữ, truy xuất dữ liệu trong hệ thống lưu trữ, thoa tác dữ liệu, khóa và quản lý các transaction.
+ SQL OS: Cung cáp dịch vụ hệ điều hành khác nhau + Check point: Ghi tất các trang sử đổi từ Buffer Cache vào ở đĩa vật ký. + Lazy Writer: Giải phóng bộ nhớ trong Buffer Pool. [4] 6 do an - Ưu điểm + Không cần code + Tiêu chuẩn được quy định rõ ràng. + Tính di động + Multiple data views - Nhược điểm + Giao diện khó dùng + Không được toàn quyền kiểm soát [5] 7 do an 2.
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH YÊU CẦU 2. KHẢO SÁT HIỆN TRẠNG 2. Trang Jio Health: https://pharmacy.com/ - Hình ảnh Hình 2. Hình tham khảo trang Jio [6] 8 do an - Ưu điểm + Tốc độ load trang nhanh.
+ Dễ dàng tìm kiếm sản phẩm. + Chuyển hướng hợp lý trong quá trình xem chi tiết sản phẩm (Open new tab). + Có responsive web phù hợp trên các thiết bị. + Hỗ trợ đăng nhập qua Facebook + Có hỗ trợ các phương thức thanh toán online qua nhiều loại thẻ tín dụng ATM.
+ Có hỗ trợ các phương thức login với các tài khoản xã hội facebook, zalo, google. + Hỗ trợ giao hàng online tận nhà. + Tìm sản phẩm theo bộ lọc tuỳ chọn. + Hiển thị gợi ý tìm kiếm khi nhập thông tin vào thanh tìm kiếm.
+ Cho phép chat trực tuyến - Nhược điểm + Font chữ không phù hợp. + Không thấy ngay sản phẩm khi truy cập vào trang web + Không có nút mua ngay. + Quá ít sản phẩm trên một trang. + Đăng kí tài khoản không có bước xác nhận mật khẩu hoặc hiển thị mật khẩu 9 do an 2.
Trang nhà thuốc Long Châu: https://nhathuoclongchau.com/ - Hình ảnh Hình 2. Hình tham khảo trang Long Châu [7] 10 do an - Ưu điểm + Cho phép tìm cửa hàng gần với bạn nhất + Đơn giản, dễ nhìn, không nhiều thông tin chi tiết. + Hỗ trợ giao hàng tận nhà. + Thanh tìm kiếm có hỗ trợ từ khóa tìm kiếm nhanh - Nhược điểm + Giao diện hiển thị thông tin sản phẩm không bắt mắt + Không có nhiều sản phẩm được hiển thị trên một trang + Chế độ lọc sản phẩm không đa dạng + Phương thức thanh toán không đa dạng (chỉ thanh toán khi nhận hàng).
+ Không hiển thị hình ảnh sản phẩm trong quá trình thanh toán. + Thanh menu quá nhiều chi tiết dư thừa. + Header và footer chiếm quá nhiều diện tích trang web 11 do an 2. Trang nhà thuốc Việt: http://nhathuocviet.vn/ - Hình ảnh Hình 2.
Hình ảnh tham khảo trang nhà thuốc Việt [8] 12 do an - Ưu điểm + Có responsive web phù hợp trên các thiết bị. + Hiển thị sản phẩm bán chạy + Có hỗ trợ các phương thức thanh toán online qua nhiều loại thẻ tín dụng ATM.