<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Postgres on Anthony Snavely</title><link>https://anthonysnavely.com/technologies/postgres/</link><description>Recent content in Postgres on Anthony Snavely</description><generator>Hugo</generator><language>en</language><lastBuildDate>Fri, 01 Nov 2024 21:43:27 -0700</lastBuildDate><atom:link href="https://anthonysnavely.com/technologies/postgres/index.xml" rel="self" type="application/rss+xml"/><item><title>Field Data Capture</title><link>https://anthonysnavely.com/showcase/field-data-capture/</link><pubDate>Fri, 01 Nov 2024 21:43:27 -0700</pubDate><guid>https://anthonysnavely.com/showcase/field-data-capture/</guid><description>&lt;p>The tablet app technicians use on every job for an energy-efficiency contractor. It replaced paper forms, and it&amp;rsquo;s built for homes with no signal: everything is saved on the tablet first and syncs when a connection comes back.&lt;/p>
&lt;h2 id="what-techs-do-in-it">What techs do in it&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>See their schedule:&lt;/strong> today, upcoming and past jobs, with customer, address, notes and directions.&lt;/li>
&lt;li>&lt;strong>Record measures room by room:&lt;/strong> weatherstripping, LEDs, aerators, thermostats and so on, with quantities, notes and photos.&lt;/li>
&lt;li>&lt;strong>Run the gas appliance safety test (NGAT):&lt;/strong> readings and pass/fail per appliance, with the rules that fail an appliance applied automatically.&lt;/li>
&lt;li>&lt;strong>Fill in the inspection:&lt;/strong> attic, roof, electrical, structural and venting checks.&lt;/li>
&lt;li>&lt;strong>Walk the customer through the work,&lt;/strong> collect signatures and submit, or mark the job &amp;ldquo;Can&amp;rsquo;t Do&amp;rdquo; with a reason.&lt;/li>
&lt;li>&lt;strong>Track van inventory and their turn-in sheet,&lt;/strong> and read the program manuals from inside the app.&lt;/li>
&lt;/ul>
&lt;h2 id="how-it-works">How it works&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Offline-first.&lt;/strong> A local SQLite database is the source of truth on the tablet. Every change goes into a sync queue, and a background worker sends it to Supabase when the tablet is online.&lt;/li>
&lt;li>&lt;strong>Photos and video upload resumably,&lt;/strong> so a dropped connection halfway through a large file doesn&amp;rsquo;t start it over.&lt;/li>
&lt;li>&lt;strong>One backend with the office app.&lt;/strong> The tablet and the office web app share one Supabase Postgres database, scoped per company with row-level security.&lt;/li>
&lt;li>Flutter with an MVVM structure (Provider for state), and Sentry for crash reports from the field.&lt;/li>
&lt;/ul></description></item></channel></rss>