ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA CÔNG NGHỆ PHẦN MỀM
BÁO CÁO ĐỒ ÁN 1
Xây dựng hệ thống phần mềm quản lý sàn
giao dịch việc làm
Nhóm thực hiện:
Nguyễn Ngọc Thịnh
19522283
Hồ Quang Linh
19521750
GVHD: Th.S Phan Trung Hiếu
TP. Hồ Chí Minh, tháng 6 năm 2022
1
LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu và phát triền đề tài “Xây dưng hệ
thống phần mềm quản lý sàn giao dịch việc làm” chúng em đã nhận được
sự giúp đỡ, chỉ bảo nhiệt tình của thầy để hoàn thành đồ án này.
Chúng em xin bày tỏ sự biết ơn đặc biệt đến Thầy Phan Trung Hiếu,
người đã trực tiếp hướng dẫn, giúp đỡ về kiến thức, tài liệu và phương pháp
để chúng em hoàn thành đề tài này.
Chúng em xin chân thành cảm ơn vì những thời gian quý báu thầy đã
dành ra để kiểm tra, đưa ra các ý kiến nhận xét và đóng góp rất nhiều vào
những tính năng, hướng phát triển mới hơn cho đề tài.
Hi vọng với sự chỉ bảo và góp ý từ thầy, nhóm đề tài có thể tiếp túc phát
triển để ứng dụng ngày càng được mở rộng và phục vụ được tốt hơn cho
người dùng.
Mặc dù đã có nhiều cố gắng trong suốt quá trình thực hiện đề tài, song
có thể còn có những mặt hạn chế, thiếu sót. Chúng em rất mong nhận được
ý kiến đóng góp và sự chỉ dẫn của thầy và các bạn để đề tài của chúng em
được hoàn thiện hơn.
Chúng em xin trân trọng cảm ơn!
TP. Hồ Chí Minh, ngày 12 tháng 6 năm 2022
1
LỜI MỞ ĐẦU
Các công nghệ hiện tại để phát triển nên một ứng dụng web đang
trong quá trình lớn mạnh với những nhu cầu khác nhau.
Trong thời đại công nghệ số 4.0, cùng với sự phát triển như vũ bão
của Internet, ở lĩnh vực việc làm, việc có một trang web có thể kết nối người
lao động và doanh nghiệp sẽ giúp cho người lao động dễ dàng lựa chọn
việc làm phù hợp, doanh nghiệp cũng dễ tuyển chọn người làm việc tốt.
Nắm bắt nhu cầu đó, Website Find Job được chúng em thực hiện
nhằm giải quyết nhu cầu giữa người lao động và doanh nghiệp giúp người
tìm việc có được công việc phù hợp, thu nhập ổn định cũng như góp phần
làm giảm tỉ lệ thất nghiệp, giúp cho danh nghiệp tuyển dụng được nhiều
ứng viên phù hợp
Các công việc chính của website là: quản lý phê duyệt, loại bỏ các bài
đăng tuyển dụng, có trang giới thiệu cho nhà tuyển dụng, quản lý tình
trạng hoạt động của phiên giao dịch việc làm.
2
MỤC LỤC
LỜI CẢM ƠN............................................................................................................................................ 1
LỜI MỞ ĐẦU ........................................................................................................................................... 2
1. Thông tin chung ........................................................................................................................... 4
1.1. Tên đề tài .................................................................................................................................... 4
1.2. Nền tảng ứng dụng ............................................................................................................... 4
1.3. Mô tả đề tài ............................................................................................................................... 4
1.4. Lý do chọn đề tài .................................................................................................................... 4
1.4. Công nghệ ................................................................................................................................ 4
1.5. Môi trường và công cụ hỗ trợ: ............................................................................................ 5
1.4 Nhân sự....................................................................................................................................... 5
II. Chương 2: Cơ sở lý thuyết ........................................................................................................... 5
1.
Front end .................................................................................................................................... 5
2.
Back end..................................................................................................................................... 5
3.
Database .................................................................................................................................... 6
III. Chương 3: Phân tích và thiết kế hệ thống .......................................................................... 6
1.
Danh sách tính năng ............................................................................................................. 6
2.
Sơ đồ Use Case......................................................................................................................... 7
3.
Cơ sở dữ liệu ........................................................................................................................... 16
4.
Kiến trúc hệ thống ............................................................................................................... 19
5.
Giao diện................................................................................................................................... 22
IV. Chương 4: Tổng kết.................................................................................................................... 23
1.
Kết quả đạt được .................................................................................................................. 23
2.
Hạn chế ..................................................................................................................................... 24
3.
Hướng phát triển .................................................................................................................. 24
4.
Cách cài đặt............................................................................................................................. 24
5.
Bảng phân công công việc ............................................................................................... 25
3
I. Chương 1: Tổng Quan
1. Thông tin chung
1.1. Tên đề tài
Website quản lý sàn giao dịch việc làm Find Job
1.2. Nền tảng ứng dụng
Web
1.3. Mô tả đề tài
Sàn giao dịch việc làm sẽ giúp cho việc kết nối giữa doanh nghiệp và
người tìm việc một cách dễ dàng, nhanh gọn, tiết kiệm chi phí.
Một số tính năng nổi bật của sàn giao dịch việc làm như người tuyển
dụng dễ dàng đăng tin tuyển dụng, mỗi nhà tuyển dụng sẽ có 1 trang giới
thiệu về công ty, ngươi tìm việc thì có thể dễ dàng tìm việc phù hợp với
mình và nộp đơn một các nhanh chóng.
Phần quản lý sàn sẽ có tính năng quản lý tin tuyển dụng, phê duyệty
hoặc loại bỏ, theo dõi tình trạng hoạt động của phiên giao dịch việc làm,
daonh nghiệp đăng ký tham gia một cách dễ dàng.
1.4. Lý do chọn đề tài
Trong thời đại công nghệ số 4.0, cùng với sự phát triển như vũ bão
của Internet, ở lĩnh vực việc làm, việc có một trang web có thể kết nối người
lao động và doanh nghiệp sẽ giúp cho người lao động dễ dàng lựa chọn
việc làm phù hợp, doanh nghiệp cũng dễ tuyển chọn người làm việc tốt.
Nắm bắt nhu cầu đó, Website Find Job được chúng em thực hiện
nhằm giải quyết nhu cầu giữa người lao động và doanh nghiệp giúp người
tìm việc có được công việc phù hợp, thu nhập ổn định cũng như góp phần
làm giảm tỉ lệ thất nghiệp, giúp cho danh nghiệp tuyển dụng được nhiều
ứng viên phù hợp
1.4. Công nghệ
Front-end: ReactJS
Back-end: NodeJS & ExpressJS
Database: MongoDB
4
Source control: Github
1.5. Môi trường và công cụ hỗ trợ:
Visual Studio Code, Google Chrome Browse.
1.4 Nhân sự
STT Họ và tên
1
Nguyễn Ngọc Thịnh
2
Hồ Quang Linh
MSSV
19522283
19521750
II. Chương 2: Cơ sở lý thuyết
1. Front end
• ReactJS:
ReactJS là một thư viện javascript mã nguồn mở được phát triển bởi
Facebook, ra mắt vào 2013. ReactJS hỗ trợ việc xây dựng những thành phần
trên website có tính tương tác cao, có trạng thái và có thể sử dụng lại được.
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. React so
sánh sự thay đổi giữa các giá trị của lần render này với lần render trước và
cập nhật ít thay đổi nhất trên DOM (Document Object Model).
2. Back end
• NodeJS:
NodeJS là một mã nguồn được xây dựng dựa trên nền tảng Javascript V8
Engine. Nó được xây dựng để chạy trên server.
NodeJS có thể chạy trên nhiều nền tảng hệ điều hành khác nhau từ
Window cho tới Linux, OS X nên đó cũng là một lợi thế. NodeJS cung cấp
các thư viện phong phú ở dạng Javascript Module khác nhau giúp đơn giản
hóa việc lập trình và giảm thời gian ở mức thấp nhất.
Javascript là một ngôn ngữ hướng sự kiện, do đó bất cứ điều gì xảy ra trên
server đều tạo ra một sự kiện non-blocking, do vậy nên 1 website sử dụng
NodeJS có thể đáp ứng được việc truy cập cùng lúc một lượng user cực kì lớn.
• ExpressJS
5
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 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.
3. Database
MongoDB: là một hệ quản trị cơ sở dữ liệu NoSQL mã nguồn mở đa
nền tảng viết bằng C++. Bản ghi trong MongoDB được lưu trữ dạng
một dữ liệu văn bản (Document), là một cấu trúc dữ liệu bao gồm
các cặp giá trị và trường tương tự như các đối tượng JSON.
III. Chương 3: Phân tích và thiết kế hệ thống
1. Danh sách tính năng
Stt Tên tính năng
1
Đăng nhập
2
Đổi mật khẩu
3
Quên mật khẩu
4
Quản lý thông tin cá nhân
Use case
Xác thực người dùng
6
5
Đăng xuất
6
Quản lý bài đăng
7
Quản lý người tìm việc
8
Quản lý nhà tuyển dụng
9
Quản lý ngành nghề
10
Quản lý gói đăng ký
11
Quản lý doanh thu
Quản trị viên
2. Sơ đồ Use Case
2.1
Usecase xác thực người dung
2.1.1 Usecase đăng nhập
Tên yêu cầu
Đăng nhập
Mô tả
Đăng nhập tài khoản để sử dụng
Tác nhân
Quản trị viên
Điều kiện trước
Chưa đăng nhập
Điều kiện sau
Đăng nhập thành công
Ngoại lệ
Không có
Luồng
xử
lý
chính
1. Truy cập vào đường dẫn /login
2. Người dùng điền các thông tin: email, mật
khẩu
3. Hệ thống xác nhận có trường dữ liệu hợp
lệ
4. Thông báo đăng nhập thành công, chuyển
đến trang chủ
Luồng xử lý phụ
1. Hệ thống thông báo nếu có lỗi
2.1.2 Usecase quên mật khẩu
Tên yêu cầu
Quên mật khẩu
7
Mô tả
Quên mật khẩu để lấy lại mật khẩu bằng cách xác
nhận mã bí mật được gửi tới email đăng ký tài
khoản ban đầu
Tác nhân
Người dùng, Quản trị viên
Điều kiện trước
Chưa đăng nhập
Điều kiện sau
Đặt lại mật khẩu người dùng
Ngoại lệ
Không có
Luồng
xử
lý
1. Truy cập vào đường dẫn /quen-mat-khau
chính
2. Người dùng nhập email
3. Nhấn nút gửi mã
4. Hệ thống gửi email chứa mã xác nhận đến
cho người dùng
5. Người dùng xác nhận mã trong màn hình
tiếp theo
6. Hệ thống xác nhận mật mã
7. Người dùng nhập mật khẩu và xác nhận
mật khẩu mới
Luồng xử lý phụ
I.
Mã bí mật không chính xác quá 3 lần
1.
Hệ thống từ chối
việc đặt lại mật
khẩu
2.1.3 Đổi mật khẩu
Tên yêu cầu
Đổi mật khẩu
Mô tả
Người dùng đổi mật khẩu theo nhu cầu sử dụng
Tác nhân
Quản trị viên
Điều kiện trước
Đã đăng nhập
Điều kiện sau
Thông tin mật khẩu trong database được thay đổi
8
Ngoại lệ
Luồng
Không có
xử
lý
chính
1. Người dùng đã đăng nhập vào hệ thống
2. Chọn vào ảnh đại diện trên thanh header
3. Chọn đổi mật khẩu
4. Điền mật khẩu hiện tại, mật khẩu mới, xác
nhận mật khẩu mới
5. Ấn xác nhận
6. Ứng dụng thông báo đổi mật khẩu thành
công
Luồng xử lý phụ Hệ thống thông báo nếu có lỗi
2.1.4 Usecase quản lý thông tin cá nhân
Tên yêu cầu
Quản lý thông tin cá nhân
Mô tả
Người dùng quản lý thông cá nhân, xem, sửa thông
tin cá nhân, lịch sử mua hàng, chi tiết đơn hàng
Tác nhân
Người dùng, Quản trị viên
Điều kiện trước
Đã đăng nhập
Điều kiện sau
Thực hiện thành công hành động
Ngoại lệ
Không có
Luồng
xử
lý
I.
chính
Xem thông tin cá nhân, lịch sử mua hàng
1. Chọn vào ảnh đại diện trên thanh
header
2. Chọn xem thông tin tài khoản
3. Hệ thống trả về dữ liệu thông tin tài
khoản
II.
Chỉnh sửa thông tin cá nhân
1. Chọn vào ảnh đại diện trên thanh
9
header
2. Chọn xem thông tin tài khoản
3. Hệ thống trả về dữ liệu thông tin tài
khoản
4. Người dùng thay đổi thông tin ở trong
các khung input
5. Người dùng ấn cập nhật
6. Hệ thống kiểm tra dữ liệu, thực hiện
thay đổi csdl nếu dữ liệu hợp lệ
III.
Xem chi tiết đơn hàng
1. Chọn vào ảnh đại diện trên thanh
header
2. Chọn xem thông tin tài khoản
3. Hệ thống trả về dữ liệu thông tin tài
khoản
4. Người dùng ấn vào 1 dòng trong bảng
lịch sử mua hàng
5. Hệ thống trả về dữ liệu chi tiết của đơn
hàng vừa chọn
Luồng xử lý phụ
Hệ thống thông báo nếu có lỗi
2.1.5 Usecase đăng xuất
Tên yêu cầu
Mô tả
Đăng xuất
Người dùng đăng xuất khi không muốn sử dụng
nữa
Tác nhân
Quản trị viên
Điều kiện trước
Cần phải đăng nhập từ trước
10
Điều kiện sau
Đăng xuất thành công
Ngoại lệ
Không có
Luồng
xử
lý
1. Vào giao diện chính của ứng dụng
chính
2. Bấm vào nút đăng xuất ở trên cùng góc
phải màn hình
3. Hệ thống đăng xuất thành công và
chuyển về màn hình đăng nhập
Luồng xử lý phụ Hệ thống thông báo nếu xảy ra lỗi
2.2
Usecase Quản trị viên
2.2.1 Usecase quản lý bài đăng
Tên yêu cầu
Quản lý bài đăng
Mô tả
Quản lý bao gồm phê duyệt, từ chối bài đăng tuyển
dụng
Tác nhân
Quản trị viên
Điều kiện trước
Đã đăng nhập
Điều kiện sau
Thực hiện thành công hành động
Ngoại lệ
Không có
Luồng
xử
chính
lý
1. Truy cập tab nhà tuyển dụng
2. Chọn nhà tuyển dụng cần duyệt
3. Phê duyệt/ từ chối bài đăng
Luồng xử lý phụ Hệ thống thông báo nếu có lỗi
2.2.2 Usecase quản lý người tìm việc
Tên yêu cầu
Quản lý người tìm việc
Mô tả
Quản lý sửa, xoá, thêm thông tin người tìm việc
Tác nhân
Quản trị viên
11
Điều kiện trước
Cần phải đăng nhập từ trước
Điều kiện sau
Thực hiện thành công hoạt động
Ngoại lệ
Không có
Luồng
xử
lý
1. Vào giao diện chính của ứng dụng
chính
2. Bấm vào tab đăng người tìm việc
3. Chọn một người dùng
4. Thực hiện thao tác sửa/ xoá thông tin
người dùng.
5. Hệ thống thông báo thao tác thành
công.
Luồng xử lý phụ Hệ thống thông báo nếu xảy ra lỗi
2.2.3 Usecase quản lý nhà tuyển dụng
Tên yêu cầu
Quản lý nhà tuyển dụng
Mô tả
Quản trị viên xem , thêm, xoá, sửa đổi thông tin công
ty.
Quản trị viên thêm một công ty mới hoặc xoá.
Tác nhân
Quản trị viên
Điều kiện trước
Đăng nhập thành công
Điều kiện sau
Thao tác thành công
Ngoại lệ
Không có
Luồng
xử
lý
I.
chính
Xem thông tin nhà tuyển dụng:
1. Truy cập tab Nhà tuyển dụng
2. Chọn một nhà tuyển dụng mà bạn
muốn thao tác
3. Hệ thống hiện thị thông tin về nhà
tuyển dụng
II.
Sửa thông tin nhà tuyển dụng:
12
1. Truy cập tab Nhà tuyển dụng
2. Chọn một nhà tuyển dụng mà bạn
muốn thao tác
3. Bấm nút sửa
4. Sửa các thông tin cần thay đổi
5. Bấm lưu
6. Hệ thống thông báo cập nhập thông
tin thành công.
III.
Xoá nhà tuyển dụng:
1. Truy cập tab Nhà tuyển dụng
2. Chọn một nhà tuyển dụng mà bạn
muốn thao tác
3. Bấm nút xoá
4. Xác nhận chắc chắn sẽ xoá nhà tuyển
dụng
5. Hệ thống thông báo xoá thành công.
IV.
Thêm nhà tuyển dụng:
1. Truy cập tab Nhà tuyển dụng
2. Bấm thêm công ty
3. Trang web hiện ra một modal để
nhập thông tin của công ty mới.
4. Sau nhập thông tin của công ty
xong bấm lưu.
5. Hệ thống thông báo thêm công ty
mới thành công.
Luồng xử lý phụ Hệ thống thông báo nếu xảy ra lỗi
2.2.4 Usecase quản lý ngành nghề
13
Tên yêu cầu
Quản lý ngành nghề
Mô tả
Thêm, xoá, sửa ngành nghề
Tác nhân
Quản trị viên
Điều kiện trước
Đã đăng nhập
Điều kiện sau
Thực hiện thành công hành động
Ngoại lệ
Không có
Luồng
xử
lý
I.
chính
Xem các ngành nghề:
1. Truy cập tab Ngành nghề
2. Hệ thống hiện thị các ngành nghề
trong tab.
II.
Sửa thông tin Ngành nghề:
1. Truy cập tab Ngành nghề
2. Chọn một ngành nghềtrong danh
sách
3. Bấm nút sửa
4. Sửa các thông tin cần thay đổi
5. Bấm lưu
6. Hệ thống thông báo cập nhập thông
tin thành công.
III.
Xoá ngành nghề:
1. Truy cập tab Ngành nghề
2. Chọn một ngành nghề mà bạn
muốn thao tác
3. Bấm nút xoá
4. Xác nhận xoá.
5. Hệ thống thông báo xoá thành công.
IV.
Thêm ngành nghề:
14
1. Truy cập tab Ngàng nghề
2. Bấm thêm.
3. Trang web hiện ra một modal để
nhập thông tin của ngành nghề mới.
4. Bấm lưu
5. Hệ thống thông báo thêm mới thành
công.
Luồng xử lý phụ
Hệ thống thông báo nếu có lỗi
2.2.5 Usecase quản lý gói đăng ký
Tên yêu cầu
Quản lý gói đăng ký
Mô tả
Quản lý giá và lượng bài đăng dành cho nhà tuyển
dụng ở các gói đăng ký.
Tác nhân
Quản trị viên
Điều kiện trước
Đã đăng nhập.
Điều kiện sau
Thực hiện thành công hành động
Ngoại lệ
Không có
Luồng
xử
lý
chính
1. Truy cập đến tab gói đăng ký
2. Sửa gói đăng ký
3. Bấm lưu
Luồng xử lý phụ Hệ thống thông báo nếu có lỗi
2.2.6 Usecase doanh thu
Tên yêu cầu
Quản lý doanh thu
Mô tả
Quản lý doanh thu từ việc bán các gói đăng ký
Tác nhân
Quản trị viên
Điều kiện trước
Đã đăng nhập
15
Điều kiện sau
Thực hiện thành công hành động
Ngoại lệ
Không có
Luồng
xử
lý
chính
1.
Truy cập tab Doanh thu
2.
Hệ thống trả về thống kê doanh thu
Luồng xử lý phụ Hệ thống thông báo nếu có lỗi
3. Cơ sở dữ liệu
• Thiết kế cơ sở dữ liệu:
16
• Danh sách các collections:
STT
1
Tên collections dữ liệu
users
Mô tả
Danh sách tài khoản người dùng và tài khoản
admin
2
NguoiUngTuyen
Danh sách các người ứng tuyển
3
DanhMucNghe
Danh sách các nghề nghiệp kèm hình ảnh
4
BaiDang
Danh sách các bài đăng
5
NhaTuyenDung
Danh sách các nhà tuyển dụng
6
NguoiUngTuyen_DanhMucNghe Liên kết giữa 2 collections người ứng tuyển và
danh mục nghề
7
NguoiUngTuyen_BaiDang
Liên kết giữa 2 collections người ứng tuyển và
bài đăng
3.1
Chi tiết collections users
STT
Tên trường
Kiểu dữ liệu
Ràng buộc
Ý nghĩa
1
name
String
Bắt buộc
Họ và tên
2
password
String
Bắt buộc
Mật khẩu người dùng
3
phone
String
Bắt buộc
Số điện thoại người dùng
4
gender
String
Bắt buộc
Giới tính, 1: Nam, 2: Nữ, 3:
Khác
5
role
String
Bắt buộc
Vai trò của người dùng,
‘user’ và ‘admin’
6
email
String
Bắt buộc
Email người dùng
7
address
String
Địa chỉ người dùng
8
avatar
String
Đường dẫn lưu trữ ảnh
giao diện của người dùng
9
birthday
3.2
Date
Ngày sinh của người dùng
Chi tiết collections NguoiUngTuyen
17
STT
Tên trường
Kiểu dữ liệu
Ràng buộc
Ý nghĩa
1
ngheNghiep
String
Bắt buộc
Tên nghề nghiệp
2
viTriUngTuy
String
Bắt buộc
Vị trí ứng tuyển
en
3
noiLamViec
String
Bắt buộc
Nơi làm việc
5
cvUrl
String
Bắt buộc
Đường dẫn liên kết CV
6
userID
String
Bắt buộc
Id người dùng của người
ứng tuyển
3.3
Chi tiết collections DanhMucNghe
STT
Tên trường
Kiểu dữ liệu
1
tenDanhMu
String
Ràng buộc
Tên danh mục nghề
cNghe
2
hinhAnh
Ý nghĩa
nghiệp
String
Hình ảnh của danh mục
nghệ
3.4
Chi tiết collection NhaTuyenDung
STT
Tên trường
Kiểu dữ liệu
Ràng buộc
Ý nghĩa
1
tenCongTy
String
Bắt buộc
Tên công ty, doanh nghiệp
tuyển dụng
2
hinhAnhCo
String
Bắt buộc
ngTy
Đường dẫn hình ảnh công
ty, doanh nghiệp ứng
tuyển
3
thongTinCo
String
Bắt buộc
ngTy
5
userID
Mô tả về công ty tuyển
dụng
String
Bắt buộc
Tên tài khoản công ty,
doanh nghiệp tuyển dụng
18
- Xem thêm -