lOMoARcPSD| 59114765
ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN ---------------
ĐỒ ÁN CÔNG NGHỆ 4.0
ĐỀ TÀI : ĐỒ ÁN TIỀN GIẢI THUẬT VÀ CÔNG NGHỆ
BLOCKCHAIN
SINH VIÊN THỰC HIỆN : HÀ DUY TÙNG
LỚP : TH27.01
MSV : 2722240517
Hà Nội , 2025
lOMoARcPSD| 59114765
Mục Lục
CHƯƠNG 1: GIỚI THIỆU..................................................................................3
1.1 Đặt vấn đề....................................................................................................3
1.2 Giải pháp.....................................................................................................3
1.3 Mục tiêu đề tài .......................................................................................................... 4
1.3.2 Mục tiêu ................................................................................................................. 4
1.3.3 Phạm vi..................................................................................................3 .............. 5
1.3.4 Phương pháp nghiên cứu ....................................................................................... 5
1.3.1 Lý thuyết................................................................................................3
CHƯƠNG 2: CƠ SỞTHUYẾT.....................................................................4
2.1 HTML..........................................................................................................5
2.2 CSS..............................................................................................................6
2.3 Tailwind.......................................................................................................7
2.4 Typescript....................................................................................................8
2.5 React............................................................................................................9
2.6 Expressjs....................................................................................................10
2.7 Blockchain.................................................................................................11
2.8 Ethereum....................................................................................................13
2.9 Hardhat......................................................................................................13
CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU..............................................14
3.1 Danh sách người dùng...............................................................................15
3.2 Danh sách Usecase....................................................................................15
3.2.1 Người tuyển dụng................................................................................15
lOMoARcPSD| 59114765
3.2.2 Người trung gian (miner)....................................................................15
3.3 Đặng tả Usecase........................................................................................16
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN..............................................................20
4.1 Đặng nhập..................................................................................................21
4.2 Đăng ký.....................................................................................................21
4.3 Trang chủ...................................................................................................21
4.4 Tìm kiếm...................................................................................................22
4.5 Thông tin chi tiết.......................................................................................23
4.6 Thông tin giỏ hàng.....................................................................................23
CHƯƠNG 5: KẾT LUẬN..................................................................................25
5.1 Tổng kết.....................................................................................................25
5.2 Khó khăn...................................................................................................25
5.3 Hạn chế......................................................................................................25
5.4 Hướng phát triển........................................................................................25
TÀI LIỆU THAM KHẢO..................................................................................26
lOMoARcPSD| 59114765
CHƯƠNG 1: GIỚI THIỆU
1.1 Đặt vấn đề
Hiện nay, nhu cầu tuyển dụng việc làm ngày càng gia tăng và đồng thời nhu cầu
tìm kiếm việc làm phù hợp với bản thân mỗi người ngày càng nhiều.
1.2 Giải pháp
Để giải quyết vấn đề trên, nhóm chúng em quyết định chọn đề tài - xây dựng ứng
dụng Blockchain hỗ trợ tuyển dụng việc làm để giúp các công ty tiếp cận các đối tượng
tuyển dụng của mình dễ hơn và đồng thời giúp người tìm kiếm việc làm dễ dàng kiếm
việc phù hợp với bản thân hơn. Ứng dụng của tụi em sẽ giúp người dùng tìm kiếm đúng
đối tượng mà thông tin đã được xác thực.
1.3 Mục tiêu đề tài
1.3.1 Lý thuyết
Tìm hiểu và nghiên cứu Blockchain, React, Tailwind, Expressjs.
Nắm rõ các thao tác trên Visual studio code.
Nghiên cứu các website tuyển dụng việc làm hiện trên thị trường như topcv,
careerbuilder,...
1.3.2 Mục tiêu
Thiết kế giao diện bắt mắt, dễ sử dụng cho người dùng.
Đảm bảo tính năng an toàn và bảo mật.
Tối ưu hoá các chức năng của ứng dụng.
Người tuyển dụng dễ dàng tìm kiếm nhân lực.
Người dùng tự đánh giá năng lực của nhân lực.
lOMoARcPSD| 59114765
1.3.3 Phạm vi
Phạm vi môi trường: triển khai trên website.
Đối tượng sử dụng: người tuyển dụng có nhu cầu tuyển nhân sự.
Phạm vi chức năng:
o Người dùng tìm kiếm các được các đối tượng phù hợp.
o Người tuyển dụng có thẻ đánh giá độ uy tín của miner.
1.3.4 Phương pháp nghiên cứu
Phương pháp làm việc: làm nhóm 2 người thông qua hình thức offline và online qua
google meeting dưới sự hướng dẫn của giảng viên.
Phương pháp nghiên cứu:
o Khảo sát và nghiên cứu nhu cầu tìm kiếm nhân lực tìm kiếm việc làm của mọi người.
o Nghiên cứu các tài liệu và công nghệ liên quan đến đề tài như: Blockchain, React,....
o Tham khảo các website tuyển dụng việc làm hiện có như: topcv, careerbuilder,... để tối
ưu hoá website.
Phương pháp công nghệ:
o Tìm hiểu các ngôn ngữ và framework liên quan đến đề tài.
o Xây dựng giao diện website để tương tác người dùng nhận phản hồi, sửa chữa nếu
cần thiết.
o Tìm hiểu các thư viện hỗ trợ cho dự án.
lOMoARcPSD| 59114765
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 HTML
HTML viết tắt của cụm từ Hypertext Markup Language (tạm dịch Ngôn ngữ
đánh dấu siêu văn bản). HTML được sử dụng để tạo và cấu trúc các thành phần trong
trang web hoặc ứng dụng, phân chia các đoạn văn, heading, titles, blockquotes…
HTML không phải là ngôn ngữ lập trình.
Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được
quy định bằng các cặp thẻ (tag attributes). Các cặp thẻ này được bao bọc bởi một
dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báo thành một cặp, bao gồm
thẻ mở và thẻ đóng. dụ, chúng ta thể tạo một đoạn văn bằng cách đặt văn bản vào
trong cặp tag mở và đóng văn bản <p></p>
Ưu điểm:
a. Được sử dụng rộng rãi, rất nhiều nguồn tài nguyên hỗ trợ cộng đồng sử dụng lớn.
b. Học đơn giản và dễ hiểu.
c. Mã nguồn mở và hoàn toàn miễn phí.
d. Markup gọn gàng và đồng nhất.
e. Tiêu chuẩn thế giới được vận hành bởi World Wide Web Consortium (W3C).
f. Dễ dàng tích hợp với các ngôn ngữ backend như PHP, Python…
lOMoARcPSD| 59114765
Khuyết điểm:
g. Được dùng chủ yếu cho web tĩnh. Đối với các tính năng động như update hay realtime
thời gian thực, bạn cần sử dụng JavaScript hoặc ngôn ngữ backend bên thứ 3 như PHP.
h. Một số trình duyệt chậm hỗ trợ tính năng mới.
2.2 CSS
CSS chữ viết tắt của Cascading Style Sheets, nó một ngôn ngữ được sử dụng
để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML).
Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web
Mối tương quan giữa HTML và CSS rất mật thiết. HTMLngôn ngữ markup (nền
tảng của site) CSS định hình phong cách (tất cả những tạo nên giao diện website),
chúng là không thể tách rời.
2.3 Tailwind
Tailwind là một utility-first CSS framework giúp cho bạn xây dựng giao diện người
dùng một cách nhanh nhất. Tailwind CSS được phát hành lần đầu tiên vào tháng
10/2019 được phát triển bởi Adam Wathan. Nếu so sánh với các nền tảng lập trình CSS
khác như Bootstrap, Materialize, Foundation, Material Design… thì giữa chúng
điểm chung với nhau.
lOMoARcPSD| 59114765
Ưu điểm:
Xây dựng giao diện chỉ cần khai báo class trên file html
Chỉ xuất ra những file css chứa những class đã sử dụng trong giao diện.
Dễ dàng thiết lập Responsive ngay trên file html
Hỗ trợ tương tác hover, focus… ngay trên class html
Tối ưu những cấu trúc html css có tính lặp lại
Định nghĩa thêm class mới được phối hợp bởi các class có sẵn trong tailwind
Hỗ trợ chế độ tối Dark Mode
Dễ dàng mở rộng, chỉnh sửa và biến đổi
Tăng tốc độ code với Extension thông minh trên VS Code.
2.4 Typescript
Typescript một ngôn ngữ được Microsoft tặng free cho chúng ta, nền tảng của
TypeScript ít nhiều cũng sự liên quan đến JavaScript một ngôn ngữ
lOMoARcPSD| 59114765
nguồn mở của JavaScript. Vai trò của TypeScript dùng để thiết kế xây dựng các
dự án ứng dụng quy mô lớn mang tính chất phức tạp.
TypeScript được xem một phiên bản nâng cao hơn của JavaScript được thiết
kế thêm nhiều chức năng tiện lợi hơn, cải tiến hơn từ những điểm yếu của JavaScript
như các lớp hướng đối tượng Static Structural typing, bên cạnh đó TypeScript còn
có thể hoạt động rộng rãi cho các ứng dụng của ngôn ngữ Angular2 và Nodejs.
Ưu điểm:
Thuận tiện và hoàn toàn miễn phí
Thao tác nhanh chóng và đơn giản
Tái cấu trúc
Giảm tỷ lệ mắc lỗi trong hệ thống
Hợp nhất mã đơn giản
Nhược điểm:
Bắt buộc dùng biên dịch
lOMoARcPSD| 59114765
Bước thiết lập cồng kềnh
Chỉ là phần ngôn ngữ mở rộng hỗ trợ.
2.5 React
React một opensource được phát triển bởi Facebook, ra mắt vào năm 2013,
bản thân nó một thư viện Javascript được dùng để đxây dựng các tương tác với các
thành phần trên website. Một trong những điểm nổi bật nhất của ReactJS đó việc
render dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa.
ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện
người dùng hay UI. Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải
làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng. UI là tập
hợp những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ
thể kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,… Giả sử bạn đang
lập trình một website thương mại điện tử, sau khi người dùng chọn được sản phẩm ưng
ý rồi và nhấn vào nút “Thêm vào giỏ hàng”, thì việc tiếp theo bạn phải làm đó
thêm sản phẩm được chọn vào giỏ hàng hiển thị lại sản phẩm đó khi user vào xem
=> xử lý tương tác.
lOMoARcPSD| 59114765
Trước khi có ReactJS, lập trình viên thường gặp rất nhiều khó khăn trong việc sử dụng
“vanilla JavaScript”(JavaScript thuần) và JQuery để xây dựng UI. Điều đó đồng nghĩa
với việc quá trình phát triển ứng dụng sẽ lâu hơn và xuất hiện nhiều bug, rủi ro hơn. Vì
vậy vào năm 2011, Jordan Walke một nhân viên của Facebook đã khởi tạo ReactJS
với mục đích chính là cải thiện quá trình phát triển UI.
2.6 Expressjs
Expressjs hay còn được viết là Express js, Express.js. Đây một framework nguồn
mở miễn phí cho Node.js. Express.js được sử dụng trong thiết kế và xây dựng các ứng
dụng web một cách đơn giản và nhanh chóng.
Express js chỉ yêu cầu ngôn ngữ lập trình Javascript nên việc xây dựng các
ứng dụng web API trở nên đơn giản hơn với các lập trình viên nhà phát
triển.Expressjs cũng một khuôn khổ của Node.js do đó hầu hết các mã code đã được
viết sẵn cho các lập trình viên có thể làm việc.
Nhờ Expressjs mà các nhà lập trình thdễ dàng tạo các ứng dụng 1 web,
nhiều web hoặc kết hợp. Do dung lượng khá nhẹ, Expressjs giúp cho việc tổ chức
các ứng dụng web thành một kiến trúc MVC tổ chức hơn.Để thể sdụng được
mã nguồn này, chúng ta cần phải biết về Javascript và HTML.
Expressjs cũng một phần của công nghệ giúp quản các ứng dụng web một
cách dễ dàng hơn hay còn được gọi ngăn xếp phần mềm MEAN.Nhờ tviện
Javascript của Express js đã giúp cho các nhà lập trình xây dựng nên các ứng dụng web
lOMoARcPSD| 59114765
hiệu quả nhanh chóng hơn. Expressjs cũng được sử dụng để nâng cao các chức năng
của Node.js.
Trên thực tế, nếu không sử dụng Express.js, bạn sẽ phải thực hiện rất nhiều bước
lập trình phức tạp để xây dựng nên một API hiệu quả. Express js đã giúp cho việc lập
trình trong Node.js trở nên dễ dàng hơn và có nhiều tính năng mới bổ sung.
2.7 Blockchain
Blockchain công nghệ chuỗi khối, cho phép truyền tải dữ liệu một cách an toàn dựa
trên hệ thống hóa vô cùng phức tạp, tương tự như cuốn sổ cái kế toán của một công
ty, nơi tiền được giám sát chặt chẽ ghi nhận mọi giao dịch trên mạng ngang hàng.
Mỗi khối (block) đều chứa thông tin về thời gian khởi tạo được liên kết với khối
trước đó, kèm theo đó một thời gian và dữ liệu giao dịch. Dữ liệu khi đã được
mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được. Blockchain được thiết kế
để chống lại việc gian lận, thay đổi của dữ liệu.
Công nghệ Blockchain – sự kết hợp giữa 3 loại công nghệ:
- Mật học: để đảm bảo tính minh bạch, toàn vẹn riêng thì công nghệ
Blockchain đã sử dụng public key và hàm hash function.
lOMoARcPSD| 59114765
- Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client cũng
là server để lưu trữ bản sao ứng dụng.
- thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật
chơi đồng thuận (giao thức PoW, PoS,…) và được thúc đẩy bởi động lực kinh tế.
Blockchain có các đặc điểm nổi bật sau:
- Không thể làm giả, không thể phá hủy các chuỗi Blockchain: theo như
thuyết thì chỉ máy tính lượng tử mới thể giải Blockchain công nghệ
Blockchain biến mất khi không còn Internet trên toàn cầu.
- Bất biến: dữ liệu trong Blockchain không thể sửa (có thể sửa nhưng sẽ để lại
dấu vết) và sẽ lưu trữ mãi mãi.
- Bảo mật: Các thông tin, dliệu trong Blockchain được phân tán an toàn
tuyệt đối. - Minh bạch: Ai cũng thể theo dõi dữ liệu Blockchain đi từ địa chỉ này
tới địa chỉ khác và có thể thống kê toàn bộ lịch sử trên địa chỉ đó.
- Hợp đồng thông minh:hợp đồng kỹ thuật số được nhúng vào đoạn code if-
this-thenthat (IFTTT), cho phép chúng tự thực thi mà không cần bên thứ ba.
2.8 Ethereum
Ethereum nền tảng điện toán phân tán, nguồn mở dựa trên công nghệ chuỗi
khối (blockchain) khả năng thực thi hợp đồng thông minh (smart contract) - tức
điều khoản được ghi trong hợp đồng sẽ được thực thi một cách tđộng khi các điều
kiện trước đó được thỏa mãn, không ai có thể can thiệp vào.
Ethereum một dự án Blockchain Layer 1 cho phép nhiều các lập trình viên xây
dựng các ứng dụng phi tập trung (DApps) các tổ chức tự trị phi tập trung (DAOs).
Trong đó:
Các ứng dụng phi tập trung (DApps - Decentralized Application) là các phần mềm
được triển khai độc lập, không nằm trên một máy chủ duy nhất mà được lưu trữ một
lOMoARcPSD| 59114765
cách phân tán trên các kho lưu trữ phi tập trung và có thể được viết bằng bất kỳ ngôn
ngữ nào.
Các tổ chức tự trị phi tập trung (DAOs - Decentralized Autonomous Organizations) là
một tổ chức được vận hành bởi các thành viên dựa trên một bộ quy tắc được mã hóa
bằng code. Tất cả các thành viên đều có quyền biểu quyết các quyết định quan trọng
của DAOs.
2.9 Hardhat
Hardhat một môi trường phát triển để biên dịch, triển khai, test debug Dapp
Ethereum.
Một số điểm tính năng nổi bật của Hardhat:
Tích hợp mạng local hardhat, dễ dàng chạy và debug code ngay trên local.
Debug dễ dàng hơn: Với Hardhat, chúng ta thể debug code Solidity dễ dàng hơn
khi có thể console.log ra các biến (Solidity vốn ko hỗ trợ console.log)
Hệ thống plugin: Giúp developer có thể bổ sung chức năng, tùy vào từng dự án cụ thể
Hỗ trợ TypeScript.
lOMoARcPSD| 59114765
CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU 3.1 Danh sách người dùng
- Phân tích yêu cầu người dùng Yêu cầu của khách hàng.
Giao diện dễ sử dụng và có tính thẩm mỹ cao.
Cho phép khách hang đăng ký thành viên và đảm bảo bí mật thong tin.
Xem và thay đổi các thong tin về tài khoản.
Hình thức thanh toán phải đảm bảo chính xác.
Việc chuyển tiền cũng phải đảm bảo chính xác: Khi chuyển tiền thì việc cộng trừ
tiền trong 2 tài khoản phải diễn ra đồng thời từ 2 tài khoản, tài khoản chuyển tài
khoản nhận.
Thông tin sản phẩm phong phú, đa dạng:
Giới thiệu, bày bán nhiều loại hang, nhiều mặt hang để khách hang nhiều cơ hội lựa
chọn về một loại mặt hàng. Thông tin về một sản phẩm phải chi tiết để khách hàng có
thể nắm bắt rõ thông tin về sản phẩm mình lựa chọn. Đặc biệt là những mặt hàng được
nhiều khách hàng quan tâm.
Luôn cập nhật, giới thiệu những mẫu giày mới nhất.
Thông tin về bảo hành sản phẩm phải rõ ràng.
Cho phép khách hàng tìm kiếm nhanh chóng, chính xác theo nhiều tiêu chí.
Cho phép thống kê các đơn hàng đã đặt của mình tại shop.
- Yêu cầu của người quản trị.
Ngoài các yêu cầu giống như của khách hàng, thì hệ thống phải đảm bảo những yêu
cầu sau của ban quản trị.
Quản lí chung: liên quan tới các thông tin nhân viên, khách hàng, hàng,..
Cập nhật thông tin hàng hóa trực tuyến
lOMoARcPSD| 59114765
Dễ dàng cập nhật và thường xuyên thay đổi hình ảnh, thông tin chi tiết giá các mặt
hàng bạn sẽ kinh doanh ở bất cứ đâu.
Quản lí các đơn hàng trực tuyến
lOMoARcPSD| 59114765
Quản lí, lưu trữ và báo cáo thong tin về đặt hang và trạng thái của đơn hàng: đã
xử lý, đã giao hàng chưa, đa thanh toán chưa …
Quản lí khách hàng
Lưu trữ các hoạt động gắn với các khách hàng của cửa hàng. Mọi hoạt động gắn với
khách hàng và đơn hàng đều có thể thực hiện từ xa, không phụ thuộc vào vị trí địa lý.
Thống kê chi tiết cụ thể, chính xác và nhanh chóng.
Thống được mặt hàng nào bán hết, mặt hàng nào bán chạy, mặt hàng nào
tồn kho, mặt hàng nào cần chỉnh sửa…
Tổng hợp thu chi hàng ngày, hàng tuần, hàng tháng hàng quý và hàng năm.
Tổng hợp lưu trữ được ý kiến phản ánh của khách hàng để có thể trả lới khách
hàng một cách nhanh chóng và chính xác nhất.
Cho phép in các danh sách , các thông tin cần thiết. - Yêu cầu của nhân viên:
Sản phẩm : Có thể thêm, sửa xóa thông tin, danh mục
Quản lý các module : định vị, chỉnh sửa , bật –tắt các module chức năng
Xem các báo cáo , thống kê, đơn đặt hàng
Nhận và phản hồi các yêu cầu của khách hàng
Quản lý các thông tin khác : khuyến mại, tin tức....
- Thiết kế hệ thống.
1) Xác định các Actor và Usecase của hệ thống:
Khách Hàng
Có các Usecase chính như:
- Đăng ký thành viên
lOMoARcPSD| 59114765
- Tìm kiếm sản phẩm:
o Tìm kiếm theo tên sản phẩm o Tìm kiếm theo mức giá o Tìm kiếm theo nhà cung
cấp …
- Đặt hàng, mua hàng: đăng nhập.
- Thanh toán: Trực tiếp tiền mặt, chuyển khoản, tài khoản ngân lượng..
Nhân Viên
Có các Usecase chính như:
- Quản lí danh mục sản phẩm
- Quản lí khách hàng
- Quản lí sản phẩm chi tiết
- Quản lí đơn hàng
- Báo cáo thống kê
Quản trị viên
- Quản lí nhân viên: o Thêm nhân viên o Sửa nhân viên o Xóa nhân viên
- Quản lí phân quyền
phân cấp chức năng
luồng dữ liệu mức bối cảnh
Thông tin mua hang
- Biểu đồ
L
Xem thông n
khoản
Chuyển khoản
nhập
khoản
ấn
Thng
Tìm
kiếm
hoá
Thng
hàng
Cập
nhập
hàng
hàng
Hiển
mặt
hàng
Cập
hàng
Đăng
nhập
dùng
luồng dữ liệu ở mức đỉnh
Thông
nhận
Thông
cập
nhật
Thông
đăng
đổi
qu
Thông
Account
đăng
nhập
qu
đăng
nhập
BÁN
HÀNG
TRỰC
TUYẾN
thng
kiếm,chuyển
Thông
góp
cảm

Preview text:

lOMoAR cPSD| 59114765
ĐẠI HỌC KINH DOANH VÀ CÔNG NGHỆ HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN ---------------
ĐỒ ÁN CÔNG NGHỆ 4.0
ĐỀ TÀI : ĐỒ ÁN TIỀN GIẢI THUẬT VÀ CÔNG NGHỆ BLOCKCHAIN
SINH VIÊN THỰC HIỆN : HÀ DUY TÙNG LỚP : TH27.01 MSV : 2722240517 Hà Nội , 2025 lOMoAR cPSD| 59114765 Mục Lục
CHƯƠNG 1: GIỚI THIỆU..................................................................................3
1.1 Đặt vấn đề....................................................................................................3
1.2 Giải pháp.....................................................................................................3
1.3 Mục tiêu đề tài .......................................................................................................... 4
1.3.2 Mục tiêu ................................................................................................................. 4
1.3.3 Phạm vi..................................................................................................3 .............. 5
1.3.4 Phương pháp nghiên cứu ....................................................................................... 5
1.3.1 Lý thuyết................................................................................................3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT.....................................................................4
2.1 HTML..........................................................................................................5
2.2 CSS..............................................................................................................6
2.3 Tailwind.......................................................................................................7
2.4 Typescript....................................................................................................8
2.5 React............................................................................................................9
2.6 Expressjs....................................................................................................10
2.7 Blockchain.................................................................................................11
2.8 Ethereum....................................................................................................13
2.9 Hardhat......................................................................................................13
CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU..............................................14
3.1 Danh sách người dùng...............................................................................15
3.2 Danh sách Usecase....................................................................................15
3.2.1 Người tuyển dụng................................................................................15 lOMoAR cPSD| 59114765
3.2.2 Người trung gian (miner)....................................................................15
3.3 Đặng tả Usecase........................................................................................16
CHƯƠNG 4: THIẾT KẾ GIAO DIỆN..............................................................20
4.1 Đặng nhập..................................................................................................21
4.2 Đăng ký.....................................................................................................21
4.3 Trang chủ...................................................................................................21
4.4 Tìm kiếm...................................................................................................22
4.5 Thông tin chi tiết.......................................................................................23
4.6 Thông tin giỏ hàng.....................................................................................23
CHƯƠNG 5: KẾT LUẬN..................................................................................25
5.1 Tổng kết.....................................................................................................25
5.2 Khó khăn...................................................................................................25
5.3 Hạn chế......................................................................................................25
5.4 Hướng phát triển........................................................................................25
TÀI LIỆU THAM KHẢO..................................................................................26 lOMoAR cPSD| 59114765
CHƯƠNG 1: GIỚI THIỆU 1.1 Đặt vấn đề
Hiện nay, nhu cầu tuyển dụng việc làm ngày càng gia tăng và đồng thời nhu cầu
tìm kiếm việc làm phù hợp với bản thân mỗi người ngày càng nhiều. 1.2 Giải pháp
Để giải quyết vấn đề trên, nhóm chúng em quyết định chọn đề tài - xây dựng ứng
dụng Blockchain hỗ trợ tuyển dụng việc làm để giúp các công ty tiếp cận các đối tượng
tuyển dụng của mình dễ hơn và đồng thời giúp người tìm kiếm việc làm dễ dàng kiếm
việc phù hợp với bản thân hơn. Ứng dụng của tụi em sẽ giúp người dùng tìm kiếm đúng
đối tượng mà thông tin đã được xác thực.
1.3 Mục tiêu đề tài 1.3.1 Lý thuyết
● Tìm hiểu và nghiên cứu Blockchain, React, Tailwind, Expressjs.
● Nắm rõ các thao tác trên Visual studio code.
● Nghiên cứu các website tuyển dụng việc làm hiện có trên thị trường như topcv, careerbuilder,... 1.3.2 Mục tiêu
● Thiết kế giao diện bắt mắt, dễ sử dụng cho người dùng.
● Đảm bảo tính năng an toàn và bảo mật.
● Tối ưu hoá các chức năng của ứng dụng.
● Người tuyển dụng dễ dàng tìm kiếm nhân lực.
● Người dùng tự đánh giá năng lực của nhân lực. lOMoAR cPSD| 59114765 1.3.3 Phạm vi
● Phạm vi môi trường: triển khai trên website.
● Đối tượng sử dụng: người tuyển dụng có nhu cầu tuyển nhân sự. ● Phạm vi chức năng:
o Người dùng tìm kiếm các được các đối tượng phù hợp.
o Người tuyển dụng có thẻ đánh giá độ uy tín của miner.
1.3.4 Phương pháp nghiên cứu
● Phương pháp làm việc: làm nhóm 2 người thông qua hình thức offline và online qua
google meeting dưới sự hướng dẫn của giảng viên.
● Phương pháp nghiên cứu:
o Khảo sát và nghiên cứu nhu cầu tìm kiếm nhân lực và tìm kiếm việc làm của mọi người.
o Nghiên cứu các tài liệu và công nghệ liên quan đến đề tài như: Blockchain, React,....
o Tham khảo các website tuyển dụng việc làm hiện có như: topcv, careerbuilder,... để tối ưu hoá website.
● Phương pháp công nghệ:
o Tìm hiểu các ngôn ngữ và framework liên quan đến đề tài.
o Xây dựng giao diện website để tương tác người dùng và nhận phản hồi, sửa chữa nếu cần thiết.
o Tìm hiểu các thư viện hỗ trợ cho dự án. lOMoAR cPSD| 59114765
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 HTML
HTML là viết tắt của cụm từ Hypertext Markup Language (tạm dịch là Ngôn ngữ
đánh dấu siêu văn bản). HTML được sử dụng để tạo và cấu trúc các thành phần trong
trang web hoặc ứng dụng, phân chia các đoạn văn, heading, titles, blockquotes… và
HTML không phải là ngôn ngữ lập trình.
Một tài liệu HTML được hình thành bởi các phần tử HTML (HTML Elements) được
quy định bằng các cặp thẻ (tag và attributes). Các cặp thẻ này được bao bọc bởi một
dấu ngoặc ngọn (ví dụ ) và thường là sẽ được khai báo thành một cặp, bao gồm
thẻ mở và thẻ đóng. Ví dụ, chúng ta có thể tạo một đoạn văn bằng cách đặt văn bản vào
trong cặp tag mở và đóng văn bản

Ưu điểm:
a. Được sử dụng rộng rãi, có rất nhiều nguồn tài nguyên hỗ trợ và cộng đồng sử dụng lớn.
b. Học đơn giản và dễ hiểu.
c. Mã nguồn mở và hoàn toàn miễn phí.
d. Markup gọn gàng và đồng nhất.
e. Tiêu chuẩn thế giới được vận hành bởi World Wide Web Consortium (W3C).
f. Dễ dàng tích hợp với các ngôn ngữ backend như PHP, Python… lOMoAR cPSD| 59114765 Khuyết điểm:
g. Được dùng chủ yếu cho web tĩnh. Đối với các tính năng động như update hay realtime
thời gian thực, bạn cần sử dụng JavaScript hoặc ngôn ngữ backend bên thứ 3 như PHP.
h. Một số trình duyệt chậm hỗ trợ tính năng mới. 2.2 CSS
CSS là chữ viết tắt của Cascading Style Sheets, nó là một ngôn ngữ được sử dụng
để tìm và định dạng lại các phần tử được tạo ra bởi các ngôn ngữ đánh dấu (HTML).
Nói ngắn gọn hơn là ngôn ngữ tạo phong cách cho trang web
Mối tương quan giữa HTML và CSS rất mật thiết. HTML là ngôn ngữ markup (nền
tảng của site) và CSS định hình phong cách (tất cả những gì tạo nên giao diện website),
chúng là không thể tách rời. 2.3 Tailwind
Tailwind là một utility-first CSS framework giúp cho bạn xây dựng giao diện người
dùng một cách nhanh nhất. Tailwind CSS được phát hành lần đầu tiên vào tháng
10/2019 được phát triển bởi Adam Wathan. Nếu so sánh với các nền tảng lập trình CSS
khác như Bootstrap, Materialize, Foundation, Material Design… thì giữa chúng có điểm chung với nhau. lOMoAR cPSD| 59114765 Ưu điểm:
● Xây dựng giao diện chỉ cần khai báo class trên file html
● Chỉ xuất ra những file css chứa những class đã sử dụng trong giao diện.
● Dễ dàng thiết lập Responsive ngay trên file html
● Hỗ trợ tương tác hover, focus… ngay trên class html
● Tối ưu những cấu trúc html css có tính lặp lại
● Định nghĩa thêm class mới được phối hợp bởi các class có sẵn trong tailwind
● Hỗ trợ chế độ tối Dark Mode
● Dễ dàng mở rộng, chỉnh sửa và biến đổi
● Tăng tốc độ code với Extension thông minh trên VS Code. 2.4 Typescript
Typescript Là một ngôn ngữ được Microsoft tặng free cho chúng ta, nền tảng của
TypeScript ít nhiều cũng có sự liên quan đến JavaScript vì nó là một ngôn ngữ mã lOMoAR cPSD| 59114765
nguồn mở của JavaScript. Vai trò của TypeScript là dùng để thiết kế và xây dựng các
dự án ứng dụng quy mô lớn mang tính chất phức tạp.
TypeScript được xem là một phiên bản nâng cao hơn của JavaScript vì nó được thiết
kế thêm nhiều chức năng tiện lợi hơn, cải tiến hơn từ những điểm yếu của JavaScript
như các lớp hướng đối tượng và Static Structural typing, bên cạnh đó TypeScript còn
có thể hoạt động rộng rãi cho các ứng dụng của ngôn ngữ Angular2 và Nodejs. Ưu điểm:
● Thuận tiện và hoàn toàn miễn phí
● Thao tác nhanh chóng và đơn giản ● Tái cấu trúc
● Giảm tỷ lệ mắc lỗi trong hệ thống
● Hợp nhất mã đơn giản Nhược điểm:
● Bắt buộc dùng biên dịch lOMoAR cPSD| 59114765
● Bước thiết lập cồng kềnh
● Chỉ là phần ngôn ngữ mở rộng hỗ trợ. 2.5 React
React là một opensource được phát triển bởi Facebook, ra mắt vào năm 2013,
bản thân nó là một thư viện Javascript được dùng để để xây dựng các tương tác với các
thành phần trên website. Một trong những điểm nổi bật nhất của ReactJS đó là việc
render dữ liệu không chỉ thực hiện được trên tầng Server mà còn ở dưới Client nữa.
ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựng giao diện
người dùng hay UI. Trong lập trình ứng dụng front-end, lập trình viên thường sẽ phải
làm việc chính trên 2 thành phần sau: UI và xử lý tương tác của người dùng. UI là tập
hợp những thành phần mà bạn nhìn thấy được trên bất kỳ một ứng dụng nào, ví dụ có
thể kể đến bao gồm: menu, thanh tìm kiếm, những nút nhấn, card,… Giả sử bạn đang
lập trình một website thương mại điện tử, sau khi người dùng chọn được sản phẩm ưng
ý rồi và nhấn vào nút “Thêm vào giỏ hàng”, thì việc tiếp theo mà bạn phải làm đó là
thêm sản phẩm được chọn vào giỏ hàng và hiển thị lại sản phẩm đó khi user vào xem => xử lý tương tác. lOMoAR cPSD| 59114765
Trước khi có ReactJS, lập trình viên thường gặp rất nhiều khó khăn trong việc sử dụng
“vanilla JavaScript”(JavaScript thuần) và JQuery để xây dựng UI. Điều đó đồng nghĩa
với việc quá trình phát triển ứng dụng sẽ lâu hơn và xuất hiện nhiều bug, rủi ro hơn. Vì
vậy vào năm 2011, Jordan Walke – một nhân viên của Facebook đã khởi tạo ReactJS
với mục đích chính là cải thiện quá trình phát triển UI. 2.6 Expressjs
Expressjs hay còn được viết là Express js, Express.js. Đây là một framework mã nguồn
mở miễn phí cho Node.js. Express.js được sử dụng trong thiết kế và xây dựng các ứng
dụng web một cách đơn giản và nhanh chóng.
Vì Express js chỉ yêu cầu ngôn ngữ lập trình Javascript nên việc xây dựng các
ứng dụng web và API trở nên đơn giản hơn với các lập trình viên và nhà phát
triển.Expressjs cũng là một khuôn khổ của Node.js do đó hầu hết các mã code đã được
viết sẵn cho các lập trình viên có thể làm việc.
Nhờ có Expressjs mà các nhà lập trình có thể dễ dàng tạo các ứng dụng 1 web,
nhiều web hoặc kết hợp. Do có dung lượng khá nhẹ, Expressjs giúp cho việc tổ chức
các ứng dụng web thành một kiến trúc MVC có tổ chức hơn.Để có thể sử dụng được
mã nguồn này, chúng ta cần phải biết về Javascript và HTML.
Expressjs cũng là một phần của công nghệ giúp quản lý các ứng dụng web một
cách dễ dàng hơn hay còn được gọi là ngăn xếp phần mềm MEAN.Nhờ có thư viện
Javascript của Express js đã giúp cho các nhà lập trình xây dựng nên các ứng dụng web lOMoAR cPSD| 59114765
hiệu quả và nhanh chóng hơn. Expressjs cũng được sử dụng để nâng cao các chức năng của Node.js.
Trên thực tế, nếu không sử dụng Express.js, bạn sẽ phải thực hiện rất nhiều bước
lập trình phức tạp để xây dựng nên một API hiệu quả. Express js đã giúp cho việc lập
trình trong Node.js trở nên dễ dàng hơn và có nhiều tính năng mới bổ sung. 2.7 Blockchain
Blockchain là công nghệ chuỗi – khối, cho phép truyền tải dữ liệu một cách an toàn dựa
trên hệ thống mã hóa vô cùng phức tạp, tương tự như cuốn sổ cái kế toán của một công
ty, nơi mà tiền được giám sát chặt chẽ và ghi nhận mọi giao dịch trên mạng ngang hàng.
Mỗi khối (block) đều chứa thông tin về thời gian khởi tạo và được liên kết với khối
trước đó, kèm theo đó là một mã thời gian và dữ liệu giao dịch. Dữ liệu khi đã được
mạng lưới chấp nhận thì sẽ không có cách nào thay đổi được. Blockchain được thiết kế
để chống lại việc gian lận, thay đổi của dữ liệu.
Công nghệ Blockchain – sự kết hợp giữa 3 loại công nghệ: -
Mật mã học: để đảm bảo tính minh bạch, toàn vẹn và riêng tư thì công nghệ
Blockchain đã sử dụng public key và hàm hash function. lOMoAR cPSD| 59114765 -
Mạng ngang hàng: Mỗi một nút trong mạng được xem như một client và cũng
là server để lưu trữ bản sao ứng dụng. -
Lý thuyết trò chơi: Tất cả các nút tham gia vào hệ thống đều phải tuân thủ luật
chơi đồng thuận (giao thức PoW, PoS,…) và được thúc đẩy bởi động lực kinh tế.
Blockchain có các đặc điểm nổi bật sau: -
Không thể làm giả, không thể phá hủy các chuỗi Blockchain: theo như lý
thuyết thì chỉ có máy tính lượng tử mới có thể giải mã Blockchain và công nghệ
Blockchain biến mất khi không còn Internet trên toàn cầu. -
Bất biến: dữ liệu trong Blockchain không thể sửa (có thể sửa nhưng sẽ để lại
dấu vết) và sẽ lưu trữ mãi mãi. -
Bảo mật: Các thông tin, dữ liệu trong Blockchain được phân tán và an toàn
tuyệt đối. - Minh bạch: Ai cũng có thể theo dõi dữ liệu Blockchain đi từ địa chỉ này
tới địa chỉ khác và có thể thống kê toàn bộ lịch sử trên địa chỉ đó. -
Hợp đồng thông minh: là hợp đồng kỹ thuật số được nhúng vào đoạn code if-
this-thenthat (IFTTT), cho phép chúng tự thực thi mà không cần bên thứ ba. 2.8 Ethereum
Ethereum là nền tảng điện toán phân tán, mã nguồn mở dựa trên công nghệ chuỗi
khối (blockchain) có khả năng thực thi hợp đồng thông minh (smart contract) - tức là
điều khoản được ghi trong hợp đồng sẽ được thực thi một cách tự động khi các điều
kiện trước đó được thỏa mãn, không ai có thể can thiệp vào.
Ethereum là một dự án Blockchain Layer 1 cho phép nhiều các lập trình viên xây
dựng các ứng dụng phi tập trung (DApps) và các tổ chức tự trị phi tập trung (DAOs). Trong đó:
● Các ứng dụng phi tập trung (DApps - Decentralized Application) là các phần mềm
được triển khai độc lập, không nằm trên một máy chủ duy nhất mà được lưu trữ một lOMoAR cPSD| 59114765
cách phân tán trên các kho lưu trữ phi tập trung và có thể được viết bằng bất kỳ ngôn ngữ nào.
● Các tổ chức tự trị phi tập trung (DAOs - Decentralized Autonomous Organizations) là
một tổ chức được vận hành bởi các thành viên dựa trên một bộ quy tắc được mã hóa
bằng code. Tất cả các thành viên đều có quyền biểu quyết các quyết định quan trọng của DAOs. 2.9 Hardhat
Hardhat là một môi trường phát triển để biên dịch, triển khai, test và debug Dapp Ethereum.
Một số điểm tính năng nổi bật của Hardhat:
● Tích hợp mạng local hardhat, dễ dàng chạy và debug code ngay trên local.
● Debug dễ dàng hơn: Với Hardhat, chúng ta có thể debug code Solidity dễ dàng hơn
khi có thể console.log ra các biến (Solidity vốn ko hỗ trợ console.log)
● Hệ thống plugin: Giúp developer có thể bổ sung chức năng, tùy vào từng dự án cụ thể
● Hỗ trợ TypeScript. lOMoAR cPSD| 59114765
CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU 3.1 Danh sách người dùng
- Phân tích yêu cầu người dùng Yêu cầu của khách hàng.
• Giao diện dễ sử dụng và có tính thẩm mỹ cao.
• Cho phép khách hang đăng ký thành viên và đảm bảo bí mật thong tin.
• Xem và thay đổi các thong tin về tài khoản.
• Hình thức thanh toán phải đảm bảo chính xác.
• Việc chuyển tiền cũng phải đảm bảo chính xác: Khi chuyển tiền thì việc cộng và trừ
tiền trong 2 tài khoản phải diễn ra đồng thời từ 2 tài khoản, tài khoản chuyển và tài khoản nhận.
• Thông tin sản phẩm phong phú, đa dạng:
Giới thiệu, bày bán nhiều loại hang, nhiều mặt hang để khách hang có nhiều cơ hội lựa
chọn về một loại mặt hàng. Thông tin về một sản phẩm phải chi tiết để khách hàng có
thể nắm bắt rõ thông tin về sản phẩm mình lựa chọn. Đặc biệt là những mặt hàng được
nhiều khách hàng quan tâm.
Luôn cập nhật, giới thiệu những mẫu giày mới nhất.
• Thông tin về bảo hành sản phẩm phải rõ ràng.
• Cho phép khách hàng tìm kiếm nhanh chóng, chính xác theo nhiều tiêu chí.
• Cho phép thống kê các đơn hàng đã đặt của mình tại shop.
- Yêu cầu của người quản trị.
Ngoài các yêu cầu giống như của khách hàng, thì hệ thống phải đảm bảo những yêu
cầu sau của ban quản trị.
• Quản lí chung: liên quan tới các thông tin nhân viên, khách hàng, hàng,..
• Cập nhật thông tin hàng hóa trực tuyến lOMoAR cPSD| 59114765
Dễ dàng cập nhật và thường xuyên thay đổi hình ảnh, thông tin chi tiết giá các mặt
hàng bạn sẽ kinh doanh ở bất cứ đâu.
• Quản lí các đơn hàng trực tuyến lOMoAR cPSD| 59114765
Quản lí, lưu trữ và báo cáo thong tin về đặt hang và trạng thái của đơn hàng: đã
xử lý, đã giao hàng chưa, đa thanh toán chưa … • Quản lí khách hàng
Lưu trữ các hoạt động gắn với các khách hàng của cửa hàng. Mọi hoạt động gắn với
khách hàng và đơn hàng đều có thể thực hiện từ xa, không phụ thuộc vào vị trí địa lý.
• Thống kê chi tiết cụ thể, chính xác và nhanh chóng.
Thống kê được mặt hàng nào bán hết, mặt hàng nào bán chạy, mặt hàng nào
tồn kho, mặt hàng nào cần chỉnh sửa…
Tổng hợp thu chi hàng ngày, hàng tuần, hàng tháng hàng quý và hàng năm.
Tổng hợp lưu trữ được ý kiến phản ánh của khách hàng để có thể trả lới khách
hàng một cách nhanh chóng và chính xác nhất. •
Cho phép in các danh sách , các thông tin cần thiết. - Yêu cầu của nhân viên:
Sản phẩm : Có thể thêm, sửa xóa thông tin, danh mục •
Quản lý các module : định vị, chỉnh sửa , bật –tắt các module chức năng •
Xem các báo cáo , thống kê, đơn đặt hàng •
Nhận và phản hồi các yêu cầu của khách hàng •
Quản lý các thông tin khác : khuyến mại, tin tức.... - Thiết kế hệ thống. 1)
Xác định các Actor và Usecase của hệ thống: • Khách Hàng Có các Usecase chính như: - Đăng ký thành viên lOMoAR cPSD| 59114765 - Tìm kiếm sản phẩm:
o Tìm kiếm theo tên sản phẩm o Tìm kiếm theo mức giá o Tìm kiếm theo nhà cung cấp …
- Đặt hàng, mua hàng: đăng nhập.
- Thanh toán: Trực tiếp tiền mặt, chuyển khoản, tài khoản ngân lượng.. • Nhân Viên Có các Usecase chính như:
- Quản lí danh mục sản phẩm - Quản lí khách hàng
- Quản lí sản phẩm chi tiết - Quản lí đơn hàng - Báo cáo thống kê • Quản trị viên
- Quản lí nhân viên: o Thêm nhân viên o Sửa nhân viên o Xóa nhân viên - Quản lí phân quyền phân cấp chức năng L Cập Cập nhập Cập hàng nhập hàng dùng khoản Hiển mặt Chuyển khoản Thống kê Đăng nhập hàng hàng Tìm kiếm Xem thông tin hoá khoản hàng Thống kê ấn
luồng dữ liệu mức bối cảnh Thông tin mua hang - Biểu đồ Thông nhận Thông cập nhật Thông đăng đổi quả Thông BÁN Account đăng nhập HÀNG thống kê TRỰC TUYẾN quả đăng nhập kiếm,chuyển Thông góp cảm
luồng dữ liệu ở mức đỉnh