EXPIRY ALERT ' 26
Overview
### Setup & Installation 1. The project uses a split full-stack monorepo architecture. Run `npm install` in both the /backend and /frontend directories. 2. The database is hosted on a cloud PostgreSQL instance via Supabase. Local environment parameters utilize standard .env connection pooling on backend port 5000. 3. Start the backend engine with `npm run dev` and launch the client UI server via `npm run dev` inside the frontend directory (Vite port 5173). ### Key Architectural Decisions - Dynamic Status Resolution: Document expiration statuses (Active, Expiring Soon, Expired) are not stored statically. They are computed dynamically in real-time via PostgreSQL CASE statements on every fetch, preventing out-of-date records. - Background Automation Engine: Built a node-cron engine that runs daily at 8:00 AM to automatically scan for target documents hitting critical thresholds (30-day, 7-day, and 1-day actions), making the platform proactive rather than passive. - Modern Client Pipeline: Migrated the view rendering engine to use Tailwind CSS v4 alongside a PostCSS compilation pipeline for optimal client performance and clean CSS scannability.