CHƯƠNG 1. CƠ SỞ LÝ THUYẾT CHÍNH 1. Phân tích thiết kế hệ thống Phân tích và thiết kế hệ thống là giai đoạn nền tảng trong quá trình phát triển một website. Mục tiêu của giai đoạn này là thu thập và phân tích các yêu cầu từ các bên liên quan bao gồm người dùng, nhà tuyển dụng và ứng viên, từ đó xác định các chức năng chính cần có.
Thiết kế hệ thống sau đó được thực hiện, bao gồm việc xây dựng cơ sở dữ liệu, tạo giao diện người dùng và thiết lập các quy trình xử lý dữ liệu, nhằm đảm bảo hệ thống hoạt động mượt mà và hiệu quả. Phát triển web Phát triển web liên quan đến việc xây dựng cả front-end và back-end cho website tuyển dụng. Front-end được phát triển bằng Angular, một framework mạnh mẽ cho việc tạo các ứng dụng web động và tương tác. Back-end được xây dựng trên nền tảng ASP.NET Core, cung cấp các dịch vụ web API và và xử lý dữ liệu một cách hiệu quả.
Việc phát triển web không chỉ cung cấp các tính năng cần thiết mà còn đảm bảo trải nghiệm người dùng tốt nhất thông qua thiết kế giao diện thân thiện và dễ sử dụng. Web API Web API là một ứng dụng web cho phép tương tác, sử dụng các dịch vụ và trao đổi dữ liệu qua giao thức HTTP hoặc HTTPS. Dữ liệu sau khi gọi Web API thường được trả về một trong hai dạng JSON hoặc XML. Mô hình của Web API được xây dựng trên nền tảng mô hình MVC (Model-View- Controller) để tạo ra các dịch vụ Web API RESTful, hỗ trợ đầy đủ các phương thức như: Get, Post, Put, Delete các dữ liệu.
Rất nhiều công ty lớn sử dụng web API cho ứng dụng đối với khách hàng hay ứng dụng nội bộ của công ty đó. Cơ sở dữ liệu Cơ sở dữ liệu đóng vai trò quan trọng trong việc lưu trữ và quản lý thông tin về ứng viên, nhà tuyển dụng và các vị trí công việc. Hệ quản trị cơ sở dữ liệu SQL Server được sử dụng trong đề tài này, cùng với Entity Framework Core làm ORM (Object-Relational Mapping) để tương tác với cơ sở dữ liệu. Thiết kế cơ sở dữ liệu phải chú trọng đến tính toàn vẹn và bảo mật dữ liệu, đảm bảo rằng mọi thông tin đều được lưu trữ và truy xuất một cách an toàn và nhanh chóng.
Bảo mật web Bảo mật web là yếu tố then chốt trong việc bảo vệ thông tin cá nhân và dữ liệu nhạy cảm của người dùng. Đề tài này triển khai các biện pháp bảo mật như xác thực và phân quyền người dùng, sử dụng các giao thức SSL/TLS để mã hóa dữ liệu truyền tải, và áp dụng các kỹ thuật bảo vệ dữ liệu như mã hóa và băm. Các biện pháp này giúp bảo vệ hệ thống khỏi các mối đe dọa từ bên ngoài. Quản lý dự án Quản lý dự án hiệu quả là yếu tố quan trọng đảm bảo tiến độ và chất lượng của quá trình phát triển website tuyển dụng.
Đề tài áp dụng phương pháp Agile và Scrum để quản lý dự án một cách linh hoạt, cho phép phản ứng nhanh với các thay đổi và đảm bảo sự tham gia liên tục của tất cả các bên liên quan. Hệ thống quản lý phiên bản như Git được sử dụng để theo dõi và kiểm soát sự thay đổi mã nguồn, giúp đảm bảo tính nhất quán và dễ dàng phối hợp, cập nhật trong nhóm. CÔNG NGHỆ SỬ DỤNG 1. Giới thiệu chung Đề tài này sử dụng mô hình client-server với front-end server sử dụng Angular kết hợp Bootstrap để xây dựng giao diện người dùng.
Back-end server được phát triển bằng ASP.NET Core và Entity Framework, với cơ sở dữ liệu SQL Server được triển khai bằng Microsoft Azure - SQL Server. Các tệp tin hình ảnh và phương tiện được quản lý thông qua Cloudinary. Để triển khai, front-end server được triển khai trên Vercel, còn back-end server được triển khai trên dịch vụ Microsoft Azure - App Service. Mô hình này giúp phân tách rõ ràng giữa front-end và back-end, tận dụng các công nghệ và dịch vụ đám mây hiện đại để đảm bảo hiệu năng và khả năng mở rộng của ứng dụng.
Lý do chọn công nghệ Lý do chọn công nghệ cho front-end server: ˗ Angular: Angular là một framework mạnh mẽ và phổ biến cho việc xây dựng các ứng dụng web một trang (SPA). Nó cung cấp nhiều tính năng như dependency injection, công cụ CLI, và hỗ trợ tốt cho phát triển ứng dụng lớn với khả năng quản lý trạng thái, điều hướng và kiểm thử dễ dàng. 6 ˗ Bootstrap: Bootstrap giúp tăng tốc quá trình phát triển giao diện người dùng nhờ các thành phần UI có sẵn và dễ dàng tùy chỉnh. Nó đảm bảo giao diện ứng dụng đẹp mắt và nhất quán trên nhiều loại thiết bị và trình duyệt.
Lý do chọn công nghệ cho back-end server: ˗ ASP.NET Core: ASP.NET Core là một framework mã nguồn mở, đa nền tảng, cho phép xây dựng các ứng dụng web, API, và dịch vụ microservices hiệu suất cao. Nó hỗ trợ tốt cho việc tích hợp với các dịch vụ đám mây, bảo mật mạnh mẽ, và có cộng đồng phát triển lớn. ˗ Entity Framework: Entity Framework là một ORM (Object-Relational Mapper) cho phép làm việc với cơ sở dữ liệu bằng cách sử dụng các đối tượng. Nó giúp giảm bớt công việc lập trình với cơ sở dữ liệu, tăng năng suất và giảm thiểu lỗi.
Lý do chọn công nghệ cho cơ sở dữ liệu: ˗ SQL Server: SQL Server là một hệ quản trị cơ sở dữ liệu mạnh mẽ và đáng tin cậy, hỗ trợ tốt cho các ứng dụng doanh nghiệp. Nó cung cấp nhiều tính năng nâng cao như khả năng mở rộng, sao lưu và khôi phục dữ liệu, bảo mật, và tích hợp với các công cụ phân tích dữ liệu. Lý do chọn dịch vụ triển khai: ˗ Cloudinary: Cloudinary cung cấp các dịch vụ quản lý và tối ưu hóa tệp tin hình ảnh và video mạnh mẽ. Nó hỗ trợ nhiều tính năng như tự động thay đổi kích thước, tối ưu hóa và phân phối nội dung qua CDN, giúp cải thiện hiệu suất tải trang và trải nghiệm người dùng.
˗ Vercel: Vercel là nền tảng triển khai mạnh mẽ và dễ sử dụng cho các ứng dụng front-end, đặc biệt là các ứng dụng SPA và JAMstack. Nền tảng này hỗ trợ CI/CD tự động, phân phối nội dung qua CDN, và tích hợp tốt với các dịch vụ khác như GitHub, giúp đơn giản hóa quá trình phát triển và triển khai ứng dụng. ˗ Microsoft Azure - SQL Server: SQL Server là một hệ quản trị cơ sở dữ liệu mạnh mẽ và đáng tin cậy của Microsoft, cung cấp nhiều tính năng nâng cao như khả năng mở rộng, sao lưu và khôi phục dữ liệu, bảo mật cao và tích hợp tốt với các công cụ phân tích dữ liệu. Azure SQL Server là sự lựa chọn lý tưởng cho việc lưu trữ dữ liệu của ứng dụng doanh nghiệp.
7 ˗ Microsoft Azure - App Service: App Service là một dịch vụ của Azure cho phép triển khai và quản lý các ứng dụng web và API một cách dễ dàng. Nó hỗ trợ nhiều ngôn ngữ lập trình và framework, cung cấp tự động điều chỉnh quy mô, khả năng theo dõi và quản lý, đồng thời đảm bảo tính sẵn sàng cao và bảo mật thông qua tích hợp với Azure Active Directory và các công cụ bảo mật khác. Tìm Hiểu Công Nghệ Sử Dụng 1. Angular Định nghĩa: Angular là một framework front-end mã nguồn mở do Google phát triển và cung cấp miễn phí cho cộng đồng.
Sử dụng TypeScript là ngôn ngữ chính, một ngôn ngữ lập trình dựa trên JavaScript, Angular giúp giảm bớt mã thừa và tăng cường hiệu suất cho các ứng dụng web. Framework này cho phép bạn dễ dàng xây dựng các ứng dụng trang đơn (SPA - Single Page Application) với khả năng tương tác cao. Một số tính năng nổi bật của Angular bao gồm hệ thống tạo khuôn mẫu mạnh mẽ, khả năng mô-đun hóa, ràng buộc dữ liệu hai chiều, và tích hợp liền mạch với RESTful API cùng việc xử lý AJAX. Các tính năng này giúp Angular trở thành một công cụ mạnh mẽ cho việc phát triển các ứng dụng web hiện đại và hiệu quả.
Ưu điểm: ˗ Cho phép người dùng xây dựng các component có thể tái sử dụng. ˗ Dễ dàng di chuyển dữ liệu từ mã Typescript sang View và phản hồi với các sự kiện của người dùng ˗ Cho phép người dùng viết các service mô-đun và tái sử dụng khi cần ˗ Dễ dàng Unit test mọi phần trong ứng dụng của mình. Nhược điểm: ˗ Có thể có kích thước tải xuống lớn do việc bao gồm và tải xuống các thư viện và framework lớn như Angular core và các thư viện liên quan. ˗ Hiệu suất có thể bị tác động khi kích thước ứng dụng tăng lên quá mức 1.
Bootstrap Định nghĩa: Bootstrap là một framework front-end mã nguồn mở được phát triển bởi Twitter, phục vụ cho việc thiết kế giao diện người dùng hiệu quả. Sử dụng HTML, CSS và JavaScript, 8 Bootstrap cho phép bạn xây dựng các thành phần và giao diện người dùng linh hoạt. Điều này giúp đảm bảo rằng trang web của bạn sẽ có trải nghiệm người dùng tốt trên mọi thiết bị và kích thước màn hình, từ điện thoại thông minh đến máy tính bàn và các thiết bị khác. Bootstrap còn được sử dụng rộng rãi trong cộng đồng phát triển web nhờ vào tính linh hoạt, dễ dàng tích hợp và khả năng mở rộng cao của nó.
Ưu điểm: ˗ Dễ dàng tích hợp với các dự án cần xây dựng giao diện người dùng ˗ Có rất nhiều lớp được xây dựng sẵn, lập trình viên có thể sử dụng để xây dựng giao diện nhanh chóng Nhược điểm: ˗ Sản phẩm nặng, tốc độ tối ưu chưa cao ˗ Phải tải thêm rất nhiều dòng code không cần thiết khi mà chỉ cần chưa đến 10% những gì Bootstrap cung cấp. ˗ Không khuyến khích sự sáng tạo, vì lập trình viên dễ bị lệ thuộc vào những lớp có sẵn 1. Entity Framework Code First Định nghĩa: ˗ Entity Framework: Entity Framework là một công cụ ORM (Object-Relational Mapping). Entity Framework tự động ánh xạ các đối tượng .NET vào các bảng trong cơ sở dữ liệu, giúp giảm thiểu sự phụ thuộc vào cấu trúc cơ sở dữ liệu và tăng tính linh hoạt trong việc phát triển ứng dụng.
Người dùng có thể sử dụng Entity Framework để thực hiện các thao tác CRUD (Create, Read, Update, Delete) thay vì viết mã SQL. Nó cũng hỗ trợ nhiều tính năng như quan hệ đối tượng (ORM relationships), lazy loading, và tracking thay đổi đối tượng để đơn giản hóa việc làm việc với dữ liệu. Entity Framework là một trong những công cụ phổ biến và được sử dụng rộng rãi trong cộng đồng .