TRƯỜNG ĐẠI HỌCTÀI NGUYÊN VÀ MÔI TRƯỜNG TP. HCM
KHOA:HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: THIẾT KẾ VÀ XÂY DỰNG WEBSITE BÁN ÁO
LOCAL BRAND
Giảng viên hướng dẫn: TS. HOÀNG ANH
Sinh viên thực hiện: NGUYỄN VĂN HIẾU
Lớp: 07_DH_CNTT4
Khóa: 2018-2022
TP. Hồ Chí Minh, tháng 06 năm 2022
TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG TP.HCM
KHOA: HỆ THỐNG THÔNG TIN VÀ VIỄN THÁM
ĐỒ ÁN TỐT NGHIỆP
NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI: THIẾT KẾ VÀ XÂY DỰNG WEBSITE BÁN ÁO
LOCAL BRAND
Giảng viên hướng dẫn: TS. HOÀNG ANH.
Sinh viên thực hiện: NGUYỄN VĂN HIẾU.
Lớp: 07_DH_CNTT4
Khóa: 2018-2022
TP. Hồ Chí Minh, tháng 06 năm 2022.
LỜI CẢM ƠN
Trong suốt quá trình học tập trong Trường Đại Học Tài Ngun và Mơi Trường
Thành Phố Hồ Chí Minh vừa qua, em đã được các thầy cô cung cấp và truyền đạt tất cả
kiến thức chuyên ngành cần thiết và quý nhất. Ngoài ra, chúng em còn được rèn luyện
một tinh thần học tập và làm việc độc lập sáng tạo. Đây là những điều hết sức cần thiết để
có thể thành cơng khi bắt tay vào nghề nghiệp trong tương lai.
Đồ án tốt nghiệp là cơ hội chúng em có thể áp dụng, tổng kết lại những kiến thức
mà mình đã học. Đồng thời, rút ra những kinh nghiệm thực tế và quý giá trong suốt quá
trình thực hiện đề tài. Sau một thời gian chúng em tập trung công sức cho đề tài, đặc biệt
là nhờ sự chỉ đạo và hướng dẫn tận tình của thầy Hồng Anh cùng với các thầy cơ trong
khoa, đã giúp cho chúng em hồn thành đề tài này một cách thuận lợi và đạt được một số
kết quả nhất định. Bên cạnh những kết quả mà em đạt được, chắc chắn không tránh khỏi
những thiếu sót khi thực hiện đồ án của mình, kính mong thầy cơ góp ý giúp đỡ. Sự phê
bình, góp ý của quý thầy cô sẽ là những bài học kinh nghiệm rất quý báu cho công việc
thực tế của em sau này.
Là sinh viên khoa hệ thống thông tin và viễn thám chuyên ngành công nghệ thông
tin, em rất tự hào về điều đó, tự hào về tất cả các thầy cơ của mình. Một lần nữa, chúng
em xin chân thành cảm ơn công lao dạy dỗ của quý thầy cơ. Kính chúc q thầy cơ mạnh
khỏe, tiếp tục đạt được nhiều thắng lợi trong nghiên cứu khoa học và sự nghiệp giáo dục.
LỜI CAM ĐOAN
Em xin cam đoan đề tài “Thiết kế và xây dựng website bán áo local brand” là
thành quả nghiên cứu, tìm tịi của cá nhân em dưới sự hướng dẫn của giảng viên hướng
dẫn: TS. Hoàng Anh và chưa hề được sử dụng để bảo vệ một học vị nào. Em xin hồn
tồn chịu trách nhiệm về tính trung thực của các nội dung khác trong đề tài của mình
TP.HCM, Ngày 27 Tháng 6 Năm 2022
Sinh viên thực hiện
NHẬN XÉT
(Của giảng viên giáo viên hướng dẫn)
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
TP.HCM, ngày 27 tháng 6 năm 2022
CÁN BỘ HƯỚNG DẪN
(ký tên)
NHẬN XÉT
(Của giảng viên phản biện)
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
.............................................................................................................................................
TP.HCM, ngày…tháng…năm 2022
GIẢNG VIÊN PHẢN BIỆN
(ký tên)
LỊCH LÀM VIỆC
Họ và tên sinh viên: Nguyễn Văn Hiếu
Giảng viên hướng dẫn: TS. Hoàng Anh
Thời gian thực hiện từ ngày 16 tháng 3 năm 2022 đến ngày 27 tháng 6 năm 2022
Tuần
1
Nội dung công việc
Tự nhận xét về mức độ hoàn
thành
-
Đọc, tra cứu tài liệu
Xác định đề tài thực hiện
Liên hệ, tìm giảng viên hướng dẫn
Hồn Thành 100%
-
Đọc, tra cứu tài liệu
Hồn Thành 100%
Thống nhất đề tài khóa luận TN và báo
Từ 16/3 đến
20/3
2
Từ 21/3 đến
về Khoa
27/3
3
Từ 28/3 đến
-
Khảo sát, thu thập dữ liệu
Hoàn Thành 100%
Tập hợp và xử lý dữ liệu
Tìm hiểu về hình thức kinh doanh và các
giải pháp xây dựng một website thương
3/4
mại điện tử
-
4
-
Thiết kế giao diện trang web
Viết Báo Cáo
Hoàn thành 50%
-
Thiết kế giao diện trang web
Viết Báo Cáo
Hoàn thành 75%
-
Thiết kế giao diện trang web
Viết Báo Cáo
Hoàn thành 100%
-
Thiết kế cơ sở dữ liệu
Viết Báo Cáo
Hoàn thành 45%
-
Thiết kế cơ sở dữ liệu
Viết Báo Cáo
Hoàn thành 70%
-
Thiết kế cơ sở dữ liệu
Viết Báo Cáo
Hoàn thành 80%
-
Thiết kế cơ sở dữ liệu
Viết Báo Cáo
Hoàn thành 100%
-
Xây dựng Backend xử lý
Viết Báo Cáo
Hoàn thành 45%
Từ 4/4 đến
10/4
5
Từ 11/4 đến
17/4
6
Từ 18/4 đến
24/4
7
Từ 25/4 đến
1/5
8
Từ 2/5 đến
8/5
9
Từ 9/5 đến
15/5
10
Từ 16/5 đến
22/5
11
Từ 23/5 đến
29/5
12
-
Xây dựng Backend xử lý
Viết Báo Cáo
Hoàn thành 60%
-
Xây dựng Backend xử lý
Viết Báo Cáo
Hoàn thành 70%
-
Xây dựng Backend xử lý
Viết Báo Cáo
Hoàn thành 80%
-
Xây dựng Backend xử lý
Viết Báo Cáo
Xem lại, chỉnh sửa và bổ sung thiếu sót
Hồn thành 100%
Từ 30/5 đến
5/6
13
Từ 6/6 đến
12/6
14
Từ 13/6 đến
19/6
15
Từ 20/6 đến
26/6
TP. Hồ Chí Minh, ngày 27 tháng 6 năm 2022
Sinh Viên Thực Hiện
TÓM TẮT
Để tài: Thiết kế và xây dựng website bán áo local brand.
Hướng giải quyết các vấn đề của đề tài:
-
Hoàn chỉnh các chức năng cơ bản của một trang thương mại điện tử
Hỗ trợ các dịch vụ cho người dùng
-
Quản lý thông tin các mặc hàng, đơn hàng.
Thông báo cho người dùng về thông tin đơn hàng
Bảo mật và an toàn dữ liệu
Kỹ thuật sử dụng:
-
Sử dụng Framework Angular và thư viện Angular Material, Bootstrap, Slick để
-
xây dựng Frontend website.
Sử dụng Framework Spring Boot, Spring Security, Spring Data JPA để xây dựng
backend, viết API, phân quyền người dùng, bảo mật dữ liệu và thao tác với cơ sở
-
dữ liệu
Sử dụng MySQL để quản trị cơ sở dữ liệu
Kết quả đạt được:
-
Về đồ án: Đã hiểu và sử dụng được các Framework Angular, SpringBoot, Spring
Data JPA và các thư viện như Bootstrap, Slick, Angular Material. Đồ án tạo ra thân
-
thiện, đơn giản dễ sử dụng cho người dùng.
Về bản thân: Hoàn thành mục tiêu ban đầu đặt ra là: xây dựng một website với các
chức năng của một website bán hàng cần có. Hiểu và sử dụng thành cơng các công
cụ (Visual Studio Code, Spring Tool Suite 4, Postman …) và các Framewor như
Angular, Spring Boot, Spring Data JPA, Spring Security … để xây dựng website.
Kết Luận: Đạt được mục tiêu ban đầu đề ra. Cần bổ sung thêm thanh tốn online bằng
nhiều hình thức vd bằng ví điện tử MoMo, ViettelPay... bằng cổng thanh toán VNPay…
MỤC LỤC
DANH MỤC SƠ ĐỒ, HÌNH
DANH MỤC CÁC BẢNG
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
LỜI MỞ ĐẦU
Ngày nay, ứng dụng công nghệ thông tin và việc tin học hóa được xem là những
yếu tố mang tính quyết định trong hoạt động của các chính phủ, tổ chức cũng như các
cơng ty, nó đóng vai trị hết sức quan trọng, có thể tạo ra những bước đột phá mạnh mẽ.
Bằng Internet, chúng ta đã thực hiện được rất nhiều công việc với tốc độ nhanh hơn và
chi phí thấp hơn rất nhiều so với các 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ử trên khắp thế giới, làm biến đổi đáng kể
về bộ mặt văn hóa, nâng cao chất lượng cuộc sống con người.
1. Lý do chọn đề tài
Trong xu thế phát triển mạnh mẽ của thương mại điện tử trên thế giới, các doanh
nghiệp Việt Nam đặc biệt là các doanh nghiệp vừa và nhỏ, bộ phận chiếm tỷ lệ lớn trong
tổng số các doanh nghiệp Việt Nam, cũng đã bước đầu nhận thức được ích lợi và tầm
quan trọng của việc ứng dụng thương mại điện tử. Tuy nhiên, do còn nhiều hạn chế trong
nhận thức của bản thân các doanh nghiệp cũng như các điều kiện cơ sở hạ tầng, việc ứng
dụng thương mại điện tử trong các doanh nghiệp vừa và nhỏ ở Việt Nam có thể nói mới ở
mức độ sơ khởi. Vì thế, các doanh nghiệp vừa và nhỏ cần xây dựng cho mình một chiến
lược kinh doanh phù hợp với điều kiện kinh tế hiện nay nhằm tiếp cận nhiều hơn nữa với
thương mại điện tử để có thể khai thác tối đa lợi ích mà phương thức kinh doanh này đem
lại.
Ngày nay, các cửa hàng trực tuyến xuất hiện càng nhiều. Cửa hàng trực tuyến sẽ
đem lại nhiều lợi ích về cho người sử dụng. Đối với doanh nghiệp, tiết kiệm được không
gian trưng bày sản phẩm, tiết kiệm được nguồn nhân lực, tiết kiệm chi phí mặt bằng...
Đối với khách hàng tiết kiệm được thời gian đi lại, lựa chọn được những sản phẩm ưu
thích… Đây cũng là lý do để em chọn đề tài “Thiết kế và xây dựng website thương mại
điện tử” làm đề tài tốt nghiệp. Và còn 1 lý do thứ 2 là bản thân em đang chuẩn bị kinh
doanh thương mại điện tử về mặt hàng áo local brand.
Nguyễn Văn Hiếu
15
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
2. Cơ sở khoa học và thực tiễn
Thiết kế và xây dựng để tạo ra được website bán hàng đáp ứng và phục vụ nhu cầu
của con người, có thể mua hàng mọi lúc, mọi nơi… Giúp cho việc quản lý sản
phẩm thuận tiện hơn. Qua đó, có thể nâng cao kiến thức, kỹ năng lập trình của bản
thân, đồng thời hoàn thành đồ án tốt nghiệp.
3. Mục tiêu đề tài
-
Hiểu biết hình thức kinh doanh thương mại điện tử.
Hiểu biết về các giải pháp xây dựng một website thương mại điện tử.
Xây dựng một website mang lại thuận tiện cho người dùng tiết kiệm thời gian
-
khi có nhu cầu mua một sản phẩm.
Xây dựng website giúp cho bản thân quản lý thông tin một cách trực quan,
thuận tiện
4. Phương pháp thực hiện
-
Tìm hiểu thơng tin: Tìm hiểu các tài liệu nghiên cứu, giáo trình, các bài viết,
-
các video hướng dẫn trên youtube và các nguồn thông tin trên Internet
Phương pháp lấy ý kiến chuyên gia: Lấy ý kiến giản viên trực tiếp hướng dẫn
và các chuyên gia khác để có thể hồn thành về mặt nội dung cũng như hình
-
thức của đề tài.
Phương pháp phân tích và tổng hợp: tổng hợp các lý thuyết về lập trình
5. Đối tượng và phạm vi nghiên cứu
-
Đối tượng mà đề tài hướng đến tất cả các cá nhân hoặc các cửa hàng nhỏ.
Website bán áo local brand được xây dựng với tiêu chí phục vụ cho học sinh,
-
sinh viên, nhân viên văn phòng. Lứa tuổi từ 12-30 tuổi.
Phạm vi của đề tài: Với khoảng thời gian có hạn nên em đã giới hạn phạm vi
nghiên cứu ở một mức độ hợp lý cho mình:
• Hình thức kinh doanh thương mại điện tử
• Xây dựng các chức năng cho khách hàng
• Xây dựng các chức năng cho quản trị
Đề tài xây dựng dành cho bản thân em, đề tài tự tìm hiểu nghiên cứu xây dựng
thành.
Nguyễn Văn Hiếu
16
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
6. Bố cục báo cáo
-
Chương 1: Tổng quan tài liệu
Chương 2: Phương pháp thực hiện
Chương 3: Cài đặt thử nghiệm, kết quả, đánh giá
Chương 4: Kết luận và hướng phát triển
Nguyễn Văn Hiếu
17
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
Chương 1: Tổng Quan Tài Liệu
1.1 Tổng quan
Các công việc, dự án trước đây và dự án tốt nghiệp hiện tại tất cả đều muốn
thực hiện nội dung yêu cầu chương trình học đề ra, muốn hồn thành một
sản phẩm trong ngành cơng nghệ thơng tin này chính đơi tay, cơng sức của
bản thân mình. Để hiểu rõ hơn những sự hay ho, khó khăn, lợi ích mà cơng
nghệ mang lại cho bản thân cũng như cho xã hội.
Sự khác nhau giữa công việc, dự án trước đây và dự án hiện tại: Mục đích
của các dự dán trước đây là chủ yếu là để hoàn thành yêu cầu mơn học, để
có sản phẩm phục vụ cho việc báo cáo mơn học và học tập là chính. Cịn dự
án hiện tại khác ở việc dự án này mang tính thực tế hơn, mục đích rõ ràng
hơn. Vì tính ứng dụng của dự án này cho cá nhân bản thân em, cá nhân em
chuẩn bị kinh doanh bán áo bằng hình thức thương mại điện tử.
1.2 Cơ sở lý thuyết
1.2.1 Giới thiệu thương mại điện tử
Thương mại điện tử (Cịn được gọi là E-commerce hay E-Business) là quy
trình mua bán hàng hóa và dịch vụ thơng qua các phương tiện điện tử và
mạng viễn thông, đặc biệt là qua máy tính và mạng Internet.
Theo khái niện này, thương mại điện tử không chỉ là bán hàng trên mạng
hay bán hàng trên Internet mà là hình thái hoạt động kinh doanh bằng các
phương pháp điện tử. Hoạt động kinh doanh bao gồm tất cả các hoạt động
trong kinh doanh như giao dịch, mua bán, thanh toán, đặt hàng, quảng cáo
và kể cả giao hàng. Các phương pháp điện tử ở đây khơng chỉ có Internet
mà bao gồm việc sử dụng các phương tiện công nghệ điện tử như điện
thoại, máy Fax, truyền hình và mạng máy tính.
Các phương tiện điện tử trong Thương mại điện tử:
- Điện thoại
- Máy Fax
- Truyền hình
- Hệ thống thanh tốn điện tử
Nguyễn Văn Hiếu
18
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
Các hình thức hoạt động Thương mại điện tử:
-
Thư tín điện tử (E-mail)
Thanh toán điện tử
Trao đổi dữ liệu điện tử (EDI)
Trao đổi số hóa các dung liệu
Mua bán hàng hóa hữu hình
Thương mại điện tử hiện nay đã trở nên khá quen thuộc và trở thành một
môi trường thương mại không thể thiếu được trong đời sống kinh tế xã hội
phát triển. Ở Việt Nam, Thương mại điện tử đang được các doanh nghiệp
từng bước áp dụng vào hoạt động sản xuất kinh doanh của mình. Thương
mại điện tử có những thế mạnh vượt trội mà khơng một loại hình kinh
doanh nào khác có được.
1.2.2 Các ưu điểm của Website Thương mại điện tử
Ưu điểm tuyệt đối của Thương mại điện tử là cho phép người sử dụng thực
hiện các hoạt động kinh doanh ngay lập tức trên quy mơ tồn cầu, từ việc quảng cáo cơng
ty, tiếp thị sản phẩm, đàm phán và đặt hàng cho đến các khâu thanh toán, giữ liên hệ với
khách hàng và hỗ trợ sau bán hàng. Bởi vì:
1.2.2.1 Thương mại điện tử giúp người bán
-
Tiếp thị hiệu quả sản phầm và dịch vụ của mình ra khắp thế giới
Tạo kênh bán hàng trực tiếp tới khách hàng với quy mô rộng, tốc độ
-
nhanh và chi phí giảm rất nhiều so với các kênh truyền thống khác
Mở ra khả năng xuất khẩu hàng ra nước ngồi
Đơn giản hóa được các thủ tục hành chính, các cơng việc giấy tờ,
-
tăng hiệu quả giao dịch thương mại
Với Website Thương mại điện tử, doanh nghiệp tạo cho mình khả
năng kinh doanh liên tục 24/24 giờ, liên tục 7 ngày trong tuần với
chi phí thấp. Khơng cần nhân viên giám sát khách hàng như tại các
siêu thị bình thường, khơng cần bỏ tiền th địa điểm bán hàng,
không cần hệ thống kiểm tra, giới thiệu sản phẩm, không cần hệ
Nguyễn Văn Hiếu
19
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
thống tính tiền...Tất cả đều được Website làm tự động, rất nhanh
-
chóng với độ chính xác tuyệt đối.
Tại cùng 1 thời điểm, Website Thương mại điện tử có thể phục vụ
hàng triệu lượt người mua hàng ở khắp nơi trên thế giới với các yêu
cầu rất khac nhau về thông tin sản phẩm, loại sản phẩm, giá cả, hình
-
ảnh, chất lượng, mẫu mã, …
Thông tin, giá cả sản phẩm được cập nhật, thay đổi một cách tức thời
-
theo sự biến động của thị trường.
Website Thương mại điện tử đem lại khả năng kinh doanh mới cho
doanh nghiệp: “Kinh doanh ngay cả khi bạn đang ngủ”.
1.2.2.2 Thương mại điện tử giúp người mua
-
Có thêm một hình thức mua hàng thuận tiện, dễ dàng, nhanh chóng.
Có thêm một hình thức thanh tốn mới tiện lợi, an toàn.
Mở rộng sự lựa chọn khi mua hàng theo thị hiếu và nhu cầu.
Có cơ hội mua sản phẩm và dịch vụ trực tiếp từ nhà sản xuất hoặc
-
nhà cung cấp chính khơng qua trung gian.
Người mua thực sự trở thành người chủ với toàn quyền lựa chọn sản
phẩm theo nhu cầu, so sánh giá cả, đặt mua hàng với hệ thống tính
tốn tiền tự động, đầy đủ, rõ ràng, trung thực và chính xác nhất.
1.3. Kỹ Thuật
1.3.1 Ngơn ngữ Java:
-
Java là ngơn ngữ lập trình hướng đối tượng, đa mục đích có khả năng làm
việc trong hầu như bất kỳ nền tảng nào mà không cần biên dịch lại.Đặc
trưng này đã được thể hiện trong câu slogan của nó “Viết một lần ,chạy mọi
-
nơi.”, và Java là một Platform (nền tảng)
Là một ngôn ngữ lập trình hướng đối tượng vì vậy Java cũng có 4 đặc điểm
chung: Tính đóng gói, Tính kế thừa, Tính trừu tượng, Tính đa hình.
1.3.2 Restful API:
-
Restful API là những API của web service sử dụng theo chuẩn Restful, các
API được tạo ra trước và áp dụng chuẩn RestFul giúp các ứng dụng (web,
Nguyễn Văn Hiếu
20
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
mobile...) khác nhau giao tiếp với nhau dễ dàng. Bất kỳ một ngơn ngữ lâp
trình hay framework nào cũng có thể sử dụng để thiết kế một Restful API vì
-
nó không quy định logic code và giới hạn ngôn ngữ.
Cách thức hoạt động cơ bản của Restful API dựa trên giao thức HTTP. Mỗi
-
hoạt động khác nhau cơ bản sẽ có những phương thức HTTP riêng:
GET:Trả về một resource hoặc 1 danh sách resource
POST:Tạo mới 1 resource
PUT: Chỉnh sửa 1 resource
DELETE: Xóa một resource
CRUD là cụm từ để chỉ những phương thức hay hoạt động tương ứng với
Create, Read, Update, Delete
1.3.3 Framework Spring Boot:
-
Spring là một framework được ra đời để giúp các nhà phát triển có thể xây
dựng hệ thống và chạy ứng dụng trên JVM một cách thuận tiện, đơn giản
và nhanh chóng.Đây là một mã nguồn mở được phát triển và rất nhiều
-
người sử dụng.
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.
1.3.4 Angular:
-
Angular là 1 JavaScript framework dùng để viết giao diện web
(Front-end), được phát triển bởi google.
Angular sử dụng ngôn ngữ typescript để viết
Thế mạnh của Angular là xây dựng các Single Page Application (SPA)
Angular mang đến một kiến trúc rất rõ ràng, dựa trên 3 yếu tố chính: class,
các dependency được thêm vào và mơ hình MVVM (model-viewview/model)
Nguyễn Văn Hiếu
21
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
1.3.5 Angular CLI
-
Angular CLI là 1 Tool được phát triển để chạy trên giao diện cửa sổ ứng
dụng (command line Interface hay gọi là CLI) nhằm giúp đỡ việc tạo dự án,
quản lý tập tin trong dự án và thực hiện nhiều tác vụ khác nhau như test
-
(kiểm thử), bundle và deploy dự án 1 cách nhanh chóng và hiệu quả.
Chúng ta sử dụng tool Angular CLI để giúp chúng ta tạo dự án một cách
nhanh chóng.Nó tự động cấu hình các file và package của dự án Angular
cho chúng ta một cách tự động.Ngoài ra chúng ta sử dụng Angular CLI để
tạo các Components, directive hay service vào dự án chỉ bằng 1 dòng lệnh
1.3.6 NodeJS
-
NodeJS là một nền tảng được xây dựng trên V8 JavaScript Engine – trình
thơng dịch thực thi mã JavaScript chạy cực nhanh trên trình duyệt Chrome,
-
giúp xây dựng các ứng dụng web một cách đơn giản và dễ dàng mở rộng.
NodeJS được viết bằng JavaScript với cộng đồng người dùng lớn mạnh
Chạy đa nền tảng, tốc độ xử lý nhanh. Nhờ cơ chế xử lý bất đồng bộ (nonblocking), NodeJS có thể xử lý hàng ngàn kết nối cùng một lúc mà không
gặp bất cứ khó khăn nào.
1.3.7 Framework Spring JPA và Hibernate
-
Spring Data JPA là 1 phần của Spring Data, giúp dễ dàng triển khai các kho
lưu trữ dựa trên JPA.Mô-đun này đề cập đến hỗ trợ nâng cao cho các lớp
truy cập dữ liệu dựa trên JPA.Nó làm cho việc xây dựng các ứng dụng dựa
-
trên Spring sử dụng công nghệ truy cập dữ liệu trở nên dễ dàng hơn.
Trong JPA mỗi một lớp Entity sẽ tương ứng với 1 bảng trong cơ sở dữ
-
liệu .Có rất nhiều bảng trong cơ sở dữ liệu vì vậy sẽ có rất nhiều lớp Entity
Theo quy tắc của Spring Data JPA ta chỉ cần định nghĩa 1 interface extend
interface Repository<T, ID> và khai báo các phương thức để thao tác với
-
dữ liệu của Entity này.
Hibernate vốn là 1 thư viện sinh ra để làm việc với mọi loại DB,nó khơng
phụ thuộc vào ta chọn loại DB nào .Nếu Java là “Viết 1 lần chạy mọi nơi”
thì Hibernate là “Viết 1 lần chạy trên mọi loại DB”.
Nguyễn Văn Hiếu
22
Thiết kế và xây dựng website bán áo local brand
-
GVHD:TS.Hoàng Anh
Hibernate là 1 trong những ORM Framework, giúp các lập trình viên viết
ứng dụng Java có thể map các object (POJO) với database và hỗ trợ thực
-
hiện các khái niệm lập trình hướng đối tượng với cơ sở dữ liệu quan hệ.
Hibernate giúp lưu trữ và truy vấn dữ liệu quan hệ mạnh mẽ và nhanh.
1.3.8 Spring Security
-
Spring Security là một dự án nổi bật trong hệ sinh thái Spring. Spring
Security cung cấp các dịch vụ bảo mật toàn diện cho các ứng dụng doanh
-
nghiệp có nền tảng Java EE.
Spring Security cung cấp 2 cơ chế cơ bản:
-
Authentication (xác thực): là tiến trình thiết lập một principal. Principal có
thể hiểu là một người, hoặc một thiết bị, hoặc một hệ thống nào đó có
thể thực hiện một hành động trong ứng dụng của bạn.
-
Authorization (phân quyền) hay Access-control: là tiến trình quyết định
xem một principal có được phép thực hiện một hành động trong ứng dụng
của bạn hay không. Trước khi diễn tiến tới Authorization, principal cần phải
được thiết lập bởi Authentication.
Các thành phần cốt lõi:
-
SecurityContext và Authentication:
- SecurityContext là interface cốt lõi của Spring Security, lưu trữ tất cả
các chi tiết liên quan đến bảo mật trong ứng dụng. Khi chúng ta kích
hoạt Spring Security trong ứng dụng thì SecurityContext cũng sẽ được
-
kích hoạt theo.
Chúng ta sẽ khơng truy cập trực tiếp vào SecurityContext, thay vào đó
sẽ sử dụng lớp SecurityContextHolder. Lớp này lưu trữ security
context hiện tại của ứng dụng, bao gồm chi tiết của principal đang tương
tác
-
với
ứng
dụng.
Spring
Security
sẽ
dùng
một
đối
tượng Authentication để biểu diễn thông tin này.
UserDetails và UserDetailsService:
Nguyễn Văn Hiếu
23
Thiết kế và xây dựng website bán áo local brand
-
GVHD:TS.Hoàng Anh
UserDetails là một interface cốt lõi của Spring Security. Nó đại diện
cho một principal nhưng theo một cách mở rộng và cụ thể hơn. Vậy
UserDetails cung cấp cho ta những thơng tin gì? UserDetails bao gồm
các method sau:
-
getAuthorities (): trả về danh sách các quyền của người dùng
-
getPassword (): trả về password đã dùng trong qúa trình xác thực
-
getUsername (): trả về username đã dùng trong qúa trình xác thực
-
isAccountNonExpired (): trả về true nếu tài khoản của người dùng chưa
hết hạn
-
isAccountNonLocked (): trả về true nếu người dùng chưa bị khóa
-
isCredentialsNonExpired (): trả về true nếu chứng thực (mật khẩu) của
người dùng chưa hết hạn
-
isEnabled (): trả về true nếu người dùng đã được kích hoạt
-
UserDetailsService là một interface có duy nhất một phương thức:
UserDetails
loadUserByUsername
(String
username)
throws
UsernameNotFoundException;
-
Ở phần trên, mình đã đề cập đến phương thức getAuthorities(). Phưong
thức này sẽ trả về một tập hợp các đối tượng GrantedAuthority. Một
GrantedAuthority là một quyền được ban cho principal. Các quyền đều
có tiền tố là ROLE_, ví dụ như ROLE_ADMIN, ROLE_MEMBER ...
Nguyễn Văn Hiếu
24
Thiết kế và xây dựng website bán áo local brand
GVHD:TS.Hoàng Anh
1.3.9 JWT (Json Web Token)
-
JWT là một chuỗi mã hóa được gửi kèm trong Header của client request
có tác dụng giúp phía server xác thực request người dùng có hợp lệ hay
không.Được sử dụng phổ biến trong các hệ thống API ngày nay.
Cấu trúc của 1 Jwt gồm 3 phần:
-
Header(eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9): Phần này sẽ
-
chứa kiểu dữ liệu, và thuật toán sử dụng để mã hóa ra chuỗi JWT
Payload(eyJzdWIiOiJuaHMzMTA4IiwiZXhwIjoxNTU4MDYzOD
M3fQ): Phần này sẽ chứa các thơng tin mình muốn đặt trong chuỗi
-
Token như username, userId, author…
Signature(449KVmOFWcpOUjnYGm-f1QWhY8NDerKDfTK0JQm1Nc): Phần này sẽ được tạo ra bằng cách mã hóa
-
phần header, payload kèm theo một chuỗi secret (khóa bí mật).
3 phần này được phân cách bởi dấu chấm
1.3.10 Cơ sở dữ liệu MySQL
MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (Relational Database
Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server.
MySQL hoạt động theo mơ hình client-sever:
Hình 1:Mơ hình client-server
Một máy client sẽ liên lạc với máy server trong một mạng nhất định. Mỗi client có
thể gửi một request từ giao diện người dùng (Graphical user interface – GUI) trên
màn hình, và server sẽ trả về kết quả như mong muốn.
Nguyễn Văn Hiếu
25