PPPAIMT-Crest/README.md

72 lines
1.6 KiB
Markdown

# 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.