CompanyRemote

Receipt Points Telegram Bot

Deadline: 2026-04-04

Description

Budget: $30 - $250

I’m putting together a simple Telegram loyalty bot that lets users earn points by photographing their purchase receipts. The first milestone is an MVP, entirely in Node.js, that focuses on a single happy-path flow:

• When a user sends any message, the bot greets them and explains the rules. • When they send a receipt photo, the bot downloads the image to local storage, sends it to Google Vision API for OCR, finds the total amount, converts that amount directly into points (same number for now), stores everything in a local JSON file, and replies with the points earned.

Google Vision API is the only OCR engine I want used, and all processed data must live in simple JSON files so I can switch to a database later without refactoring the whole codebase.

Deliverables

  1. Clean, well-commented Node.js code (Telegraf or similar) ready to drop a token in and run.
  2. A helper script or clear section in the README that sets up the Google Vision credentials and any environment variables.
  3. Sample JSON output showing at least one successful receipt entry with user id, image path, extracted amount, points awarded, and timestamp.
  4. Basic error handling: unsupported file types, unreadable receipts, Vision API failures, and duplicate uploads within a short window should all respond gracefully to the user.
  5. Instructions to launch locally (npm install / node index.js) plus optional Dockerfile.

Acceptance will be a short video or screenshots of the bot reading a test receipt, awarding points that match the total, and saving the correct JSON record.

If you have previous Telegram bot or Vision API work, feel free to point me to it—otherwise a quick proof-of-concept GIF is perfect.

Skills

Data ProcessingOCRDockerAPIJSONNode.jsImage ProcessingJavaScriptAPI DevelopmentSoftware ArchitecturePHP

Want AI to find more roles like this?

Upload your CV once. Get matched to relevant assignments automatically.

Try personalized matching