init(app): Setup client package for web api specific logic

This commit is contained in:
Prad Nukala
2026-07-02 17:33:29 -04:00
parent f56116a26b
commit bcfeea93c9
27 changed files with 3104 additions and 0 deletions
+90
View File
@@ -0,0 +1,90 @@
-- CV corpus schema: mirrors the YAML shapes under ../docs.
CREATE TABLE profile (
id INTEGER PRIMARY KEY,
full_name TEXT NOT NULL,
email TEXT,
phone TEXT,
website TEXT,
linkedin TEXT,
github TEXT,
twitter TEXT
);
CREATE TABLE summaries (
id INTEGER PRIMARY KEY AUTOINCREMENT,
role TEXT NOT NULL,
summary TEXT NOT NULL
);
CREATE TABLE experience (
slug TEXT PRIMARY KEY,
title TEXT NOT NULL,
company TEXT NOT NULL,
start_date TEXT NOT NULL,
end_date TEXT,
location TEXT,
profile_heading TEXT
);
CREATE TABLE projects (
slug TEXT PRIMARY KEY,
title TEXT NOT NULL,
start_date TEXT,
end_date TEXT,
url TEXT,
-- slug of the experience (or 'education') this project belongs to
associated_with TEXT
);
-- One row per "- " bullet from the YAML description block scalars.
CREATE TABLE bullets (
id INTEGER PRIMARY KEY AUTOINCREMENT,
parent_type TEXT NOT NULL CHECK (parent_type IN ('experience', 'project')),
parent_slug TEXT NOT NULL,
position INTEGER NOT NULL,
text TEXT NOT NULL
);
CREATE INDEX idx_bullets_parent ON bullets (parent_type, parent_slug);
-- Canonical skill names attached to experience/project/education entries.
CREATE TABLE item_skills (
parent_type TEXT NOT NULL CHECK (parent_type IN ('experience', 'project', 'education')),
parent_slug TEXT NOT NULL,
skill TEXT NOT NULL
);
CREATE INDEX idx_item_skills_skill ON item_skills (skill);
-- The skill inventory (docs/skills/*): languages carry a tier,
-- frameworks carry a group parsed from the YAML comment headers.
CREATE TABLE skills (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
category TEXT NOT NULL CHECK (category IN ('language', 'framework', 'methodology')),
grp TEXT,
tier TEXT,
position INTEGER NOT NULL
);
CREATE TABLE education (
id INTEGER PRIMARY KEY,
school TEXT NOT NULL,
degree TEXT,
field TEXT,
start_date TEXT,
end_date TEXT,
activities TEXT
);
CREATE TABLE honors (
id INTEGER PRIMARY KEY AUTOINCREMENT,
title TEXT NOT NULL,
date TEXT,
institution TEXT
);
CREATE TABLE organizations (
id INTEGER PRIMARY KEY AUTOINCREMENT,
name TEXT NOT NULL,
url TEXT,
title TEXT
);