Техническое задание: Децентрализованная P2P доска объявлений
Основная концепция
Необходимо разработать веб-приложение - доску объявлений, работающую по принципу одноранговой сети (Peer-to-Peer). Система должна функционировать без централизованного сервера, обеспечивая прямой обмен данными между пользователями.
Ключевые требования к реализации
Архитектура и передача данных
- Полностью P2P: Все данные (объявления, метаинформация) должны передаваться напрямую между клиентскими приложениями пользователей.
- Технология связи: Для установления соединений между пирами рекомендуется использовать WebRTC. Допускается предложение альтернативных P2P-решений с обоснованием.
Хранение и синхронизация данных
- Децентрализованное хранение: Каждый клиент хранит свою полную или частичную (на усмотрение исполнителя) копию базы объявлений.
- Автоматическая синхронизация: Система должна автоматически распространять новые объявления по сети и обновлять локальные копии у подключенных пользователей.
- Локальное сохранение: Для хранения данных на стороне клиента необходимо использовать IndexedDB или фреймворк Gun.js (или аналогичный).
Функциональность интерфейса
- Публикация и просмотр: Возможность создавать, просматривать и удалять свои объявления.
- Фильтрация и поиск: Реализовать поиск по заголовку и описанию объявлений, а также фильтрацию по категориям (категории должны быть динамическими или предопределенными - на усмотрение разработчика).
- Мониторинг сети: В интерфейсе должен отображаться статус активных P2P-соединений (количество подключенных пиров, состояние).
Технические детали
- Решение должно быть реализовано в виде веб-приложения.
- Необходимо предусмотреть механизм первоначального обнаружения пиров (bootstrapping) в сети.
- Важно продумать стратегию разрешения конфликтов данных (например, при одновременном редактировании).
- Приветствуется описание архитектуры и выбор технологий в документации.