TÌM HIỂU NGÔN NGỮ LẬP TRÌNH
Tổng quan về ngôn ngữ lập trình phía Backend
2.1.1 PHP - Ngôn ngữ lập trình.
Ngôn ngữ lập trình PHP (PHP: Hypertext Preprocessor) là một ngôn ngữ kịch bản mã nguồn mở, chủ yếu được sử dụng để phát triển ứng dụng trên máy chủ Với khả năng tích hợp dễ dàng vào trang HTML, PHP rất phù hợp cho việc phát triển web và phục vụ nhiều mục đích tổng quát.
PHP là một ngôn ngữ lập trình tối ưu cho ứng dụng web, nổi bật với tốc độ nhanh và kích thước nhỏ gọn Với cú pháp tương tự như C và Java, PHP dễ học và cho phép thời gian xây dựng sản phẩm ngắn, từ đó nhanh chóng trở thành một trong những ngôn ngữ lập trình phổ biến nhất hiện nay.
Để chạy mã PHP, cần thiết lập môi trường server vì PHP là ngôn ngữ phía server XAMPP là một giải pháp hiệu quả để tạo môi trường server, bao gồm Apache, MySQL và PHP trong một gói cài đặt tích hợp Ngoài ra, XAMPP còn cung cấp phpMyAdmin, một công cụ web hữu ích cho việc quản lý cơ sở dữ liệu, cùng với nhiều thư viện hỗ trợ như OpenSSL và pdf class.
PHP là một ngôn ngữ lập trình miễn phí, rất lý tưởng cho những ai muốn học lập trình Bạn có thể tự học PHP trực tuyến mà không cần lo lắng về chi phí học tập.
Cấu trúc của PHP rất đơn giản, giúp lập trình viên dễ dàng tiếp cận và học hỏi mà không tốn quá nhiều thời gian Đây là một trong những ưu điểm nổi bật, khiến PHP luôn thu hút sự quan tâm từ những người đam mê công nghệ thông tin.
Thư viện PHP rất phong phú và được cộng đồng hỗ trợ mạnh mẽ, giúp người dùng dễ dàng tìm kiếm tài liệu và nhận sự hỗ trợ hiệu quả khi gặp khó khăn.
Học PHP mang lại nhiều cơ hội việc làm với mức lương cao, thậm chí có thể nói là khủng, mà bạn có thể chưa từng nghĩ tới Ưu điểm này cho phép bạn đảm nhận nhiều loại công việc khác nhau tại nhiều công ty, từ đó tăng thu nhập đáng kể PHP không chỉ dừng lại ở những tính năng hiện tại mà còn hứa hẹn phát triển mạnh mẽ trong tương lai, khẳng định vị trí cao trong danh sách khảo sát hàng năm về ngôn ngữ lập trình trong công nghệ thông tin.
Laravel là một framework PHP miễn phí và mã nguồn mở, được phát triển bởi Taylor Otwell, chuyên dành cho việc xây dựng ứng dụng web theo kiến trúc MVC Framework này dựa trên Symfony PHP và sở hữu nhiều tính năng nổi bật như hệ thống đóng gói module, quản lý package thông qua Composer, cũng như hỗ trợ đa dạng các hệ quản trị cơ sở dữ liệu quan hệ như MySQL, MariaDB, SQLite, và PostgreSQL Laravel cũng cung cấp các công cụ hữu ích để triển khai và bảo trì ứng dụng hiệu quả.
Laravel là một framework PHP 5.3, được mô tả là "một framework cho web artisan" Theo tác giả Taylor Otwell, Laravel mang đến niềm vui cho lập trình viên nhờ vào sự đơn giản, súc tích và cách trình bày hợp lý.
Laravel là một framework phát triển dựa trên mô hình MVC, cung cấp nhiều mẫu thiết kế phù hợp cho ứng dụng của bạn, cùng với các thư viện, API và trình biên dịch Hiện tại, Laravel được phát hành theo giấy phép MIT và mã nguồn của nó được lưu trữ trên GitHub Đến nay, Laravel đã phát triển đến phiên bản 5.8 với nhiều cải tiến đáng kể.
- Laravel có 3 đặc tính nổi trội: Đơn giản: các chức năng của Laravel rất dễ hiểu và thực hiện.
Ngắn gọn: hầu hết các chức năng của Laravel hoạt động liên tục với cấu hình rất nhỏ, dựa vào các quy tắc chuẩn để giảm bớt code-bloat.
Hướng dẫn sử dụng Laravel được trình bày một cách hợp lý và luôn được cập nhật thường xuyên Nhà phát triển của framework này liên tục cập nhật tài liệu trước khi phát hành phiên bản mới, đảm bảo rằng những người học lập trình luôn có sẵn tài liệu mới nhất để tham khảo.
Tổng quan về ngôn ngữ lập trình phía Frontend
HTML, viết tắt của Hypertext Markup Language, là ngôn ngữ giúp người dùng tạo và cấu trúc các thành phần trên trang web hoặc ứng dụng, bao gồm việc phân chia đoạn văn, tiêu đề, liên kết và blockquote.
HTML không phải là ngôn ngữ lập trình, mà chỉ là công cụ để bố cục và định dạng trang web, tương tự như Microsoft Word Do đó, HTML không thể tạo ra các chức năng “động” trên trang web.
Khi làm việc với HTML, chúng ta sử dụng cấu trúc mã đơn giản bao gồm các thẻ và thuộc tính để đánh dấu nội dung trên trang web Ví dụ, để tạo một đoạn văn, chúng ta chỉ cần đặt văn bản giữa cặp thẻ mở và thẻ đóng.
HTML documents là các file có đuôi html hoặc htm, có thể được mở bằng bất kỳ trình duyệt web nào như Google Chrome, Safari hay Mozilla Firefox Các trình duyệt này sẽ đọc các file HTML và hiển thị nội dung trên internet để người dùng có thể truy cập và xem.
- Thông thường, trung bình một web chứa nhiều trang web HTML, ví dụ như: trang chủ, trang about, trang liên hệ, tất cả đều cần các trang HTML riêng.
Mỗi trang HTML bao gồm một tập hợp các thẻ (elements) tạo thành cấu trúc cơ bản cho một trang web Các thẻ này hình thành cấu trúc cây thư mục, bao gồm các phần như section, paragraph, heading và các khối nội dung khác.
CSS, viết tắt của Cascading Style Sheets, là một ngôn ngữ thiết kế dùng để tìm kiếm và định dạng các phần tử được tạo ra bởi HTML.
- CSS được phát triển bởi W3C (World Wide Web Consortium) vào năm
1996, vì HTML không được thiết kế để gắn tag để giúp định dạng trang web.
CSS hoạt động bằng cách tìm kiếm các vùng chọn, bao gồm tên thẻ HTML, ID, class và nhiều kiểu khác Sau khi xác định vùng chọn, CSS sẽ áp dụng các thuộc tính cần thiết để thay đổi diện mạo của chúng.
HTML và CSS có mối quan hệ chặt chẽ, trong đó HTML là ngôn ngữ đánh dấu tạo nền tảng cho trang web, còn CSS định hình phong cách và giao diện của nó Sự kết hợp giữa HTML và CSS là điều không thể thiếu để xây dựng một website hoàn chỉnh.
Trước khi CSS ra đời, việc lặp lại các thuộc tính như phông chữ, màu sắc, kiểu nền, sắp xếp phần tử, đường viền và kích thước trên mỗi trang web là một quá trình tốn thời gian và công sức Đặc biệt, trong việc phát triển các trang web lớn, việc thêm phông chữ và màu sắc cho từng trang trở nên phức tạp và tốn kém CSS được phát triển nhằm giải quyết những vấn đề này, theo khuyến cáo của W3C.
CSS giúp tổ chức mã nguồn của trang web một cách gọn gàng và có trật tự hơn, đồng thời làm cho nội dung hiển thị trên trang trở nên rõ ràng và dễ phân biệt hơn.
Từ đó, quá trình cập nhập nội dung sẽ dễ dàng hơn và có thể hạn chế tối thiểu làm rối cho mã HTML.
CSS được định nghĩa trong các tệp bên ngoài, cho phép bạn thay đổi toàn bộ trang web chỉ bằng cách chỉnh sửa một tệp duy nhất Việc sử dụng CSS giúp bạn tránh lặp lại mô tả cho từng thành phần, từ đó tiết kiệm thời gian và giảm độ dài của mã code, giúp dễ dàng kiểm soát các lỗi không mong muốn.
CSS cho phép tạo ra nhiều kiểu dáng khác nhau, giúp áp dụng cho nhiều trang web khác nhau, từ đó giảm thiểu việc lặp lại các định dạng trên các trang web tương tự.
CSS cung cấp các thuộc tính chi tiết hơn HTML, cho phép định nghĩa giao diện trang web một cách linh hoạt Nhờ vào CSS, người dùng có thể áp dụng nhiều kiểu dáng khác nhau trên cùng một trang HTML, tạo ra khả năng tùy chỉnh giao diện trang web một cách đa dạng và phong phú.
- Bootstrap là một framework bao gồm các HTML, CSS và JavaScript template dùng để phát triển website chuẩn responsive.
Bootstrap streamlines the web design process, making it faster and easier by providing essential components such as typography, forms, buttons, tables, grids, navigation, and image carousels.
Bootstrap là bộ công cụ mã nguồn mở miễn phí giúp tạo mẫu website hoàn chỉnh Với các thuộc tính giao diện như kích thước, màu sắc, độ cao và độ rộng được quy định sẵn, Bootstrap cho phép các designer sáng tạo sản phẩm mới mẻ một cách nhanh chóng và hiệu quả trong quá trình thiết kế giao diện website.
Môi trường hỗ trợ
XAMPP là một phần mềm tích hợp gồm 5 thành phần chính: Cross-Platform (X), Apache (A), MariaDB (M), PHP (P) và Perl (P) Tên gọi XAMPP được hình thành từ chữ cái đầu của các phần mềm này, thể hiện sự kết hợp mạnh mẽ cho việc phát triển web.
Chữ X đầu tiên là viết tắt của hệ điều hành mà nó hoạt động với: Linux, Windows và Mac OS X.
Apache là máy chủ web mã nguồn mở phổ biến nhất toàn cầu, được sử dụng để phân phối nội dung trên Internet Phần mềm này được phát triển và cung cấp miễn phí bởi Apache Software Foundation.
MySQL / MariaDB là một trong những hệ quản trị cơ sở dữ liệu quan hệ phổ biến nhất, được tích hợp trong XAMPP cùng với Web Server Apache và ngôn ngữ lập trình PHP, cung cấp khả năng lưu trữ dữ liệu cho các dịch vụ Web Hiện nay, XAMPP đã thay thế MySQL bằng MariaDB, một nhánh của MySQL do cộng đồng phát triển PHP là ngôn ngữ lập trình phía máy chủ cho phép tạo ra các trang Web và ứng dụng động, có thể cài đặt trên nhiều nền tảng và hỗ trợ đa dạng hệ thống cơ sở dữ liệu.
Perl là một ngôn ngữ kịch bản phổ biến, được ứng dụng rộng rãi trong quản trị hệ thống, phát triển web và lập trình mạng Tương tự như PHP, Perl hỗ trợ người dùng trong việc xây dựng các ứng dụng web động hiệu quả.
XAMPP nổi bật với ưu điểm lớn nhất là miễn phí bản quyền và sử dụng mã nguồn mở Cấu hình của web server này cũng rất đơn giản và gọn nhẹ, điều này góp phần làm cho nó ngày càng trở nên phổ biến trong cộng đồng lập trình hiện nay.
Phần mềm XAMPP là một ứng dụng phổ biến được lập trình viên sử dụng để phát triển dự án website bằng ngôn ngữ PHP Nó cho phép người dùng nghiên cứu và xây dựng website qua Localhost trên máy tính cá nhân XAMPP được ứng dụng rộng rãi trong nhiều lĩnh vực, từ học tập đến nâng cấp và thử nghiệm website cho các lập trình viên.
2.3.2 Cơ sở dữ liệu – MySQL
MySQL là một hệ thống quản lý cơ sở dữ liệu quan hệ mã nguồn mở (RDBMS) dựa trên ngôn ngữ truy vấn có cấu trúc (SQL), được phát triển và hỗ trợ bởi tập đoàn Oracle Hệ thống này có khả năng hoạt động trên nhiều nền tảng khác nhau, bao gồm Linux, UNIX và Windows, và thường được sử dụng kết hợp với các ứng dụng web.
SQL là ngôn ngữ phổ biến nhất để quản lý và truy cập nội dung trong cơ sở dữ liệu nhờ vào khả năng xử lý nhanh, độ tin cậy cao, dễ sử dụng và linh hoạt MySQL đóng vai trò quan trọng trong hầu hết các ứng dụng PHP mã nguồn mở, với những ví dụ điển hình như WordPress, Joomla, Magento và Drupal Sự phổ biến của MySQL ngày càng tăng do những lợi ích vượt trội mà nó mang lại.
MySQL hoạt động theo mô hình client-server, trong đó máy chủ MySQL là phần cốt lõi, chịu trách nhiệm xử lý tất cả các lệnh cơ sở dữ liệu Nó có thể được sử dụng như một chương trình độc lập trong môi trường mạng client-server hoặc như một thư viện có thể nhúng vào các ứng dụng khác.
MySQL là một hệ quản trị cơ sở dữ liệu quan hệ nổi bật, sử dụng ngôn ngữ truy vấn có cấu trúc (SQL) Nó hỗ trợ nhiều ngôn ngữ lập trình như NodeJs, PHP, và Perl, đóng vai trò quan trọng trong việc lưu trữ thông tin cho các trang web phát triển bằng những ngôn ngữ này.
Để đảm bảo an toàn, MySQL áp dụng hệ thống quyền truy cập và mật khẩu mã hóa để xác thực trên máy chủ Các máy khách MySQL có thể kết nối với Máy chủ MySQL thông qua nhiều giao thức, trong đó có giao thức TCP/IP, trên mọi nền tảng Ngoài ra, MySQL còn hỗ trợ nhiều chương trình máy khách, tiện ích, chương trình dòng lệnh và công cụ quản trị như MySQL Workbench.
Mô hình hoạt động – MVC
Hình 2.1: Mô hình MVC hoạt động
MVC là viết tắt của Model, View và Controller, là một mô hình thiết kế phổ biến trong kỹ thuật phần mềm Mô hình này chia source code thành ba phần riêng biệt, mỗi phần tương ứng với một hoạt động cụ thể trong hệ thống.
Model (M) là bộ phận lưu trữ dữ liệu của ứng dụng, đóng vai trò cầu nối giữa View và Controller, thể hiện qua cơ sở dữ liệu hoặc file XML, cho phép thực hiện các thao tác như xem, truy xuất và xử lý dữ liệu View (V) là giao diện dành cho người sử dụng, nơi người dùng có thể truy cập thông tin từ MVC thông qua các thao tác tìm kiếm hoặc sử dụng trên website Thông thường, các ứng dụng web sử dụng MVC View như một phần của hệ thống để tạo ra các thành phần HTML.
View có vai trò ghi nhận hoạt động của người dùng để tương tác với Controller Tuy nhiên, View không trực tiếp liên kết với Controller và không lấy dữ liệu từ Controller, mà chỉ hiển thị yêu cầu để chuyển giao cho Controller.
Controller (C) là bộ phận chịu trách nhiệm xử lý yêu cầu từ người dùng thông qua giao diện (view) và cung cấp dữ liệu phù hợp Ngoài ra, Controller còn đóng vai trò kết nối với model để đảm bảo tính đồng nhất trong việc quản lý dữ liệu.
Mô hình MVC bao gồm các bộ phận thực hiện chức năng riêng biệt nhưng vẫn liên kết chặt chẽ với nhau, tạo nên sự thống nhất trong kiến trúc Mô hình này nhẹ và có khả năng tích hợp nhiều tính năng hiện có trong ASP.NET, chẳng hạn như quá trình xác thực (authentication).
Mô hình MVC đang ngày càng phổ biến trong lập trình nhờ vào tính nhẹ và khả năng tiết kiệm băng thông Việc không sử dụng viewstate giúp giảm thiểu diện tích băng thông, cho phép người dùng tương tác với ứng dụng web một cách liên tục Điều này không chỉ cải thiện hiệu suất mà còn đảm bảo website hoạt động ổn định hơn.
- Bên cạnh đó nhược điểm của mô hình này đối với các dự án có tính phức tạp cao thì mô hình MVC trở nên không khả dụng
Hệ thống MVC hiệu quả cho phép phát triển Frontend và Backend đồng thời mà không cần can thiệp vào các tập tin của nhau Mô hình này được áp dụng rộng rãi trong nhiều ngôn ngữ lập trình, với ASP.NET MVC và PHP MVC là những ứng dụng phổ biến nhất.
Việc triển khai mô hình MVC khá đơn giản, chỉ cần nắm vững quy trình vận hành và hiểu rõ chức năng của từng bộ phận.
PHÂN TÍCH VÀ THIẾT KẾ ỨNG DỤNG
Phân tích bài toán
Để xây dựng một website chất lượng và hiệu quả, cần xác định mục đích sử dụng, đối tượng người dùng và những gì họ quan tâm Mục tiêu là cung cấp cho người dùng nội dung họ muốn xem, thay vì những gì chúng ta muốn họ xem Quá trình xây dựng website đòi hỏi sự kiên nhẫn và kế hoạch rõ ràng, đồng thời phải bám sát mục đích và yêu cầu đã đề ra.
Nhà tuyển dụng có thể tạo ra các bài kiểm tra để lọc ứng viên chất lượng cho công việc, giúp tiết kiệm thời gian và nâng cao hiệu quả tuyển dụng thay vì phỏng vấn nhiều ứng viên mà không đạt được kết quả cao.
Khi tìm kiếm việc làm, ứng viên có thể đăng nhập và sử dụng các bộ lọc để tìm kiếm các bài đăng tuyển phù hợp Sau khi tìm thấy công việc ưng ý, ứng viên có thể nộp đơn và đính kèm CV để nhà tuyển dụng hiểu rõ hơn về bản thân mình.
Sau khi ứng viên nộp hồ sơ thành công, nhà tuyển dụng sẽ xem xét CV của họ Nếu ứng viên có tiềm năng phù hợp với yêu cầu công việc, nhà tuyển dụng có thể mời họ thực hiện bài kiểm tra năng lực Ngược lại, nếu ứng viên không đáp ứng đủ tiêu chí, nhà tuyển dụng có quyền từ chối và không cho phép họ tham gia bài kiểm tra.
Ứng viên đủ điều kiện sẽ bắt đầu làm bài kiểm tra năng lực, nhưng cần tuân thủ quy chế bảo mật nghiêm ngặt Cấm chụp màn hình và xem mã nguồn trang để đảm bảo an toàn thông tin cho nhà tuyển dụng Vi phạm quy định này sẽ dẫn đến việc bài kiểm tra bị hủy ngay lập tức.
Sau khi ứng cử viên hoàn thành bài kiểm tra, nhà tuyển dụng sẽ nhận được điểm số của bài kiểm tra đó Điểm số này giúp nhà tuyển dụng đánh giá năng lực của ứng cử viên, từ đó có thể lựa chọn được những ứng viên chất lượng cho vị trí tuyển dụng.
Sơ đồ phân rã chức năng
3.3.1 Phân rã chức năng của ứng cử viên.
Hình 3.1: Sơ đồ phân rã chức năng của ứng cử viên
3.5.2 Phân rã chức năng của ứng cử viên.
Hình 3.2: Sơ đồ phân rã chức năng của nhà tuyển dụng
Sơ đồ ERD
Class Diagram
Hình 3.4: Sơ đồ Class Diagram
Bảng 3 1: Cấu trúc bảng địa điểm :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã địa điểm Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Tên địa điểm Varchar 255 Tên địa điểm dùng để lọc danh sách công việc khi ứng cử viên tìm kiếm
Bảng 3 2: Cấu trúc bảng ngành nghề :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã ngành nghề Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Tên ngành nghề Varchar 255 Tên ngành nghề dùng để lọc danh sách công việc khi ứng cử viên tìm kiếm
Bảng 3 3 : Cấu trúc bảng học vấn :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã học vấn Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Tên học vấn Varchar 255 Tên học vấn dùng để nhà tuyển dụng có thể hiểu được mức độ của ứng viên khi ứng cử viên tìm kiếm
Bảng 3 4: Cấu trúc bảng thời hạn đăng bài :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã thời hạn Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Thời hạn Varchar 255 Thời hạn đăng bài để nhà tuyển dụng có thể dựa vào nhu cầu tuyển dụng cho ra các bài đăng tuyển dụng hợp lý
Số tiền Double Số tiền thể hiện chi phí mà nhà tuyển dụng sẽ phải thanh toán dựa trên thời hạn mua
Bảng 3 5: Cấu trúc bảng ứng cử viên :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã ứng viên Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Tên ứng viên Varchar 255 Thời hạn đăng bài để nhà tuyển dụng có thể dựa vào nhu cầu tuyển dụng cho ra các bài đăng tuyển dụng hợp lý
Email Double Số tiền thể hiện chi phí mà nhà tuyển dụng sẽ phải thanh toán dựa trên thời hạn mua
Số điện thoại Varchar 255 Số điện thoại của ứng viên Địa chỉ Text Địa chỉ của ứng viên
Hình ảnh Varchar 255 Hình ảnh đại diện của ứng viên
Ngày sinh Date Ngày sinh của ứng viên
Giới tính Tinyint 1 Giới tính
Tài khoản Varchar 255 Tài khoản của ứng viên để đăng nhập
Mật khẩu Varchar 255 Mật khẩu của ứng viên để đăng nhập, mật khẩu này sẽ được mã hóa MD5
File_CV Varchar 255 File CV của ứng viên
Bảng 3 6: Cấu trúc bảng nhà tuyển dụng :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã nhà tuyển Int 255 Mã tự tăng, được dùng để làm khóa chính cho dụng bảng.
Tên công ty Varchar 255 Tên công ty của nhà tuyển dụng
Trang web Text Trang web của nhà tuyển dụng để ứng viên có thể tìm hiểu thêm Địa chỉ Text Địa chỉ của nhà tuyển dụng
Số điện thoại Varchar 255 Số điện thoại của nhà tuyển dụng để ứng viên liên lạc
Số fax Varchar 255 Số fax của nhà tuyển dụng
Email Varchar 255 Email của nhà tuyển dụng để ứng viên có thể liên lạc, nhận thông tin Hình ảnh Varchar 255 Hình ảnh Logo của nhà tuyển dụng
Tài khoản Varchar 255 Tài khoản của nhà tuyển dụng để đăng nhập
Mật khẩu của nhà tuyển dụng được lưu trữ dưới dạng Varchar 255 và được mã hóa bằng thuật toán MD5 để đảm bảo an toàn Vị trí kinh độ của nhà tuyển dụng cũng được lưu trữ dưới dạng Varchar 255, giúp xác định vị trí chính xác.
Vĩ độ Varchar 255 Vị trí vĩ độ của nhà tuyển dụng để định vị
Hạn đăng bài Date Thời hạn để đăng bài của nhà tuyển dụng
Token Varchar 255 Mã token để xác thực tài khoản của nhà tuyển dụng
Bảng 3 7: Cấu trúc bảng mạng xã hội :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Người dùng Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Mã ứng viên Varchar 255 Mã của ứng viên trong mạng xã hội để phân biệt mxh các ứng viên
Mạng xã hội Varchar 255 Số tiền thể hiện chi phí mà nhà tuyển dụng sẽ phải thanh toán dựa trên thời hạn mua
Mã ứng viên Int 255 Số điện thoại của ứng viên
Bảng 3 8: Cấu trúc bảng bài đăng tuyển dụng :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã bài đăng Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Tiêu đề Varchar 255 Tiêu đề của bài đăng để ứng viên có thể tìm kiếm dễ dàng
Yêu cầu Text Yêu cầu dành cho người ứng tuyển
Mã địa điểm Int 255 Địa điểm làm việc cho người ứng tuyển
Mô tả công việc là thông tin cần thiết cho ứng viên, giúp họ hiểu rõ nhiệm vụ và trách nhiệm khi ứng tuyển Mức lương sẽ được xác định dựa trên năng lực và kinh nghiệm của ứng viên, tạo động lực cho họ tham gia Địa điểm làm việc cũng rất quan trọng, vì nó ảnh hưởng đến sự thuận tiện và khả năng di chuyển của ứng viên trong quá trình phỏng vấn và làm việc.
Ngày đăng bài tuyển dụng là thời điểm mà nhà tuyển dụng công bố thông tin Hạn ứng tuyển là thời gian cuối cùng mà ứng cử viên có thể nộp hồ sơ; sau thời gian này, việc ứng tuyển sẽ không còn hiệu lực Ngoài ra, các thông tin khác như chế độ đãi ngộ và quy định cũng cần được ứng cử viên lưu ý trước khi quyết định nộp đơn.
Mã nhà tuyển Int 255 Mã nhà tuyển dụng để xác định bài đăng của công dụng ty nào
Mã ngành nghề Int 255 giúp xác định các ứng viên phù hợp cho bài đăng tuyển dụng, trong khi Tiêu đề SEO Varchar 255 là tiêu đề được sử dụng khi chia sẻ trang web trên các mạng xã hội.
Mô tả SEO là thông tin quan trọng giúp tối ưu hóa trang web khi chia sẻ trên các mạng xã hội, giúp thu hút sự chú ý từ người dùng Hình ảnh SEO, với dung lượng tối đa 255 ký tự, là yếu tố không thể thiếu, tạo ấn tượng mạnh mẽ và khuyến khích người dùng nhấp vào liên kết.
Bảng 3 9: Cấu trúc bảng bài kiểm tra :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã bài kiểm tra Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Tên bài kiểm tra Varchar 255 Tên của bài kiểm tra
Thời gian làm Int 255 Thời gian làm bài kiểm tra
Số câu Int 255 Số câu trong bài kiểm tra Điểm tối thiểu Double Điểm tối thiểu để có thể vượt qua bài kiểm tra
Mã nhà tuyển Int 255 Mã nhà tuyển dụng để biết bài kiểm tra của nhà dụng tuyển dụng nào
Bảng 3 10: Cấu trúc bảng câu hỏi :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã câu hỏi Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Mã bài kiểm tra Int 255 Mã bài kiểm tra để xác định câu hỏi trong bài kiểm tra nào
Tên câu hỏi Text Tên của câu hỏi
Lựa chọn a Varchar 255 Lựa chọn a
Lựa chọn b Varchar Lựa chọn b
Lựa chọn c Varchar 255 Lựa chọn c
Lựa chọn d Varchar 255 Lựa chọn d Đáp án Varchar 255 Đáp án của câu hỏi
Bảng 3 11: Cấu trúc bảng chi tiết ứng cử :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã ứng viên Int 255 Mã ứng viên ứng cử vào vị trí cộng việc
Mã bài đăng Int 255 Mã bài đăng mà ứng viên ứng cử vào
Trạng thái Tinyint 1 Trạng thái đang ứng cử của ứng viên
File CV Varchar 255 File CV mà ứng viên nộp cho nhà tuyển dụng Kiểm tra Tinyint 1 Trạng thái của ứng viên được phép làm bài kiểm tra
Bảng 3 12: Cấu trúc bảng thông tin kiểm tra :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã bài đăng Int 255 Mã bài đăng để ứng viên làm kiểm tra
Mã bài kiểm tra Int 255 Mã bài kiểm tra của bài đăng
Trạng thái Tinyint 1 Trạng thái bài kiểm tra còn hoạt động trong bài đăng
Bảng 3 13: Cấu trúc bảng chi tiết trả lời :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã ứng viên Int 255 Mã ứng viên đã trả lời câu hỏi
Mã câu hỏi Int 255 Mã câu hỏi khi ứng viên trả lời
Câu trả lời Varchar 11 Câu trả lời của ứng viên
Bảng 3 14: Cấu trúc bảng chi tiết kiểm tra :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã ứng viên Int 255 Mã ứng viên làm bài kiểm tra.
Mã bài kiểm tra Int 255 Mã bài kiểm tra ứng viên đã làm
Số điểm Int 255 thể hiện số điểm tối đa mà ứng viên có thể đạt được sau khi hoàn thành bài kiểm tra Ngày làm bài Date ghi lại thời gian mà ứng viên đã thực hiện bài kiểm tra Trạng thái Tinyint 1 chỉ ra tình trạng hoàn thành của bài kiểm tra.
Bảng 3 15: Cấu trúc bảng thông tin thanh toán :
Tên thuộc tính Kiểu dữ liệu Độ dài Mô tả
Mã thanh toán Int 255 Mã tự tăng, được dùng để làm khóa chính cho bảng.
Mã nhà tuyển dụng là một thông tin quan trọng giúp xác định thời hạn thanh toán của nhà tuyển dụng Thời hạn thanh toán được mã hóa với mã thời hạn Int 255, cho biết thời gian mà nhà tuyển dụng sẽ thực hiện thanh toán Ngày thanh toán được ghi nhận là ngày cụ thể mà nhà tuyển dụng hoàn tất quy trình thanh toán.
Hạn đăng bài Date Hạn đăng bài của nhà tuyển dụng sau khi thanh toánTrạng thái Tinyint 1 Trạng thái thanh toán của nhà tuyển dụng
TRIỂN KHAI HỆ THỐNG
Giao diện của hệ thống của ứng viên
Hình 4.1: Giao diện trang chủ của ứng viên
Khi ứng cử viên truy cập vào trang, giao diện sẽ hiển thị cho họ, cho phép sử dụng bộ lọc để tìm kiếm những công việc phù hợp với khả năng và nhu cầu của bản thân.
Công việc muốn tìm: Ứng viên nhập tiêu đề có liên quan đến công việc muốn tìm.
Ngành nghề: Chọn ngành nghề bạn muốn tìm kiếm.
Vị trí: Chọn vị trí thuận tiện cho việc đi làm của bản than.
Sau khi ứng viên hoàn tất việc điền thông tin cần thiết vào bộ lọc, họ chỉ cần nhấn nút tìm kiếm để hệ thống tìm kiếm các công việc phù hợp với các tiêu chí mà ứng viên đã đặt ra.
4.2.2 Giao diện danh sách việc làm của ứng viên.
Sau khi áp dụng bộ lọc, hệ thống sẽ cung cấp danh sách công việc phù hợp với ứng viên, giúp họ tìm kiếm cơ hội nghề nghiệp thích hợp nhất.
Hình 4.2: Giao diện danh sách công việc
Ứng viên có thể dễ dàng truy cập danh sách các bài tuyển dụng phù hợp với yêu cầu của mình Nếu họ quan tâm đến một công việc cụ thể, chỉ cần nhấn vào nút để xem chi tiết về công việc đó.
Nếu bạn muốn thay đổi công việc, hãy sử dụng bộ lọc ở bên phải Sau khi điều chỉnh các tiêu chí lọc, nhấn nút tìm kiếm để hệ thống hiển thị danh sách công việc mới theo bộ lọc đã thay đổi.
4.2.3 Giao diện chi tiết yêu cầu của công việc.
- Khi truy cập vào một công việc thì hệ thống sẽ trả về giao diện chi tiết công việc
Hình 4.3: Giao diện chi tiết yêu cầu công việc
Tại giao diện này, ứng viên có thể dễ dàng ứng tuyển ngay vào công việc hoặc lưu lại để xem xét sau trước khi quyết định nộp hồ sơ.
Ứng viên có thể sử dụng API Google Maps để xác định lộ trình từ vị trí của mình đến công ty, giúp họ tính toán thời gian di chuyển một cách chính xác.
- Ứng viên muốn ứng tuyển công việc hoặc lưu lại công việc thì phải đăng nhập hoặc đăng ký tài khoản để có thể xác thực danh tính.
4.2.4 Giao diện đăng ký tài khoản ứng viên.
- Sau khi ứng viên nhấn đăng ký thì hệ thống sẽ dẫn người dùng đến trang đăng ký tài khoản
Hình 4.4: Giao diện tài khoản của ứng viên
- Tại đây ứng cử viên sẽ điền các thông tin bắt buộc của bản thân như: Tên, email, tên đăng nhập và mật khẩu.
Ứng viên cần xác nhận qua recaptcha để đảm bảo không phải là robot, điều này giúp ngăn chặn các cuộc tấn công từ tin tặc gửi quá nhiều yêu cầu, từ đó bảo vệ hệ thống khỏi tình trạng chậm, lỗi hoặc thậm chí sập máy chủ, tránh những hậu quả không mong muốn.
Sau khi xác nhận thông tin, ứng viên cần nhấn nút tạo tài khoản Nếu tên đăng nhập đã được sử dụng, ứng viên phải chọn tên đăng nhập khác để hoàn tất quá trình đăng nhập.
4.2.5 Giao diện nhập của ứng viên.
Nếu người dùng nhấn vào nút đăng nhập hoặc ứng tuyển công việc, hoặc lưu công việc mà chưa đăng nhập tài khoản, hệ thống sẽ tự động chuyển hướng họ đến trang đăng nhập.
Hình 4.5: Giao diện đăng nhập của ứng viên
Ứng viên có thể đăng nhập vào hệ thống bằng cách nhập tài khoản và mật khẩu cá nhân Nếu thông tin nhập vào không chính xác, hệ thống sẽ yêu cầu ứng viên xác thực lại để đảm bảo an toàn cho danh tính.
- Hoặc ứng cử viên có thể đăng nhập bằng Facebook của bản thân để dễ dàng hơn cho ứng viên.
- Nếu ứng viên chưa có tài khoản thì có thể nhấn đăng ký ngay và hệ thống sẽ đưa bạn đến trang đăng ký.
4.2.6 Giao diện thông tin cá nhân của ứng viên.
- Khi ứng viên nhấn và phần thông tin cá nhân, hệ thống sẽ điều hướng đến trang thông tin cá nhân
Hình 4.6: Giao diện thông tin của ứng viên
Ứng viên có thể truy cập thông tin cá nhân cơ bản như tên, email và số điện thoại Ngoài ra, họ cũng có thể theo dõi số lượng công việc đã ứng tuyển và số lượng công việc đã lưu.
Ứng viên có thể dễ dàng truy cập thông tin bằng cách nhấn vào các chức năng tương ứng Để cập nhật thông tin, chỉ cần chọn tùy chọn cập nhật thông tin.
- Muốn xem danh sách công việc đã ứng tuyển hoặc công việc đã lưu thì sẽ nhấn vào nút xem ngay tương ứng với danh sách công việc
4.2.7 Giao diện danh sách các công việc đã ứng tuyển.
Ứng viên có thể xem danh sách các công việc đã ứng tuyển bằng cách nhấn vào nút xem ngay trên giao diện thông tin cá nhân Sau đó, họ sẽ được chuyển hướng đến trang danh sách ứng tuyển.
Hình 4.7: Giao diện danh sách các công việc đã ứng tuyển
- Tại đây ứng viên có thể xem được danh sách các công việc đã ứng tuyển và các trạng thái của từng công việc.
- Nếu như nhà tuyển dụng cho phép ứng viên thì ứng viên sẽ có thể làm bài kiểm tra
- Khi nhà tuyển dụng không chấp nhận ứng viên thì hệ thống sẽ không cho phép ứng viên làm bài kiểm tra
- Nhà tuyển dụng chưa nhận hoặc hủy ứng viên thì ứng viên sẽ phải chờ đến khi nhà tuyển dụng xác nhận
4.2.8 Giao diện danh sách các công việc đã lưu.
Ứng viên có thể dễ dàng xem danh sách công việc đã lưu bằng cách nhấn vào tùy chọn "Xem ngay" trên giao diện thông tin cá nhân Sau khi nhấn, họ sẽ được chuyển hướng đến trang danh sách công việc đã lưu.
Hình 4 8 Giao diện danh sách công việc đã lưu
Giao diện hệ thống của nhà tuyển dụng
- Nhà tuyển dụng muốn đăng bài đăng tuyển dụng, trước tiên phải đăng nhập để xác thực trước
Hình 4.12: Giao diện đăng nhâp của nhà tuyển dụng
- Tại đây nhà tuyển dụng sẽ đăng nhập bằng tài khoản và mật khẩu của công ty để xác thực vào hệ thống
- Nếu nhà tuyển dụng chưa có tài khoản thì có thể đăng ký tài khoản
Nếu nhà tuyển dụng quên mật khẩu tài khoản của mình, họ có thể dễ dàng khôi phục bằng cách chọn tùy chọn "quên mật khẩu".
4.3.2 Giao diện quên mật khẩu.
Khi nhà tuyển dụng quên mật khẩu tài khoản của mình, họ chỉ cần nhấn vào liên kết "quên mật khẩu" Ngay lập tức, họ sẽ được chuyển hướng đến trang khôi phục mật khẩu để thực hiện các bước tiếp theo.
Hình 4.13: Giao diện quên mật khẩu nhà tuyển dụng
Nhà tuyển dụng cần nhập địa chỉ email công ty khi đăng ký Hệ thống sẽ tiến hành kiểm tra tính hợp lệ của email, và nếu thông tin đúng, một email xác nhận sẽ được gửi đến nhà tuyển dụng.
Nếu nhà tuyển dụng nhập thông tin sai, hệ thống sẽ gửi thông báo cho họ Để nhận được email xác nhận tài khoản, nhà tuyển dụng cần xác nhận lại thông tin đã nhập.
4.3.3 Giao diện đăng ký tài khoản.
- Khi nhà tuyển dụng chưa có tài khoản, nhà tuyển dụng sẽ nhấn vào đăng ký trên giao diện đăng nhập
Hình 4 14: Giao diên đăng ký của nhà tuyển dụng
- Tại đây nhà tuyển dụng có thể đăng ký tài khoản của doanh nghiệp.
Nhà tuyển dụng cần cung cấp đầy đủ thông tin cá nhân cơ bản để hoàn tất quá trình đăng ký và đăng nhập vào hệ thống.
- Nếu như tài khoản của nhà tuyển dụng đã trùng với tài khoản cũ thì hệ thống sẽ thông báo đã tồn tại tài khoản
- Khi đăng ký tài khoản thành công, hệ thống sẽ thông báo đăng ký thành công và đưa nhà tuyển dụng về trang đăng nhập
- Nhà tuyển dụng sau khi đăng nhập thành công, hệ thống sẽ chuyển hướng đến trang chủ dành cho nhà tuyển dụng
Hình 4.15: Giao diện trang chủ của nhà tuyển dụng
- Tại trang chủ nhà tuyển dụng, sẽ hiện ra vị trí của nhà tuyển dụng và các danh mục để nhà tuyển dụng có thể quản lý
Các danh mục trên hệ thống bao gồm: Bài đăng tuyển dụng, nơi nhà tuyển dụng có thể thêm và xem các thông tin tuyển dụng của công ty; Bài kiểm tra, cho phép nhà tuyển dụng thêm và xem các bài kiểm tra để đánh giá trình độ ứng viên; Dịch vụ, nơi người dùng có thể xem lịch sử thanh toán và gia hạn quyền đăng bài trên trang chủ; và Thay đổi vị trí, sử dụng API Google Map để hỗ trợ nhà tuyển dụng trong việc thay đổi vị trí công ty.
4.3.5 Giao diện thêm bài đăng tuyển dụng.
Khi nhà tuyển dụng chọn danh mục bài đăng tuyển dụng, hệ thống sẽ hiển thị danh sách các bài đăng con và tùy chọn thêm bài đăng mới Nếu nhà tuyển dụng quyết định thêm bài đăng, giao diện thêm bài đăng sẽ được hiển thị.
Hình 4.16: Giao diện thêm bài đăng tuyển dụng của nhà tuyển dụng
- Tại đây nhà tuyển dụng sẽ điền thông tin phù hợp cho công việc mà nhà tuyển dụng muốn tìm ứng viên
Các mục về SEO rất quan trọng khi nhà tuyển dụng chia sẻ bài đăng tuyển dụng lên mạng xã hội, giúp ứng viên dễ dàng nắm bắt nội dung chính Nếu không có các mục SEO, hệ thống sẽ tự động chọn các đoạn văn ngẫu nhiên, điều này có thể dẫn đến việc giảm số lượng ứng viên quan tâm đến vị trí tuyển dụng.
4.3.6 Giao diện danh sách bài đăng tuyển dụng.
Nhà tuyển dụng có thể dễ dàng quản lý các bài đăng tuyển dụng của công ty bằng cách truy cập vào mục danh sách bài đăng trong hệ thống.
Hình 4.17: Giao diện danh sách bài đăng tuyển dụng của nhà tuyển dụng
- Tại đây nhà tuyển dụng có thể xem các bài đăng đã đăng tuyển.
- Ở mỗi bài đăng tuyển dụng, nhà tuyển dụng có thể xem danh sách ứng tuyển của các ứng viên và có thể sửa thông tin của bài đăng đó
- Nhà tuyển dụng cũng có thể xuất các file CSV, Excel, PDF theo danh sách trong bảng
4.3.7 Giao diện sửa bài đăng tuyển dụng.
Khi nhà tuyển dụng chọn sửa bài đăng tuyển dụng, hệ thống sẽ tự động chuyển hướng đến bài đăng đó, cho phép họ chỉnh sửa các thông tin liên quan.
Hình 4.18: Giao diện sửa bài đăng tuyển dụng của nhà tuyển dụng
- Nhà tuyển dụng có thể thay đổi các thông tin của bài đăng cho phù hợp với các thay đổi của công ty
Sau khi nhà tuyển dụng hoàn tất việc thay đổi thông tin, họ sẽ nhấn vào nút xác nhận Hệ thống sẽ ngay lập tức cập nhật các thông tin mới theo những thay đổi mà nhà tuyển dụng vừa thực hiện.
4.3.8 Giao diện danh sách ứng viên ứng tuyển của bài đăng tuyển dụng.
Nhà tuyển dụng có thể dễ dàng xem danh sách ứng viên đã nộp đơn cho vị trí công việc bằng cách chọn mục xem trên bài đăng tương ứng Hệ thống sẽ ngay lập tức cung cấp thông tin về các ứng viên đã ứng tuyển.
Hình 4.19: Giao diện danh sách các ứng viên ứng tuyển của nhà tuyển dụng
- Tại đây nhà tuyển dụng có thể xem được danh sách các ứng viên đã ứng tuyển vào công việc
Nhà tuyển dụng xem xét CV của ứng viên để đánh giá sự phù hợp với vị trí công việc Nếu ứng viên không đáp ứng yêu cầu, họ sẽ bị từ chối; ngược lại, ứng viên phù hợp sẽ được chấp nhận.
- Nhà tuyển dụng cũng có thể xuất các file CSV, Excel, PDF theo danh sách trong bảng
4.3.9 Giao diện thêm bài kiểm tra.
Nhà tuyển dụng có thể thêm bài kiểm tra để đánh giá trình độ của ứng viên trước khi tiến hành phỏng vấn Để thực hiện điều này, họ chỉ cần chọn mục bài kiểm tra và tiến hành thêm bài kiểm tra phù hợp.
Hình 4.20: Giao diện thêm bài kiểm tra của nhà tuyển dụng
- Sau khi nhấn vào thêm bài kiểm tra, hệ thống sẽ điều hướng nhà tuyển dụng đến trang sau
- Tại đây nhà tuyển sẽ thêm các thông tin của bài kiểm tra để có thể cho các ứng viên có thể căn chỉnh khả năng
- Các thông tin về bài kiểm tra sẽ được nhà tuyển dụng cân nhắc để ứng viên có thể hoàn thành
- Nhà tuyển dụng sẽ phải điền đủ các thông tin của bài kiểm tra, nếu không sẽ không thể hoàn thành
4.3.10 Giao diện danh sách bài kiểm tra.
Khi nhà tuyển dụng cần xem danh sách bài kiểm tra, họ chỉ cần chọn mục danh sách bài kiểm tra trong phần bài kiểm tra Ngay lập tức, hệ thống sẽ chuyển hướng nhà tuyển dụng đến trang danh sách bài kiểm tra.
Hình 4.21: Giao diện danh sách bài kiểm tra của nhà tuyển dụng
- Tại đây nhà tuyển dụng có thể xem được các bài kiểm tra của nhà tuyển dụng đó
- Mỗi bài kiểm tra nhà tuyển dụng có thể chỉnh sửa thông tin hoặc xem danh sách các câu hỏi tương ứng với mỗi bài kiểm tra
- Nhà tuyển dụng cũng có thể xuất các file CSV, Excel, PDF theo danh sách trong bảng
4.3.11 Giao diện sửa bài kiểm tra.
KẾT QUẢ VÀ KIẾN NGHỊ
Kiến nghị
Để đáp ứng nhu cầu của người dùng, cần phát triển thêm nhiều chức năng như gợi ý công việc phù hợp cho ứng viên và giới thiệu các công ty có đánh giá tốt.
- Mở rộng thêm về loại hình thanh toán trực tuyến cho các nhà tuyển dụng.
- Thiết kế thêm về giao diện để trông bắt mắt hơn.
- Mới chỉ hỗ trợ ứng viên làm bài kiểm tra trắc nghiệm và quy chế làm bài còn nhiều lỗ hổng có thể vượt qua
- Phát triển thêm về việc xử lý bất đồng bộ để tối ưu thời gian, giảm tải khối lượng công việc phải làm.
- Nghiên cứu thêm về công nghệ phía người dùng để giảm tải khối lượng công việc cần thực hiện phía máy chủ
- Tăng cường về hệ thống bảo mật để chống các cuộc xâm nhập lấy dữ liệu từ các tin tặc
- Hỗ trợ tạo CV cho sinh viên để có thể tiện dụng hơn khi ứng tuyển với nhà tuyển dụng