Đồ án tốt nghiệp - Xây dựng hệ thống khảo sát trực tuyến sử dụng Laravel Framework.
- Quản lý Khảo sát Động: Dễ dàng tạo, sửa, xóa, và sao chép các mẫu khảo sát.
- Quản lý Đợt khảo sát: Lên lịch và quản lý các đợt khảo sát theo thời gian.
Xác thực người tham gia: Hỗ trợ import danh sách (Excel) để giới hạn người được phép làm khảo sát.- Báo cáo & Thống kê: Giao diện báo cáo trực quan với biểu đồ, bảng biểu và chức năng xuất file Excel/PDF.
- Phân tích nâng cao: Hỗ trợ phân tích chéo (cross-tabulation) để tìm ra mối liên hệ giữa các câu trả lời.
- Bảo mật: Tích hợp Google reCAPTCHA v2 để chống spam và bot.
- Ghi log hoạt động: Theo dõi mọi thay đổi quan trọng trong hệ thống.
- Git
- Web Server: Apache/Nginx (XAMPP, Laragon, WAMP được hỗ trợ)
- PHP:
8.1
trở lên - Composer:
2.x
trở lên - Database: MySQL hoặc MariaDB
Trước khi cài đặt, bạn cần đảm bảo môi trường PHP đã được cấu hình đúng.
-
Tìm file
php.ini
: Mở Terminal (hoặc Command Prompt) và chạy lệnh:php --ini
Lệnh này sẽ hiển thị đường dẫn đến file
php.ini
đang được sử dụng (ví dụ:C:\xampp\php\php.ini
). -
Kích hoạt các extension cần thiết: Mở file
php.ini
và tìm các dòng sau, sau đó xóa dấu chấm phẩy (;
) ở đầu mỗi dòng để kích hoạt chúng:;extension=curl ;extension=fileinfo ;extension=gd ;extension=intl ;extension=mbstring ;extension=openssl ;extension=pdo_mysql
Sau khi sửa, chúng sẽ trở thành:
extension=curl extension=fileinfo extension=gd extension=intl extension=mbstring extension=openssl extension=pdo_mysql
-
(Quan trọng) Cấu hình chứng chỉ SSL (cacert): Để khắc phục lỗi
cURL error 60: SSL certificate problem
, bạn cần chỉ cho PHP biết nơi lưu trữ file chứng chỉ gốc.- Tải file
cacert.pem
mới nhất từ trang chính thức của cURL: https://curl.se/docs/caextract.html - Lưu file này vào một vị trí cố định, ví dụ:
C:\xampp\php\extras\ssl\cacert.pem
(tự tạo thư mụcextras\ssl
nếu chưa có). - Trong file
php.ini
, tìm và sửa 2 dòng sau (bỏ dấu;
và thêm đường dẫn):curl.cainfo = "C:\xampp\php\extras\ssl\cacert.pem" openssl.cafile= "C:\xampp\php\extras\ssl\cacert.pem"
- Tải file
-
Khởi động lại Web Server: Sau khi lưu file
php.ini
, hãy khởi động lại Apache trong XAMPP/Laragon/WAMP để áp dụng các thay đổi.
-
Clone repository:
git clone https://github.com/tho493/khao_sat.git he-thong-khao-sat cd he-thong-khao-sat
-
Cài đặt các thư viện (dependencies):
composer install
-
Tạo file môi trường
.env
: Sao chép file.env.example
thành.env
, sau đó tạo khóa ứng dụng.copy .env.example .env php artisan key:generate
-
Cấu hình Database: Mở file
.env
và chỉnh sửa các thông tin kết nối database cho phù hợp:DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=khao_sat_db DB_USERNAME=root DB_PASSWORD=
-
Import & Seed Database:
- Tạo một database rỗng với tên bạn đã khai báo trong
.env
(ví dụ:khao_sat_db
). - Import file
khao_sat_db.sql
được cung cấp vào database vừa tạo. - Chạy seeder để tạo tài khoản admin mặc định:
php artisan db:seed --class=DatabaseSeeder
- Tài khoản mặc định:
tho493
/tho493
- Tài khoản mặc định:
- Tạo một database rỗng với tên bạn đã khai báo trong
Hệ thống sử dụng Google reCAPTCHA v2 để bảo mật.
- Đăng ký website:
- Truy cập Google reCAPTCHA Admin Console.
- Đăng ký một site mới với các thông tin sau:
- Label: Tên dự án (VD: Hệ thống Khảo Sát SDU)
- reCAPTCHA type: Chọn "Challenge (v2)" -> "I'm not a robot" Checkbox.
- Domains: Thêm
localhost
và127.0.0.1
(để phát triển) và tên miền thật khi deploy.
- Lấy khóa: Sau khi đăng ký, bạn sẽ nhận được Site Key và Secret Key.
- Cập nhật file
.env
: Mở file.env
và thêm 2 khóa này vào:RECAPTCHA_SITE_KEY=YOUR_SITE_KEY_HERE RECAPTCHA_SECRET_KEY=YOUR_SECRET_KEY_HERE
- Đăng ký website:
- Truy cập Google AI Studio.
- Nhấn nút
Get API key
và làm theo hướng dẫn để lấy key api.
- Cập nhật file
.env
: Mở file.env
và thêm khóa này vào:GEMINI_API_KEY="YOUR_GEMINI_API_KEY_HERE"
- Dọn dẹp cache và link storage (quan trọng):
php artisan optimize:clear php artisan storage:link
- Khởi chạy server phát triển:
php artisan serve
- Truy cập vào địa chỉ được cung cấp (thường là
http://127.0.0.1:8000
).
- Sinh viên thực hiện: Nguyễn Chí Thọ
- Email: chitho040903@gmail.com
- Facebook: @tho493
- Giáo viên hướng dẫn: ThS. Phạm Văn Kiên
- Phần mềm là sản phẩm thử nghiệm.