72 lines
1.6 KiB
Markdown
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.
|