Files
zeekay 4c0d15fb5e Curriculum — a polished, print-friendly online resume
Fork of hanzo-apps/hanzo-starter: identical stack, providers, vite.config,
auth (PKCE @ hanzo.id) and deploy contract. Two views in @hanzo/gui —
a typographic Resume and an Editor — over profile + entries Base collections
(schema.sql, org-scoped). Light theme, ATS-clean, prints as one clean page.
2026-07-21 13:46:38 -07:00

31 lines
1.6 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- Hanzo Base schema for Curriculum (the `databaseSchema` DDL).
--
-- On publish, Hanzo Cloud translates each CREATE TABLE into a Hanzo Base
-- collection via `provisionBaseFromDDL` (additive + idempotent). Base manages
-- `id`/`created`/`updated`/`owner`/`org` itself, so they are never re-declared
-- here; every row is stamped with the verified IAM `owner`+`org` and is
-- org-scoped — the collection access rule is `@request.auth.org_id = org`, so a
-- member of your org reads/writes your resume and other orgs cannot see it.
--
-- Keep this file in lockstep with what the app reads/writes
-- (src/views/resume.tsx renders it, src/views/editor.tsx edits it).
-- Who the resume is for: the single header block. The app treats the newest
-- `profile` row as the live one (the editor upserts it), so there is one resume
-- per org.
CREATE TABLE IF NOT EXISTS profile (
name TEXT NOT NULL, -- full name, the resume headline
title TEXT NOT NULL, -- professional title / role line
summary TEXT NOT NULL -- the opening summary paragraph
);
-- Every line item on the resume, grouped by `section` (Experience, Projects,
-- Skills, Education, …). `when` is free text ("2021 – Present", "2019") so it
-- reads exactly as written; ordering within a section follows insertion.
CREATE TABLE IF NOT EXISTS entries (
section TEXT NOT NULL, -- which block it belongs to
title TEXT NOT NULL, -- role, project or credential
detail TEXT NOT NULL, -- the supporting description
"when" TEXT NOT NULL -- the date or range, verbatim (quoted: reserved word)
);