VerifyChain is a compliance intelligence platform for Indian Micro-MSMEs that aggregates compliance status, calculates a Compliance Health Score, generates public shareable Supplier Cards with QR verification, alerts MSMEs before compliance expirations, and matches MSME profiles to eligible government schemes.
- Frontend: React 18, Vite, Tailwind CSS, React Router 6, Axios
- Backend: Node.js, Express.js, Helmet, CORS, Morgan
- Database / ORM: PostgreSQL 16, Prisma 5 ORM
- Auth & Security: JWT (jsonwebtoken), bcryptjs, express-validator, express-rate-limit
- Scheduling & Email: node-cron, Nodemailer (Gmail SMTP)
- Utilities & PDF: pdfkit, qrcode.react, Chart.js
- Node.js (v18+ recommended)
- PostgreSQL 16 installed and running locally
- npm (v9+ recommended)
Copy .env.example in client/ to .env:
cd client
cp .env.example .envEnvironment variables:
VITE_API_BASE_URL: Base URL for the Express API (default:http://localhost:5000/api)
Copy .env.example in server/ to .env:
cd server
cp .env.example .envEnvironment variables:
DATABASE_URL: PostgreSQL connection string (postgresql://postgres:password@localhost:5432/verifychain)JWT_SECRET: JWT signing secretPORT: Server port (default:5000)CLIENT_URL: Client origin for CORS (default:http://localhost:3000)EMAIL_*: SMTP configuration for email alertsUPLOAD_DIR: Local storage directory for documents (default:uploads)
cd client
npm install
npm run devThe frontend will run at http://localhost:3000.
To build and lint:
npm run build
npm run lintcd server
npm install
npm run devThe server will run at http://localhost:5000.
Exposed Bootstrap Endpoint:
GET /api/health: Returns API health status{ "success": true, "message": "VerifyChain API is running" }
To lint:
npm run lintTo set up Prisma ORM:
cd server
npx prisma generateTo run database migrations (when models are defined in Phase 1):
npx prisma migrate dev- All code strictly follows JavaScript (ES6+), with no TypeScript.
- Frontend code is in
client/src(React, Vite, Tailwind CSS). - Backend code is in
server/src(Express, Prisma). - All extended project documentation is located in the
/docsdirectory.