CƠ SỞ LÝ THUYẾT
Hệ quản trị 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ở (RDBMS) hoạt động theo mô hình client-server, viết tắt của Relational Database Management System Hệ thống này được tích hợp với Apache và PHP, cho phép quản lý dữ liệu qua các cơ sở dữ liệu, mỗi cơ sở dữ liệu có thể chứa nhiều bảng quan hệ MySQL sử dụng cú pháp và truy vấn tương tự như ngôn ngữ SQL và đã được phát hành từ thập niên 90.
Ngôn ngữ lập trình
Java là một ngôn ngữ lập trình hướng đối tượng phổ biến, được ứng dụng rộng rãi trong phát triển phần mềm, xây dựng trang web, thiết kế game và phát triển ứng dụng cho các thiết bị di động.
Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write Once,
Chạy bất kỳ đâu - WORA (Write Once, Run Anywhere) Phần mềm được viết bằng Java có khả năng hoạt động trên mọi nền tảng khác nhau, miễn là có môi trường thực thi phù hợp hỗ trợ nền tảng đó.
Java là ngôn ngữ lập trình hướng đối tượng nên nó cũng có 4 đặc điểm chung của các ngôn ngữ hướng đối tượng
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 3
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Tính trừu tượng là quá trình xác định và phân loại các thuộc tính cũng như hành động liên quan đến một thực thể cụ thể, trong bối cảnh ứng dụng đang được phát triển.
Tính đa hình cho phép một phương thức thực hiện các tác động khác nhau trên nhiều loại đối tượng khác nhau Khi cùng một phương thức được áp dụng cho các đối tượng thuộc các lớp khác nhau, nó sẽ cho ra những kết quả khác nhau, mặc dù số lượng tham số của phương thức vẫn giữ nguyên.
Tính kế thừa (Inheritance): Điều này cho phép các đối tượng chia sẻ hay mở rộng các đặc tính sẵn có mà không phải tiến hành định nghĩa lại.
Tính đóng gói (Encapsulation): là tiến trình che giấu việc thực thi những chi tiết của một đối tượng đối với người sử dụng đối tượng ấy.
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 4
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Framework
Hibernate là một trong những framework ORM nổi bật, chuyên dụng cho lớp lưu trữ (persistence layer) Nhờ có Hibernate, các nhà phát triển ứng dụng có thể tập trung vào các lớp khác mà không cần lo lắng nhiều về việc quản lý lớp lưu trữ.
Hibernate là một công cụ mạnh mẽ giúp lập trình viên Java kết nối các đối tượng POJO với cơ sở dữ liệu quan hệ, đồng thời hỗ trợ việc áp dụng các khái niệm lập trình hướng đối tượng trong môi trường cơ sở dữ liệu.
Hibernate là một công cụ mạnh mẽ giúp lưu trữ và truy vấn dữ liệu quan hệ một cách nhanh chóng Nó cho phép người dùng truy cập dữ liệu thông qua Java Persistence API (JPA), ngôn ngữ SQL mở rộng của Hibernate (HQL), hoặc bằng SQL thuần (Native SQL).
Spring là một Framework phát triển ứng dụng Java phổ biến, được hàng triệu lập trình viên tin dùng Framework này hỗ trợ xây dựng các ứng dụng có hiệu suất cao, dễ dàng kiểm thử và tái sử dụng mã nguồn hiệu quả.
Spring nhẹ và trong suốt (nhẹ: kích thước nhỏ, version cơ bản chỉ khoảng 2MB; trong suốt: hoạt động một cách trong suốt với lập trình viên)
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 5
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Spring là một mã nguồn mở, được phát triển, chia sẻ và có cộng đồng người dùng rất lơn.
Spring Framework được xây dựng dựa trên 2 nguyên tắc design chính là: Dependency Injection và Aspect Oriented Programming.
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 6
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Github
GitHub là nền tảng quản lý dự án và phiên bản mã nguồn, tương tự như mạng xã hội dành cho lập trình viên Tại đây, lập trình viên có thể sao chép mã nguồn từ các kho chứa (repository) và sử dụng dịch vụ máy chủ kho chứa công cộng Mỗi người dùng có thể tạo tài khoản để xây dựng kho chứa riêng, phục vụ cho công việc phát triển phần mềm.
PHÂN TÍCH THIẾT KẾ
Đặc tả yêu cầu phần mềm (Software Requirements)
khi đăng ký bắt buộc phải xác thực qua email mới có thể kích hoạt tài khoản thành viên
3.1.1.2 Được xem các thông tin về tin tuyển dụng và nhà tuyển dụng
3.1.1.3 Được phép tìm kiếm theo từ khóa nhập vào
Kế thừa các use-case “Xem thông tin”, “Tìm kiếm” từ “Khách vãng lai”
để sử dụng được các chức năng của khách thành viên thì bắt buộc phải thực hiện đăng nhập
3.1.2.2 Cập nhật thông tin hồ sơ ứng viên
Kế thừa các use-case “Xem thông tin”, “Tìm kiếm” từ “Khách vãng lai”
để sử dụng được các chức năng của nhà tuyển dụng thì bắt buộc phải thực hiện đăng nhập
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 9
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
3.1.3.2 Cập nhật thông tin nhà tuyển dụng
3.1.3.4 Cập nhật tin tuyển dụng
3.1.3.5 Xem danh sách tin tuyển dụng
3.1.3.6 Xem danh sách ứng viên
3.1.3.7 Duyệt hồ sơ ứng tuyển
3.1.3.8 Xem hồ sơ ứng viên (Chỉ ứng viên ứng tuyển vào tin tuyển dụng của nhà tuyển dụng)
Để sử dụng các chức năng của quản trị viên thì bắt buộc phải thực hiện đăng nhập bằng tài khoản có sẵn
3.1.4.2 Xem – Xóa danh sách ứng viên
3.1.4.3 Xem – Xóa danh sách nhà tuyển dụng
3.1.4.4 Xem – Xóa danh sách tin tuyển dụng
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 10
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Sơ đồ Use-case
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 11
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Form
3.3.1 Form cập nhật thông tin nhà tuyển dụng
Hình 3-3 Form thông tin nhà tuyển dụng
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 12
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
3.3.2 Form đăng tin tuyển dụng
Hình 3-4 Form thông tin nhà tuyển dụng
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 13
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
3.3.3 Form cập nhật hồ sơ ứng viên
Hình 3-5 Form cập nhật hồ sơ ứng viên
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 14
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 15
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 16
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Sơ đồ hoạt động
Hình 3-8 Sơ đồ hoạt động đăng ký
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 17
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Hình 3-9 Sơ đồ hoạt động ứng tuyển
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 18
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
3.4.3.1 Activity Duyệt hồ sơ ứng tuyển
Hình 3-10 Sơ đồ hoạt động duyệt hồ sơ ứng tuyển
Sinh viên thực hiện: Trần Hoàng Chung Người hướng dẫn:Trần Bửu Dung 19
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
DEMO CHƯƠNG TRÌNH
Thiết kế database
Hình 4-13 Cơ sở dữ liệu
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 22
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã người dùng Int Khóa chính, tự động tăng
Name Tên người dùng Varchar
Phonenumber Số điện thoại Varchar
Email Email người dùng Varchar
AccountId Mã tài khoản Int Khóa ngoại liên kết với bảng Account
Image Ảnh đại diện Varchar
Idsocial Mã mạng xã hội Varchar Người dùng đăng nhập bằng tài khoản mạng xã hội
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 23
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã tài khoản Int Khóa chính, tự động tăng
Username Tên đăng nhập Varchar Duy nhất
Password Mật khẩu Varchar Mã hóa
Accountroleid Mã loại tài khoản Int Khóa ngoại liên kết với bảng
Enable Tài khoản đã xác thực
Verificationcode Mã xác thực tài khoản
4.1.3 Table Accountrole (Loại tài khoản)
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã loại tài khoản int Khóa chính, tự động tăng
Name Tên loại tài khoản Varchar
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 24
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.1.4 Table Company (Nhà tuyển dụng)
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã nhà tuyển dụng Int Khóa chính, tự động tăng
Name Tên nhà tuyển dụng Varchar
Shortdescription Mô tả ngắn Varchar
Address Địa chỉ nhà tuyển dụng
Website Website nhà tuyển dụng
Foundationyear Năm thành lập Int
Employee Số lượng nhân viên Int
Email Email nhà tuyển dụng
Phonenumber Số điện thoại nhà tuyển dụng
Accountid Mã tài khoản Int Khóa ngoại liên kết với bảng Account
Image Ảnh đại diện nhà tuyển dụng
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 25
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.1.5 Table SkillUsers (Kỹ năng ứng viên)
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã kỹ năng Int Khóa chính, tự động tăng
Name Tên kỹ năng Varchar
Userid Mã ứng viên Int Khóa ngoại liên kết với bảng Users
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã ứng tuyển Int Khóa chính, tự động tăng
Jobid Mã tin tuyển dụng Int Khóa ngoại liên kết với bảng Jobs
Usersid Mã ứng viên Int Khóa ngoại liên kết với bảng
Applytime Thời gian ứng tuyển Date
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 26
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.1.7 Table Jobs (Tin tuyển dụng)
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã tin tuyển dụng Int Khóa chính, tự động tang
Name Tên tin tuyển dụng Varchar
Shortdescription Mô tả ngắn Varchar
Address Địa chỉ làm việc Varchar
Number Số lượng tuyển dụng
Expiredate Ngày hết hạn Date
Maxsalary Lương cao nhất Money
Minsalary Lương thấp nhất Money
Companyid Mã nhà tuyển dụng Int Khóa ngoại liên kết với bảng Company
Jobtype Loại công việc Varchar
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 27
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.1.8 Table SkillJobs (Yêu cầu kỹ năng – tin tuyển dụng)
Thuộc tính Giải thích Kiểu dữ liệu Ghi chú
Id Mã kỹ năng Int Khóa chính, tự động tăng
Name Tên kỹ năng Varchar
Jobid Mã tin tuyển dụng Int Khóa ngoại liên kết với bảng Jobs
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 28
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Code cho những chức năng
4.2.1 Đăng ký (Xác thực tài khoản qua email)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 29
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.2 Đăng nhập (Có thể đăng nhập bằng facebook)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 30
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 31
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.4 Tìm kiếm tin tuyển dụng
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 32
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.5 Duyệt hồ sơ ứng tuyển (Actor Company)
4.2.6 Xem hồ sơ ứng viên (Actor Company)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 33
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.7 Xem hồ sơ nhà tuyển dụng (Actor User)
4.2.8 Xem danh sách công việc đã ứng tuyển (Actor User)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 34
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.9 Đăng tin tuyển dụng (Actor Company)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 35
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.10 Cập nhật hồ sơ ứng viên (Actor User)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 36
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.11 Danh sách người dùng (Actor Admin)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 37
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
4.2.12 Danh sách nhà tuyển dụng (Actor Admin)
4.2.13 Danh sách tin tuyển dụng (Actor Admin)
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 38
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin
Source web
https://github.com/hoangchung16-00/jobboard_finalproject
Link website
Sinh viên thực hiện:Trần Hoàng Chung Người hướng dẫn: Trần Bửu Dung 39
Xây dựng website tìm kiếm việc làm cho ngành công nghệ thông tin