Vai al contenuto

Prodotti software, dal problema alla manutenzione.

Riolabs S.r.l. progetta e sviluppa prodotti software. Quando un pezzo di codice serve anche ad altri, lo pubblichiamo come open source.

Cosa facciamo

Prodotti software

Progettiamo e sviluppiamo prodotti nostri, dall'idea al rilascio. Oggi c'è Chattoo, un assistente virtuale che risponde ai clienti delle attività su WhatsApp, Instagram, email, chat del sito e telefono; prima c'è stato Addubby, un menu smart per la ristorazione, con comande, prenotazioni e pagamenti.

Ricerca e sviluppo

Quando una soluzione pronta non c'è, la costruiamo. Nel 2021, con Troveme, abbiamo lavorato su come provare che uno smartphone è davvero dentro un luogo chiuso, dove il GPS non arriva: dispositivi Bluetooth Low Energy, un token che scade e una sola API per la verifica.

Librerie open source

Componenti per Angular (ng-bootstrap), una base per applicazioni fatte di più app (ng-app), date e ore nel fuso orario giusto (date-tz), servizi NestJS che si parlano su RabbitMQ (nestjs-amqp): sono librerie che sviluppiamo e pubblichiamo su GitHub e npm, e alcune girano nei nostri prodotti.

Come lavoriamo

Ogni passo qui sotto viene da un progetto vero, raccontato nelle sue pagine.

  1. Partiamo dal problema

    Prima di scrivere codice capiamo chi ha il problema e come lo racconterebbe. La verifica Bluetooth è nata così: per accettare una comanda dal telefono in Addubby serviva sapere se il cliente era davvero seduto al tavolo.

  2. Proviamo, poi rifacciamo

    Un prototipo, poi le versioni che servono. Per quella verifica, poi diventata Troveme, ne abbiamo fatte tre: un dispositivo su ogni tavolo con display e QR, poi il Bluetooth sul gateway del ristorante, infine un solo microcontrollore con WiFi e Bluetooth.

  3. Estraiamo quello che si riusa

    Quando un pezzo serve a più di un prodotto lo separiamo e ne facciamo una libreria, con documentazione ed esempi. La gestione di date e fusi orari è nata così, con date-tz, perché nei nostri prodotti le persone stanno in fusi diversi.

  4. Manteniamo nel tempo

    Il lavoro continua dopo il rilascio: nuove versioni, documentazione, regole aggiornate. Le regole nuove dei fusi orari del 2026, per esempio, sono già nella nostra libreria delle date.

Cosa curiamo

Documentazione con esempi

Le librerie escono con una guida ed esempi dal vivo o un playground, così si provano prima di installarle.

Meglio un errore che un dato sbagliato

Se una data non corrisponde al formato, date-tz dà errore invece di indovinare. E nel gateway di nestjs-amqp gli errori dei servizi tornano con lo stato HTTP giusto.

Dati personali solo dove servono

Nella verifica della posizione di Troveme li abbiamo tenuti fuori: utenti e accessi li gestiva un servizio separato.

Poche dipendenze

Ogni dipendenza è codice da seguire nel tempo. date-tz, la nostra libreria delle date, non ne ha nessuna.

Competenze tecniche

Web e app

Interfacce web, console di gestione e app per telefono.

Servizi e integrazioni

Microservizi, code di messaggi, accessi e pagamenti, canali di messaggistica.

Dispositivi

Schede con microcontrollore e Bluetooth Low Energy, configurate dal telefono.

Le tecnologie delle schede pubblicate

Nei prodotti

  • NestJS
  • TypeScript
  • Angular
  • MongoDB
  • RabbitMQ
  • Redis
  • Capacitor
  • Firebase Cloud Messaging
  • jambonz
  • Stripe
  • Bluetooth Low Energy
  • ESP32
  • C++
  • MQTT (Eclipse Mosquitto)
  • .NET 5
  • Entity Framework Core
  • Keycloak (OAuth2)
  • Vue.js
  • Docker

Nei progetti open source

  • Angular
  • TypeScript
  • NestJS
  • JavaScript

Perché l'open source

Il codice che serve ai nostri prodotti spesso serve anche ad altri. Pubblicarlo ci spinge a documentarlo e a tenerlo in ordine, e chi lo usa vede come lavoriamo.

I nostri progetti open source

Domande su quello che facciamo? Parliamone.