Budget: 27000 UAH Deadline: 30 days
Good day,
I read the specifications carefully. This is not a Telegram bot — it is an ETL platform with a bot as one of the outputs. That’s how I will build it.
— — —
🔧 STACK
— — —
Python 3.12 + FastAPI (async)
PostgreSQL + SQLAlchemy 2.0 + Alembic
aigram 3.x + FSM for bot commands
Celery + Redis — queue for polling Prozorro
Docker Compose — the entire project in one command
pgvector — directly in the schema, for future AI search
— — —
🏗 MVP ARCHITECTURE
— — —
Fetcher-worker → incremental synchronization by dateModified (not a full scan — this is critical for speed)
Deduplication → composite PK: tender_id + revision + lot. Change history does not "flow"
Filtering → at the PostgreSQL level: GIN indexes on CPV array, Full-Text Search on keywords. Not in Python, but in the database — fast and scalable
Two workflows at once:
• Active tenders (submit an application)
• Contracts/leads (who has already purchased)
Analytics → a separate layer of materialized views: winners, % price reduction, statistics on competitors' EDRPOU, customer statistics. Does not overload the main backend
Telegram bot → lightweight client over API: /start /settings /keywords /cpv /region /last — through FSM aiogram 3
Deduplication of notifications → notifications table: one push for a pair of user_id + tender_revision. No spam
— — —
📊 WHAT YOU WILL GET IN MVP
— — —
✅ Integration of Prozorro API (tenders + contracts)
✅ Filtering: CPV, keywords, region, amount, customer, deadline
✅ PostgreSQL with change history and protection against duplicates
✅ Telegram bot with all commands and FSM settings
✅ Analytics: winners, participants, % reduction, competitors by EDRPOU
✅ Docker Compose — deployment with one command
✅ pgvector in the schema — ready for AI without rewriting
✅ Alembic migrations + pytest coverage of critical modules
— — —
🚀 AFTER MVP (already embedded in the architecture)
— — —
AI analysis of tender documentation through OpenAI + RAG
Affiliation search through EDRPOU connections
Web dashboard
CRM logic and task setting
— — —
💰 COST AND TERMS
— — —
MVP: 32,000 UAH
Term: 3-4 weeks
Why not 25,000 like everyone else? Because the right architecture from the start costs more than rewriting twice. I provide an MVP with a solid foundation for a reasonable price.
— — —
❓ TWO QUESTIONS FOR YOU
— — —
1. Are CPV codes fixed or does the user add them through the bot? This affects the data model.
2. Is historical loading of tenders for 1-3 years needed for analytics, or do we start from the current moment?
Ready to start after your response.