Với đề tài này em xin được trình bày một cách thức quản lý website cho những người quản trị dễ dàng trong việc phân quyền quản lý, thay đổi, cập nhật thông tin trang web cũng như quản lý
Trang 1ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
BÁO CÁO
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI:
XÂY DỰNG WEBSITE BÁN HÀNG NỘI THẤT CỦA CỬA
HÀNG HOANG TU FUNIRTURE DỰA TRÊN SPRING FRAMEWORK
Đà Nẵng, tháng 1 / 2021
LỜI CẢM ƠN
Trang 2Chúng em xin gửi lời cảm ơn chân thành và sâu sắc tới thầy Đỗ Phú Huy đã hướng dẫn, giúp đỡ chúng em trong suốt thời gian thực hiện đề tài
Chúng em xin chân thành cảm ơn thầy cô bộ môn đã tận tình giảng dạy ,truyền đạt kiến thức cho chúng em trong các kỳ học vừa qua
Xin chân thành cảm ơn tất cả bạn bè đã động viên,giúp đỡ chúng em trong thời gian học tập và hoàn thành đồ án
Mặc dù đã cố gắng nhiều nhưng sẽ không thể tránh khỏi những thiếu sót Chúng
em kính mong nhận được sự góp ý của quý Thầy Cô và các bạn để hoàn thành tốt hơn nữa
Sinh viên thực hiện
Nguyễn Hoàng Tứ
Lời cam đoan
Chúng tôi xin cam đoan :
Trang 31 Những nội dung trong luận văn này do chúng em thực hiện dưới sự hướng dẫn của thầy Nguyễn Thị Hà Quyên
2 Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả,tên công trình ,thời gian,địa điểm công bố
3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, chúng em xin chịu hoàn toàn trách nhiệm
Sinh viên,
Nguyễn Hoàng Tứ
MỤC LỤC
I. Chương I: Tổng Quan Đề Tài 6
1. Lý do chọn đề tài 6
2. Mục tiêu và nhiệm vụ của đề tài 6
2.1. Mục tiêu 6
2.2. Nhiệm vụ 7
3. Đối tượng và phạm vi nghiên cứu 7
3.1. Đối tượng 7
3.2. Phạm vi nghiên cứu 7
4. Phương pháp nghiên cứu 7
4.1. Phương pháp thu thập 7
4.2. Phương pháp xử lý thông tin 7
5. Hoạt động nghiệp vụ thực tế 8
II Chương II: Cở Sở Lý Thuyết 9
1. Ngôn ngữ lập trình 9
Trang 41.1 Java là gì 9
1.2 Lịch sử phát triển 9
2. Spring Framework 10
2.1. Đôi nét lịch sử 10
2.2. Tổng quan về Spring Framework 10
3. Tổng quan về quản trị cơ sở dữ liệu MySql 12
4. Mô hình Spring MVC (Model – View – Controller) 12
5. BOOTSTRAP VÀ RESPONSIVE 15
6. DATATABLE 15
6.1. Installation 16
6.2. Data 16
6.3. Data Source 16
7. Giới thiệu công nghệ 16
7.1. Eclipse IDE for Java EE Developers 16
7.2. MySql 17
III. Chương III: Phân Tích Thiết Kế Hệ Thống 18
1. Đối tượng sử dụng hệ thống 18
1.1. Quản Lý 18
1.2. Nhân viên công ty 18
1.3. Khách hàng vãng lai 19
1.4. Thành Viên 19
2. Phân tích 19
2.1. Yêu cầu chất lượng 19
2.2. Yếu cầu chức năng 19
3. Thiết kế hệ thống 23
Trang 53.1. Thiết kế cơ sở dữ liệu 23
3.1.1. Bảng…… 23
3.1.2. Bảng…… 23
3.2. Đặc tả chức năng 23
IV. Chương IV: Kết Quả Triển Khai Hệ Thống 24
1. Thiết kế giao diện 24
1.1. Trang……… 24
1.2. Trang……… 24
1.3. Trang……… 24
1.4. Trang……… 24
1. Kết quả đạt được 24
2. Những vấn đề chưa đạt được 24
3. Hướng phát triển 24
MỤC LỤC HÌNH
Hình 1 Mô hình SpringFramework Runtime 9
Hình 2 Cấu trúc Module Spring MVC 10
Hình 3 Mô hình luồng xử lý Spring MVC 11
Hình 4 Sơ đồ usercase 15
Trang 6Hình 5 Sơ đồ ERD 16
Trang 7I. Chương I: Tổng Quan Đề Tài
1 Lý do chọn đề tài
Cùng với sự phát triển không ngừng về kỹ thuật máy tính và mạng internet, công nghệ thông tin đang ngày càng chinh phục các đỉnh cao Mạng internet là một trong những sản phẩm có giá trị hết sức lớn lao và ngày càng trở nên là một công cụ không thể thiếu trong mọi lĩnh vực cuộc sống
Với internet, chúng ta đã thực hiện được nhiều công việc với tốc độ nhanh hơn
và chi phí thấp hơn nhiều so với cách thức truyền thống Chính điều này, đã thúc đầy sự khai sinh và phát triển của thương mại điện tử và chính phủ điện từ trên khắp thể giới, làm biến đối đáng kể bộ mặt văn hóa, nâng cao chẩt lượng cuộc sống con người
Trong hoạt động sản xuất kinh doanh, giờ đây thương mại điện tử đã khẳng định được vai trò xúc tiến và thúc đẩy sự phát triển của doanh nghiệp Đối với một cửa hàng bán đồ nội thất, việc quảng bá và giới thiệu đến các khách hàng các chương trình bán hàng do cửa hàng cung cấp một cách hiệu quả và kịp thời là yếu tố quyết định đến lợi nhuận của doanh nghiệp Vì vậy, sẽ rất thiếu sót nếu cửa hàng bạn chưa xây dựng một website quảng bá và bán hàng trực tuyến, nhưng song song với đó, là làm sao để có thể quản lý và điều hành website một cách dễ dàng và hiệu quả để thu được kết quả như mong muốn Đây là vấn đề hết sức cấp thiết và luôn là nỗi trăn trở của các công ty du lịch nói riêng và cả các doanh nghiệp khác nói chung, nhất là các doanh nghiệp Việt Nam
Với đề tài này em xin được trình bày một cách thức quản lý website cho những người quản trị dễ dàng trong việc phân quyền quản lý, thay đổi, cập nhật thông tin trang web cũng như quản lý hiệu quả khách hàng và các đơn đặt hàng trên mạng hàng trực tuyến tại bất kỳ vị trí nào có kết nối Internet, giải quyết việc quản lý … cho quản lý viên, đặt mua hàng… cho khách hàng…
Từ những lý do trên, em chọn đề tài “Xây dựng website báng hàng trực tuyến ” làm hướng nghiên cứu cho đề tài
2 Mục tiêu và nhiệm vụ của đề tài
2.1 Mục tiêu
Trang 8- Phần mềm giúp nhân viên và người quản lý thao tác nghiệp vụ nhanh chóng và tự động
- Dữ liệu về tour du lịch, khách hàng trong website nhất quán
- Thống kê doanh thu để biết được lợi nhuận của việc đặt tour du lịch
2.2 Nhiệm vụ
- Nghiên cứu và nắm vững quá trình xây dựng một website hoàn chỉnh dựa trên Spring framework
- Nghiên cứu các công cụ, framework được sử dụng để xây dựng website: flyway, mysql,
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng
- Các website quản lý và sử dụng Spring Framework
3.2 Phạm vi nghiên cứu
- Nghiên cứu những vấn đề quản trị ở những website trước, có thể định hướng ứng dụng cho website đang xây dựng
4 Phương pháp nghiên cứu
4.1 Phương pháp thu thập
- Áp dụng phương pháp nghiên cứu lý thuyết (phương pháp thu thập thông tin qua sách, các tài liệu, trang web) để tìm được các cơ sở lý thuyết liên quan đến vấn đề mình nghiên cứu
4.2 Phương pháp xử lý thông tin
- Phương pháp phân tích, đánh giá: dựa vào những cơ sở lý thuyết đã tìm được và nhìn nhận vấn đề vào thực tế để lựa chọn giải pháp hoàn thiện đề tài
- Phương pháp tổng hợp: Áp dụng lựa chọn tốt nhất từ bước phân tích kết hợp với công nghệ, từ đó từng bước hoàn thành đề tài
5 Hoạt động nghiệp vụ thực tế
- Cửa hàng sẽ quảng bá và sẽ cung cấp chi tiết sản phẩm cụ thể Sau đó,
bộ phận văn phòng có nhiệm vụ cập nhật thông tin các đơn sản phẩm này lên website với đầy đủ thông tin về giá cả, loại sản phẩm,sản phẩm và hình ảnh minh họa nếu có
Trang 9- Ngoài ra, bộ phận văn phòng còn cập nhật thông tin, hình ảnh về các sản phẩm mà cửa hàng muốn cung cấp cho khách hàng
- Khách hàng vào viếng thăm website sẽ vào xem thông tin chi tiết của từng sản phẩm hiện có hoặc tìm kiếm sản phẩm theo các yêu cầu cụ thể về giá cả Sau đó, khách hàng có thể tiến hành đặt mua cho sản phẩm đang xem nếu muốn
- Các đơn hàng này sẽ được cập nhật vào database và hiển thị cho người quản trị được phân quyền xem, hiệu chỉnh, xóa hoặc xác nhận sau khi đã kiểm tra tính chính xác của thông tin sản phẩm
- Khách hàng cũng có thể thông qua trang web để gửi các thông tin yêu cầu khác về cửa hàng bằng trang Liên hệ Thông tin này cũng sẽ được truyền xuống database và cho phép người quản trị quản lý chúng
- Người quản trị cấp cao nhất có quyền tạo lập, thêm mới các user và phân quyền dựa trên ba cấp đã nêu
II. Chương II: Cở Sở Lý Thuyết
1 Ngôn ngữ lập trình
1.1 Java là gì.
Java là một ngôn ngữ lập trình dạng lập trình hướng đối tượng (OOP) Khác với phần lớn ngôn ngữ lập trình thông thường, thay vì biên dịch mã nguồn thành mã máy hoặc thông dịch mã nguồn khi chạy, Java được thiết kế để biên dịch mã nguồn thành bytecode, bytecode sau đó sẽ được môi trường thực thi (runtime environment) chạy Cú pháp Java được vay mượn nhiều từ
C và C++ nhưng có cú pháp hướng đối tượng đơn giản hơn và ít tính năng
xử lý cấp thấp hơn Do đó việc viết một chương trình bằng Java dễ hơn, đơn giản hơn, đỡ tốn công sửa lỗi hơn
1.2 Lịch sử phát triển
Java được khởi đầu bởi James - Gosling và bạn đồng nghiệp ở Sun Microsystems năm 1991 Ban đầu ngôn ngữ này được gọi là Oak (có nghĩa là cây sồi) do bên ngoài cơ quan của ông Gosling có trồng nhiều loại cây này Java được phát hành vào năm 1994 Sau khi Oracle mua lại công ty Sun
Trang 10Microsystems năm 2009 - 2010, Oracle đã mô tả họ là "người quản lý công nghệ Java với cam kết không ngừng để bồi dưỡng một cộng đồng tham gia và minh bạch" Lịch sử phiên bản java:
- JDK 1.0 (23 tháng 01, 1996)
- JDK 1.1 (19 tháng 2, 1997)
- J2SE 1.2 (Playground) 08 tháng 12, 1998
- J2SE 1.3 (Kestrel) 08 tháng 5, 2000
- J2SE 1.4.0 (Merlin) 06 tháng 02, 2002
- J2SE 5 (1.5.0) (Tiger) 30 tháng 9, 2004
- Java SE 6 (còn gọi là Mustang), được công bố 11 tháng 12 năm 2006
- Java SE 7 (còn gọi là Dolphin), được bắt đầu từ tháng 8 năm 2006 và công bố ngày 28 tháng 7 năm 2011
- JDK 8, 18 tháng 3 năm 2014
Phiên bản dự kiến tiếp theo: Java 9 dự kiến ra đời năm 2016
2 Spring Framework
2.1. Đôi nét lịch sử
Vào năm 2002, Spring Framework phát hành phiên bản đầu tiên bởi Rod Johnson Việc xây dựng các ứng dụng doanh nghiệp trở nên đơn giản và dễ dàng hơn Rod Johnson đã cho xuất bản một cuốn sách được phổ biến rộng rãi có nhan đề "J2EE Development without EJB" Điều này đã cho Spring Framework rất nhiều động lực để thay thế EJB
Ngày nay, Spring đã trở thành framework mã nguồn mở phổ biến nhất để xây dựng các ứng dụng doanh nghiệp Cách tiếp cận thực tế ban đầu của Rod Johnson tiếp tục được phát triển và hướng tới một bộ công cụ hoàn chỉnh dành cho xây dựng các ứng dụng doanh nghiệp Theo một số nguồn, trên 50% các ứng dụng web Java hiện nay đang sử dụng Spring Framework
Để ngăn chặn sự phức tạp trong phát triển các ứng dụng, Spring Framework thường dựa trên các quan điểm như sau:
- Đơn giản hóa công việc phát triển thông qua việc sử dụng các đối tượng Java đơn giản hay còn được gọi là POJO (Plain Old Java Object)
Trang 11- Nới lỏng ràng buộc giữa các thành phần thông qua việc sử dụng Dependency Injection và viết các interface
- Tiếp cận lập trình khai báo bằng cách sử dụng các quy tắc (convention) và các khía cạnh (aspect) chung
- Giảm thiểu các mã nghi thức và soạn sẵn (boilerplate) thông qua việc sử dụng các khuôn mẫu (template) và các khía cạnh
2.2. Tổng quan về Spring Framework
- Spring Core: Spring Core chính là thành phần trung tâm, cốt lõi của Spring Framework Đây chính là nền tảng để xây dựng nên các thành phần khác
- Spring Bean: Spring Bean là trung tâm của Spring Core và là trái tim của một ứng dụng Spring
- Dependency Injection (DI): Dependency Injection (có thể dịch tiêm các thành phần phụ thuộc) là một sức mạnh nổi bật của Spring Framework
- Spring Context: Spring Context mang mọi thứ lại với nhau
- Spring Expression Language (SpEL): Spring Expression Language là một ngôn ngữ ngắn gọn giúp cho việc cấu hình Spring Framework trở nên linh hoạt hơn
- Các dự án trong Spring Framework: Spring Framework là một tập hợp của nhiều dự án con
- Spring MVC: Spring MVC được thiết kế dành cho việc xây dựng các ứng dụng nền tảng web
- Spring Data: Cung cấp một cách tiếp cận đúng đắn để truy cập dữ liệu từ
cơ sở dữ liệu quan hệ, phi quan hệ, map-reduce,…
- Spring Security: Dự án này cung cấp các cơ chế xác thực (authentication)
và phân quyền (authorization) cho ứng dụng
Trang 12- Spring Boot: là một framework giúp phát triển cũng như chạy ứng dụng một cách nhanh chóng
- Spring Batch: tạo các lịch trình (scheduling) và tiến trình (processing)
- Spring Integration: là một implementation của Enterprise Integration Patterns (EIP)
- Spring XD: đơn giản hóa công việc phát triển các ứng dụng Big Data
- Spring Social: kết nối ứng dụng của bạn với các API bên thứ ba của Facebook, Twitter, Linkedin,
Hình 1 Mô hình SpringFramework Runtime
3 Tổng quan về quản trị cơ sở dữ liệu MySql
- MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các
hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,…
- MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
4 Mô hình Spring MVC (Model – View – Controller)
- Spring MVC là một module con trong Spring framework, cung cấp kiến trúc Model-View-Controller và các components sẵn có để sử dụng và phát triển ứng dụng web một cách linh hoạt
Hình 2 Cấu trúc Module Spring MVC
Trang 13- Mô hình MVC là kết quả của việc tách các khía cạnh khác nhau của ứng dụng (logic đầu vào, các xử lý logic, UI) trong khi đó cung cấp một sự kết hợp giữa các thành phần đó một cách “lỏng lẻo”
- Model: đóng gói dữ liệu ứng dụng và bao gồm các POJO
- View: Chịu trách nhiệm nhận giá trị của model và vẽ ra trang HTML mà trình duyệt có thể hiển thị được
- Controller: Chịu trách nhiệm nhận và xử lý các yêu cầu từ người dùng và tạo các model phù hợp và trả về cho view Spring MVC được thiết kế xung quanh DispatcherServlet để xử lý tất cả các HTTP request và HTTP response Luồng xử lý các yêu cầu của DispatcherServlet được minh họa theo hình:
Hình 3 Mô hình luồng xử lý Spring MVC
Đây là chuỗi sự kiện tương ứng khi nhận một yêu cầu HTTP gửi đến DispatcherServlet:
- Sau khi nhận một HTTP request, DispatcherServlet gửi yêu cầu đến HandlerMapping (một bản đồ cấu hình URL) để xác định controller nào sẽ
xử lý yêu cầu này
- Controller sẽ nhận các request và gọi các phương thức dịch vụ (service methods) phù hợp dựa trên việc sử dụng các method GET/POST… Nếu yêu cầu đó cần truy xuất cơ sở dữ liệu thì Controller sẽ ủy nhiệm cho một business logic hay nhiều hơn một model để lấy thông tin và gửi dữ liệu về cho Controller Lúc này Controller đóng gói mô hình dữ liệu và tên của một view sẽ được tải lên thành đối tượng ModelAndView và gửi trả về cho DispathcherServlet
- DispatcherServlet gửi gói ModelAndView cho ViewResolver để tìm xem view (thông thường là một trang JSP, HTML) nào sẽ được load lên 4 Sau khi hoàn tất, DispatcherServlet sẽ chuyển dữ liệu từ model đến view và cuối cùng hiển thị trên trình duyệt
5 BOOTSTRAP VÀ RESPONSIVE
Bootstrap là front-end framework, là một bộ sưu tập miễn phí các công cụ
để tạo ra các trang web và các ứng dụng web Bootstrap bao gồm HTML và CSS dựa trên các mẫu thiết kế cho kiểu chữ, hình thức, các button và các thành