vadirajkrishna's picture
initial commit - InterviewCopilotLocal
4e8fb20 unverified
Raw
History Blame Contribute Delete
1.38 kB
import aiosqlite
from config import DB_PATH
SCHEMA = """
CREATE TABLE IF NOT EXISTS sessions (
id INTEGER PRIMARY KEY AUTOINCREMENT,
date TEXT NOT NULL,
company TEXT,
role TEXT,
duration INTEGER DEFAULT 0
);
CREATE TABLE IF NOT EXISTS exchanges (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id INTEGER NOT NULL,
question TEXT NOT NULL,
answer TEXT DEFAULT '',
framework_used TEXT NOT NULL,
timestamp TEXT NOT NULL,
FOREIGN KEY (session_id) REFERENCES sessions(id)
);
CREATE TABLE IF NOT EXISTS evaluations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
exchange_id INTEGER NOT NULL,
steps_covered_json TEXT NOT NULL,
score INTEGER NOT NULL,
feedback TEXT NOT NULL,
FOREIGN KEY (exchange_id) REFERENCES exchanges(id)
);
CREATE TABLE IF NOT EXISTS transcripts (
id INTEGER PRIMARY KEY AUTOINCREMENT,
session_id INTEGER NOT NULL,
raw_text TEXT NOT NULL,
labelled_json TEXT NOT NULL,
FOREIGN KEY (session_id) REFERENCES sessions(id)
);
CREATE TABLE IF NOT EXISTS patterns (
framework TEXT PRIMARY KEY,
times_shown INTEGER NOT NULL DEFAULT 0,
avg_score REAL NOT NULL DEFAULT 0,
most_missed_step TEXT DEFAULT ''
);
"""
async def init_db(db_path=DB_PATH) -> None:
async with aiosqlite.connect(db_path) as db:
await db.executescript(SCHEMA)
await db.commit()