# Turbidity Monitor (Firebase Hosting + Firestore)

## 1) Install tools

```powershell
npm install -g firebase-tools
firebase login
```

## 2) Create Firebase project

1. Go to Firebase Console and create a project.
2. Enable Firestore Database (start in test mode for setup).
3. In Project settings > Your apps, add a Web app and copy config.
4. Replace placeholders in `public/app.js` under `firebaseConfig`.

## 3) Deploy files from this folder

```powershell
firebase use --add
firebase deploy
```

## 4) Data format to write from sensor device/backend

Collection path:

`sensors/turbidity-sensor-1/readings/{readingId}`

Document fields:

- `value` number (NTU)
- `timestamp` Firestore Timestamp

Example payload (Node.js admin/backend):

```js
await db.collection('sensors').doc('turbidity-sensor-1').collection('readings').add({
  value: 42.7,
  timestamp: admin.firestore.FieldValue.serverTimestamp(),
});
```

## Notes

- Current Firestore rules allow public read and authenticated write.
- Tighten rules before production.
## Clear sensor data (one command)

From repo root:

```powershell
.\\clear-sensor-data.ps1 -Yes
```

Options:

- One sensor: `./clear-sensor-data.ps1 -SensorId turbidity-sensor-1 -Yes`
- All sensors under `sensors/`: `./clear-sensor-data.ps1 -AllSensors -Yes`
- Custom project: `./clear-sensor-data.ps1 -ProjectId your-project-id -Yes`