# Dyolink — Frontend (Next.js)

## Prerequisites

- **Node.js 20+** and **npm**

## First-time setup

1. **Clone the monorepo** and go to the frontend app:

   ```bash
   git clone <repository-url> dyolink
   cd dyolink/frontend
   ```

2. **Install dependencies**

   ```bash
   npm install
   ```

3. **Environment**

   Create **`.env.local`** in this folder (not committed to git) with the public URLs your browser will use:

   ```env
   NEXT_PUBLIC_APP_URL=http://localhost:3001
   NEXT_PUBLIC_API_URL=http://localhost:3000/api
   NEXT_PUBLIC_APP_NAME=Dyolink
   ```

   - Adjust **`NEXT_PUBLIC_API_URL`** if the Nest API runs on another host/port.
   - These values are baked in at **build time** for production images; for local dev, restart `npm run dev` after changing them.

## Run (development)

```bash
npm run dev
```

Open **`http://localhost:3001`** (dev server uses port **3001** so it does not clash with the API on 3000).

Ensure the backend is running and `NEXT_PUBLIC_API_URL` matches its base URL (including `/api` if your API is mounted there).

## After pulling latest `main`

```bash
git pull
npm install
```

## Useful commands

| Command | Purpose |
|--------|---------|
| `npm run dev` | Development server (port 3001) |
| `npm run build` | Production build |
| `npm run start` | Serve production build (port 3000 — used inside Docker) |
| `npm run lint` | ESLint |

## Docker

Image build and build-args (`NEXT_PUBLIC_*`) are documented in the **repository root `README.md`**. Next `standalone` does not include `public/` — `frontend/Dockerfile` copies it so `/prosthesis-catalog/*.svg` is served in production.
