# Adherence 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 ```bash cp backend/.env.example backend/.env cp frontend/.env.example frontend/.env npm install ``` ## Run ```bash npm run dev ``` - API: http://localhost:4000/api/health - Frontend: http://localhost:5173 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: ```bash 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: ```bash 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 ```bash npm test npm run lint npm run build ``` `npm run build` writes the frontend to `frontend/dist`. ## Deploy See [docs/DEPLOY.md](docs/DEPLOY.md) for Ubuntu on EC2, Nginx, PM2, RDS, and S3.