CV-Agent là một nền tảng phân tích và tối ưu hóa CV thông minh, sử dụng trí tuệ nhân tạo (AI) để giúp người dùng cải thiện hồ sơ xin việc của mình. Hệ thống kết hợp giữa khả năng xử lý ngôn ngữ tự nhiên của Google Gemini AI, bảo mật cao cấp và tích hợp thanh toán đa dạng.
- Phân Tích CV AI: Sử dụng Google Gemini AI để đánh giá chi tiết CV, đề xuất chỉnh sửa và tối ưu hóa nội dung.
- Quét Virus: Tích hợp ClamAV để đảm bảo an toàn tuyệt đối cho các tệp tin được tải lên.
- Đăng Nhập Đa Dạng: Hỗ trợ đăng nhập qua Google, Facebook và tài khoản email truyền thống.
- Thanh Toán Trực Tuyến: Tích hợp cổng thanh toán VNPay và MoMo (Sandbox) cho các gói dịch vụ cao cấp.
- Quản Lý Hồ Sơ: Lưu trữ và quản lý lịch sử phân tích CV của người dùng.
- Giao Diện Hiện Đại: Thiết kế Responsive với React và Tailwind CSS, tối ưu trải nghiệm người dùng.
- Core: Express.js - Framework mạnh mẽ cho việc xây dựng API.
- Database: MongoDB & Mongoose - Cơ sở dữ liệu NoSQL linh hoạt.
- AI Integration: Google Generative AI (Gemini Flash/Pro).
- Authentication:
passport,passport-google-oauth20,passport-facebook: Xác thực mạng xã hội.jsonwebtoken(JWT): Quản lý phiên đăng nhập an toàn.bcryptjs: Mã hóa mật khẩu.
- File Handling:
multer,formidable: Xử lý upload file.pdf-parse,mammoth,docx: Trích xuất nội dung từ PDF và Word.clamscan: Quét virus cho tệp tin upload.cloudinary: Lưu trữ ảnh đại diện và tài liệu.
- Utilities:
nodemailer,@sendgrid/mail: Gửi email thông báo.node-cron: Lên lịch tác vụ tự động.express-rate-limit,cors,helmet: Bảo mật API.
- Framework: React (Vite) - Tốc độ build và dev cực nhanh.
- State Management: Redux Toolkit - Quản lý trạng thái ứng dụng tập trung.
- Routing: React Router DOM - Điều hướng trang mượt mà.
- Styling: Tailwind CSS - Thiết kế giao diện nhanh chóng và nhất quán.
- HTTP Client: Axios - Giao tiếp với Backend API.
- Components:
react-dropzone: Kéo thả file upload.react-toastify: Thông báo toast đẹp mắt.react-icons: Bộ icon đa dạng.
CV-Agent/
├── backend/ # Mã nguồn Server (Node.js/Express)
│ ├── src/
│ │ ├── config/ # Cấu hình (DB, Passport, Multer...)
│ │ ├── controllers/# Logic xử lý request
│ │ ├── models/ # Schema MongoDB
│ │ ├── routes/ # Định nghĩa API endpoints
│ │ ├── services/ # Business logic (AI, Mail, Scan...)
│ │ └── server.js # Entry point
│ ├── .env # Biến môi trường
│ └── package.json
│
├── frontend/ # Mã nguồn Client (React/Vite)
│ ├── src/
│ │ ├── components/ # Các thành phần UI tái sử dụng
│ │ ├── pages/ # Các trang chính của ứng dụng
│ │ ├── store/ # Redux store và slices
│ │ ├── services/ # API calling functions
│ │ └── App.jsx
│ ├── tailwind.config.js
│ └── vite.config.js
│
└── README.md # Tài liệu hướng dẫn (File này)
- Node.js: Phiên bản 16+ trở lên.
- MongoDB: Tài khoản MongoDB Atlas hoặc cài đặt local.
- Tài khoản Cloudinary: Để lưu trữ ảnh.
- Google AI API Key: Để sử dụng Gemini.
- ClamAV: (Tùy chọn) Cài đặt ClamAV trên máy local nếu muốn test tính năng quét virus
localhost.
Di chuyển vào thư mục backend và cài đặt dependencies:
cd backend
npm installTạo file .env trong thư mục backend với nội dung sau (cập nhật các key của bạn):
# Server
PORT=5000
NODE_ENV=development
FRONTEND_URL=http://localhost:5173
SESSION_SECRET=your_super_secret_session_key
# MongoDB
MONGODB_URI=your_mongodb_connection_string
# JWT
JWT_SECRET=your_jwt_secret_key
# Cloudinary
CLOUDINARY_CLOUD_NAME=your_cloud_name
CLOUDINARY_API_KEY=your_api_key
CLOUDINARY_API_SECRET=your_api_secret
# Google Gemini AI
GEMINI_API_KEY=your_gemini_api_key
# Email (Gmail App Password hoặc SendGrid)
SMTP_HOST=smtp.gmail.com
SMTP_PORT=465
SMTP_USER=your_email@gmail.com
SMTP_PASS=your_app_password
SMTP_FROM_EMAIL=your_email@gmail.com
# Google OAuth
GOOGLE_CLIENT_ID=your_google_client_id
GOOGLE_CLIENT_SECRET=your_google_client_secret
GOOGLE_CALLBACK_URL=http://localhost:5000/api/auth/google/callback
# Facebook OAuth
FACEBOOK_APP_ID=your_facebook_app_id
FACEBOOK_APP_SECRET=your_facebook_app_secret
FACEBOOK_CALLBACK_URL=http://localhost:5000/api/auth/facebook/callback
# Payment Gateways (Sandbox)
VNPAY_TMN_CODE=your_vnpay_code
VNPAY_HASH_SECRET=your_vnpay_secret
# ... (Thêm cấu hình MoMo tương tự nếu cần)Chạy server backend:
npm run dev
# Server sẽ chạy tại http://localhost:5000Mở một terminal mới, di chuyển vào thư mục frontend:
cd frontend
npm installTạo file .env trong thư mục frontend (nếu cần cấu hình riêng, ví dụ API URL):
VITE_API_URL=http://localhost:5000/apiChạy ứng dụng frontend:
npm run dev
# Ứng dụng sẽ chạy tại http://localhost:5173- Người dùng truy cập trang chủ: Xem thông tin giới thiệu và các gói dịch vụ.
- Đăng ký/Đăng nhập: Sử dụng Email hoặc Google/Facebook.
- Tải lên CV: Người dùng upload file CV (PDF/Word).
- Hệ thống xử lý:
- Backend nhận file, quét virus.
- Nếu an toàn, trích xuất văn bản từ file.
- Gửi văn bản đến Gemini AI để phân tích theo các tiêu chí (Cấu trúc, Từ khóa, Nội dung...).
- Trả kết quả: Hiển thị kết quả phân tích chi tiết, điểm số và gợi ý cải thiện trên Frontend.
- Thanh toán (Tùy chọn): Người dùng có thể nâng cấp tài khoản qua VNPay/MoMo để mở khóa các tính năng cao cấp (tải lại CV đã sửa, phân tích chuyên sâu hơn).