Veteran-first, remote/hybrid job discovery. Built with Next.js (App Router) + TypeScript, TailwindCSS, Prisma, and PostgreSQL. Deployed on your SparkwaveITService server.
cp .env.example .env and set DATABASE_URL for your Postgres instance.npm installnpm run prisma:generatenpm run dev then open http://localhost:3000npm run dev — start Next.js dev servernpm run build / npm run start — production build + servenpm run lint — ESLint with Next.js defaultsnpm run typecheck — TypeScript no-emit checknpm run prisma:generate — generate Prisma clientnpm run prisma:migrate — create a migration from the current schema (edit migration before applying)npm run prisma:studio — open Prisma Studio for quick data inspectionnpm run ingest:fetch — fetch open job feeds (Remotive, The Muse) and cache to data/latest-feeds.json for the UI fallback (fails if no jobs are returned)npm run ingest:seed — write curated sample jobs into data/latest-feeds.json (useful when outbound network is blocked)npm run ingest:db — write cached jobs from data/latest-feeds.json into Postgres via Prisma (run after ingest:fetch or ingest:seed)src/app/ — App Router pages (/, /jobs, /jobs/[id], /for-veterans, /admin)src/data/ — temporary sample data for UI scaffoldingprisma/schema.prisma — models for Job, Company, Location, Category, Tags, Source, and Userpublic/ — static assetsdata/latest-feeds.json — cached jobs consumed by the UI and statically exported for GitHub Pagesnpm run prisma:migrate to create tables.npm run ingest:fetch (or ingest:seed when offline)./admin with basic auth env vars (ADMIN_USER/ADMIN_PASS) or NextAuth/reverse proxy; add moderation and export flows (CSV/RSS).basePath/assetPrefix of /sparkjobs.npm run ingest:seed (or ingest:fetch if network works) then npm run build — output is in out/.out/ to the gh-pages branch (GitHub Pages set to deploy from that branch/root).