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
Trang 1ĐẠ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
Trang 3LỜ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
Trang 4Nắ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
Trang 5MỤ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
Trang 6Phầ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
Trang 7Source control: Github
1.5 Môi trường và công cụ hỗ trợ:
Visual Studio Code, Google Chrome Browse
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
Trang 8Expressjs 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
Trang 95 Đăng xuất
6 Quản lý bài đăng Quản trị viên
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
2 Sơ đồ Use Case
2.1 Usecase xác thực người dung
2.1.1 Usecase đă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
Trang 10Mô 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
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
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
Trang 11Ngoại lệ Không có
Luồng 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
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ý
chính
I 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
Trang 12header
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
Mô 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
Trang 13Điều kiện sau Đăng xuất thành công
Ngoại lệ Không có
Luồng xử lý
chính
1 Vào giao diện chính của ứng dụng
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
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
2.2.2 Usecase 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
Trang 14Đ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ý
chính
1 Vào giao diện chính của ứng dụng
2 Bấm vào tab đăng người tìm việc
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
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ý
chính
I 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:
Trang 151 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
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
Trang 16Tê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
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 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ề:
Trang 17Luồ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ý
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
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
Trang 18Đ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:
Trang 19• Danh sách các collections:
admin
danh mục nghề
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
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’
giao diện của người dùng
3.2 Chi tiết collections NguoiUngTuyen
Trang 20STT 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
en
String Bắt buộc Vị trí ứng tuyển
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 Ràng buộc Ý nghĩa
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
ngTy
String Bắt buộc Đường dẫn hình ảnh công
ty, doanh nghiệp ứng
5 userID String Bắt buộc Tên tài khoản công ty,
doanh nghiệp tuyển dụng
Trang 213.5 Chi tiết collection BaiDang
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
String Bắt buộc Id của danh mục nghề
trong bài đăng tuyển
3.6 Chi tiết collection NguoiUngTuyen_DanhMucNghe
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
1 idNguoiUng
Tuyen
String Bắt buộc Id của người ứng tuyển
2 idBaiDang String Bắt buộc Id của bài đăng
3.7 Chi tiết collection NguoiUngTuyen_BaiDang
STT Tên trường Kiểu dữ liệu Ràng buộc Ý nghĩa
String Bắt buộc Id của danh mục nghề
trong bài đăng tuyển
4 Kiến trúc hệ thống
• Trang web được xây dựng trên nền MERN STACK
• Sử dụng API để kết nối với MongoDB
Trang 224.1 Mô hình kiến trúc hệ thống
- Kiến trúc hệ thống theo mô hình Client – Sever
+ Tầng Client (là một máy tính (Host)): Tầng có khả năng nhận thông tin
hoặc sử dụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server)
+ Tầng Sever: Tầng cung cấp các thông tin (dữ liệu) hoặc quyền truy cập
vào các dịch vụ cụ thể
Trang 23+ Tầng Web (sẽ kết nối với tầng Sever & Client): Thành phần giao diện của
chương trình tương tác với người sử dụng
4.2 Mô tả chi tiết các thành phần
• Mô hình client-server là một mô hình nổi tiếng trong mạng máy tính, được áp dụng rất rộng rãi và là mô hình của mọi trang web hiện có Ý
tưởng của mô hình này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy chủ (đóng vai trò người cung ứng dịch
vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách Trong mô hình
này, chương trình ứng dụng được chia thành 2 thành phần: Server và
Client Client hay còn gọi là máy khách, nó bao gồm máy tính và các
thiết bị điện tử nói chung Server hay còn gọi là máy chủ, là nơi cài đặt
các chương trình dịch vụ và lưu trữ tài nguyên
Việc yêu cầu của máy khách, đáp ứng, xử lý, và phản hồi của máy chủ tạo thành một dịch vụ Dịch vụ này hoạt động trên nền web nên nó được gọi là dịch vụ web (hay web service)
Ngoài ra, việc giao tiếp giữa Client với Server phải dựa trên các giao thức chuẩn Các giao thức chuẩn được sử dụng phổ biến nhất hiện nay là : giao thức TCP/IP, giao thức SNA của IBM, OSI, ISDN, X.25 hay giao thức LAN-to-LAN NetBIOS
• Client
Khi nói đến Client (khách hàng), thì nó có nghĩa là một người hay một tổ chức
sử dụng một dịch vụ cụ thể nào đó Trong thế giới kỹ thuật số cũng tương tự như vậy Client là một máy tính (Host), tức là có khả năng nhận thông tin hoặc
sử dụng một dịch vụ cụ thể từ các nhà cung cấp dịch vụ (Server)
• Sever