Skip to content
gianpajPublic

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Latest commit

 

History

84 Commits

Folders and files

Repository files navigation

Ciao, mi chiamo Gianfranco 👋

Tinkerer ✦ Software Developer ✦ Dog father 🐶

  • ☀️ I'm living in sunny Madrid, Spain 🌞
  • Tech Stack: TypeScript | Node.js | PostgreSQL | MongoDB | Next.js | React | Python | Vercel | Generative AI (text and voice) | LiveKit
  • Blog:
  • Socials:
  • ⚡ Fun fact:
    • My first computer was a Compaq Presario in 1995 in Ecuador – I was 8 years old. It came with Windows 3.1, but you could install Windows '95. I was amazed by the possibilities of computers and the internet (dial-up). I still cherish those memories 🕹️😊

Businesses

  • ☎️ HolaBrisa - a thoughtful text and voice AI receptionist that gives every hotel guest an immediate, personal welcome.
  • 🎙️ SexyVoice.ai (repo) - Text to Speech and Voice cloning platform. Perfect for content creators, developers, and storytellers

Onova 🇺🇦

Onova Android app home feed, October 2018

Onova.co was a mobile marketplace for second-hand and sustainable clothing, "Instagram with a buy button". Alex and I first built Givebox, an app for giving things away in your local area, working remotely from Ireland and Poland. Clothing turned out to be the largest category, so we moved to Lviv, Ukraine, and went full-time on Onova. The company ran until September 2019.

Young people in Ukraine bought clothes in thrift stores and resold them on social media, a market full of scammers, with no payments, reviews or search. On Onova, buyers followed shops to build a personal feed. Sellers announced a drop, a batch of items going on sale at a set date and time. Buyers subscribed, got a notification when it opened and competed to buy. Payments went through UAPay and were held in escrow until the buyer collected the package from Nova Poshta, and Onova took a small fee from each completed order. Drop was a spin-off app built from the same codebase.

I wrote almost all of the code: about 4,500 commits between 2017 and 2020. The iOS and Android apps were one React Native codebase that built both Onova and Drop. The web apps used React and TypeScript. A set of small Node.js services ran on a single AWS Lightsail instance under pm2 and shared one MongoDB database:

  • server.data: the Express REST API behind the apps and web apps, covering the order flow, feed, search and drops, with about 400 tests
  • server.push: push notifications through Firebase Cloud Messaging
  • server.chat: order updates posted into buyer–seller chats on Pusher ChatKit, later Sendbird
  • Agenda: a MongoDB-backed job scheduler for order deadlines and notifications
  • Forest Admin: the back office
  • An Instagram importer: sellers linked their account, and a Google AutoML image classifier picked out posts showing items for sale and turned them into listings on their Onova shop
Details

flowchart LR
  subgraph lightsail["AWS Lightsail instance"]
    webapp(["webapp<br/>:3000"])
    data(["server.data<br/>:4040"])
    agenda{"Agenda job scheduler"}
    push(["server.push"])
    chatPoll(["server.chat<br/>push notif. polling"])
    chatAuth(["server.chat<br/>Pusher auth REST API<br/>:8142"])
    mongo[("MongoDB")]
  end

fcm["Firebase Cloud Messaging"]
chatkit["Pusher ChatKit"]
backup[("MongoDB cloud backup")]

webapp --> data
data <--> mongo
data <--> agenda
agenda <--> mongo
agenda <--> push
agenda <--> chatPoll
push --> mongo
push --> fcm
chatPoll --> chatkit
chatAuth <--> chatkit
mongo --> backup
Loading

Side projects 👨‍💻

  • 🔥 Walnut.tv (repo) - Discover trending videos from Reddit and curated YouTube channels
  • 📞 agentcaller.io (repo) - AgentCaller.io lets your AI agent (e.g. OpenClaw) call businesses — booking a restaurant, etc.
  • 🎯 3dvibegame.com (repo) - 3d multiplayer game where you can create any 3d object, move around and manipulate objects with text. My first game
  • ⚽️ football_analysis_yolo - A Machine Learning project using YOLO and OpenCV to automate soccer match analysis, player tracking, and performance insights from live or pre-recorded video footage.

About

No description or website provided.

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Contributors