Trong khuôn khổ của bài tiểu luận này, với những giới hạn về mặt kiến thức và thời gian thực hiện, cũng như chuyên môn và những khó khăn trong việc sử dụng phương pháp phân tích thiế
Trang 1KHOA CÔNG NGHỆ THÔNG TIN, ROBOT VÀ TRÍ TUỆ NHÂN TẠO
ĐỒ ÁN TỐT NGHIỆP
ĐỀ TÀI:
Xây dựng sàn thương mại điện tử đa nền
tảng (Website + Mobile)
Giảng viên hướng dẫn: Trần Hữu Duật Sinh viên thực hiện: Hồ Đại Huynh
Bình Dương, Tháng 01/2023
Trang 2NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
GIẢNG VIÊN HƯỚNG DẪN
(Ký và ghi rõ họ tên)
Trang 3NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN
CÁN BỘ PHẢN BIỆN
(Ký và ghi rõ họ tên)
Trang 4LỜI CÁM ƠN
Xin chân thành cảm ơn các giảng viên đã truyền đạt kiến thức chuyên môn, luôn luôn giúp đỡ, định hướng nghề nghiệp, những kỹ năng tốt nhất trong suốt quá trình học tập để chúng em có thể hoàn thành bài báo cáo này
Em xin dành chương này để bày tỏ những điều sâu sắc nhất lòng biết ơn đến tất cả những thầy đã hướng dẫn cho em sự hỗ trợ quý báu trong suốt thời gian thực hiện dự
án này
Trước hết chúng em xin chân thành cảm ơn sự hướng dẫn tận tình của giản viên hướng dẫn Thầy Trần Hữu Duật và thầy Huỳnh Quang Đức, dành lời khuyên và khuyến khích của các thầy đã giúp chúng em vượt qua không chỉ những thách thức
về công nghệ mà còn cả những căng thẳng về tâm lý
Thứ hai, em cảm ơn Nhà trường đã tạo điều kiện cho chúng em đến văn phòng khoa Công Nghệ Thông Tin để được các anh chị trao đổi hướng dẫn em trong suốt quá trình thực hiện đồ án Em học được những kinh nghiệm từ dự án này sẽ tạo điều kiện thuận lợi cho sự nghiệp tương lai của chúng em Ngoài ra, Em cũng xin gửi lời cảm
ơn đến toàn thể cán bộ nhân viên của văn phòng khoa những người không chỉ cho em
cơ hội học tập và trao đổi với họ trong dự án này, mà còn cũng đã hỗ trợ và động viên
họ trong suốt quá trình
Cuối cùng, Em muốn bày tỏ lời cảm ơn cá nhân của em đến tất cả những người thân yêu của em các bạn cùng khóa và các anh chị khóa k19 và khóa k20, những người luôn sẵn sàng hỗ trợ em một cách cởi mở và nhiệt tình
SINH VIÊN THỰC HIỆN
Trang 5BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC BÌNH DƯƠNG
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
ĐỀ CƯƠNG CHI TIẾT Tên đề tài: Xây dựng sàn thương mại điện tử đa nền tảng
Giảng viên hướng dẫn: Trần Hữu Duật
Thời gian thực hiện: Từ ngày 22 tháng 10 năm 2022 đến ngày 18 tháng 01 năm
2023
Sinh viên thực hiện: Hồ Đại Huynh - Mssv: 18050124
Nội dung đề tài:
Lý do chọn đề tài: Hiện nay thị trường trong nước về việc cạnh tranh về kinh
doanh ngày càng trở lên quyết liệt và hầu hết những nhà kinh doanh, những công
ty lớn đều rất chú tâm đến việc làm thỏa mãn khách hàng một cách tốt nhất So
với việc kinh doanh truyền thông thì thương mại điện tử chi phí thấp hơn, hiệu
quả đạt cao hơn Với lợi thế của công nghệ Internet nên việc truyền tải thông tin
về sản phẩm nhanh chóng, thuận tiện Kết hợp với hộ phân giao hàng tân nơi,
thanh toán tại chỗ hoặc chuyễn khoản
Biết được những nhu cầu đó nên em muốn làm ra “Một sàn thương mại điện tử đa nền tản trên Website và trên Mobile” được xây dựng trên đa nền tảng nhằm để
đáp ứng cho mọi người tiêu dùng trên tỉnh Bình Dương nói riêng và trên toàn
quốc nói chung và thông qua hệ thống đa nền tản này giúp mọi người có thể:
Tiết kiệm thời gian được giao hàng tận nhà
Không tốn công vận chuyển
Có thời gian nghiên cứu sản phẩm của mình
So sánh giá cả một cách dễ dàng
Trang 6Có thể tha hồ lựa chọn các sản phẩm đa dạng
Thanh toán tiện lợi và an toàn
Do đó, với sự ra đời của sàn đa nền tảng này thì mọi người có thể mua mọi thứ hàng hóa mọi lúc mọi nơi mà không cần phải tới tận nơi để mua
Tính Mới: Khác với các sàn thương mại điện tử khác đó là em sử dụng Callbot
(để chuyễn giọng nói thành văn bản giúp người dùng có thể tìm kiếm sản phẩm
bất kỳ nào đó nhanh hơn giúp tiếp kiệm thời gian để kéo tìm sản phẩm)
Có thể thanh toán trực tiếp qua ngân hàng hoặc qua ví điện tử momo, ví Paypal
Ý Tưởng: Lập trình theo mô hình MVC trong java:
Model: có chức năng quản lý và xử lý dữ liệu
View: có nhiệm vụ hiển thị dữ liệu cho người dùng
Controller: có chức năng điều khiển tương tác giữa Model và View
Mô hình MVC trong Java giúp lập trình viên dễ dàng tách biệt giữa cách thức dữ liệu nội hàm với dữ liệu hiển thị Sự tương tác qua lại giữa ba thành tố Model,
View, Controller tạo nên hiệu quả tốt nhất cho việc lập trình
Kế hoạch xây dựng website:
Đối với phần quản lý (admin) có 8 tiêu chí:
Làm thế nào để quản trị viên có thể đăng nhập?
Làm thế nào để đăng ký tài khoản?
Làm thế nào để lấy lại mật khẩu đã quên?
Quản trị viên quản lý đơn hàng như thế nào?
Làm cách nào để quản trị viên có thể xuất báo cáo?
Quản trị viên quản lý doanh thu như thế nào?
Quản trị viên quản lý nhân viên như thế nào?
Quản trị viên quản lý tài khoản shipper
Đối với khách hàng của sàn thương mại điện tử:
Giao diện web thân thiện với người dùng
Xem thông tin sản phẩm
Trang 7Cung cấp nhiều loại sản phẩm phù hợp với nhiều sở thích của khách hàng Mặt hàng bán chạy nhất
Top sản phẩm mới cập nhật
Thông tin cụ thể, chi tiết từng sản phẩm, phân theo chủng loại, nhãn hiệu Tìm kiếm thông tin sản phẩm dễ dàng
Cho phép khách hàng đăng ký, đăng nhập và đảm bảo bảo mật thông tin khách hàng Thêm giỏ hàng, đặt hàng nhanh chóng
Thanh toán mã vận chuyển Thanh toán trực tuyến bằng paypal
Gửi email tương tác với khách hàng (thiếu nại hoặc tài khoản có sự cố)
Đối với phần quản lý các chức năng:
Đầu vào của hệ thống: Cung cấp giá theo kg, mặt hàng
Khách hàng phải cung cấp thông tin tài khoản như Sdt, gmail, họ tên để tạo tài khoản
Khách hàng cung cấp giấy tờ về hàng hóa, nguồn gốc, hoặc giấy kiểm định gì đó Phương pháp thực hiện:
Khách hàng (user) có thể tao tác:
Xem các trang trong ứng dụng
Đăng ký
Nếu khách đã đăng ký : Đăng nhập bằng Gmail hoặc đăng xuất
Chọn đồ để mua rồi đặc hành thanh toán
Xem lịch sử đặt hàng
Phản hồi
Về Mặc công nghệ :
Frontend : sử dụng HTML5, CSS, JQUERY 3.4.1, Javascript 1.5, Bootrap 4 Backend : API, QR CODE, JAVA, SPRINGBOOT, ANRDOI, TOMCAT Kết quả mong đợi:
Đảm bảo hoàn thành các chức năng cơ bản, cần thiết và triển khai ứng dụng chạy thử nghiệm,Thiết kế giao diện thân thiện, dễ sử dụng
Trang 8Yêu cầu hệ thống (3 ngày)
Từ 14/11/2023
đến 26/11/2023
Vẽ biểu đồ DFD (luồng dữ liệu) (3 ngày)
Vẽ biểu đồ Use case Diagram và trình tự biểu đồ (3 ngày)
Vẽ mô hình thực thể ERD (3 ngày) Thiết kế bảng Database (3 ngày)
Từ 26/11/2023
Đến 3/12/2023
Lên Layout hoàn chỉnh cho Web (4 ngày) Đăng nhập – đăng ký Web (4 ngày) Quên mật khẩu Web (2 ngày)
Kiển tra được Lịch sử giao dịch Web (2 ngày)
Tự tạo code QR-Code cho Sản phẩm (2 ngày) Thay đổi ngôn ngữ Web (2 ngày)
Gửi Gmail Admin (1 ngày)
Từ 22/12/2023
Đến 14/01/2023
Hoàn thiện Layout App Androi (2 ngày) Đăng nhập – đăng ký App Androi (3 ngày) Quên mật khẩu App Androi (3 ngày)
Trang 9Fix Api App Androi (3 ngày) Tải lên hình ảnh sản phẩm App Androi (1 ngày) Kiểm tra được Lịch Sử giao dịch Androi (2 ngày) Tìm kiếm – Androi (2 ngày)
Chi tiết sản phẩm App Androi (3 ngày) Thay đổi ngôn ngữ App Androi (3 ngày) Hoàn thiện phần liên hệ (1 ngày)
Từ 14/01/2023
Đến 18/01/2023
Kiểm thử phần mềm (3 ngày) Hoàn thiện báo cáo (1 ngày)
TRƯỞNG KHOA
(Ký tên và ghi rõ họ tên)
Bình Dương, ngày… tháng 1 năm 2022
CB HƯỚNG DẪN (Ký tên và ghi rõ họ tên)
Trang 10Mục Lục
NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN 1
NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN 2
LỜI CÁM ƠN 3
ĐỀ CƯƠNG CHI TIẾT 4
MỞ ĐẦU 13
CHƯƠNG 1: TỔNG QUAN VỀ ĐỀ TÀI 15
1.1 TÊN ĐỀ TÀI 15
1.2 LÝ DO CHỌN ĐỀ TÀI 15
1.3 MỤC ĐÍCH, LÝ DO CHỌN ĐỀ TÀI 15
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 16
1.5 PHẠM VI, ĐỐI TƯỢNG ĐỀ TÀI 16
1.6 Ý NGHĨA THỰC TIỂN CỦA ĐỀ TÀI 16
Chương 2 Cơ sở lý thuyết 18
2.1 Xây dựng thiết kế một sàn thương mại điện tử hoàng chỉnh 18
2.2 Các chức năng trong một sàn thương mại điện tử 18
2.3 Công nghệ sử dụng 19
2.3.1 Sử dụng công nghệ Spring boot 19
2.3.1.1 Ưu điểm của Spring boot 19
2.3.2 Thư viện Spring security có những gì? 20
2.3.3 Sử dụng ngôn ngữ lập trình Javascript 21
2.3.4 Sử dụng ngôn ngữ HTML, CSS lập trình 26
2.3.5 SQL Server (Database cơ sở dữ liệu) 27
2.4 Môi trường phát triển 31
2.4.1 Công cụ để phát triển lên dự án 31
2.4.2.1 Phần mềm Android Studio 33
2.4.3 Phần mềm giả lập môi trường server hosting Xampp 36
Chương 3: Phân tích và thiết kế hệ thống 39
3.1 CẤU TRÚC CỦA ĐỀ TÀI 39
3.1.1 Mô hình MVC WEBSITE LÀ GÌ? 39
3.1.2 Mô hình REST API: 42
3.2 Vẽ biểu đồ Use case Diagram và trình tự biểu đồ 44
3.2.1 Khách hàng truy cập 44
Trang 113.2.3 Admin (người quản lý toàn bộ hệ thống) 49
3.3 Thiết kế bản database (cở sở dữ liệu) 53
3.3.1 Bảng Orders (đặc hàng) 53
3.3.2 Bảng orders_detail (chi tiết đơn hàng) 54
3.3.3 Bảng user_role (vai trò người dùng) 54
3.3.4 Bảng favorites (yêu thích mặc hàng) 54
3.3.5 Bảng products (Các mặt hàng) 54
3.3.6 Bảng User (Người sử dùng) 55
3.3.7 Bảng role (Vai trò người sử dụng) 55
3.3.8 Bảng categories (Loại sản phẩm) 55
3.3.9 Bảng comments (Bảng bình luận) 56
3.3.10 Bảng Menu Androi (Menu bên App Mobile) 56
Chương 4 Khai triển ứng dụng 57
4.1 Cài đặc 57
4.1.1 Cài đặt công cụ phát triển 57
4.2 Tạo cơ sở dữ liệu 57
4.3 Chạy chương trình 60
4.4 Kiểm thử chương trình Website 64
4.5 Kiểm thử chương trình App Mobile 80
Chương 5 Kết quả đạt được 87
5.1 Ưu điểm 87
5.2 Hạn chế 87
5.3 Hướn phát triển 88
DANH MỤC TÀI LIỆU THAM KHẢO 89
Trang 12Danh Mục Hình Ảnh
hình 1: Javascrip là gì? 22
hình 2: Jquery là gì? 25
hình 3: Ngôn ngữ lập trình Html và Css 26
hình 4: Phần mềm Intellij Idea 31
hình 5: Phần mềm Androi Studio 34
hình 6: Bộ nhớ Cpu 36
hình 7: Hosting Xampp 37
hình 8: Mô hình tổng quát của đề tài 39
hình 9: Mô hình MVC 40
hình 10: Luồng xử lý MVC 40
hình 11: Luồng xử lý MVC 43
hình 12: Use case khách hàng 44
hình 13: Trình tự khách hàng mua hàng 44
hình 14: Quy trình khách hàng thanh toán 45
hình 15: Trình tự khách hàng tạo đơn hàng 46
hình 16: Quy trình khách hàng thanh toán 47
hình 17: Admin quản lý hệ thống 49
hình 18: Quy trình khi admin đăng nhập 50
hình 19: Quy trình kiểm duyệt đơn hàng 51
hình 20: Quy trình xử lý đơn hàng 51
hình 21: Admin quản lý doanh thu 52
hình 22: Quy trình Admin quản lý doanh thu 52
hình 23: Bảng database tổng quát 53
hình 24: Hosting Xampp 57
hình 25: Localhost:phpmyadmin 58
hình 26: Đưa cơ sở dữ liệu vào Locahost 58
hình 27: Xác nhận đưa file lên 58
hình 28: Sau khi đưa file lên host 59
hình 29: Coppy file database của App Mobile 59
hình 30: Tìm kiếm đến thư mục Htdocs 60
hình 31: Ứng dụng Xampp 60
hình 32: Chạy chương trình Intellij Idea 61
hình 33: Mở thư mục project 61
hình 34: Chỉnh sửa ip 62
hình 35: Chạy Project 63
hình 36: Chạy project thành công 63
hình 37: Trang chủ Website 63
hình 38: Form đăng nhập 64
hình 39: Quản lý tài khoản user 64
hình 40: Quản lý phân quyền cho user 65
hình 41: Quản lý thể loại 66
hình 42: Thêm mới thể loại 66
hình 43: Quản lý giải đáp thắc mắc 67
hình 44: Thêm mới câu trả lời 67
Trang 13hình 46: Quản lý sản phẩm 69
hình 47: Quản lý thêm mới sản phẩm 69
hình 48: Quản lý xác nhận đơn đơn hàng 70
hình 49: Quản lý khách hàng 71
hình 50: Quản lý thông kê 72
hình 51: Quản lý thông kê thể loại mặc hàng 72
hình 52: Quản lý doanh thu theo tháng 73
hình 53: Quản lý doanh thu theo từng quý 74
hình 54: Quản lý doanh thu theo năm 74
hình 55: Quản lý thông kê doanh thu theo từng khách hàng 75
hình 56: Gợi ý các sản phẩm bán chạy 76
hình 57: Tài khoản nhân viên 77
hình 58: Khách hàng kiểm tra thông tin 78
hình 59: Khách hàng tìm kiếm sản phẩm 78
hình 60: Khách hàng tìm kiểm sản phẩm thành công 78
hình 61: Khách hàng thêm sản phẩm vào giỏ hàng 79
hình 62: Khách hàng điền đầy đủ thông tin để thanh toán 79
hình 63: Khách hàng chờ nhân viên kiểm duyệt gửi hàng 80
hình 64: Banner khi vào App Mobile 81
hình 66: Đăng nhập 81
hình 65: Đăng ký 81
hình 67: Giao diện menu của App 82
hình 68: Giao diện trang chủ App 82
hình 69: Danh mục trái cây 83
hình 70: Danh mục rau 83
hình 71: Giỏ hàng 84
hình 72: Chi tiết sản phẩm 84
hình 73: Lịch sử giao dịch 85
hình 74: Thanh toán đơn hàng 85
hình 75: Thông tin liên hệ góp ý 85
Trang 14MỞ ĐẦU
Công nghệ thông tin ngày nay đã và đang đóng một vai trò rất quan trọng trong
xã hội, giúp con người làm việc với mức độ chính xác cao, quản lý và tổ chức công việc đạt hiệu quả, cũng như thông tin được phổ biến và cập nhật nhanh chóng, chính xác
Trong thời đại công nghệ thông tin và máy tính, con người có thể làm bất cứ thứ gì ở nhà, chỉ cần kết nối internet và sử dụng các dịch vụ trực tuyến Cho nên em đang phát triển một trang sàn thương mại điện tử đã nền tảng
Trong khuôn khổ của bài tiểu luận này, với những giới hạn về mặt kiến thức
và thời gian thực hiện, cũng như chuyên môn và những khó khăn trong việc sử dụng phương pháp phân tích thiết kế, là phương pháp thiết kế còn khá mới mẻ đối với sinh viên chuyên ngành công nghệ thông tin, cùng với việc xây dựng một trang Web trên môi trường lập trình Spring Boot, và lập trình app trên phần mềm Androi studio Do đó mặc dù chúng em đã rất cố gắng tiếp cận những công nghệ mới nhưng có lẽ phần mềm của chúng em cũng không tránh khỏi các thiếu sót Chúng em mong được sự đóng góp ý kiến của quý thầy cô và các bạn để phần mềm của chúng em hoàn chỉnh hơn
Nội dung đề tài được tổ chức thành 5 chương:
Chương 1: Tổng quan về đề tài
Trong chương này chúng em giới thiệu tên đề tài, lý do chọn đề tài, đề
ra mục tiêu và phương thức thực hiện, ý nghĩa thực tiễn khi thực hiện đề tài thành công
Chương 2: Cơ sở lý thuyết
Trong chương này chúng em tiến hành tham khảo thực tế của các sàn thương mại điện tử như Lazada, Tiki, Shoppe, … Xác định yêu cầu của bài toán đặt ra Khảo sát hiện trạng tin học và xem xét khả năng triển khai để xác định môi trường phát triển tối ưu nhất và các công nghệ sẽ áp dụng thực hiện
Trang 15Từ đó xây dựng yêu cầu chức năng của phần mềm và các yêu cầu phi chức
năng
Chương 3: Phân tích yêu cầu và thiết kế hệ thống
Bước tiếp theo chúng em tiến hành phân tích và xác định các chức năng chính (mục tiêu để xây dựng phần mềm) Cũng trong chương này
chúng em phân tích chi tiết từng chức năng, lên ý tưởng cho phương thức hoạt động của phần mềm, khai thác tất cả các yếu tố liên quan đến thực tại, hướng phát triển tương lai để xây dựng một cơ sở dữ liệu tương đối “lớn” và
“rộng” để dễ dàng hiện thực và phát triển ở tương lai
Chương 4: Khai triển ứng dụng
Chúng em đã có “khung xương” chức năng ở trên, tạm gọi cơ sở dữ liệu là phần cơ thì đây là bước chúng em thiết lập cho “sự sống” là phần mềm Chúng em tiến hành triển khai ý tưởng thiết kế cho giao diện, xây dựng chức năng Và chúng em muốn tạo ra một “cơ thể mới”, một phần mềm mới thoát khỏi “lối mòn phần mềm truyền thống”
Chương 5: Kết luận
Sau một quá trình miệt mài với công việc, dù gặp lắm khó khăn nhưng đây là lúc để chúng em nhìn lại thành quả lao động của mình Dù còn nhiều những ý tưởng nhưng đối với những sinh viên như chúng em khi hiện thực nó
là điều không dễ dàng Đây là lúc chúng em tổng kết lại những mặt đạt được, những mặt chưa đạt được và đề xuất hướng phát triển
Trang 16CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 TÊN ĐỀ TÀI
Xây dựng sàn thương mại điện tử đa nền tảng (Website + Mobile)
1.2 LÝ DO CHỌN ĐỀ TÀI
Như chúng ta cũng thấy trong thị trường hiện nay thì việc cạnh tranh về kinh doanh ngày càng trở nên quyết liệt và hầu hết những nhà kinh doanh, những công ty lớn đều rất chú tâm đến việc làm thoả mãn khách hàng một cách tốt nhất So với kinh doanh truyền thống thì sàn thương mại điện tử chi phí thấp hơn, hiệu quả đạt cao hơn Hơn thế nữa, với lợi thế của công nghệ Internet nên việc truyền tải thông tin về sản phẩm nhanh chóng, thuận tiện Kết hợp với bộ phận giao hàng tận nơi, là thông qua bưu điện và ngân hàng để thanh toán tiền, càng tăng thêm thuận lợi để loại hình này phát triển Biết được những nhu cầu đó chương trình “Xây dựng sàn thương mại điện tử” được xây dựng trên nhiều nền tảng Website và App Mobile nhằm để đáp ứng cho mọi người tiêu dùng trên toàn quốc và thông qua hệ thống này họ có thể đặt mua các mặt hàng hay sản phẩm cần thiết Do đó, với sự ra đời của sàn thương mại điện tử bán hàng qua mạng, mọi người có thể mua mọi thứ hàng hóa mọi lúc mọi nơi mà không cần phải tới tận nơi để mua
Trên thế giới có rất nhiều trang website bán hàng trực tuyến nhưng vẫn chưa được phổ biến rộng rãi Và khái niệm thương mại điện tử còn khá xa lạ Trước thực
tế đó em đã chọn đề tài: “Xây dựng sàn thương mại điện tử đa nền” cho đề tài khóa luận tốt nghiệp của mình
1.3 MỤC ĐÍCH, LÝ DO CHỌN ĐỀ TÀI
Hệ thống thông tin “Sàn Thương Mại Điện Tử” theo yêu cầu của các cá nhân,
cơ quan, công ty…Việc bán hàng đòi hỏi cần phải có tư duy, đầu óc kinh doanh và khả năng nhạy bén nắm bắt thị trường Một cửa hàng bán các mặt hàng không cần nhiều nhân viên, khách hàng không cần trực tiếp đến mua hàng mà có thể tại nhà dùng vài cái click chuột thì có thể có được sản phẩm mình cần Việc tạo ra một website và một app trên điện thoại bán hàng trực tuyến sẽ gặp nhiều khó khăn trong việc bảo mật thông tin, cũng như uy tín đến khách hàng
Trang 171.4 PHƯƠNG PHÁP NGHIÊN CỨU
Về Mặt lý thuyết:
- Tìm hiểu lập trình, cách thức hoạt động về spring boot rest API
- Tìm hiểu về Google translate API
1.5 PHẠM VI, ĐỐI TƯỢNG ĐỀ TÀI
Xây dựng Website và App trên điện thoại androi để bán sản phẩm rau củ quả hạt giống Trong thời đại mới thì thương mại điện tử ngày càng phát triển, việc ứng dụng vào hoạt động “sàn thương mại điện tử” đã mang lại nhiều ý nghĩa như:
Đỡ tốn nhiều thời gian cho người mua hàng cũng như nhà quản lý trong việc tham gia hoạt động bán hàng một cách hiệu quả
Giúp người mua hàng có thể so sánh được giá cả và hình ảnh sản phẩm một cách chính sát
Giúp nhà quản lý tiết kiệm được thời gian công sức và dễ dàng hơn trong việc quản lý sản phẩm
Nhà quản lý có thể thống kê các sản phẩm bán chạy một cách nhanh nhất giúp cho các hoạt động kinh doanh đạt doanh thu hiệu quả
1.6 Ý NGHĨA THỰC TIỂN CỦA ĐỀ TÀI
1.6.1 Đối với nhà quản lý
Có thể xem các đánh giá, góp ý của người tiêu dùng trên từng mặt hàng
Có thể quản lý các thể loại và thêm sửa xóa mặt hàng một cách nhanh chóng
Trang 18Thống kê báo cáo sản phẩm, thông tin khách hàng, chi tiết doanh thu từng khách hàng
Xuất file báo cáo cho cửa hàng hằng tháng, năm, quý giúp quản lý được doanh thu của sàn
1.6.2 Đối với sinh viên
Nhóm đã tự thiết kế mô hình, thiết kế database dựa trên những tài liệu thu thập, những quy trình đã tìm hiểu và sự hướng dẫn của giảng viên hướng dẫn Sau đó thực hiện viết code để thực hiện hóa hệ thống Cho chạy thử ở local và sau đó là trêm server Azure
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Xây dựng thiết kế một sàn thương mại điện tử hoàng chỉnh
Tầm quan trọng việc thiết kế website bán nông sản
Sau khi tìm hiểu thì em rút ra ngày nay, công nghệ thông tin ngày càng phát triển đã thay đổi nhận thức kinh doanh của toàn xã hội Có thể thấy, các sản phẩm, dịch vụ đều được bày bán trên Internet một cách hiệu quả kể cả mặt hàng nông sản
Vì thế em đã suy nghĩ được xem là điều cần thiết bên cạnh các trang mạng xã hội Ngoài ra, giờ đây cuộc sống ngày càng được nâng cao về chất lượng vì thế nhu cầu tìm kiếm nguồn gốc, xuất xứ, chất lượng hàng hóa thực phẩm của người tiêu dùng ngày càng trở nên khắt khe hơn Chính vì thế, bên cạnh nâng cao chất lượng sản phẩm nông sản, truyền thông thương hiệu, khẳng định sự uy tín, chuyên nghiệp thì việc thiết kế lên một “Xây Dựng Sàn Thương Mại Điện Tử” chính là giải pháp tối ưu nhất được em lựa chọn làm đề tài tốt nghiệp Trong bối cảnh đó, em đã nghĩ đến giải pháp thiết kế sàn thương mại bán hàng nông sản nhằm hỗ trợ các thương lái bán rau củ tại địa phương em đưa lên sàn thương mại điện tử một cách nhanh chóng và ít tốn kém chi phí phải thuê các sạp bán
2.2 Các chức năng trong một sàn thương mại điện tử
Thiết kế đồ họa, giao diện: Thiết kế giao diện đẹp, giao diện phù hợp các loại
như: Máy tính bàn, Laptop, Ipad, điện thoại, …
Module giới về sàn: Trình bày thông tin về trang Website, Công khai các thiếu
nại và góp ý trên trang Web, được đánh giá sản phẩm theo 1 đến 5 sao và kèm bình luận
Module giới thiệu về sản phẩm, dịch vụ: Cung cấp cho khách hàng những
thông tin cần thiết về các sản phẩm dịch vụ được chia theo danh mục mỗi danh mục
có nhiều sản phẩm bên trong trình bày dưới dạng list sản phẩm, giá cả Các thành phần này có thể bao gồm hình ảnh, mô tả và giá thành và không giới hạn danh mục sản phẩm
Module khách hàng: Bảo mật thông tin khách mua hàng
Trang 20Module quản lý sản phẩm: Có thể thêm/xóa/sửa các thể loại sản phẩm, không
giới hạn số lượng, số phần trăm giảm giá
Module giỏ hàng: Bao gồm các chức năng giỏ hàng, đơn hàng, quản lý khách
hàng… Khách hàng có thể chọn hàng và đăng ký đặt mua hàng một cách dễ dàng, thanh toán online qua Paypal hoặc nhận hàng kiểm tra xong mới thanh toán
Module sản phẩm mới: Hiển thị các sản phẩm mới nhất của Sàn các hình ảnh tiêu biểu, khách hàng có thể click vào hình sản phẩm để xem thông tin và hình ảnh mô tả chi tiết về sản phẩm đó
Module sản phẩm bán chạy nhất sàn: Hiển thị các sản phẩm được mua thích
nhiều nhất của sàn thông qua hình ảnh tiêu biểu, khách hàng có thêm xem ở đầu trang chủ và các thông tin mô tả chi tiết về các sản phẩm đó một cách cụ thể
Module tiện ích, thăm dò ý kiến: Giúp bạn thu thập được những phản hồi
của khách hàng một cách hiệu quả nhất
Module tìm kiếm: Cho phép tìm các thông tin trên website bằng các từ khóa
có liên quan
Module quảng cáo: Cho phép đặt các quảng cáo logo, banner trên website Module tuyển dụng: Hiển thị thông tin tuyển dụng, cơ hội việc làm
2.3 Công nghệ sử dụng
2.3.1 Sử dụng công nghệ Spring boot
Spring Boot là một trong số các module của Spring framework, cung cấp tính năng RAD (Rapid Application Development) Spring Boot được sử dụng để tạo ra một ứng dụng độc lập dựa trên Spring mà có thể chạy ngay với rất ít cấu hình cần thêm Spring Boot không cần đến bất kỳ cấu hình xml nào, mà nó sử dụng quy ước
về mô hình thiết kế phần mềm theo cấu hình, có nghĩa là nó giảm tải công việc cho các lập trình viên
2.3.1.1 Ưu điểm của Spring boot
Những ưu điểm đó bao gồm:
Tạo các ứng dụng Spring độc lập có thể được chạy bằng bằng cách sử dụng lệnh java
Trang 21Được nhúng sẵn Web sever Tomcat, Jetty hoặc Undertow Không cần triển khai bằng các tệp WAR
Cung cấp sẵn các thư viện ‘starter’ để đơn giản hóa cấu hình Maven/Gradle (Maven là một công cụ quản lý dự án phần mềm được sử dụng chủ yếu cho các dự
án dựa trên Java, Gradle là một công cụ tự động hóa xây dựng nguồn mở Đây là công cụ xây dựng chính thức cho Android)
Tự động cấu hình Spring bất cứ khi nào có thể
Nó cung cấp các tính năng “ăn liền” như đo đếm số liệu hay kiểm tra cấu hình của app
Không yêu cầu cấu hình XML
2.3.2 Thư viện Spring security có những gì?
Spring Security là một trong những tính năng cốt lõi quan trọng của Spring Framework, nó giúp chúng ta phân quyền và xác thực người dùng trước khi cho phép
họ truy cập vào trang web quản trị của mình
2.3.2.1 Thuật ngữa thư viện Spring security
Có 9 thuận ngữ được sử dụng trong bài như: Authentication, Authorization, Principle, Gran-ted authority, Role, Encoding, En-crypt và Hashing
2.3.2.2 Thuật ngữ thư viện Authentication
Authentication: quá trình xác minh người dùng, dựa vào thông tin đăng nhập
mà người dùng cung cấp Ví dụ khi đăng nhập vào hệ thống, bạn nhập tài khoản và mật khẩu, nó giúp hệ thống nhận ra bạn là khách hàng nhân viên hay là admin quản
lý
2.3.2.3 Thuật ngữ thư viện Authorization
Authorization: Quá tình xác định xem user có quyền thực hiện những chức
năng nào của hệ thống (thêm/sửa/xóa data), sau khi người dùng đã authenticated thành công
Hiểu nôm na thì authentication là cái công thứ nhất, xem người dùng có thuộc
hệ thống hay không, authorization là cái cổng thứ hai, xem người dùng được phép làm những gì trong hệ thống đó
Trang 22Ví dụ như: nhân viên thì có thể quản lý phần thêm /sữa/xóa /data phần loại hàng mặt hàng nhập
2.3.2.4 Thuận ngữ thư viện Principle
Chỉ authenticated user hiện tại (user đã đăng nhập thành công và thực hiện action hiện tại)
2.3.2.5 Thuật ngữ thư việnGranted authority
Quyền được sát thực người dùng là ai có thể làm những chức năng gì
2.3.2.6 Thuật ngữ thư viện Role
Phần này là một nhóm quyền được admin cấp cho user (nhân viên)
2.3.2.7 Thuật ngữ thư việnEncoding
Quá trình chuyễn đổi dữ liệu từ dạng này sang dạng khác, không sử dụng mã hóa Trong nhiều trường hợp, encoding dùng để giảm độ dài của dữ liệu (video và audio file) Một số kiểu encoding thường dùng: ASCII, BASE64, UNICODE
2.3.2.8 Thuật ngữ thư viện Encrypt
Quá trình chuyễn đổi dữ liệu mà các dữ liệu này cần được bảo vệ Có 2 kiểu encrypt là symetric (đối xứng) và asymetric (bất đối xứng) Về cơ bản thì mã hóa đối xứng là sử dụng 1 khóa (gọi là khóa bí mất) để mã hóa dữ liệu và giải mã dữ liệu, một số thuật toán mã hóa đối xứng thường gặp là AES-128, AES-192, AES-256
2.3.2.9 Thuật ngữ thư viện Hashin
Quá trình chuyển đổi dữ liệu thành một chuỗi hàm Một số giải thuật chuỗi thường gặp: MD5, SHA256 Dữ liệu chuỗi không thể được chuyển đối theo hướng ngược lại (theo lý thuyết) Do vậy, một trong những ứng dụng quan trọng của hashing
là lưu password
2.3.3 Sử dụng ngôn ngữ lập trình Javascript
Javascript là một ngôn ngữ lập trình website, được tích hợp và nhúng trong HTML và giúp cho website trở nên sống động hơn Đây là dạng ngôn ngữ theo kịch bản, được hình thành dựa trên chính đối tượng phát triển có sẵn hoặc đơn giản là tự định nghĩa ra Javascript cho phép bạn kiểm soát các hành vi của trang web tốt hơn
so với việc chỉ sử dụng mỗi HTML Có thể kể đến một vài ứng dụng thực tiễn cực kỳ
Trang 23quen thuộc của Javascript như slideshow, pop-up quảng cáo hay tính năng autocomplete của Google, … chúng đều được viết bằng ngôn ngữ Javascript
hình 1: Javascrip là gì?
Ứng dụng của Javascript
Hiện nay, Javascript được ứng dụng trong rất nhiều lĩnh vực phổ biến như: Lập trình website Xây dựng ứng dụng cho website máy chủ Ứng dụng di động, app, trò chơi Cụ thể hơn, khi bạn tải một trang web, trình duyệt sẽ phân tích cú pháp HTML và tiến hành tạo ra một loại dữ liệu gọi là DOM từ nội dung DOM sẽ thể hiện chế độ xem trực tiếp của trang web với mã Javascript Đoạn mã này sẽ thực hiện cập nhật cho DOM và được trình bày ngay lập tức trước mắt người dùng
Ngôn ngữ lập trình thông dụng, phổ biến
Javascript được người dùng đánh giá là ngôn ngữ lập trình đơn giản, dễ dàng tìm hiểu cũng như sử dụng Với những cú pháp tương đối giống với tiếng Anh thì việc bạn có thể thực hiện thao tác với Javascript một cách dễ dàng và nhanh chóng Thông qua mô hình DOM được sử dụng, cung cấp tới nhiều tính năng hữu ích, được viết sẵn và đem lại khả năng đáp ứng tốt với những nhu cầu, đòi hỏi khác nhau từ phía người dùng
Với những tính năng hữu ích mà ngôn ngữ lập trình này mang lại thì việc phát triển kịch bản nhằm giải quyết yêu cầu, mục đích cũng trở nên dễ dàng hơn Nhờ vậy
mà những mục đích tùy chỉnh của con người được đáp ứng hiệu quả với sự hỗ trợ tối
đa từ Javascript
Độ nhanh chóng với người dùng cuối
Việc sử dụng ngôn ngữ Javascript có khả năng đảm bảo khi mã được thực hiện trên thiết bị máy tính của người dùng đồng nghĩa với việc quá trình xử lý lẫn kết quả
Trang 24đều được hoàn thành ngay lập tức Thời gian cụ thể sẽ phụ thuộc vào từng nhiệm vụ tương ứng thời gian nhất định, tuy nhiên thường thì các vấn đề sẽ được giải quyết nhanh chóng
Ứng dụng đa dạng trên nhiều trình duyệt khác nhau
Nhờ vào khả năng sử dụng thông qua nhiều trình duyệt khác nhau nên ngôn ngữ lập trình Javascript ngày càng trở nên phổ biến, được tin dùng và ứng dụng phong phú hơn Bạn có thể dễ dàng bắt gặp ngôn ngữ lập trình này trên nhiều trình duyệt trên máy tính như Chrome, Firefox, … hay cá trình duyệt khác trên thiết bị di động Đây cũng là ưu điểm nổi bật giúp Javascript được ứng dụng hiệu quả, đầy đủ hơn cũng như đáp ứng được nhu cầu của con người một cách tốt nhất
Dễ dàng trong quá trình sử dụng
Sử dụng Javascript đảm bảo cho các lập trình viên có thể dễ học, dễ dàng phát hiện lỗi khi xuất hiện, đồng thời cũng có khả năng hoạt động nhanh chóng, nhẹ nhàng hơn so với các ngôn ngữ lập trình khác Nhờ vậy, quá trình sử dụng cũng thích hợp với nhiều đối tượng người dùng, mang lại hiệu quả cao và tránh những ảnh hưởng không mong muốn có thể xảy ra
Sở hữu giao diện thân thiện, tính năng đa dạng
Javascript được ưa chuộng hơn cả bởi sở hữu giao diện thân thiện, phù hợp với hầu hết mọi đối tượng người dùng khác nhau Không chỉ vậy, ngôn ngữ lập trình này cũng mang lại tính tương tác cao giúp cho quá trình ứng dụng của mỗi người dùng một kết quả ưng ý nhất Javascript cũng sở hữu nhiều tính năng giúp website bạn tạo ra có được hiệu quả sử dụng lý tưởng Tiêu biểu như việc tiến hành thêm slide, slideshow, thực hiện hiệu ứng cuộn khi chuột di tới, tính năng kéo thả, … tất
cả đều được trang bị đầy đủ và mang lại hiệu quả sử dụng tốt nhất cho người dùng Hạn chế của ngôn ngữ Javascript
2.3.3.1 Hạn chế của ngôn ngữ Javascript
Bên cạnh những ưu điểm nổi bật được nhắc tới phía trên, ngôn ngữ lập trình Javascript của chúng ta vẫn còn tồn tại một số hạn chế cần khắc phục
Trang 25Ngôn ngữ lập trình Javascript dễ bị khai thác: điều này đồng nghĩa với việc bảo mật cho ngôn ngữ này không được đánh giá cao Bởi vậy, trong quá trình sử dụng người dùng cần lưu ý những nguy cơ để chủ động xử lý khi có vấn đề xảy ra
Với Javascript, chúng ta có thể sử dụng để thực thi mã độc trên máy tính của người dùng nên có thể gây những ảnh hưởng hay thiệt hại không nhỏ tới công việc mà chúng
ta đang thực hiện
Javascript có thể không sử dụng được với một số trình duyệt cụ thể trong một
số trường hợp nhất định Điều này gây bất lợi cho một số người dùng khi không thể
sử dụng ngôn ngữ này khi cần thiết
Javascript sở hữu code snippets khá lớn nên có thể khó khăn trong quá trình
sử dụng
2.3.3.2 Hoạt động của ngôn ngữ Javascript trên một website
Việc sử dụng ngôn ngữ Javascript ngày càng trở nên phổ biến, thông dụng đối với nhiều người dùng Với ngôn ngữ này, việc cần làm chỉ là nhúng trực tiếp vào trang web, hoặc được tiến hành tham chiếu thông qua file.js riêng biệt Bởi đây là ngôn ngữ phía client nên script được tải đầy đủ về máy của khách hàng khi truy cập Đồng thời, nó cũng được xử lý ngay tại đó thay vì được xử lý trên server trước khi đưa kết quả tới khách hàng truy cập
Ngoài ra, việc sử dụng ngôn ngữ lập trình này hỗ trợ đầy đủ cho khách hàng khi họ muốn tắt hay mở trên các trình duyệt web được ứng dụng cơ bản hiện nay Nhờ vậy, việc có thể xác định được website hoạt động như thế nào, tình hình thực tế
ra sao khi không có ngôn ngữ Javascript đang hoạt động Javascript được người dùng đánh giá cao bởi khả năng hoạt động đơn giản nhưng vô cùng hiệu quả Hiện nay, ngôn ngữ lập trình này đang được ứng dụng trên nhiều nền tảng khác nhau để đáp ứng nhu cầu của người dùng như:
Sử dụng Javascript cùng HTML, hay CSS để trở thành ngôn ngữ không thể thay thế đối với một website
Có khá nhiều những framework JavaScript khác nhau ở phía front-end, trong đó tiêu biểu như: ReactJS, Vue.js, Angular.js, Angular2, Meteor.js, …
Ngôn ngữ lập trình JS được sử dụng ở phía các server với framework như Node.js
Trang 26Có một số database sử dụng ngôn ngữ Javascript dưới dạng kịch bản, đồng thời được coi là ngôn ngữ query như CouchDB, MongoDB, …
Dùng ngôn ngữ Javascript ứng dụng trong việc xây dựng ứng dụng của Desktop với framework là Electron, tiêu biểu là những ứng dụng tiêu biểu, nổi tiếng như WordPress.com, Atom, Visual Studio Code, …
Sử dụng ngôn ngữ JS trong việc xây dựng nên các ứng dụng trên điện thoại, đảm bảo đa nền tảng cho Android, hay iOS, … hiệu quả nhằm đáp ứng tốt cho nhu cầu, đòi hỏi khác nhau của người dùng
2.3.3.3 Thư viện Jquery được sử dụng trong bài
jQuery là một thư viện JavaScript, được sử dụng rộng rãi trong lập trình, thiết
kế website nhằm xây dựng các tính năng bằng JavaScript nhanh chóng, đơn giản hơn
Nó không phải là ngôn ngữ lập trình riêng mà liên kết chặt chẽ với JavaScript Các thuật ngữ khác liên quan Ajax jQuery: Công cụ cho phép tải dữ liệu từ máy chủ, không cần load lại trang
jQuery UI: Loại thư viện xây dựng từ jQuery, cho phép tạo giao diện web có
sẵn trong tab, datepicker, accordion
Prop jQuery: Gán giá trị thuộc tính đã được chỉ định, hỗ trợ thay đổi các
thuộc tính riêng biệt cho thẻ HTML theo DOM
jQuery có ưu điểm gì?
Xử lý code nhanh chóng, tiết kiệm thời gian, công sức trong thiết kế website/ viết ứng dụng
hình 2: Jquery là gì?
Trang 27Sử dụng cho nhiều nền tảng khác nhau, chạy được trên mọi trình duyệt Phát triển các ứng dụng tương thích với trình duyệt - Giúp cải thiện hiệu suất của lập trình web
Dễ dàng tạo các hiệu ứng khác nhau do được hỗ trợ nhiều thuộc tính/ nhiều hàm
Người dùng có thể dễ dàng viết code với các chức năng liên quan đến UI
Hầu như jQuery đều sử dụng tính năng mới của các trình duyệt
Tính năng của jQuery
Xử lý code nhanh chóng, tiết kiệm thời gian, công sức trong thiết kế website/ viết ứng dụng
Sử dụng cho nhiều nền tảng khác nhau, chạy được trên mọi trình duyệt Phát triển các ứng dụng tương thích với trình duyệt - Giúp cải thiện hiệu suất của lập trình web
Dễ dàng tạo các hiệu ứng khác nhau do được hỗ trợ nhiều thuộc tính/ nhiều hàm
Người dùng có thể dễ dàng viết code với các chức năng liên quan đến UI Hầu như jQuery đều sử dụng tính năng mới của các trình duyệt
2.3.4 Sử dụng ngôn ngữ HTML, CSS lập trình
HTML (HyperText Markup Language): là một ngôn ngữ đánh dấu được thiết
kế ra để tạo nên các trang web, nghĩa là các mẩu thông tin được trình bày trên World Wide Web
hình 3: Ngôn ngữ lập trình Html và Css
Trang 28CSS (Cascading Style Sheets): định nghĩa về cách hiển thị của một tài liệu
HTML CSS đặc biệt hữu ích trong việc thiết kế Web Nó giúp cho người thiết kế dễ dàng áp đặt các phong cách đã được thiết kế lên bất kì page nào của website một cách nhanh chóng, đồng bộ
2.3.5 SQL Server (Database cơ sở dữ liệu)
SQL Server hay còn gọi là Microsoft SQL Server, viết tắt là MS SQL Server Đây là một phần mềm được phát triển bởi Microsoft dùng để lưu trữ dữ liệu dựa trên chuẩn RDBMS, và nó cũng là một hệ quản trị cơ sở dữ liệu quan hệ đối tượng (ORDBMS) SQL Server cung cấp đầy đủ công cụ để quản lý, từ giao diện GUI cho đến việc sử dụng ngôn ngữ truy vấn SQL Ngoài ra điểm mạnh của nó là Microsoft
có khá nhiền nền tảng kết hợp hoàn hảo với SQL Server như ASP.NET, C# xây dựng Winform, bởi vì nó hoạt động hoàn toàn độc lập
Mục đích của việc sử dụng SQL Server:
Chung quy lại chúng ta sử dụng bất kì một hệ quản trị CSDL nào cũng để lưu trữ dữ liệu và SQL cũng không ngoại lệ Tuy nhiên điều mà ta mong đợi ở nó là các tính năng giúp việc sử dụng hiêu quả hơn như:
Cho phép tạo nhiều cơ sở dữ liệu - Duy trì lưu trữ bền vững
- Bảo mật cao
- Phân tích dữ liệu bằng SSAS
- SQL Server Analysis Services
- Tạo được báo cáo bằng SSRS
- SQL Server Reporting Services
- Thực hiện quá trình ETL (Extract-Transform-Load) bằng SSIS
- SQL Server Integration Services
- Các thành phần của SQL Server
Các thành phần của SQL Server
Do hoạt động theo mô hình Client - Server nên nó được chia làm hai thành phần chính
Workstation: Được cài trên các thiết bị vận hành, nó là các phần mềm tương tác
với máy chủ server Ví dụ: SSMS, SSCM, Profiler, BIDS, SQLEM
Trang 29Server: Được cài trên máy chủ chính (máy chủ tập trung), đó là các dịch vụ như:
SQL Server, SQL Server Agent, SSIS, SSAS, SSRS, SQL Browser, SQL Full Text Search
Bạn có thể cài nhiều phiên bản của SQL Server trên cùng một máy chủ, điều này giúp tiết kiệm chi phí mua Server nếu hệ thống bạn hoạt động cần nhiều phiên bản khác nhau, bảo mật cũng tách biệt hoàn toàn giúp hệ thống an toán hơn
Các thành phần cơ bản của SQL Server
Database Engine: có khả năng chứa dữ liệu ở quy mô dưới dạng support và table,
có thể tự điều chỉnh
Integration Services: là tập hợp các đối tượng lập trình, các công cụ đồ họa cho
việc sao chéo, di chuyển, chuyển đổi dữ liệu
Analysis Services: là dịch vụ phân tích dữ liệu của Microsoft bằng kỹ thuật khai
thác dữ liệu và khái niệm hình khối nhiều chiều
Notification Services: đây là nền tảng cho sự phát triển và triển khai các ứng
dụng soạn và gửi thông báo, có chức năng gửi thông báo theo dịch thời đến hàng ngàn người đăng ký sử dụng trên nhiều loại thiết bị khác nhau
Reporting Services: là công cụ tạo, quản lý, triển khai báo cáo
Full Text Search Services: là thành phần đặc biệt tròn truy vấn và đánh cỉ mục dữ liệu văn bản không cấu trúc được lưu trữ trong các cơ sở dữ liệu của SQL Server
Service Broker: là môi trường lập trình tạo ra các ứng dụng trong việc nhảy
qua các instance
2.3.5.1 Microsoft Azure
Azure là một nền tảng điện toán đám mây và một cổng thông tin trực tuyến, cho phép bạn truy cập và quản lý các dịch vụ, cũng như tài nguyên đám mây do Microsoft cung cấp Các dịch vụ và tài nguyên này bao gồm lưu trữ và chuyển đổi dữ liệu, tùy thuộc vào yêu cầu Để có quyền truy cập vào các tài nguyên và dịch vụ này, tất cả những gì bạn cần là kết nối Internet đang hoạt động và khả năng kết nối với Azure Portal
Những điều bạn nên biết về Azure:
Trang 30Azure được ra mắt vào ngày 1 tháng 2 năm 2010, muộn hơn đáng kể so với đối thủ cạnh tranh chính của nó, AWS
Miễn phí khi bắt đầu và tuân theo mô hình trả tiền cho mỗi lần sử dụng, có nghĩa là bạn chỉ trả tiền cho các dịch vụ bạn chọn
Điều thú vị là 80% công ty thuộc danh sách Fortune 500 sử dụng dịch vụ Azure cho nhu cầu điện toán đám mây
Azure hỗ trợ nhiều ngôn ngữ lập trình, bao gồm Java, Node Js và C#
Một lợi ích khác của Azure là số lượng trung tâm dữ liệu mà nó có trên khắp thế giới Có 42 trung tâm dữ liệu Azure trải rộng trên toàn cầu, đây là số lượng trung tâm dữ liệu cao nhất cho bất kỳ nền tảng đám mây nào Ngoài ra, Azure cũng đang
có kế hoạch mở thêm 12 trung tâm dữ liệu, điều này sẽ sớm nâng số trung tâm dữ liệu lên 54 trung tâm
Các dịch vụ Azure gồm những gì? Azure hoạt động như thế nào?
Azure cung cấp hơn 200 dịch vụ, được chia thành 18 loại Các danh mục này bao gồm máy tính, mạng, lưu trữ, IoT, di chuyển, di động, phân tích, container, trí tuệ nhân tạo và machine learning, tích hợp, công cụ quản lý, công cụ nhà phát triển, bảo mật, cơ sở dữ liệu, DevOps, nhận dạng media và web service Hãy xem xét một
số dịch vụ Azure chính theo danh mục:
Dịch vụ tính toán
Máy ảo: Dịch vụ này cho phép bạn tạo một máy ảo trong Windows, Linux
hoặc bất kỳ cấu hình nào khác trong vài giây
Dịch vụ điện toán đám mây: Dịch vụ này cho phép bạn tạo các ứng dụng có thể mở rộng trong đám mây Sau khi ứng dụng được triển khai, mọi thứ, bao gồm việc cung cấp, cân bằng tải và theo dõi sức khỏe, đều do Azure đảm nhận
Service Fabric: Với Service Fabric, quá trình phát triển một microservice
được đơn giản hóa rất nhiều Microservice là một ứng dụng có chứa các ứng dụng
nhỏ, được đóng gói khác
Các hàm: Với các hàm, bạn có thể tạo ứng dụng bằng bất kỳ ngôn ngữ lập
trình nào Phần tốt nhất về dịch vụ này là bạn không cần phải lo lắng về các yêu cầu
Trang 31phần cứng trong khi phát triển ứng dụng, vì Azure sẽ lo điều đó Tất cả những gì bạn cần làm là cung cấp code mà thôi
Kết nối mạng
Azure CDN: Azure CDN (Content Delivery Network) dùng để cung cấp nội
dung cho người dùng Nó sử dụng băng thông cao và nội dung có thể được truyền đến bất kỳ người nào trên toàn cầu Dịch vụ CDN sử dụng một mạng lưới các máy chủ được đặt ở những vị trí chiến lược trên toàn cầu để người dùng có thể truy cập vào dữ liệu càng sớm càng tốt
Express Route: Dịch vụ này cho phép bạn kết nối mạng tại chỗ của mình với
đám mây Microsoft hoặc bất kỳ dịch vụ nào khác mà bạn muốn, thông qua kết nối riêng tư Vì vậy, thông tin liên lạc duy nhất sẽ xảy ra ở đây sẽ là giữa mạng doanh nghiệp và dịch vụ mà bạn muốn
Mạng ảo: Mạng ảo cho phép bạn để bất kỳ dịch vụ Azure nào giao tiếp với
nhau một cách riêng tư và an toàn
Azure DNS: Dịch vụ này cho phép bạn host các DNS domain hoặc domain hệ
thống của mình trên Azure
Lưu trữ
Disk Storage: Dịch vụ này cho phép bạn chọn từ HDD (Hard Disk Drive)
hoặc SSD (Solid State Drive) làm tùy chọn lưu trữ cùng với máy ảo
Blob Storage: Dịch vụ này được tối ưu hóa để lưu trữ một lượng lớn dữ liệu
phi cấu trúc, bao gồm văn bản và thậm chí cả dữ liệu nhị phân
File Storage: Đây là một dịch vụ lưu trữ file được quản lý, có thể được truy
cập thông qua giao thức SMB (Server Message Block)
Queue Storage: Đây là dịch vụ lưu trữ số lượng lớn tin nhắn Dịch vụ này có
thể được truy cập từ bất kỳ đâu trên thế giới này
Tại sao lại sử dụng Azure?
Có nhiều cách sử dụng khác nhau cho Azure, Bây giờ, bạn đã biết thêm về Azure và các dịch vụ mà nó cung cấp, bạn có thể quan tâm đến việc khám phá các cách sử dụng khác nhau cho Azure
Phát triển ứng dụng: Bạn có thể tạo bất kỳ ứng dụng web nào trong Azure
Trang 32Thử nghiệm: Sau khi phát triển thành công một ứng dụng trên nền tảng, bạn
có thể thử nghiệm nó
Host ứng dụng: Sau khi quá trình thử nghiệm hoàn tất, Azure có thể giúp bạn
host ứng dụng
Tạo máy ảo: Bạn có thể tạo máy ảo ở bất kỳ cấu hình nào bạn muốn với sự
trợ giúp của Azure
Tích hợp và đồng bộ các tính năng: Azure cho phép bạn tích hợp và đồng
bộ các thiết bị và thư mục ảo
Thu thập và lưu trữ số liệu: Azure cho phép bạn thu thập và lưu trữ số liệu,
có thể giúp bạn tìm thấy những gì hoạt động hiệu quả
Ổ cứng ảo: Đây là phần mở rộng của máy ảo Chúng cung cấp một lượng lớn
dung lượng lưu trữ dữ liệu
2.4 Môi trường phát triển
2.4.1 Công cụ để phát triển lên dự án
2.4.1.1 Phần mềm IntelliJ IDEA
IntelliJ IDEA là phần mềm lập trình và phát triển các ngôn ngữ lập trình các ứng dụng cho điện thoại, java, hoặc trên máy tính với việc hỗ trợ nhiều ngôn ngữ lập trình khác nhau phần mềm là một trong những giải pháp, chìa khóa trao tay dành cho những kỹ sư lập trình nhằm tạo ra những chương trình, ứng dụng cho điện thoại hoặc bất kỳ thứ gì khác
IntelliJ IDEA là công cụ nhằm tạo ra những dự án lập trình cho điện thoại hoặc cho với khả năng mã hóa sâu sắc và điều hướng nhanh phần mềm còn cung cấp cho người dùng một danh sách các biểu tượng và ký hiệu phục vụ trong công việc lập trình của người dùng
hình 4: Phần mềm Intellij Idea
Trang 33IntelliJ IDEA thực hiện phân tích dòng dữ liệu đầu vào của người dùng, phần mềm phân tích lưu lượng dữ liệu để đoán biểu tượng thể loại thời gian phần mềm thực hiện phân tích kịch bản được đưa vào của người dùng với các để xuất khác nhau
tự động thêm các lớp phôi để phù hợp với chương trình mà bạn đang làm việc Cũng có chức năng lập trình tạo ra các chương trình ứng dụng Java cho điện thoại, nhưng phần mềm Mobile BASIC dựa trên ngôn ngữ BASIC quen thuộc, đặc biệt Mobile BASIC có cách lập trình đơn giản và có nhiều công cụ hỗ trợ cho những người mới bắt đầu
Giao diện của IntelliJ IDEA khá đơn giản, với một màn hình đen và các chữ được thể hiện theo từng màu sắc câu lệnh, tính năng tự động được thể hiện ở việc thêm các cú pháp tự động như các dấu ngoặc cho mỗi dòng lệnh, điều này làm người
sử dụng có thể giảm thiểu được nhiều sai sót trong lúc lập trình
JAR Maker là một ứng dụng khác với các tính năng tương tự IntelliJ IDEA với khả năng làm nổi bật cú pháp, tự động tìm và phát hiện lỗi, tải JAR Maker để thử nghiệm Khả năng tìm kiếm và phát hiện các bản sao của IntelliJ IDEA được sử dụng nhiều trong chương trình, người dùng có thể sử dụng một biến hoặc một đoạn mã để so sánh
và tìm kiếm với toàn chương trình để tìm ra các đoạn trùng nhau, tính năng này nhằm làm giảm thời gian làm việc của người dùng, đoạn mã tương tự sẽ được tìm kiếm nhanh chóng và thể hiện cho người dùng
IntelliJ IDEA tìm kiếm và phát hiện ra các đoạn lỗi của dự án, đối với các cú pháp gặp lỗi phần mềm sẽ đánh dấu nó với màu sắc khác cho người dùng dễ dàng theo dõi, kiểm tra và sửa lỗi cho phù hợp
Tính năng tìm kiếm nhanh chóng của IntelliJ IDEA giúp tìm kiếm nhanh chóng bất kỳ câu lệnh hoặc cú pháp, chỉ cần gõ vào bất kỳ danh sách hoặc bật cửa sổ tìm kiếm và nhập văn bản mà người dùng muốnn tìm kiếm để tìm ra những gì mà bạn cần
Ngoài ra, các bạn có thể tham khảo phần mềm ExeJ là công cụ nhỏ gọn nhưng tạo ra các ứng dụng Java cực kỳ nhanh chóng, ExeJ có khả năng tạo ra hàng loạt fie thực thi cùng một lúc
Trang 342.4.1.2 Những chức năng chính của IntelliJ IDEA:
Có trên 60 mã kiểm tra với khả năng phân tích mã siêu nhanh
Tính năng sửa lỗi nhanh thông minh
Tạo mã tự động và hỗ trợ Styling Consistent cho ngôn ngữ, công nghệ và ứng dụng server
Cung cấp các phương tiện tuyệt vời cho sự phát triển Java, JavaScript, ActionScript, Flex, HTML, XHTML, CSS, XML, XSL, PHP, Ruby, JRuby, Groovy, SQL, FreeMarker, Velocity, JSP, JSF và JSF 2.0, EJB, AJAX, GWT, GWT 2.0, Google App Engine, Struts, Struts 2, JBoss Seam, Spring, Spring 2.5 and 3.0, Spring Security 2.0, Hibernate/JPA and JPA 2.0, Tapestry, Web Beans, Bean Validation, OSGi, Android, và nhiều hơn thế nữa
Hỗ trợ triển khai và gỡ lỗi từ xa cho WebLogic, WebSphere, Glassfish, Geronimo, Tomcat, JBoss và bất kỳ máy chủ ứng dụng tương thích JSR-45 nào
Tái cấu trúc trên 60 ngôn ngữ chéo
Phân tích phụ thuộc
Phát hiện mã trùng lặp
Được tích hợp mã bao phủ với JUnit vàTestNG
2.4.2.1 Phần mềm Android Studio
Android Studio là môi trường phát triển tích hợp (IDE) chính thức để phát triển ứng dụng Android, dựa trên IntelliJ IDEA Ngoài các trình soạn thảo mã và công cụ phát triển mạnh mẽ của IntelliJ, Android Studio còn cung cấp thêm nhiều tính năng giúp bạn nâng cao năng suất khi xây dựng ứng dụng Android, chẳng hạn như:
- Một hệ thống xây dựng linh hoạt dựa trên Gradle
- Một trình mô phỏng nhanh và nhiều tính năng
- Một môi trường hợp nhất nơi bạn có thể phát triển cho mọi thiết bị Android
Trang 35Đa dạng khung và công cụ thử nghiệm
Công cụ tìm lỗi mã nguồn (lint) để nắm bắt hiệu suất, khả năng hữu dụng, khả năng tương thích với phiên bản và các vấn đề khác
Mỗi dự án trong Android Studio chứa một hoặc nhiều mô-đun có tệp mã nguồn
và tệp tài nguyên Có các loại mô-đun sau:
- Mô-đun ứng dụng Android
- Mô-đun thư viện
- Mô-đun Google App Engine
Theo mặc định, Android Studio thể hiện các tệp dự án của bạn trong chế độ xem dự án Android, như trong hình 1 Chế độ xem này được sắp xếp theo mô-đun để bạn có thể truy cập nhanh vào các tệp nguồn chính của dự án
Trang 36Bạn có thể thấy tất cả tệp bản dựng ở cấp cao nhất trong Gradle Scripts (Tập lệnh Gradle) và mỗi mô-đun ứng dụng chứa các thư mục sau:
Manifests: Chứa tệp AndroidManifest.xml
Java: Chứa các tệp mã nguồn Java, bao gồm cả mã kiểm thử JUnit
Res: Chứa mọi tài nguyên không phải mã, chẳng hạn như bố cục XML, chuỗi
giao diện người dùng và hình ảnh bitmap
Cấu trúc dự án Android trên ổ đĩa khác với cách trình bày ở đây Để xem cấu trúc tệp thực tế của dự án, hãy chọn Project (Dự án) trong trình đơn thả xuống Project (Dự án) (trong hình 1, mục này có tên Android)
2.4.2.3 Hệ thống Androi Build
Hệ thống Android Build là bộ công cụ bạn sử dụng để xây dựng, thử nghiệm, chạy và đóng gói ứng dụng của mình Hệ thống xây dựng này thay thế hệ thống Ant được sử dụng với Eclipse ADT Nó có thể chạy như một công cụ tích hợp từ menu Android Studio và độc lập với dòng lệnh Bạn có thể sử dụng các tính năng của build system để:
- Tùy chỉnh, cấu hình và mở rộng quá trình thiết kế, kiến trúc
- Tạo nhiều APK cho ứng dụng của bạn với các tính năng khác nhau bằng cách
sử dụng cùng một dự án và module
- Sử dụng lại mã và tài nguyên trên các tập hợp nguồn
- Tính linh hoạt của hệ thống Android build cho phép bạn đạt được tất cả các yếu tố trên mà không cần sửa đổi các tệp nguồn cốt lõi của ứng dụng
2.4.2.4 Gỡ lỗi và hiệu suất
Android Studio cung cấp một số cải tiến hỗ trợ việc gỡ lỗi và cải thiện hiệu suất code, bao gồm các công cụ được cải tiến như công cụ quản lý thiết bị ảo, inline debug và phân tích hiệu suất
2.4.2.5 Trình quản lý thiết bị ảo của Android (AVD)
AVD Manager đã cập nhật các link lên màn hình để giúp bạn chọn các cấu hình thiết bị phổ biến nhất, lựa chọn kích thước màn hình và độ phân giải trong chế
độ xem trước
Trang 37Trình quản lý AVD có liên kết với bộ mô phỏng cho các thiết bị Nexus 6 và Nexus
9 AVD cũng hỗ trợ tạo giao diện thiết bị Android tùy chỉnh dựa trên các đặc tính mô phỏng cụ thể và gán các giao diện đó cho cấu hình phần cứng
Android Studio cài đặt Intel® x86 Hardware Accelerated Execution Manager (HAXM) và tạo bộ mô phỏng mặc định để tạo nhanh ứng dụng mẫu
2.4.2.6 Bộ nhớ và màn hình CPU
Android Studio hỗ trợ một chế độ xem bộ nhớ và màn hình CPU để bạn có thể dễ dàng theo dõi hiệu suất và mức sử dụng bộ nhớ của ứng dụng Từ đó, có thể theo dõi mức sử dụng CPU, tìm đối tượng deallocated, xác định vị trí lỗi bộ nhớ, theo dõi dung lượng bộ nhớ đang được thiết bị kết nối sử dụng Với ứng dụng chạy trên thiết
bị hoặc trình mô phỏng, bạn nhấp vào tab Android ở góc dưới bên trái của cửa sổ runtime để khởi động cửa sổ Android runtime Click tab Memory hoặc CPU
hình 6: Bộ nhớ Cpu
2.4.3 Phần mềm giả lập môi trường server hosting Xampp
Phần mềm XAMPP là một loại ứng dụng phần mềm khá phổ biến và thường hay được các lập trình viên sử dụng để xây dựng và phát triển các dựa án website theo ngôn ngữ PHP XAMPP thường được dùng để tạo máy chủ web (web server)được tích hợp sẵn Apache, PHP, MySQL, FTP Server, Mail Server và các công cụ như phpMyAdmin
Trang 38hình 7: Hosting Xampp
Đặc biệt, Xampp có giao diện quản lý khá tiện lợi, cho phép người dùng chủ động bật tắt hoặc khởi động lại các dịch vụ máy chủ bất kỳ lúc nào Phần mềm này cũng được thiết lập và phát triển dựa trên mã nguồn mở
Nhìn chung XAMPP được xem là một bộ công cụ hoàn chỉnh dành cho lập trình viên PHP trong việc thiết lập và phát triển các website, nó tích hợp các thành phần quan trọng và tương thích lẫn nhau như:
- Apache
- PHP (tạo môi trường chạy các tập tin script *.php)
- MySql (hệ quản trị dữ liệu mysql)
2.4.3.1 Ưu và nhược điểm của phần mềm XAMPP
Mã nguồn mở: Xampp có giao diện quản lý tiện dụng Người dùng có thể chủ
động bật tắt hoặc khởi động lại các dịch vụ máy chủ mọi lúc mọi nơi
Nhược điểm:
Trang 39Không được hỗ trợ cấu hình Module
Dung lượng tương đối nặng, dung lượng file cài đặt là 141 Mb, nặng hơn nhiều
so với WAMP 41 Mb
Không có nhiều phiên bản cho các thành phần của server như PHP, Apache, MySQL như WAMP Lỗi Xampp thường gặp là Apache không start được, gây bất tiện vì người dùng thường phải đi sửa lỗi Xampp không start
Trang 40Chương 3: Phân tích và thiết kế hệ thống 3.1 CẤU TRÚC CỦA ĐỀ TÀI
Cấu trúc tổng quát của đề tài gồm 2 phần:
Mô hình Spring Boot MVC
Mô hình REST API
hình 8: Mô hình tổng quát của đề tài
3.1.1 Mô hình MVC WEBSITE LÀ GÌ?
Là từ viết tắt bởi 3 từ Model – View – Controller Đây là mô hình thiết kế sử dụng trong kỹ thuật phần mềm Mô hình source code thành 3 phần, tương ứng mỗi
từ Mỗi từ tương ứng với một hoạt động tách biệt trong một mô hình:
Model (M): Là bộ phận có chức năng lưu trữ toàn bộ dữ liệu của ứng dụng
Bộ phận này là một cầu nối giữa 2 thành phần bên dưới là View và Controller Model thể hiện dưới hình thức là một cơ sở dữ liệu hoặc có khi chỉ đơn giản là một file XML bình thường Model thể hiện rõ các thao tác với cơ sở dữ liệu như cho phép xem, truy xuất, xử lý dữ liệu,
View (V): Đây là phần giao diện (theme) dành cho người sử dụng Nơi mà
người dùng có thể lấy được thông tin dữ liệu của MVC thông qua các thao tác truy vấn như tìm kiếm hoặc sử dụng thông qua các website Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệ thống, nơi các thành phần HTML được tạo ra Bên cạnh đó, View cũng có chức năng ghi nhận hoạt động của người