PPPAIMT-Crest/README.md

1.8 KiB

Extended-Dose Pack Study

Web app for CREST Private Limited. Physicians sign a consultation agreement, admins review it, and approved physicians receive a survey link.

This repository is an npm workspaces monorepo:

  • backend — Hapi API
  • frontend — React app (Vite)
  • docs — deployment notes

Requirements

  • Node.js 20 or newer
  • npm 10 or newer

MySQL 8 is required for migrations, admin login, and the test suite. The health check itself does not query the database. Tests use a separate database named ppaimt_crest_test on the same host, port, and user as backend/.env.

Setup

cp backend/.env.example backend/.env
cp frontend/.env.example frontend/.env
npm install

Run

npm run dev

The Vite dev server proxies /api to port 4000.

Frontend only

If you are not running the local API, proxy /api to the hosted backend:

npm install
npm run dev:frontend

Then open http://localhost:5173. Requests to /api go to https://pppaimt-crest.xltr.in. Do not submit live agreements unless you intend to change production data.

Database

Create the application database, then:

npm run migrate
ADMIN_EMAIL=admin@example.com ADMIN_PASSWORD='a-long-password' npm run seed:admin

JWT_SECRET must be at least 32 characters. The admin cookie is httpOnly.

Checks

npm test
npm run lint
npm run build

npm run build writes the frontend to frontend/dist.

Deploy

See docs/DEPLOY.md for Ubuntu on EC2, Nginx, PM2, RDS, and S3.

Import doctors from a CSV file

File path: files/import/*.csv

run below from root if you want to update/import the doctors

npm run import:doctors -- import-doctors-04-11-2026.csv