🏫 QR Attendance System Setup
Checking system requirements...
";
echo "
📋 System Requirements Check
";
echo "
";
// 1. Check PHP version
if (version_compare(PHP_VERSION, '7.4.0') >= 0) {
echo "
✓ PHP 7.4+ is installed (Current: " . PHP_VERSION . ")
";
} else {
echo "
✗ PHP 7.4+ is required (Current: " . PHP_VERSION . ")
";
}
// 2. Check MySQLi extension
if (extension_loaded('mysqli')) {
echo "
✓ MySQLi extension is enabled
";
} else {
echo "
✗ MySQLi extension is required
";
}
// 3. Check session support
if (function_exists('session_start')) {
echo "
✓ Session support is enabled
";
} else {
echo "
✗ Session support is required
";
}
echo "
";
echo "
🗄️ Database Connection Check
";
echo "
";
// Database connection test
$host = 'localhost';
$user = 'root';
$pass = '';
$dbname = 'attendance_system';
$conn = @mysqli_connect($host, $user, $pass);
if ($conn) {
echo "
✓ Connected to MySQL server
";
// Check if database exists
$db_selected = @mysqli_select_db($conn, $dbname);
if ($db_selected) {
echo "
✓ Database '$dbname' exists
";
// Check required tables
$required_tables = [
'users' => 'Users table',
'students' => 'Students table',
'activities' => 'Activities table',
'attendance' => 'Attendance table',
'courses' => 'Courses table',
'departments' => 'Departments table',
'genders' => 'Genders table',
'schools' => 'Schools table'
];
foreach ($required_tables as $table => $description) {
$result = @mysqli_query($conn, "SHOW TABLES LIKE '$table'");
if ($result && mysqli_num_rows($result) > 0) {
echo "
✓ $description exists
";
} else {
echo "
✗ $description is missing
";
}
}
// Check if there are users in the database
$result = @mysqli_query($conn, "SELECT COUNT(*) as count FROM users");
if ($result) {
$row = mysqli_fetch_assoc($result);
if ($row['count'] > 0) {
echo "
✓ Users found in database
";
// Show sample users
$result = @mysqli_query($conn, "SELECT username, role, full_name FROM users LIMIT 3");
if ($result && mysqli_num_rows($result) > 0) {
echo "
Sample users:
";
while ($user = mysqli_fetch_assoc($result)) {
echo "• {$user['username']} ({$user['role']}) - {$user['full_name']}
";
}
echo "
";
}
} else {
echo "
⚠ No users found in database
";
}
}
} else {
echo "
✗ Database '$dbname' does not exist
";
echo "
";
echo "Please import the SQL file first:
";
echo "mysql -u root -p attendance_system < attendance_system.sql";
echo "
";
}
mysqli_close($conn);
} else {
echo "
✗ Cannot connect to MySQL server
";
echo "
";
echo "MySQL Error: " . mysqli_connect_error() . "
";
echo "Please check your database credentials in includes/config.php";
echo "
";
}
echo "
";
echo "
📁 Directory Structure Check
";
echo "
";
// Check directory structure
$required_dirs = [
'includes' => 'Configuration files',
'assets/css' => 'CSS stylesheets',
'assets/js' => 'JavaScript files',
'admin' => 'Admin pages',
'teacher' => 'Teacher pages',
'student' => 'Student pages',
'auth' => 'Authentication pages',
'api' => 'API endpoints',
'qr/generated' => 'QR code storage'
];
foreach ($required_dirs as $dir => $description) {
if (is_dir($dir)) {
echo "
✓ Directory '$dir' exists
";
// Check if directory is writable (for qr/generated)
if (in_array($dir, ['qr/generated'])) {
if (is_writable($dir)) {
echo "
✓ Directory '$dir' is writable
";
} else {
echo "
⚠ Directory '$dir' is not writable
";
}
}
} else {
echo "
✗ Directory '$dir' is missing
";
}
}
echo "
";
echo "
📄 Required Files Check
";
echo "
";
// Check required files
$required_files = [
'includes/config.php' => 'Configuration file',
'auth/login.php' => 'Login page',
'admin/dashboard.php' => 'Admin dashboard',
'admin/attendance.php' => 'QR scanner page',
'api/scan_qr.php' => 'QR scanning API',
'index.php' => 'Main entry point'
];
foreach ($required_files as $file => $description) {
if (file_exists($file)) {
$size = filesize($file);
echo "
✓ $description exists (" . round($size/1024, 2) . " KB)
";
} else {
echo "
✗ $description is missing
";
}
}
echo "
";
echo "
🚀 Quick Actions
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
";
echo "
Setup Instructions:
";
echo "
";
echo "- Import the SQL file to your database
";
echo "- Update database credentials in
includes/config.php ";
echo "- Make sure
qr/generated/ directory is writable ";
echo "- Access the system via:
http://localhost/attendance_system/ ";
echo "- Login with default credentials: johnlloyd12 / password
";
echo "
";
echo "
";
echo "
";
echo "
Security Notes:
";
echo "
";
echo "- Change default passwords after first login
";
echo "- Disable error display in production (set
display_errors = Off in php.ini) ";
echo "- Use HTTPS in production environment
";
echo "- Regularly backup your database
";
echo "
";
echo "
";
echo "
";
echo "QR Attendance System v1.0 | " . date('Y-m-d H:i:s') . "";
echo "
";
echo "