đồ án 2 xây dựng ứng dụng blockchain hỗ trợ tuyển dụng việc làm

31 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 2 xây dựng ứng dụng blockchain hỗ trợ tuyển dụng việc làm

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠIHỌC CÔNG NGHỆ THÔNG TIN

Trần Đức Tâm 19522166

Tp.HCM, ngày 25 tháng 12 năm 2023

Trang 2

LỜI CẢM ƠN

Trước hết, nhóm chúng em xin gửi lời cảm ơn đến Trường Đại học Công nghệthông tin – ĐHQGTPHCM và đến thầy Trần Anh Dũng là giảng viên hướng dẫntrực tiếp đã tạo điều kiện để nhóm chúng em hoàn thành đồ án 2 - Chủ đề xâydựng ứng dụng Blockchain hỗ trợ tuyển dụng việc làm.

Trong khoảng thời gian thực hiện đồ án, nhóm chúng em đã học hỏi thêmđược nhiều kiến thức, kinh nghiệm, biết được thêm về công nghệ Blockchain.Nhóm chúng em đã vận dụng những kiến thức nền tảng đã tích lũy đồng thờikết hợp với việc học hỏi và nghiên cứu những kiến thức mới Từ đó vận dụngtối đa những gì đã học hỏi được để hoàn thành báo cáo đồ án này.

Mặc dù nhóm chúng em đã cố gắng hoàn thành song báo cáo của nhóm chúngem chắc chắn không chắn khỏi những thiếu xót, chúng em rất mong nhận đượcsự thông cảm và góp ý chân thành tùy quý thầy cô Nhóm chúng em xin chânthành cảm ơn.

Nhóm sinh viên thực hiện

CHƯƠNG 1: GIỚI THIỆU 3

1.3.4 Phương pháp nghiên cứu 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4

2.1 HTML 5

2.2 CSS 6

2.3 Tailwind 7

Trang 3

4.5 Nhập thông tin cá nhân 23

4.6 Thông tin tuyển dụng 23

Trang 4

CHƯƠNG 1: GIỚI THIỆU1.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ài1.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.

Trang 5

● Người dùng tự đánh giá năng lực của nhân lực.

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.

Trang 7

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT2.1 HTML

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 baobọc bởi một dấu ngoặc ngọn (ví dụ <html>) và thường là sẽ được khai báothà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 <p> và

Trang 8

c Mã nguồn mở và hoàn toàn miễn phí.

update hay realtime thời gian thực, bạn cần sử dụng JavaScripthoặc ngôn ngữ backend bên thứ 3 như PHP.

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 trangweb

Trang 9

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ạonê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 giaodiệ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 sosá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.

Trang 10

Ưu điểm:

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

Trang 11

ngôn ngữ mã 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ứctạ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 Structuraltyping, bên cạnh đó TypeScript còn có thể hoạt động rộng rãi cho các ứngdụng của ngôn ngữ Angular2 và Nodejs.

Ưu điểm:

Trang 12

ReactJS là một thư viện JavaScript chuyên giúp các nhà phát triển xây dựnggiao diện người dùng hay UI Trong lập trình ứng dụng front-end, lập trình viênthườ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ủangườ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ấtkỳ 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

Trang 13

đ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.

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

Trang 14

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 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ăngmớ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 antoà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 giaodị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ớikhối trước đó, kèm theo đó là một mã thời gian và dữ liệu giao dịch Dữ liệukhi đã đượ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.

Trang 15

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.

- 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ựckinh 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.

Trang 16

- 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-then-that (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ôngnghệ chuỗi khối (blockchain) có khả năng thực thi hợp đồng thông minh (smartcontract) - tức là điều khoản được ghi trong hợp đồng sẽ được thực thi một cáchtự độ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ênxâ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ầnmề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 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 AutonomousOrganizations) là một tổ chức được vận hành bởi các thành viên dựa trênmộ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)

Trang 17

● 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.

Trang 18

CHƯƠNG 3: PHÂN TÍCH ĐẶC TẢ YÊU CẦU3.1 Danh sách người dùng

Bảng 3.1: Bảng danh sách người dùng

1 Người tuyển dụng Người tuyển dụng có thể tăng tuyển dụng nhân sự với các điều kiện phù hợp, đánh giá miner, 2 Trung gian(miner) Miner có thể tìm kiếm các bài tuyển dụng, tương

tác với nhà tuyển dụng, thêm thông tin ứng viên

3.2 Danh sách Usecase3.2.1 Người tuyển dụng

Bảng 3.2: Bảng chức năng người tuyển dụng

Trang 19

3.2.2 Người trung gian (miner)

Cho phép người dùng đăng tin thông tin về người tìm kiếm việc làm.

4 Tìm kiếm Cho phép người dùng tìm kiếm các bài tuyển dụng

3.3 Đặng tả Usecase

Bảng 3.4: Bảng đặc tả Usecase đăng ký của người tuyển dụng

đăng ký người dùng mới.Dòng sự kiện phụ

Bảng 3.5: Bảng đặc tả Usecase đăng nhập của người tuyển dụng

Trang 20

Mã Use-case UC-2

website.Dòng sự kiện phụ

Bảng 3.5: Bảng đặc tả Usecase đăng tuyển dụng

-Người dùng đang thông tin cần tuyển dụng-Người dùng ấn nút xác nhận.

Dòng sự kiện phụ

Bảng 3.6: Bảng đặc tả Usecase đánh giá

Trang 21

Mã Use-case UC-4

việc làm phù hợp

đến 5 sao

-Người dùng ấn nút xác nhậnDòng sự kiện phụ

Bảng 3.7: Bảng đặc tả Usecase đăng ký của miner

đăng ký người dùng mới.Dòng sự kiện phụ

Bảng 3.8: Bảng đặc tả Usecase đăng nhập của miner

Trang 22

Mã Use-case UC-6

website.Dòng sự kiện phụ

Bảng 3.9: Bảng đặc tả Usecase tìm kiếm

-Người dùng nhập thông tin tuyển dụng muốn tìmkiếm.

-Người dùng ấn tìm kiếm

-Người dùng sẽ được chuyển đến trang kết quả tìmkiếm

Trang 23

Dòng sự kiện phụ

Bảng 3.10: Bảng đặc tả Usecase đăng thông tin người tìm kiếm việc làm

-Người dùng nhập thông tin người phù hợp.-Người dùng bấm xác nhận.

Dòng sự kiện phụ

Bảng 3.11: Bảng đặc tả thay đổi thông tin người dùng

Trang 24

-Người dùng nhập thông tin người phù hợp.-Người dùng bấm xác nhận.

Dòng sự kiện phụ

CHƯƠNG 4: THIẾT KẾ GIAO DIỆN4.1 Đặng nhập

Hình 4.1: Màn hình đăng ký

Trang 25

4.2 Đăng ký

Hình 4.2: Màn hình đăng nhập

Trang 26

4.3 Trang chủ

Hình 4.3: Màn hình trang chủ

Trang 27

4.4 Tìm kiếm

Hình 4.4: Màn hình kết quả tìm kiếm

4.5 Nhập thông tin cá nhân

Hình 4.5: Hình nhập thông tin người tìm kiếm việc làm

Trang 28

4.6 Thông tin tuyển dụng

Trang 29

Hình 4.6: Màn hình thông tin bài đăng tuyển dụng

CHƯƠNG 5: KẾT LUẬN5.1 Tổng kết

● Điều quan trọng nhất khi làm website sử dụng blockchain hỗ trợ tuyểndụng việc làm là phải có đầy đủ các tính năng cần thiết của một trangweb tuyển dụng trực tuyến cũng như đa dạng sản phẩm và giao diệnthân thiện dễ nhìn để phục vụ đáp ứng nhu cầu của người dùng

● Cần phân tích kỹ xác định các tính năng trước khi thực hiện code, thiếtkế giao diện, thiết kế cơ sở dữ liệu

● Cần sắp xếp thời gian code cho từng chức năng một cách hợp lý hơn,không nên tốn nhiều thời gian cho một phần.

● Có khả năng đọc được tài liệu tiếng anh là một lợi thế vì những bàihướng dẫn cơ bản, hay tài liệu đa số đều được viết bằng tiếng Anh.

5.2 Khó khăn

● Việc làm đồ án gặp nhiều trở ngại trong công đoạn xác định tính năngcủa ứng dụng, và phần việc sắp xếp theo thứ tự vẫn chưa thật sự hợp lý,không có nhiều thời gian để hoàn thành đồ án.

● Nhóm tốn nhiều thời gian cho việc xây dựng giao diện người dùng mộtcách hợp lý và cố gắng thực hiện các mục tiêu đã đề ra.

5.3 Hạn chế

● Code chưa được tối ưu tốt nên khi load website còn hơi chậm.

● Giao diện người dùng ở mức khá.

Trang 30

● Còn nhiều tính năng chưa được tối ưu, chưa tiện dụng đối với ngườidùng.

● Chưa sử dụng được nhiều ngôn ngữ

5.4 Hướng phát triển

● Đầu tư, phát triển thiết kế giao diện.

● Sử dụng được đa dạng ngôn ngữ.

● Tối ưu hóa code.

● Nâng cấp thêm những tính năng tiện ích hỗ trợ người dùng.

Trang 31

TÀI LIỆU THAM KHẢO

1 Tailwind: https://tailwind.com

2 Blockchain: products-all.sort-

by=item.additionalFields.productNameLowercase&aws-products-3 React: https://fptcloud.com/reactjs/

4 Ethereum: https://vi.wikipedia.org/wiki/Ethereum

Ngày đăng: 15/05/2024, 09:26

Tài liệu cùng người dùng

Tài liệu liên quan