Персональна single-user система моніторингу оголошень OLX.ua: збір через GraphQL API OLX (fallback — HTML) → SQLite → React-таблиця зі статусами/нотатками/історією цін (за етапами) та експортом у Notion. Локальний запуск, без зовнішніх сервісів.
- Monorepo: npm workspaces —
server/+web/ - Backend: Node.js 20+, TypeScript, Fastify 5, better-sqlite3, cheerio
- Frontend: React 18, Vite 6, TanStack Query/Table, Chakra UI v3 (+ next-themes, react-icons/lu)
- Збір даних: GraphQL
POST /apigateway/graphql(основний) +fetch/cheerio HTML-fallback (без браузера/Playwright)
npm install # залежності обох воркспейсів
npm run dev # server :3001 + web :5173 паралельноВідкрий http://localhost:5173 → створи пошук (напр. query iphone 13, ціна 8000–15000) →
натисни Scan → оголошення зʼявляться в таблиці. Повторний Scan не дублює рядки
(дедуплікація по olx_id).
CLI-скан без UI:
npm run scan -- --search <id>БД зберігається у server/data/olx.db (gitignored, створюється автоматично).
Майстер «AI» (хедер) аналізує описи оголошень і знаходить мінуси/плюси за критеріями. Працює у двох рівноправних режимах:
- Безкоштовний (ручний, без ключа): на кожному кроці — «Скопіювати промпт»/«Завантажити пакет», прогін у будь-якому безкоштовному чаті (ChatGPT/Gemini/тощо) → «Вставити відповідь». Ключ не потрібен.
- Авто (OpenRouter): сервер сам шле запити. Потрібен ключ:
- Отримай ключ на https://openrouter.ai/keys
cp server/.env.example server/.envі впишиOPENROUTER_API_KEY=...- Перезапусти
npm run dev. Модель/reasoning/додаткові критерії — у «Налаштування → AI-аналіз» (дефолтgoogle/gemini-2.5-flash-lite).
server/.env ігнорується git (закомічено лише .env.example). Аналіз запускається тільки
вручну (ніколи зі сканів/автооновлення). Деталі — docs/plans/llm-analysis.md.
Реалізовано Етап 1 (MVP): scraper (GraphQL — основний, HTML — fallback) + SQLite + REST (CRUD пошуків, scan, listings) + React-таблиця на Chakra UI v3 (сортування, видимість колонок, темна/світла тема через Drawer налаштувань; колонки «Опис»/«Продавець»/«Активність», лічильник «Результатів: N»). Наступні етапи (статуси, нотатки, історія цін, Notion, cron) — у документації нижче.
docs/olx-monitor-spec.md— канонічна специфікація (вимоги, схема БД, етапи, ризики)docs/architecture.md— технічна архітектура та потік данихdocs/olx-api.md— API OLX: GraphQL (основний метод) + HTML fallback (параметри, заголовки, приклади, dataflow фронтенду OLX)docs/olx-graphql-fields-reference.md— довідник усіх полів GraphQL-відповіді OLXdocs/structure.md— структура файлів і папокdocs/plans/initial-mvp.md— план Етапу 1 із прогресомdocs/plans/graphql-migration.md— план міграції збору на GraphQLCLAUDE.md— інваріанти й конвенції (обовʼязкові при змінах)