Initial commit of Docker project

This commit is contained in:
2026-03-06 11:33:32 -06:00
commit 45d785964d
15 changed files with 1058 additions and 0 deletions

19
db/database.js Executable file
View File

@@ -0,0 +1,19 @@
const Database = require('better-sqlite3');
const path = require('path');
const fs = require('fs');
const DB_PATH = process.env.DB_PATH || '/data/cpas.db';
const SCHEMA_PATH = path.join(__dirname, 'schema.sql');
const dbDir = path.dirname(DB_PATH);
if (!fs.existsSync(dbDir)) fs.mkdirSync(dbDir, { recursive: true });
const db = new Database(DB_PATH);
db.pragma('journal_mode = WAL');
db.pragma('foreign_keys = ON');
const schema = fs.readFileSync(SCHEMA_PATH, 'utf8');
db.exec(schema);
console.log(`[DB] Connected: ${DB_PATH}`);
module.exports = db;

36
db/schema.sql Executable file
View File

@@ -0,0 +1,36 @@
CREATE TABLE IF NOT EXISTS employees (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
department TEXT,
supervisor TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE IF NOT EXISTS violations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
employee_id INTEGER NOT NULL REFERENCES employees(id),
violation_type TEXT NOT NULL,
violation_name TEXT NOT NULL,
category TEXT NOT NULL,
points INTEGER NOT NULL,
incident_date DATE NOT NULL,
incident_time TEXT,
location TEXT,
details TEXT,
submitted_by TEXT,
witness_name TEXT,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE VIEW IF NOT EXISTS active_cpas_scores AS
SELECT
e.id AS employee_id,
e.name AS employee_name,
e.department,
COALESCE(SUM(v.points), 0) AS active_points,
COUNT(v.id) AS violation_count
FROM employees e
LEFT JOIN violations v
ON v.employee_id = e.id
AND v.incident_date >= DATE('now', '-90 days')
GROUP BY e.id;