- Rename: Docker containers, UI, nginx, User-Agent strings - Coin Scout: sync from COIN_SCOUT project (latest version) - Security: Pug injection protection (validatePugSafety) - Security: concurrent render fix (unique temp files) - Fix: disappearing IDs input when cleared - Audit logging: all mutations, login/logout - Users: createdBy/updatedBy on letters - Local image storage option
231 lines
21 KiB
HTML
231 lines
21 KiB
HTML
<!DOCTYPE html>
|
||
<html lang="ru">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<title>Coin Scout — Как это работает</title>
|
||
<style>
|
||
@media print {
|
||
body { font-size: 11px; }
|
||
h1 { font-size: 22px; }
|
||
h2 { font-size: 16px; }
|
||
h3 { font-size: 13px; }
|
||
.no-break { page-break-inside: avoid; }
|
||
.page-break { page-break-before: always; }
|
||
a { color: #333; }
|
||
}
|
||
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Georgia, serif; max-width: 750px; margin: 40px auto; padding: 0 20px; color: #1a1a1a; line-height: 1.7; }
|
||
h1 { text-align: center; margin-bottom: 4px; font-size: 26px; }
|
||
.subtitle { text-align: center; color: #666; margin-bottom: 30px; font-size: 13px; }
|
||
h2 { color: #c45500; border-bottom: 2px solid #c45500; padding-bottom: 4px; margin-top: 32px; }
|
||
h3 { color: #333; margin-top: 20px; }
|
||
.box { background: #f8f9fa; border: 1px solid #e1e4e8; border-radius: 6px; padding: 14px 18px; margin: 14px 0; }
|
||
.box b { color: #c45500; }
|
||
.box-accent { background: #fff8f0; border-color: #c45500; }
|
||
table { width: 100%; border-collapse: collapse; margin: 10px 0 16px; font-size: 12px; }
|
||
th { background: #f5f5f5; text-align: left; padding: 6px 8px; border: 1px solid #ddd; font-weight: 600; }
|
||
td { padding: 5px 8px; border: 1px solid #ddd; }
|
||
.green { color: #1a7f37; font-weight: 600; }
|
||
.orange { color: #c45500; font-weight: 600; }
|
||
.note { color: #666; font-size: 12px; font-style: italic; }
|
||
ul { margin: 6px 0; padding-left: 20px; }
|
||
li { margin-bottom: 5px; }
|
||
.diagram { text-align: center; margin: 20px 0; font-family: monospace; font-size: 12px; background: #f8f9fa; padding: 16px; border-radius: 6px; border: 1px solid #e1e4e8; }
|
||
.number { display: inline-block; width: 28px; height: 28px; line-height: 28px; text-align: center; background: #c45500; color: white; border-radius: 50%; font-weight: 700; font-size: 14px; margin-right: 8px; vertical-align: middle; }
|
||
.step { margin: 16px 0; }
|
||
blockquote { border-left: 3px solid #c45500; margin: 12px 0; padding: 8px 16px; background: #fff8f0; font-style: italic; }
|
||
</style>
|
||
</head>
|
||
<body>
|
||
|
||
<h1>Coin Scout</h1>
|
||
<p class="subtitle">Система автоматического поиска недооценённых монет<br>в нумизматических интернет-магазинах</p>
|
||
|
||
<h2>Проблема</h2>
|
||
|
||
<p>На российском нумизматическом рынке работают десятки интернет-магазинов. В каждом — десятки тысяч позиций. Одна и та же монета в одном магазине может стоить 265₽, а в другом — 5 280₽. При этом характеристики идентичны: тот же год, тот же материал, тот же грейд сохранности.</p>
|
||
|
||
<p>Для опытного нумизмата это возможность. Но вручную отслеживать 190 000 позиций в трёх магазинах, сравнивать цены, оценивать перспективность — невозможно физически. Человек способен просмотреть 50–100 монет в день. Система просматривает все 190 000 за минуты.</p>
|
||
|
||
<div class="box box-accent">
|
||
<b>Суть:</b> Coin Scout ежедневно сканирует три крупнейших нумизматических магазина России, оценивает каждую монету по 8 критериям, находит ценовые аномалии и выдаёт список лучших возможностей — монет, которые стоят дешевле, чем должны.
|
||
</div>
|
||
|
||
<h2>Источники данных</h2>
|
||
|
||
<p>Система работает с товарными фидами (XML-каталогами) трёх магазинов:</p>
|
||
|
||
<div class="no-break">
|
||
<table>
|
||
<tr><th>Магазин</th><th>Позиций</th><th>Специализация</th></tr>
|
||
<tr><td><b>numizm.at</b></td><td>~62 000</td><td>Широкий ассортимент: Россия, Европа, Азия. Много мировых монет.</td></tr>
|
||
<tr><td><b>coinsbolhov.ru</b></td><td>~37 000</td><td>Российская империя, СССР, иностранные монеты. Хорошие цены.</td></tr>
|
||
<tr><td><b>numizmat.ru</b></td><td>~9 000</td><td>Премиальный сегмент: Proof, золото, крупные номиналы.</td></tr>
|
||
</table>
|
||
</div>
|
||
|
||
<p>Суммарный охват — <b>более 108 000 уникальных монет</b>. Фиды обновляются ежедневно, система фиксирует появление новых позиций, изменения цен и исчезновение монет (вероятные продажи).</p>
|
||
|
||
<h2>Как работает система</h2>
|
||
|
||
<div class="step"><span class="number">1</span><b>Сканирование фидов.</b> Каждый день (или по кнопке) система загружает XML-каталоги всех трёх магазинов. Из каждого товара извлекаются: название, цена, старая цена, ссылка, изображение, наличие. Для надёжности используется дисковый кеш — если магазин не отвечает, берутся данные предыдущего скана.</div>
|
||
|
||
<div class="step"><span class="number">2</span><b>Парсинг деталей.</b> Из фида и со страниц товаров извлекаются характеристики: грейд (сохранность), материал, вес, диаметр, год чеканки, страна. Для монет, где фид не даёт деталей, система автоматически заходит на страницу товара и парсит таблицу характеристик.</div>
|
||
|
||
<div class="step"><span class="number">3</span><b>Обогащение данных.</b> Если магазин не указал материал или страну, система определяет их из названия: «2 копейки 1909 года СПБ» → Россия, Медь. Год извлекается с валидацией (не путая каталожные номера с датами).</div>
|
||
|
||
<div class="step"><span class="number">4</span><b>Скоринг.</b> Каждая монета получает числовую оценку от 0 до 100 баллов по 8 критериям (подробнее — в следующем разделе). Монеты сортируются по скору: чем выше — тем интереснее.</div>
|
||
|
||
<div class="step"><span class="number">5</span><b>Кросс-магазинное сравнение.</b> Система находит одинаковые монеты в разных магазинах (совпадение по названию, грейду и материалу) и показывает разницу в цене. Это позволяет купить монету там, где она дешевле.</div>
|
||
|
||
<div class="step"><span class="number">6</span><b>Отслеживание динамики.</b> При каждом скане фиксируется цена каждой монеты. Со временем накапливается история: можно увидеть, когда магазин снизил цену, и купить на просадке.</div>
|
||
|
||
<h2 class="page-break">Скоринг: 8 критериев оценки</h2>
|
||
|
||
<p>Система оценки основана на анализе 40+ профессиональных источников по нумизматике: PCGS, NGC, Forbes.ru, numisdon.com, CoinWeek, Raritetus и др.</p>
|
||
|
||
<div class="no-break">
|
||
<h3>1. Сохранность / Грейд (до 30 баллов)</h3>
|
||
<p>Главный фактор стоимости монеты. Каждый шаг грейда может увеличить цену в 2–50 раз. Proof = 28, UNC = 25, AU = 20, XF = 15, VF = 8 баллов. Бонус за исключительную сохранность для возраста: VF+ для монеты до 1800 года — это редкость.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>2. Материал и стоимость металла (до 25 баллов)</h3>
|
||
<p>Драгоценный металл создаёт «пол» стоимости — монета не может стоить дешевле содержащегося в ней металла. Золото = 22, серебро = 14 баллов. Если монета стоит дешевле стоимости серебра внутри неё (melt value) — это +10 дополнительных баллов. Цена серебра обновляется ежедневно с сайта ЦБ РФ.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>3. Возраст (до 20 баллов)</h3>
|
||
<p>Чем старше — тем меньше сохранившихся экземпляров. До н.э. = 20, 500+ лет = 18, 300+ = 14, 200+ = 10, 100+ = 6 баллов. Античные монеты показывают 8–15% годового роста.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>4. Российские премиум-периоды (до 15 баллов)</h3>
|
||
<p>Отдельные периоды русской нумизматики обладают повышенным потенциалом: монеты 1947 и 1958 годов (не поступили в обращение), Смутное время (1610–1612), раннее советское серебро (1921–1931), монеты Николая II, Петра I, Екатерины II.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>5. Мировые монеты (до 10 баллов)</h3>
|
||
<p>Бонусы за перспективные направления мировой нумизматики: Древняя Греция, Рим, Византия, Боспорское царство, Османская империя, талеры, панды, соверены.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>6. Ошибки чеканки и разновидности (до 15 баллов)</h3>
|
||
<p>Монеты с браком — отдельная ценная категория. Мул / двойной аверс (+15), брак чеканки (+12), перечекан (+10), серия ЧЯП (+10), отсутствие знака монетного двора (+8). Система автоматически распознаёт браки по названию.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>7. Ценовая эффективность (до 12 баллов)</h3>
|
||
<p>Бонус за выгодную цену: скидка ≥30% от старой цены (+8), AU+ дешевле 500₽ (+6), UNC до 1000₽ (+4). Чем дешевле монета хорошей сохранности — тем больше бонус.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>8. Штрафы (до −20 баллов)</h3>
|
||
<p>Снижение скора за негативные факторы: копии (−20), массовые юбилейные СССР (−12), чищеные монеты (−10), современные памятные ЦБ без драгмета (−8). Система фильтрует не-монеты: облигации, марки, аксессуары.</p>
|
||
</div>
|
||
|
||
<h2 class="page-break">Ключевые механики поиска выгоды</h2>
|
||
|
||
<h3>Механика 1: Арбитраж между магазинами</h3>
|
||
|
||
<p>Одна и та же монета продаётся в разных магазинах по существенно разным ценам. Coin Scout сравнивает цены только для монет с <b>одинаковым грейдом и материалом</b> — чтобы исключить ложные совпадения.</p>
|
||
|
||
<div class="box">
|
||
<b>Реальный пример:</b> «2 копейки 1909 года СПБ», медь, VF.<br>
|
||
numizm.at — 5 280₽. coinsbolhov.ru — 265₽.<br>
|
||
Разница: <span class="orange">×20</span>. Одна и та же монета, одинаковый грейд, одинаковый материал, одинаковый тираж.
|
||
</div>
|
||
|
||
<p>Причины ценовых расхождений: разные методы ценообразования, разная оборачиваемость, разные целевые аудитории магазинов. Для покупателя это — окно возможности.</p>
|
||
|
||
<h3>Механика 2: Монеты дешевле стоимости металла</h3>
|
||
|
||
<p>Иногда серебряная монета продаётся дешевле стоимости содержащегося в ней серебра. Система рассчитывает melt value (вес × текущая цена серебра по ЦБ) и находит такие аномалии.</p>
|
||
|
||
<div class="box">
|
||
<b>Пример:</b> Монета весом 2.7г серебра. Серебро по курсу ЦБ: 188₽/г. Стоимость металла: 508₽. Цена монеты: 500₽.<br>
|
||
Вы покупаете серебро <b>дешевле рынка</b>, а нумизматическую ценность получаете в подарок.
|
||
</div>
|
||
|
||
<h3>Механика 3: Мониторинг снижений цен</h3>
|
||
|
||
<p>Система фиксирует историю цен при каждом скане. Когда магазин снижает цену — монета попадает в раздел «Снижения цен» на дашборде. Покупка на просадке — одна из базовых стратегий.</p>
|
||
|
||
<h3>Механика 4: Высокий скор при низкой цене</h3>
|
||
|
||
<p>Скоринг учитывает все факторы ценности: грейд, металл, возраст, историческую значимость, редкость. Монета со скором 60+ и ценой до 1000₽ — это потенциально недооценённый экземпляр. Система автоматически сортирует по скору и позволяет фильтровать по цене, материалу, стране и магазину.</p>
|
||
|
||
<h3>Механика 5: Обнаружение браков</h3>
|
||
|
||
<p>Монеты с ошибками чеканки (смещение, раскол штемпеля, двойной удар, перечекан, мул) — отдельная и высоко ценимая категория. Они часто продаются по обычной цене, потому что продавец не осознаёт редкость. Система автоматически распознаёт браки по названию и помечает их оранжевым тегом.</p>
|
||
|
||
<h2 class="page-break">Функции панели управления</h2>
|
||
|
||
<div class="no-break">
|
||
<h3>Горячие монеты</h3>
|
||
<p>Основной экран. Все доступные монеты, отсортированные по скору. Фильтры: максимальная цена, минимальный грейд, материал, страна, магазин, наличие, дедупликация. Для каждой монеты: подробный анализ с разбивкой по факторам, текст для рассылки, история цен.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>Сравнение магазинов</h3>
|
||
<p>Таблица одинаковых монет в разных магазинах с разницей в цене. Колонки: грейд, материал, скор, цены в обоих магазинах, процент разницы. Сортировка по разнице — самые выгодные арбитражные возможности наверху.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>Дашборд</h3>
|
||
<p>Общая аналитика: количество монет, динамика за неделю, текущая цена серебра (ЦБ РФ), статистика парсинга, график новых монет по дням, топ-находки недели, снижения и повышения цен, исчезнувшие монеты (вероятные продажи), распределение по материалам и грейдам.</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>История цен</h3>
|
||
<p>Для каждой монеты доступен график изменения цены. Позволяет увидеть тренд: монета дорожает (спрос растёт) или дешевеет (возможность для покупки).</p>
|
||
</div>
|
||
|
||
<div class="no-break">
|
||
<h3>Автоматизация</h3>
|
||
<p>Ежедневное сканирование по расписанию (настраиваемый час). Автоматическое обновление цены серебра с ЦБ РФ. Автопарсинг деталей для монет без характеристик. Дисковый кеш фидов для отказоустойчивости.</p>
|
||
</div>
|
||
|
||
<h2>Стратегия использования</h2>
|
||
|
||
<div class="step"><span class="number">1</span><b>Ежедневный мониторинг.</b> Открывайте дашборд — смотрите снижения цен и топ-находки недели. Если появилась монета с высоким скором и низкой ценой — это сигнал.</div>
|
||
|
||
<div class="step"><span class="number">2</span><b>Арбитраж.</b> Вкладка «Сравнение» — находите монеты, которые в одном магазине стоят значительно дешевле. Проверяйте грейд и фото на сайтах обоих магазинов.</div>
|
||
|
||
<div class="step"><span class="number">3</span><b>Серебро ниже melt.</b> Фильтр «Серебро» + сортировка по скору — монеты, у которых стоимость металла близка к цене или превышает её, помечены в анализе.</div>
|
||
|
||
<div class="step"><span class="number">4</span><b>Браки и разновидности.</b> Оранжевые теги «Брак», «Мул», «Перечекан» — это монеты, которые могут стоить значительно дороже, чем указано в магазине.</div>
|
||
|
||
<div class="step"><span class="number">5</span><b>Диверсификация.</b> Используйте фильтр по стране, чтобы распределить покупки между разными направлениями: Россия, Европа, античность.</div>
|
||
|
||
<div class="box box-accent" style="margin-top:30px">
|
||
<b>Ключевой принцип:</b> покупайте самую редкую монету в лучшем состоянии за минимальную цену. Coin Scout автоматизирует поиск именно таких совпадений среди 108 000+ позиций.
|
||
</div>
|
||
|
||
<h2>Технические параметры</h2>
|
||
|
||
<div class="no-break">
|
||
<table>
|
||
<tr><th>Параметр</th><th>Значение</th></tr>
|
||
<tr><td>Охват</td><td>3 магазина, 108 000+ позиций</td></tr>
|
||
<tr><td>Частота сканирования</td><td>Ежедневно (настраиваемый час) + ручной запуск</td></tr>
|
||
<tr><td>Время полного скана</td><td>3–5 минут</td></tr>
|
||
<tr><td>Скоринг</td><td>8 критериев, 0–100 баллов</td></tr>
|
||
<tr><td>Критерии сравнения</td><td>Название + грейд + материал</td></tr>
|
||
<tr><td>Цена серебра</td><td>Автоматически с ЦБ РФ, ежедневно</td></tr>
|
||
<tr><td>Определение стран</td><td>38 паттернов, автоматически из названия</td></tr>
|
||
<tr><td>Детекция браков</td><td>6 типов: брак, мул, перечекан, разновидность, пробная, новодел</td></tr>
|
||
<tr><td>База данных</td><td>SQLite, история цен, детали, лог сканов</td></tr>
|
||
<tr><td>Развёртывание</td><td>Docker, один контейнер, порт 5180</td></tr>
|
||
</table>
|
||
</div>
|
||
|
||
<p class="note" style="margin-top:30px;text-align:center">Coin Scout · Версия апрель 2026<br>Система является аналитическим инструментом. Решение о покупке всегда принимает человек.<br>Всегда проверяйте монету лично или по фото перед покупкой.</p>
|
||
|
||
<script>
|
||
if (location.search.includes('print')) {
|
||
window.onload = () => window.print()
|
||
}
|
||
</script>
|
||
</body>
|
||
</html>
|