Chương 1: Tổng quan đề tài. • Chương 2: Cơ sở lý thuyết • Chương 3: Phân tích thiết kế hệ thống • Chương 4: Xây dựng hệ thống ứng dụng. • Kết luận và hướng phát triển • Tài liệu tham khảo. SVTH: Đặng Văn Thiện 2 Tên đề tài: Xây dựng website tích hợp AI hỗ trợ doanh nghiệp sàng lọc ứng viên Chương 2 CƠ SỞ LÝ THUYẾT 1.
Hệ quản trị cơ sở dữ liệu Supabase, PostgresSQL 2. Supabase • Giới thiệu o Supabase là một nền tảng cơ sở dữ liệu mã nguồn mở, cung cấp các tính năng cơ bản và nâng cao của cơ sở dữ liệu như SQL, API, Auth, Storage, và Analytics. Supabase được thiết kế để giúp các nhà phát triển xây dựng các ứng dụng web và di động một cách nhanh chóng và dễ dàng. • Ưu điểm o SQL: Supabase hỗ trợ SQL, ngôn ngữ truy vấn cơ sở dữ liệu phổ biến nhất.
o Auth: Supabase cung cấp tính năng xác thực người dùng, bao gồm xác thực email và xác thực OAuth. o Storage: Supabase cung cấp tính năng lưu trữ dữ liệu, bao gồm lưu trữ hình ảnh, video, và tài liệu. o Mã nguồn mở: Supabase là mã nguồn mở, giúp các nhà phát triển có thể tùy chỉnh và mở rộng nền tảng. o Dễ sử dụng: Supabase được thiết kế để dễ sử dụng, ngay cả đối với các nhà phát triển mới bắt đầu.
o Tính sẵn sàng cao: Supabase được xây dựng trên các nền tảng đám mây đáng tin cậy, đảm bảo tính sẵn sàng cao cho các ứng dụng của bạn. • Nhược điểm: o Khả năng mở rộng: Supabase có thể mở rộng đến một mức độ nhất định, nhưng đối với các ứng dụng có quy mô lớn, có thể cần phải sử dụng các giải pháp cơ sở dữ liệu khác. o Tính bảo mật: Supabase cung cấp một số tính năng bảo mật, nhưng các nhà phát triển vẫn cần phải chú ý đến bảo mật cho ứng dụng của mình. o Hỗ trợ: Supabase cung cấp hỗ trợ qua email và cộng đồng, nhưng không có hỗ trợ qua điện thoại hoặc trực tiếp.
SVTH: Đặng Văn Thiện 3 Tên đề tài: Xây dựng website tích hợp AI hỗ trợ doanh nghiệp sàng lọc ứng viên o Tính phức tạp: Supabase cung cấp nhiều tính năng, điều này có thể khiến nó trở nên phức tạp đối với các nhà phát triển mới bắt đầu. o Phù hợp với mục đích: Supabase là một nền tảng cơ sở dữ liệu toàn diện, nhưng nó có thể không phù hợp với tất cả các ứng dụng. PostgresSQL • Giới thiệu o PostgreSQL là một hệ thống cơ sở dữ liệu quan hệ đối tượng với hơn 30 năm phát triển tích cực, do đó có danh tiếng mạnh mẽ về độ tin cậy, tính năng mạnh mẽ và hiệu suất. Trong Supabase, PostgreSQL là cơ sở dữ liệu phía sau.
Điều này có nghĩa là tất cả dữ liệu của bạn được lưu trữ trong PostgreSQL. • Ưu điểm o Độ tin cậy: PostgreSQL được biết đến với độ tin cậy cao. Cơ sở dữ liệu đã được sử dụng trong nhiều ứng dụng quan trọng, bao gồm các trang web thương mại điện tử, ứng dụng ngân hàng và hệ thống quản lý cơ sở hạ tầng. o Tính năng mạnh mẽ: PostgreSQL cung cấp nhiều tính năng mạnh mẽ, chẳng hạn như hỗ trợ cho ràng buộc, truy vấn phức tạp và khả năng mở rộng.
o Hiệu suất: PostgreSQL được tối ưu hóa để cung cấp hiệu suất cao. Cơ sở dữ liệu có thể xử lý khối lượng truy vấn lớn mà không bị ảnh hưởng. o Tính sẵn sàng cao: PostgreSQL được thiết kế để cung cấp tính sẵn sàng cao. Cơ sở dữ liệu có thể tự phục hồi trong trường hợp có lỗi.
o Mã nguồn mở: PostgreSQL là mã nguồn mở, giúp các nhà phát triển có thể tùy chỉnh và mở rộng nền tảng. o • Nhược điểm o Vì không chịu sự quản lý của bất kỳ tổ chức nào nên PostgreSQL gây khó khăn cho người dùng trong việc tiếp cận đầy đủ tính năng o Hiệu suất hoạt động thực tế chậm hơn so với MySQL o Nhiều ứng dụng nguồn mở chỉ hỗ trợ MySQL và không hỗ trợ PostgreSQL 2. Ngôn ngữ lập trình Javascript • Giới thiệu o JavaScript là một ngôn ngữ lập trình đa năng, có thể được sử dụng để tạo ra các ứng dụng web, ứng dụng di động, ứng dụng trò chơi, và các SVTH: Đặng Văn Thiện 4 Tên đề tài: Xây dựng website tích hợp AI hỗ trợ doanh nghiệp sàng lọc ứng viên tác vụ khác. JavaScript được phát triển bởi Brendan Eich vào năm 1995 và được phát hành lần đầu tiên vào năm 1996.
o JavaScript được sử dụng rộng rãi trong các trang web để tạo ra các hiệu ứng tương tác, chẳng hạn như các menu thả xuống, các hộp kiểm, và các thanh trượt. JavaScript cũng có thể được sử dụng để tạo ra các ứng dụng web hoàn chỉnh, chẳng hạn như các ứng dụng e-commerce và các ứng dụng social media. o JavaScript cũng có thể được sử dụng để tạo ra các ứng dụng di động, chẳng hạn như các ứng dụng iOS và Android. JavaScript có thể được sử dụng để tạo ra các ứng dụng trò chơi, chẳng hạn như các trò chơi web và các trò chơi điện thoại di động • Ưu điểm o Đơn giản và dễ học: JavaScript là một ngôn ngữ lập trình đơn giản và dễ học, ngay cả đối với các nhà phát triển mới bắt đầu.
o Tương thích: JavaScript tương thích với tất cả các trình duyệt web chính, bao gồm Chrome, Firefox, Edge, và Safari. o Cộng đồng lớn: JavaScript có một cộng đồng phát triển lớn và tích cực, cung cấp hỗ trợ và tài nguyên cho các nhà phát triển. o Mở rộng: JavaScript là một ngôn ngữ lập trình mở rộng, có thể được mở rộng bằng cách sử dụng các thư viện và framework. o • Nhược điểm o Tính bảo mật: JavaScript có thể được sử dụng để tạo ra các mã độc hại, có thể xâm phạm bảo mật của người dùng.
o Tính hiệu suất: JavaScript có thể không hiệu quả như các ngôn ngữ lập trình khác, chẳng hạn như Java hoặc C++. o Tính phức tạp: JavaScript có thể trở nên phức tạp khi ứng dụng trở nên lớn hơn. Thư viện ReactJS • Giới thiệu o ReactJS là một framework JavaScript mã nguồn mở được sử dụng để xây dựng giao diện người dùng (UI) cho các ứng dụng web. ReactJS được phát triển bởi Meta (trước đây là Facebook) và được phát hành lần đầu tiên vào năm 2013.
o ReactJS dựa trên khái niệm về các thành phần (components), là các khối xây dựng nhỏ có thể tái sử dụng để tạo ra giao diện người dùng SVTH: Đặng Văn Thiện 5 Tên đề tài: Xây dựng website tích hợp AI hỗ trợ doanh nghiệp sàng lọc ứng viên phức tạp. Các thành phần ReactJS được tạo bằng cách sử dụng các hàm JavaScript đơn giản. • Ưu điểm o Mạnh về hiệu ứng, hiệu suất ứng dụng rất cao. o Tái sử dụng: Các thành phần ReactJS có thể được tái sử dụng trong nhiều ứng dụng khác nhau.
Điều này giúp giảm thời gian và nỗ lực cần thiết để xây dựng giao diện người dùng. o Tính hiệu suất: ReactJS được tối ưu hóa để cung cấp hiệu suất cao. Các thành phần ReactJS chỉ được cập nhật khi cần thiết, giúp cải thiện hiệu suất tổng thể của ứng dụng. o Cộng đồng lớn: ReactJS có một cộng đồng phát triển lớn và tích cực, cung cấp hỗ trợ và tài nguyên cho các nhà phát triển.
• Nhược điểm o Reactjs chỉ phục vụ cho tầng View. React chỉ là View Library nó không phải là một MVC framework như những framework khác. Đây chỉ là thư viện của Facebook giúp render ra phần view. Vì thế React sẽ không có phần Model và Controller, mà phải kết hợp với các thư viện khác.
React cũng sẽ không có 2-way binding hay là Ajax o Tích hợp Reactjs vào các framework MVC truyền thống yêu cầu cần phải cấu hình lại. o React khá nặng nếu so với các framework khác React có kích thước tương tương với Angular (Khoảng 35kb so với 39kb của Angular). Trong khi đó Angular là một framework hoàn chỉnh o Khó tiếp cận cho người mới học Web 4. Ngôn ngữ lập trình Python • Giới thiệu o Python là một ngôn ngữ lập trình thông dịch do Guido van Rossum tạo ra năm 1990, nó được xem là ngôn ngữ lập trình có hình thức rất đẹp, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình.
o Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu, như nhận định của chính Guido van Rossum trong một bài phỏng vấn ông. o Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động, do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. SVTH: Đặng Văn Thiện 6 Tên đề tài: Xây dựng website tích hợp AI hỗ trợ doanh nghiệp sàng lọc ứng viên • Ưu điểm o Đơn giản: Cú pháp đơn giản giúp cho người lập trình dễ dàng đọc và tìm hiểu.
o Tốc độ: Python có tốc độ xử lý nhanh hơn so với ngôn ngữ PHP o Tương tác: Chế độ tương tác cho phép người lập trình thử nghiệm tương tác sửa lỗi của các đoạn mã. o Chất lượng:Thư viện có tiêu chuẩn cao, Python có khối cơ sở dữ liệu khá lớn nhằm cung cấp giao diện cho tất cả các CSDL thương mại lớn. o Thuận tiện: Python được biên dịch và chạy trên tất cả các nền tảng lớn hiện nay. o Mở rộng: Với tính năng này, Python cho phép người lập trình có thể thêm hoặc tùy chỉnh các công cụ nhằm tối đa hiệu quả có thể đạt được trong công việc.
o GUI Programming: Giúp cho việc thực hiện ảnh minh hoạ di động một cách tự nhiên và sống động. • Nhược điểm: o Python không có các thuộc tính như: protected, private hay public, không có vòng lặp do…while và switch…. o Python mặc dù nhanh hơn so với PHP, nhưng lại không nhanh hơn so với C++, Java. Thư viện SentenceTransformer • Giới thiệu o SentenceTransformer là một thư viện Python cung cấp các mô hình học sâu cho xử lý ngôn ngữ tự nhiên (NLP).
Nó dựa trên mô hình Transformers, được phát triển bởi Vaswani và cộng sự của ông tại Google AI vào năm 2017. o SentenceTransformer có thể được sử dụng cho nhiều nhiệm vụ NLP, bao gồm: ▪ So sánh câu: SentenceTransformer có thể được sử dụng để so sánh hai câu và xác định mức độ tương tự của chúng. Điều này có thể được sử dụng cho các ứng dụng như tìm kiếm thông tin và trích xuất thông tin. ▪ Phân loại câu: SentenceTransformer có thể được sử dụng để phân loại các câu thành các loại khác nhau, chẳng hạn như tin tức, blog hoặc xã hội.