# Freman.Sample.Web – Blazor + PostgreSQL (Docker) sample

This repo is a small demo for C# developers (e.g., Unity folks) who are new to web dev.

## Prereqs

- Docker Desktop
- .NET SDK (matching the repo)
- (Optional) EF tooling: `dotnet-ef`

## Quickstart (recommended)

1) Create a `.env` file next to `compose.yaml`:
   ```text POSTGRES_PASSWORD=your_local_dev_password```

2) Start everything:
   ```powershell docker compose up --build```

3) Open the app, then navigate to **Notes (Postgres)**.
   Type a note, click **Save**, refresh the page — it should persist.

## Running from Rider (server on host, DB in Docker)

Start just Postgres:

```powershell docker compose up postgres```

Then run the `Freman.Sample.Web` project from Rider.

> In this mode, the app uses `appsettings.Development.json` which points to `localhost:5432`.

## Migrations (EF Core)

Install EF CLI once:
```powershell dotnet tool install --global dotnet-ef```

Add a migration:

```powershell dotnet ef migrations add InitialCreate --project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj --startup-project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj ` --output-dir Data\Migrations```

Apply it:
```powershell dotnet ef database update --project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj --startup-project .\Freman.Sample.Web\Freman.Sample.Web\Freman.Sample.Web.csproj```

## Troubleshooting

- **DB auth failed**: check `.env` password matches the connection string in `compose.yaml`.
- **Port 5432 already in use**: stop the other Postgres instance or change the port mapping in `compose.yaml`.