CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1. Ngôn ngữ lập trình PHP 1. PHP là gì? • Ngôn ngữ lập trình PHP (viết tắt của từ Hypertext Preprocessor) là ngôn ngữ kịch bản với mã nguồn mở, chạy bên server và được sử dụng để phát triển các ứng dụng phần mềm thông qua lập trình web. • PHP chạy trên môi trường Webserver và lưu trữ dữ liệu thông qua hệ quản trị cơ sở dữ liệu nên PHP thường đi kèm với Apache, MySQL và hệ điều hành Linux.
• Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp dễ học và thời gian xây dựng sản phẩm tương đối ngắn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành ngôn ngữ lập trình phổ biến nhất thế giới.1: Ngôn ngữ lập trình PHP 1. Đặc điểm • Có thể kết nối cơ sở dữ liệu hiệu quả và giúp quá trình tải ứng dụng nhanh hơn. • Có khả năng tích hợp linh hoạt với các ngôn ngữ lập trình khác. • Sở hữu tốc độ xử lý mọi hoạt động trong công việc khá nhanh chóng, mang đến hiệu quả tối ưu cao.
• Ngôn ngữ quen thuộc hơn đối với các nhà phát triển và phù hợp cho người mới bắt đầu. • Do là mã nguồn mở và được sự hỗ trợ từ cộng đồng lập trình nền PHP khá an toàn khi sử sụng. Khi kết hợp với kỹ thuật bảo mật ở các hạ tầng khác nhau thì ngôn ngữ lập trình sẽ trở nên chắc chắn và đảm bảo hoạt động website. Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 16 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng 1.
Khái niệm • Laravel là một PHP Framework mã nguồn mở miễn phí được phát triển bởi Taylor Otwell với phiên bản đầu tiên được ra mắt vào tháng 06 năm 2011. • Laravel ra đời nhằm mục đích hỗ trợ phát triển các ứng dụng web, dựa trên mô hình MVC (Model – View - Controller). • Một số tính năng chính của Laravel như là sử dụng hệ thống đóng gói module, quản lý package (Composer), hỗ trợ nhiều hệ quản trị CSDL quan hệ (MySQL, MariaDB, PostgeSQL,.), các tiện ích hỗ trợ triển khai và bảo trì ứng dụng.2: Laravel framework phiên bản 8 Hình 1.3: Ứng dụng dùng để code Laravel 1. Mô hình MVC • MVC là chữ viết tắt của Model – View – Controller, đây là mô hình giúp cho việc phát triển phần mềm được trở nên gọn gàng và dễ dàng hơn.
Mô hình này được dùng khá rộng rãi và đặc biệt là trong các ngôn ngữ lập trình web. Trong PHP hiện Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 17 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng tại có khá nhiều Framework, trong đó Laravel Framework được xây dựng dựa trên mô hình MVC. • View: là thành phần chịu trách nhiệm hiển thị dữ liệu đã được truy xuất từ model theo một format nào đó theo ý đồ của lập trình viên và là nơi bạn viết code HTML, CSS, Javascript và hiện dữ liệu. • Model: là thành phần chịu trách nhiệm quản lý dữ liệu, nó lưu trữ và truy xuất thông tin từ cơ sở dữ liệu, từ hệ thống file, từ các website khác (API, Web service)… đồng thời chứa các logic được thực thi bởi ứng dụng.
• Controller: là thành phần làm nhiệm vụ xử lý nghiệp vụ, nó nhận request từ client và lập trình viên gọi các hàm trong model có dữ liệu và đưa dữ liệu đó cho các View để hiện dữ liệu.4: Mô hình MVC 1. Hệ quản trị cơ sở dữ liệu MySQL 1. Khái niệm − MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng. Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.
Với tốc độ và tính bảo mật cao, MySQL rất thích hợp cho các ứng dụng có truy cập CSDL trên internet. MySQL miễn phí hoàn toàn cho nên bạn có thể tải về MySQL từ trang chủ. Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, SGI Irix, Solaris, SunOS,… − MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL).[3] Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 18 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng Hình 1.5: Hệ quản trị cơ sở dữ liệu MySQL 1. Đặc điểm • MySQL là phần mềm quản lý dữ liệu thông qua cơ sở dữ liệu và mỗi một cơ sở dữ liệu đều có bảng quan hệ chứa dữ liệu riêng biệt.
• MySQL có cơ chế phân quyền người sử dụng riêng, mỗi người dùng có thể được quản lý một hoặc nhiều CSDL khác nhau, đặc biệt có thể xử lý được rất nhiều dữ liệu và hơn thế nữa nó có thể được mở rộng nếu cần thiết. • MySQL tương thích tốt với môi trường PHP, giúp hệ thống hoạt động mạnh mẽ. • MySQL hỗ trợ rất nhiều chức năng SQL được mong chờ từ một hệ quản trị cơ sở dữ liệu quan hệ cả trực tiếp lẫn gián tiếp rất thích hợp cho các ứng dụng có truy cập CSDL trên Internet khi sở hữu nhiều tính năng bảo mật. Bootstrap và Responsive Bootstrap là front-end framework, là một bộ sưu tập miễn phí các công cụ để tạo ra các trang web và các ứng dụng web.
Bootstrap bao gồm HTML và CSS dựa trên các mẫu thiết kế cho kiểu chữ, hình thức, các button và các thành phần giao diện khác, cũng như mở rộng tùy chọn JavaScript. Boostrap định nghĩa sẵn các class CSS giúp người thiết kế giao diện website tiết kiệm rất nhiều thời gian. Các thư viện Bootstrap có những đoạn mã sẵn sàng cho chúng ta áp dùng vào website của mình mà không phải tốn quá nhiều thời gian để tự viết. Với Bootstrap, việc phát triển giao diện website để phù hợp với đa thiết bị trở nên dễ dàng hơn bao giờ hết.
Bootstrap cung cấp tính năng responsive và mobile first, nghĩa là làm cho trang web có thể tự co giãn để tương thích với mọi thiết bị khác nhau, từ điện thoại di động đến máy tính bảng, máy tính xách tay, máy tính để bàn,. Một khía cạnh khác là responsive web design làm cho trang web cung cấp được trải nghiệm tuyệt vời cho người dùng trên nhiều thiết bị, kích thước màn hình khác nhau. Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 19 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng Một trang có thể hoạt động tốt bất kể sự biến đổi sẽ cung cấp một trải nghiệm người dùng tốt và nhất quán hơn một trang được thiết kế cho một loại thiết bị và kích thước màn hình cụ thể.6: Boostrap Framework Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 20 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG 2. Khảo sát hệ thống 2.
Khảo sát thực tế Hiện nay, nhu cầu tìm việc, tuyển dụng ngày càng cao, với công nghệ ngày một phát triển nhà tuyển dụng cũng như ứng viên cần một mạng lưới kết nối các doanh nghiệp với ứng viên để tuyển dụng và tìm kiếm những ứng viên, công ty phù hợp để gắn bó và làm việc. Vì vậy để phục vụ cho việc tìm kiếm, ứng tuyển một cách thuận lợi, dễ dàng thì việc thành lập một website tuyển dụng và tìm việc làm là hết sức cần thiết. Khảo sát người dùng Nhu cầu nhà tuyển dụng tìm kiếm ứng viên, đăng tuyển. Nhu cầu ứng viên thì tìm việc làm, môi trường làm việc hết sức cần thiết với thời điểm dịch covid 19 và công nghệ đang được phát triển.
Nếu phải sử dụng những truyền thông như báo đài có khi nhiều ứng viên không thể biết đến, nhưng khi sử dụng một website thì có thể kết nối được nhiều công ty, việc làm phù hợp. Đặc tả yêu cầu phần mềm (Software Requirements) 2. Xác định các tác nhân ❖ Đề tài gồm 3 tác nhân chính: - Ứng viên (Employment). - Nhà tuyển dụng (Company).
- Người quản lý (Admin). Các yêu cầu chức năng ❖ Ứng viên (Employment) - Đăng nhập, đăng xuất, đổi mật khẩu. - Cập nhật thông tin cá nhân. - Quản lý học vấn.
- Quản lý ngoại ngữ. - Quản lý kinh nghiệm. - Quản lý kỹ năng. - Xem tin tuyển dụng ➔ nếu ứng viên “Thêm việc làm yêu thích” hoặc “ứng tuyển” thì sẽ tạo thành quan hệ <<extend>> - Ứng tuyển công việc.
- Yêu thích công việc. - Xem thông báo kết quả ứng tuyển. ❖ Nhà tuyển dụng (Company) - Đăng nhập, đăng xuất, đổi mật khẩu. Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 21 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng - Cập nhật thông tin.
- Cập nhật bài đăng tuyển. - Xem danh sách ứng viên. - Xem chi tiết thông tin ứng viên. - Xem danh sách lịch sử bài đăng.
- Xem thông báo khi có ứng viên ứng tuyển công việc. ❖ Người quản trị (Admin) - Đăng nhập, đăng xuất. - Cập nhật thông tin. - Quản lý danh sách ứng viên.
- Quản lý danh sách nhà tuyển dụng. - Quản lý ngành nghề. - Xét duyệt bài đăng. - Quản lý danh sách bài đăng.
Yêu cầu phi chức năng - Giao diện đẹp mắt, đơn giản, dễ sử dụng. - Đảm bảo tính bảo mật, an toàn. - Tốc độ xử lý nhanh chóng Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 22 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng 2. Biểu đồ Use Case tổng quát 2.
Sơ đồ use case tổng quát Hình 2.1: Sơ đồ use case tổng quát Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 23 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng 2. Use case tổng quát • Use case Admin Hình 2.2: Sơ đồ use case admin • Use case ứng viên Hình 2.3: Sơ đồ use case ứng viên Sinh viên thực hiện: Trương Văn Quang Minh Người hướng dẫn:TS.Nguyễn Tấn Thuận 24 Xây dựng website tuyển dụng và tìm việc làm tại Đà Nẵng • Use case nhà tuyển dụng Hình 2.4: Sơ đồ use case nhà tuyển dụng 2. Kịch bản cho Usecase 2. Actor khách chưa là thành viên 2.
Usecase: Đăng ký tài khoản Bảng 2.