coderqh

Rippora — AI Pool Water Test and Dosing App With Laravel Key Proxy

Read the strip. Confirm the pads. Dose in order.

Rippora — AI Pool Water Test and Dosing App With Laravel Key Proxy

The live preview on CodeCanyon is this app compiled for the web: the real build, not a video.

Photograph any pool test strip, confirm each pad against its own color ladder, and get every chemical measured out in the right order for your pool's real volume, with your own key or the included key proxy.

What it does well

from the app
A strip reader you can correct — Rippora screen

A strip reader you can correct

One photo returns a reading for every pad. Each reading sits on the strip's own color ladder, so a wrong pick is one tap away from right. Low confidence pads ask before they count.

Chemicals measured out, in order — Rippora screen

Chemicals measured out, in order

Cups on the bench show how much of each product to add for your volume and product strength, left to right in the order that keeps the water safe, with the wait before the next one.

Balance you can see at a glance — Rippora screen

Balance you can see at a glance

The bubble on the home screen sits where the saturation index puts it, from scaling to corrosive, and every test moves it. History stays on the phone for as long as you like.

What it looks like

11 images
Ladder — Rippora
Ladder
Reader — Rippora
Reader
Bench — Rippora
Bench
Vial — Rippora
Vial
Builder — Rippora
Builder
Shelf — Rippora
Shelf
More screens — Rippora
More screens
What you get — Rippora
What you get
Admin — Rippora
Admin
Landing — Rippora
Landing
Live preview — Rippora
Live preview

In the box

from the shipped zip
  • Full Flutter source in rippora_ai_app/, no obfuscation and no licence server
  • Offline HTML documentation: setup, re-theming, app name and bundle id, troubleshooting
  • The back end, with full source: Laravel key proxy for the AI providers
  • Back-end setup notes for Docker and for shared hosting
  • A one-page landing site for the app, ready to host
  • 33 Dart test files in the app

Run it after download

the app
# unzip the download, then
$ cd rippora_ai_app
$ flutter pub get
$ flutter run

The app runs on its bundled demo data first. The back end has its own README for Docker and for shared hosting, and the app keeps working without it.

Spec

measured
Screen widgets20
Dart files184
Tests in the package33
Dart SDK^3.13.0
Back endLaravel key proxy for the AI providers
PlatformsiOS + Android, one codebase

Counted from rippora-v1.0-r4.zip, the file uploaded to CodeCanyon. Screen widgets are the view, screen and page classes in the source, so the number can differ slightly from a count of routes.

Questions

Something else? Email [email protected]; the author answers.

Does it work with my test strips?

Yes. Pick a strip profile, or build one by listing the pads in order with the values printed on the bottle. The reader is given that profile with the photo, and you confirm every pad before it counts.

Do I need an AI account?

Reading a strip from a photo goes through an AI provider: your own OpenAI, Anthropic or Gemini key typed into the app, or the included key proxy so the key stays on your server and your users never see it. Typing the readings by hand and every dose calculation work with no key at all, and demo mode shows the whole flow on a sample strip.

Where do my readings go?

Tests, pools and chemicals stay on the phone. A strip photo read through the key proxy is forwarded to the provider you chose, counted against the device's daily allowance and logged on your own server; nothing reaches any other service.

Regular licence. Need the Extended licence? Use the button at the top of the page.