<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sviluppatore freelance .NET, Angular, Python e Flutter nelle Fiandre Occidentali on Rock-IT - Peter Dewachtere - Sviluppatore IT freelance</title><link>https://dewachtere.be/it/</link><description>Recent content in Sviluppatore freelance .NET, Angular, Python e Flutter nelle Fiandre Occidentali on Rock-IT - Peter Dewachtere - Sviluppatore IT freelance</description><generator>Hugo</generator><language>it</language><lastBuildDate>Tue, 13 Oct 2026 16:06:00 +0200</lastBuildDate><atom:link href="https://dewachtere.be/it/index.xml" rel="self" type="application/rss+xml"/><item><title>Shop online B2B di Omni-Term</title><link>https://dewachtere.be/it/projects/omni-term-webshop/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/projects/omni-term-webshop/</guid><description>&lt;p&gt;&lt;a href="https://www.omniterm.be"&gt;Omni-Term&lt;/a&gt;, di Izegem, è dal 1970 grossista di riscaldamento, solare e ventilazione, con più filiali e installatori professionisti come clienti. Per questi installatori realizzo e mantengo lo shop online B2B &lt;strong&gt;pro.omniterm.be&lt;/strong&gt;: il prolungamento digitale del banco vendita, aperto 24 ore su 24.&lt;/p&gt;
&lt;h3 id="la-sfida"&gt;La sfida&lt;/h3&gt;
&lt;p&gt;Gli installatori ordinano spesso la sera o dal cantiere. Vogliono sapere subito se un articolo è disponibile nella loro filiale e quando possono ritirarlo o riceverlo. Lo shop deve quindi lavorare in perfetta sintonia con l&amp;rsquo;ERP di Omni-Term: prezzi specifici per cliente, giacenze per filiale, ordini aperti e fatture devono essere sempre corretti.&lt;/p&gt;</description></item><item><title>BillableMe: registrazione del lavoro per freelance</title><link>https://dewachtere.be/it/projects/billableme/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/projects/billableme/</guid><description>&lt;p&gt;Da freelance so quanto sia noioso, dopo una lunga giornata di lavoro, ricostruire le ore, raccogliere gli scontrini e ricordare le idee avute per strada. &lt;strong&gt;BillableMe&lt;/strong&gt; è l&amp;rsquo;app che ho sviluppato proprio per questo: tutto ciò che fa per un cliente lo registra subito sullo smartphone, per cliente e per progetto.&lt;/p&gt;
&lt;h3 id="che-cosa-fa-billableme"&gt;Che cosa fa BillableMe&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Ore e attività&lt;/strong&gt;: registri il lavoro per cliente, progetto e attività, con un timer integrato o a posteriori, e lo consulti per giorno, settimana, mese o anno&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Spese e trasferte&lt;/strong&gt;: spese professionali e costi aggiuntivi per ogni registrazione, con tipi di trasporto e foto degli scontrini&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Lettura degli scontrini con l&amp;rsquo;IA&lt;/strong&gt;: la foto di uno scontrino viene letta automaticamente (OCR), così gli importi non vanno più digitati a mano&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Note vocali&lt;/strong&gt;: registri al volo un&amp;rsquo;attività, un promemoria o una nota; l&amp;rsquo;app le trasforma automaticamente in testo, in olandese o in inglese, e le rende ricercabili&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sicura e multilingue&lt;/strong&gt;: accesso biometrico, interamente disponibile in olandese e inglese, con un controllo dello stato del backend all&amp;rsquo;avvio&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="tecnologia"&gt;Tecnologia&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;App&lt;/strong&gt;: Flutter con Riverpod, GoRouter e Freezed, registrazione e riproduzione audio, Material Design; testata tramite TestFlight e prossimamente disponibile su App Store e Google Play&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Backend&lt;/strong&gt;: NestJS (TypeScript) con TypeORM e PostgreSQL, autenticazione JWT, Redis e code Bull per le attività in background, audit logging e optimistic locking&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Servizi di IA&lt;/strong&gt;: servizio di trascrizione Whisper proprio in Python (FastAPI, senza GPU) e Google Document AI per la lettura degli scontrini&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Hosting e DevOps&lt;/strong&gt;: Docker Swarm con più repliche dell&amp;rsquo;API, nginx, registry privato e health check, in hosting presso Rock-IT&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="perché-un-prodotto-proprio"&gt;Perché un prodotto proprio?&lt;/h3&gt;
&lt;p&gt;BillableMe è nato dalla mia pratica quotidiana e viene usato come lo usa un utente reale. È allo stesso tempo il mio banco di prova per le nuove tecnologie: lo sviluppo guidato dalle specifiche, la trascrizione tramite IA e il riconoscimento dei documenti sono stati sperimentati qui prima di essere impiegati per i clienti. Ciò che funziona bene qui va a vantaggio anche dei miei clienti.&lt;/p&gt;</description></item><item><title>POVV DSV Tool: app per gli ordini dei soci</title><link>https://dewachtere.be/it/projects/povv-dsv-tool/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/projects/povv-dsv-tool/</guid><description>&lt;p&gt;&lt;a href="https://www.povv.be"&gt;POVV&lt;/a&gt; (Producenten Organisatie Vleesvee, l&amp;rsquo;organizzazione dei produttori di bovini da carne) è una cooperativa che sostiene gli allevatori di bovini da carne e ne rafforza la posizione sul mercato. Tramite POVV i soci ordinano, tra l&amp;rsquo;altro, mangimi presso diversi fornitori. Per semplificare questo processo d&amp;rsquo;ordine ho sviluppato il &lt;strong&gt;DSV Tool&lt;/strong&gt;: un&amp;rsquo;app mobile per i soci, un pannello di amministrazione web per la segreteria e un backend centrale che collega il tutto. Rock-IT collabora con POVV dal 2021; dopo il sito web, nel 2026 è arrivata questa piattaforma per gli ordini.&lt;/p&gt;</description></item><item><title>Kadeo: sito web per un atelier di ceramica</title><link>https://dewachtere.be/it/projects/kadeo-website/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/projects/kadeo-website/</guid><description>&lt;p&gt;&lt;a href="https://katleendeprez.be"&gt;Kadeo&lt;/a&gt; è l&amp;rsquo;atelier di ceramica di Katleen Deprez. Desiderava un sito che lasciasse parlare il suo lavoro: sobrio, caldo e visivo, con una galleria da arricchire in autonomia, senza l&amp;rsquo;intervento di uno sviluppatore. Ho progettato e realizzato il sito dalla A alla Z e lo ospito sull&amp;rsquo;infrastruttura di Rock-IT.&lt;/p&gt;
&lt;h3 id="la-sfida"&gt;La sfida&lt;/h3&gt;
&lt;p&gt;Un sito portfolio per un&amp;rsquo;artista ruota attorno all&amp;rsquo;immagine. Le foto devono caricarsi in fretta, essere nitide su ogni schermo e facili da gestire: caricare, ritagliare, ordinare in sezioni, e via. Allo stesso tempo il sito deve essere trovabile su Google, avere un modulo di contatto che tenga lontano lo spam e rispettare la normativa sui cookie. Il tutto senza costi di abbonamento a un CMS esterno.&lt;/p&gt;</description></item><item><title>Kadeo Photo Uploader: app fotografica per l'atelier</title><link>https://dewachtere.be/it/projects/kadeo-photo-uploader/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/projects/kadeo-photo-uploader/</guid><description>&lt;p&gt;Un nuovo lavoro esce dal forno, la foto viene scattata con lo smartphone&amp;hellip; e poi bisogna ancora trasferirla sul portatile, ritagliarla e caricarla. Per l&amp;rsquo;atelier di ceramica &lt;a href="https://katleendeprez.be"&gt;Kadeo&lt;/a&gt; ho quindi realizzato una piccola app Flutter mirata che salta questo giro: scegliere la foto, scegliere la sezione, caricare. Fatto.&lt;/p&gt;
&lt;h3 id="la-sfida"&gt;La sfida&lt;/h3&gt;
&lt;p&gt;Il &lt;a href="https://dewachtere.be/it/projects/kadeo-website/"&gt;sito web di Kadeo&lt;/a&gt; ha un pannello di amministrazione completo, ma su uno smartphone un CMS nel browser è scomodo. L&amp;rsquo;app doveva essere rapida e semplice, fornire automaticamente le foto nella qualità giusta e comunicare in modo sicuro con il sito senza dover digitare ogni volta una password. Inoltre non doveva essere sull&amp;rsquo;App Store: funziona solo sull&amp;rsquo;iPhone della ceramista.&lt;/p&gt;</description></item><item><title>MVDM Advocaten: sito web per uno studio legale</title><link>https://dewachtere.be/it/projects/mvdm-advocaten/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/projects/mvdm-advocaten/</guid><description>&lt;p&gt;&lt;a href="https://www.mvdmadvocaten.be"&gt;MVDM Advocaten&lt;/a&gt; è uno studio legale con sedi a Ypres e Brielen. Dal 2018 curo il sito web dello studio, inizialmente con il nome Onraet-Verfaille. Quando nell&amp;rsquo;autunno del 2022 lo studio ha proseguito come MVDM Advocaten, il sito ha ricevuto un aspetto completamente nuovo, con la sobria fotografia in bianco e nero che oggi è il biglietto da visita dello studio.&lt;/p&gt;
&lt;h3 id="la-sfida"&gt;La sfida&lt;/h3&gt;
&lt;p&gt;Uno studio legale vuole trasmettere fiducia: sobrio, professionale e soprattutto chiaro. I visitatori cercano in fretta la risposta a tre domande: che cosa fa questo studio, quanto costa e chi sono gli avvocati? Il sito doveva inoltre essere disponibile in olandese e in francese, posizionarsi bene su Google e assorbire il cambio di nome senza perdere visitatori.&lt;/p&gt;</description></item><item><title>Cercare in un catalogo tecnico: Elasticsearch ed ETIM in Omni-Term</title><link>https://dewachtere.be/it/blog/etim-zoeken-elasticsearch-omniterm/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/blog/etim-zoeken-elasticsearch-omniterm/</guid><description>&lt;p&gt;Un installatore che digita «prescomanometer 1/2» vuole una cosa sola: l&amp;rsquo;articolo giusto, subito. Nello &lt;a href="https://dewachtere.be/it/projects/omni-term-webshop/"&gt;shop B2B di Omni-Term&lt;/a&gt; gli installatori cercano per codice articolo, codice fornitore, marca, descrizione o caratteristica tecnica, in un catalogo di molti produttori. Ecco come ho costruito questa funzione di ricerca.&lt;/p&gt;
&lt;h3 id="un-solo-campo-di-ricerca-molti-tipi-di-domanda"&gt;Un solo campo di ricerca, molti tipi di domanda&lt;/h3&gt;
&lt;p&gt;La query viene prima analizzata. Se il codice riconosce un codice articolo o un codice fornitore, la ricerca passa direttamente alla corrispondenza esatta e con wildcard su quei campi, con il boost più alto. Se riconosce una marca, i prodotti di quella marca hanno la precedenza. Il resto sono termini normali, cercati contemporaneamente su più campi: la descrizione come keyword esatta, come testo analizzato e come edge n-gram per i prefissi, la descrizione del prodotto e la gerarchia, dalla categoria alla famiglia di prodotti. Cercando un vecchio codice articolo si ottiene anche il successore, grazie a un elenco annidato di predecessori.&lt;/p&gt;</description></item><item><title>Note vocali con l'IA: così BillableMe trasforma l'audio in testo con Whisper</title><link>https://dewachtere.be/it/blog/whisper-spraaknotities-billableme/</link><pubDate>Wed, 16 Sep 2026 00:00:00 +0000</pubDate><guid>https://dewachtere.be/it/blog/whisper-spraaknotities-billableme/</guid><description>&lt;p&gt;Da freelance, le idee migliori arrivano in auto o in cantiere, proprio quando non si può scrivere. Per questo &lt;a href="https://dewachtere.be/it/projects/billableme/"&gt;BillableMe&lt;/a&gt; ha ora le note vocali: si detta un&amp;rsquo;attività, un promemoria o una nota e mezzo minuto dopo il testo è lì, ricercabile. Ecco come ho affrontato la cosa.&lt;/p&gt;
&lt;h3 id="i-requisiti"&gt;I requisiti&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;L&amp;rsquo;audio resta sul mio server, senza servizi di trascrizione esterni.&lt;/li&gt;
&lt;li&gt;Olandese e inglese, con rilevamento automatico della lingua.&lt;/li&gt;
&lt;li&gt;Nessuna GPU: deve funzionare sul Docker Swarm esistente.&lt;/li&gt;
&lt;li&gt;L&amp;rsquo;utente non aspetta mai la trascrizione.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="passo-1-registrare-in-flutter"&gt;Passo 1: registrare in Flutter&lt;/h3&gt;
&lt;p&gt;L&amp;rsquo;app registra con il package &lt;code&gt;record&lt;/code&gt; in AAC (m4a), chiede il permesso per il microfono e permette di scegliere subito una categoria, un contrassegno e un titolo. Il file viene inviato come upload multipart all&amp;rsquo;API NestJS. Da quel momento la nota compare nell&amp;rsquo;elenco, con lo stato «in elaborazione».&lt;/p&gt;</description></item></channel></rss>