Skip to main content

La Chacra de Pando: Telegram Woodshop Orders with Gemma

A Spanish-language order management app for a family furniture workshop, turning Telegram messages and photos into structured orders using Gemma on DigitalOcean.

AI-written
Inewgen
05 Oct 2026Source: Dev.to3 min read (0 views)
Share
La Chacra de Pando: Telegram Woodshop Orders with Gemma

Stock photo for illustration only, not from the actual event

Font size
  • Built for the Hacktoberfest Weekend Challenge under the Build for a Friend theme
  • Converts chaotic Telegram chat messages and reference photos into structured orders
  • Uses the Gemma 4 26B A4B IT model via OpenRouter for data extraction
  • Hosted on an Ubuntu DigitalOcean Droplet with 2 GB RAM and 1 vCPU for $12 a month

An application named La Chacra de Pando was created to solve practical order-management challenges for a family-run small furniture workshop, turning messy chat requests into structured purchase orders without forcing the workshop owner to fill out lengthy forms.

Traditional order requests often contain complex details including customer names, dimensions, wood types, finishes, delivery dates, and reference photos. These details need to stay connected throughout production and delivery, and the application extracts these crucial pieces directly from chat inputs and images.

39Rust test suites included in the repository
4,000Character limit per extraction request

On the backend side, bot access is strictly restricted to an explicit Telegram user-ID whitelist. When a customer sends a message, the primary artificial intelligence model, gemma-4-26b-a4b-it, receives the text and reference images, returning a structured JSON response containing the customer name, item description, requested delivery date, and product quantities.

Telegram smartphone chat messaging app interface

Stock photo for illustration only, not from the actual event

"pedido Cliente: Ana López Una mesa de roble, 120 × 80 × 75 cm. Acabado natural."

Sample order text processed by the system

The backend code, written in Rust, strictly validates the JSON response before saving any records. If the JSON is invalid, missing contract keys, or contains unsupported units, the system rejects it immediately. If the primary attempt with Gemma fails, the application makes a single fallback attempt using qwen/qwen3.5-35b-a3b without an infinite retry loop.

Never miss the latest news?

Subscribe to get news summaries by email - not often enough to be annoying.

โฆษณา

Separating the natural language interpretation layer from core business logic provides immense architectural flexibility. Open-weight models like Gemma simply translate raw human text into defined JSON contracts, while the underlying SQLite database and application code maintain strict control over permissions, history, and workshop workflows, allowing future model swaps without system redesigns.

For deliveries, workshop staff can simply type a command like entrega 12 in Telegram to mark order number 12 as fulfilled. Photos sent in the same chat within 15 minutes automatically become delivery evidence, and delivery commands bypass AI execution entirely to avoid duplicate processing.

The entire setup runs on an Ubuntu DigitalOcean Droplet configured with 2 GB RAM and 1 vCPU. SQLite databases and customer photos persist in a mounted data directory, supported by backup scripts retaining seven daily and four weekly snapshots.

Source: Dev.to

Comments

Leave a Comment
0/2000

Found something wrong in this article? Report an issue with this article