Initial commit — AI-powered coding tutor (Professor)

Next.js 16, React 19, Monaco editor, Anthropic SDK, multi-provider AI,
Wandbox Python execution, iframe HTML preview, SQLite auth + session persistence.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Aodhan Collins
2026-03-04 21:48:34 +00:00
commit f644937604
56 changed files with 14012 additions and 0 deletions

18
db/index.ts Normal file
View File

@@ -0,0 +1,18 @@
import Database from 'better-sqlite3';
import { drizzle } from 'drizzle-orm/better-sqlite3';
import * as schema from './schema';
type DrizzleDb = ReturnType<typeof drizzle<typeof schema>>;
const globalForDb = globalThis as unknown as { _professorDb?: DrizzleDb };
function createDb(): DrizzleDb {
const sqlite = new Database('professor.db');
sqlite.pragma('journal_mode = WAL');
return drizzle(sqlite, { schema });
}
export const db: DrizzleDb = globalForDb._professorDb ?? createDb();
if (process.env.NODE_ENV !== 'production') {
globalForDb._professorDb = db;
}