Skip to content

Latest commit

 

History

10 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PACS — Platform for Academic Continuity and Search

PACS is a localhost-only undergraduate research desk for preserving permitted thesis PDFs, reviewing extracted research evidence, searching verified content, building a traceable analytical data mart, finding explainable study relationships, and running a small domain-specific query language called PQL.

The source thesis is always authoritative. PACS does not invent missing fields, prove a research gap, grade work, approve titles, or replace academic judgment.

Thesis contribution

  • Web development: a React/Vite research repository served by a local Express API.
  • Data mining: evidence-segment SQLite FTS5/BM25, corpus-wide TF-IDF/cosine similarity, versioned phrase continuity, frequencies, co-occurrence, and trends.
  • Data warehousing: a separately migrated SQLite analytical database populated only from eligible verified evidence through logged, reconciled ETL runs with a visible run ledger.
  • Compiler and interpreter: PQL follows lexer → parser → AST → semantic validation → whitelisted plan → prepared execution, with bounded complexity and a local saved-query library.
  • Academic continuity: related-study and recurring-evidence views remain linked to source excerpts/pages and are labeled as candidate evidence, not proven gaps.
  • Evaluation: the offline workbench freezes a corpus revision and records raw rankings, Precision@K numerators, corpus/algorithm fingerprints, and ignored JSON/CSV artifacts.

Normal operation has no cloud, CDN, external API, OCR, model, or Internet dependency. PACS binds to 127.0.0.1 and stores its databases and PDFs locally.

Requirements

  • Windows 10/11
  • Node.js >=24.15 <25 (official node:sqlite is used)
  • npm included with Node.js
  • A modern local browser

The design is intentionally conservative for a 4 GB RAM/Pentium-class laptop, but that target-device performance is not verified until it is measured on that device.

Install and run for development

From PowerShell in the repository root:

Copy-Item .env.example .env
npm ci
npm run db:migrate
npm run dev

Open http://127.0.0.1:4317. Keep the terminal open while PACS is running. The development server is for implementation work; use the launcher below for the defense/offline build.

Prepare the 12-document synthetic demo

Place exactly 12 permitted, searchable PDF fixtures in storage/demo-fixtures/. Do not place confidential or real institutional theses in Git.

npm run setup:demo

The setup command migrates both databases and imports the fixture set through the normal ingestion boundary. It is idempotent: an already imported fixture is reconciled instead of duplicated. See Demo guide for the expected evidence-state workflow.

Verify and build

npm run verify

The full verifier checks the supported Node version, lint, TypeScript, unit/integration tests, production build, localhost health, and source safeguards. It uses temporary databases and storage; it must not alter the user's corpus.

Individual commands:

npm run lint
npm run typecheck
npm test
npm run build
npm run benchmark

Passing automated checks demonstrates only the behaviors covered by those checks. Browser walkthrough, Wi-Fi-disconnected operation, Windows launcher behavior, restore drills, real-corpus evaluation, target-device performance, and remote publication must be reported separately.

Run the production-local build

.\start-pacs.cmd

The launcher forces loopback binding, builds when necessary, opens the local URL, and keeps the server attached to its terminal. Press Ctrl+C to stop it.

Maintenance commands:

npm run db:migrate
npm run fts:repair
npm run benchmark

Runtime state:

data/pacs.db                 operational evidence and review history
data/pacs_warehouse.db       analytical snapshot and ETL audit data
storage/theses/              copied source PDFs
backups/                     local backup sets and restore safety copies

These locations are ignored by Git. Never commit real theses, databases, backups, or locally extracted research text.

Backup and restore

Create backups from the PACS Backup/Settings screen before risky maintenance. Stop PACS before restoring. Then run:

.\restore-pacs.ps1 -BackupPath .\backups\<backup-folder>

The restore script validates the manifest and checksums, rejects paths outside the project, creates a pre-restore safety copy, and rolls back if copying fails. Full procedure: Security and offline operations.

Validate a backup without changing runtime files:

.\restore-pacs.ps1 -BackupPath .\backups\<backup-folder> -ValidateOnly

Documentation

Prototype boundaries

PACS expects already prepared PDFs. It does not scan paper, capture camera images, run OCR, perform plagiarism detection, call an LLM, or support LAN/multi-user/cloud deployment. Findings from a 20–30 document prototype corpus must not be generalized to the institution without a separately justified study design.

About

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages