How haritsrhn/ornament-project works
Ornament Sourcing Agent is a monorepo for a public artisan/product site and an admin CMS, backed by a Fastify API. The intended content workflow is CMS management and publishing, followed by public catalog, journal, and site reads; public inquiries and comments are separate submission stages. The README says the frontend currently uses static data and local interaction state, so no frontend-to-API runtime connection is shown. Backend edges reflect sampled route calls and documented API capabilities; some module internals were not sampled.
Main entry points: data.ts Static content · index.ts API contracts · public/routes.ts Public API routes · products/routes.ts Product management
Components 26
Public site
- Public pages
frontend/app/(site)/page.tsx - Catalog browsing
frontend/components/site/CatalogBrowser.tsx - Journal browsing
frontend/components/site/JournalBrowser.tsx - Contact form
frontend/components/site/InquiryForm.tsx - Static content
frontend/lib/data.ts
Admin CMS
- Admin screens
frontend/app/admin/page.tsx - Product management
backend/src/modules/admin/products/routes.ts - Article management
backend/src/modules/admin/articles/routes.ts - Artisan management
backend/src/modules/admin/artisans/routes.ts - Taxonomy management
backend/src/modules/admin/taxonomy/routes.ts - Media management
backend/src/modules/admin/media/routes.ts - Users and invites
backend/src/modules/invites/routes.ts
Backend API
- Authentication
backend/src/modules/auth/routes.ts - Public API routes
backend/src/modules/public/routes.ts - Product catalog API
backend/src/modules/public/products/routes.ts - Journal API
backend/src/modules/public/articles/routes.ts - Site content API
backend/src/modules/public/site/routes.ts - Inquiry submission
backend/src/modules/public/inquiries/routes.ts - Public comments
backend/src/modules/public/comments/routes.ts
Contracts and state
- API contracts
packages/shared/src/index.ts - PostgreSQL data
- Prisma integration
backend/src/plugins/prisma.ts - Object storage
- Email service
Other components
- Site visitor
- CMS administrator
Connections 43
- Site visitor → Public pages: views
- Public pages → Static content: reads
- Site visitor → Catalog browsing: browses
- Catalog browsing → Static content: reads
- Site visitor → Journal browsing: browses
- Journal browsing → Static content: reads
- Site visitor → Contact form: submits
- Contact form → Static content: uses
- CMS administrator → Admin screens: manages
- Admin screens → Static content: reads and updates
- CMS administrator → Authentication: authenticates
- Authentication → PostgreSQL data: reads and writes
- Authentication → Users and invites: accepts invite
- Users and invites → PostgreSQL data: reads and writes
- Users and invites → Email service: sends invite
- CMS administrator → Product management: manages products
- Product management → PostgreSQL data: reads and writes
- Product management → Taxonomy management: uses SKU taxonomy
- CMS administrator → Article management: manages articles
- Article management → PostgreSQL data: reads and writes
- CMS administrator → Artisan management: manages artisans
- Artisan management → PostgreSQL data: reads and writes
- CMS administrator → Taxonomy management: manages taxonomy
- Taxonomy management → PostgreSQL data: reads and writes
- CMS administrator → Media management: manages media
- Media management → PostgreSQL data: reads and writes
- Media management → Object storage: stores media
- Site visitor → Public API routes: requests content
- Public API routes → Product catalog API: dispatches routes
- Public API routes → Journal API: dispatches routes
- Public API routes → Site content API: dispatches routes
- Product catalog API → PostgreSQL data: reads published products
- Journal API → PostgreSQL data: reads published articles
- Site content API → PostgreSQL data: reads site content
- Site visitor → Inquiry submission: submits inquiry
- Inquiry submission → PostgreSQL data: writes inquiry
- Site visitor → Public comments: submits comment
- Public comments → PostgreSQL data: reads and writes
- API contracts → Product catalog API: defines contracts
- API contracts → Journal API: defines contracts
- API contracts → Public pages: defines contracts
- API contracts → Admin screens: defines contracts
- Prisma integration → PostgreSQL data: connects