« Back to History
install.php
|
20260722_120325.php
Initial Domain Snapshot
Copy Code
<?php require_once __DIR__ . '/config.php'; require_once __DIR__ . '/core/db.php'; $pdo = DB::pdo(); $out = []; function run($pdo, $sql, $params = []) { $stmt = $pdo->prepare($sql); $stmt->execute($params); } $out[] = "Installing tables (single-user, no company)..."; run($pdo, "CREATE TABLE IF NOT EXISTS su_users ( id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, email VARCHAR(191) NOT NULL UNIQUE, password_hash VARCHAR(255) NOT NULL, role VARCHAR(20) NOT NULL DEFAULT 'Owner', created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX(email) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); run($pdo, "CREATE TABLE IF NOT EXISTS dev_sprints ( id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, name VARCHAR(100) NOT NULL, start_date DATE NULL, end_date DATE NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); run($pdo, "CREATE TABLE IF NOT EXISTS dev_tasks ( id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, title VARCHAR(255) NOT NULL, description TEXT NULL, module VARCHAR(100) NULL, assignee BIGINT UNSIGNED NULL, points INT NOT NULL DEFAULT 1, due DATE NULL, status ENUM('todo','in_progress','review','done','archived') NOT NULL DEFAULT 'todo', sprint_id BIGINT UNSIGNED NULL, rank DECIMAL(12,6) NOT NULL DEFAULT 0, created_by BIGINT UNSIGNED NULL, updated_by BIGINT UNSIGNED NULL, created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, updated_at TIMESTAMP NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP, INDEX (status, rank), INDEX (sprint_id), INDEX (assignee), INDEX (due) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); run($pdo, "CREATE TABLE IF NOT EXISTS dev_history ( id BIGINT UNSIGNED PRIMARY KEY AUTO_INCREMENT, task_id BIGINT UNSIGNED NOT NULL, field VARCHAR(50) NOT NULL, old_value TEXT NULL, new_value TEXT NULL, changed_by BIGINT UNSIGNED NULL, changed_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, INDEX (task_id), INDEX (field) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4"); // Seed user $email='admin@example.com'; $exists=$pdo->prepare('SELECT id FROM su_users WHERE email=?'); $exists->execute([$email]); if(!$exists->fetchColumn()){ $hash=password_hash('admin123', PASSWORD_DEFAULT); run($pdo, 'INSERT INTO su_users (name,email,password_hash,role) VALUES (?,?,?,\"Owner\")', ['Admin',$email,$hash]); $out[] = "Seed user created: admin@example.com / admin123"; }else{ $out[] = "User admin@example.com already exists"; } // Seed sprint & tasks $hasSprint = $pdo->query('SELECT id FROM dev_sprints LIMIT 1')->fetchColumn(); if(!$hasSprint){ run($pdo, 'INSERT INTO dev_sprints (name,start_date,end_date) VALUES ("Sprint 1", CURDATE(), DATE_ADD(CURDATE(), INTERVAL 7 DAY))'); $sid = $pdo->lastInsertId(); $tasks = [ ['Setup project','in_progress',2,1000], ['Build API','todo',3,2000], ['Design UI','review',5,3000], ['Deploy','done',1,4000], ]; foreach($tasks as $t){ run($pdo, 'INSERT INTO dev_tasks (title,status,points,sprint_id,rank) VALUES (?,?,?,?,?)', [$t[0],$t[1],$t[2],$sid,$t[3]]); } $out[] = "Demo sprint & tasks inserted"; } else { $out[] = "Sprints already present"; } ?> <!doctype html> <html lang="hi"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"> <title>Installer</title> <style>body{font-family:system-ui,Segoe UI,Roboto,Arial;margin:0;background:#0f1115;color:#e6edf3} .wrap{max-width:640px;margin:8vh auto;background:#151924;border:1px solid #232a3a;border-radius:12px;padding:20px}</style> </head><body><div class="wrap"> <h2>Installation Result (Single-User)</h2> <ul><?php foreach($out as $line) echo '<li>'.htmlspecialchars($line).'</li>'; ?></ul> <p><b>Login</b>: admin@example.com / admin123</p> <p><a style="color:#a3c3ff" href="/login.php">Login पर जाएँ</a></p> <p style="color:#9fb3c8">Security tip: install.php सेटअप के बाद delete/rename कर दें।</p> </div></body></html>