SPB Git
1.9 KB

# Research Working Papers — Simon-Pierre Boucher Research Observatory

Public scientific publishing platform for the UQO working papers of Simon-Pierre Boucher: https://wp.spboucher.ai.

Three layers: a publication library (stable identifiers, versioned manuscripts, rich metadata, citation exports), a discovery engine (topics, methods, datasets, authors, timeline, typo-tolerant and semantic search) and a research-intelligence layer (knowledge graph of papers linked by methods, data, topics, authors and labelled textual similarity).

Stack Next.js 16 (App Router, React 19, TypeScript, Tailwind 4), PostgreSQL 17 + pgvector + pg_trgm + unaccent, postgres-js, poppler, PM2, OpenAI embeddings (optional)
Node MacLustr M3U96b (~/apps/wp-spboucher-ai), deployed with mld; public route through the MacLustr Tunnel (BHS64, Caddy, Let's Encrypt)
Languages English (canonical URLs) and French (/fr/...)
Discoverability Highwire Press (Google Scholar) + Dublin Core meta tags, JSON-LD ScholarlyArticle, OAI-PMH (/api/oai), RSS (/feed.xml), sitemap, public JSON API (/api/docs)
Administration /admin — password (Argon2id) + optional TOTP, CSRF, audit trail, ingestion queue, versions, taxonomy, settings, analytics, backups

# Development

bash
pnpm install
cp .env.example .env            # fill in (see docs/operations.md)
pnpm db:migrate && pnpm db:roles && pnpm bootstrap
pnpm seed:import --publish      # verified catalog + manuscripts from $STORAGE_DIR/inbox
pnpm worker                     # in another terminal
pnpm dev                        # http://localhost:8560

Tests: pnpm test (unit), pnpm test:e2e (Playwright, set E2E_BASE_URL), pnpm test:security [url], pnpm verify:deploy [url].

Documentation: docs/infrastructure-report.md (discovery and compatibility), docs/architecture.md, docs/operations.md (runbook), docs/api.md, docs/verification.md (test evidence).

Files · main
Menu

Theme