NGN Hacks 2026 · one person, two days, sixteen years old

Wisper

An Android app that lets an industrial field technician file the daily work report without ever touching the phone.

See the source on GitHub

Kotlin, native Android 8 or newer · there is no APK to download, and the reason is further down

The problem

A heating and photovoltaic technician spends the day on site with gloves on and both hands busy. Then the report has to be filed: client, job, description, hours, kilometres, expenses.

The interesting part is when it happens. Back at the office, near closing time, at the end of a day that started at seven, by someone who is tired and wants to go home. It is a form, filled in by hand, one field after another, and nothing about it is automatic. So it gets rushed, or written from memory two days later, or forgotten, and the office spends the next morning chasing it.

This is not a hypothetical user. It is the daily routine at my father's technical firm, where I build software for industrial clients, and where I have been watching this problem from close up for the past few months.

How it works

  1. Say “Wisper”

    The wake word runs entirely on the phone. Until it is heard, no audio leaves the device and no connection is needed.

  2. Just talk

    The fields fill themselves in on screen while you speak. Correct anything out loud, “no, three hours”, and it updates.

  3. Say “confermo”

    Wisper reads the report back, you confirm, and the row lands in the company Google Sheet. The phone is never touched.

Technician

“Sono andato da Rossi per la manutenzione della caldaia, quattro ore e trenta chilometri.”

I was at Rossi's for the boiler service, four hours and thirty kilometres.

Wisper

“Segnato Rossi Impianti, quattro ore e trenta chilometri. Altro, o salvo?”

Rossi Impianti, four hours and thirty kilometres, noted. Anything else, or shall I save?

Technician

“No aspetta, scusa, erano tre ore non quattro.”

No wait, sorry, it was three hours not four.

Wisper

“Corretto, tre ore segnate.”

Corrected, three hours noted.

The app speaks Italian, because that is who it was built for. The English under each line is a translation, not something the app says.

On site, it goes first

  1. It knows where you are

    Open it standing in a client's yard and it opens the conversation itself: “I see you are at Rossi's, and the only job open here is the Fara Vicentino photovoltaic. Is that right?” It proposes, it never assumes; you might be at the office writing up yesterday.

  2. It tells jobs apart the way you do

    Ask what is open for a client and it answers by place, not by code, because a technician says “the one in via Roma” and never “M004”.

  3. It knows when to shut up

    A wake word means holding the microphone open forever, and on Android the microphone belongs to whoever grabbed it. So Wisper listens when the screen is off, or when it is the app you are looking at. Use the phone for anything else, or take a call, and it steps aside on its own.

  4. It keeps the sheet tidy

    New clients and new jobs get created by voice, and it says out loud when it does it. Say the work is finished and the job closes in the company sheet, so tomorrow it is not offered again.

Source code: the whole project is public on GitHub, including the Google Apps Script that writes to the spreadsheet.

What it is not, yet

This was built in a weekend hackathon. These limits are real and known, and are listed here rather than discovered later.

Where it goes

A spreadsheet is where this starts, not where it ends. The next step is writing into the system a firm already runs, an ERP like Odoo, so the report lands as a timesheet entry against the right job instead of a row somebody copies over by hand.