Как стать автором
Обновить

Ecodomen.ru — агрегатор регистраторов доменных имен

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров1.5K

Ecodomen.ru — волонтерский проект с открытым исходным кодом, документацией, планами.

Цель — создание продукта, агрегатора регистраторов доменных имен в зоне ru для того, чтобы пользователи сервиса могли легко находить наиболее выгодного регистратора. 

Полагаю, что аудитории Хабра не нужно объяснять, кто такие эти регистраторы, но на всякий случай оставлю ссылку на Википедии.

Больше о задаче решаемой продуктом на vc.ru:
https://vc.ru/u/366794-aleksey-rezvov/1173879-kak-ecodomen-ru-pomogaet-ekonomit-na-domenah

Как это устроено

Продукт состоит из двух основных частей:

  1. Веб-приложение для отображения сведений о регистраторах с возможностями фильтрации и сортировки по наиболее востребованным параметрам.

  2. Парсер ценовых предложений с сайтов регистраторов доменных имен.

Весь проект сейчас лежит в одном репозитории, так было проще начать:
https://github.com/ecodomen/nsreg-watcher

Веб-приложение разработано на базе Django, причем для рендеринга HTML используется Django template language. 

СУБД — PostgreSQL, немного Celery для фоновых задач.

Парсеры разработаны на базе Scrapy.
Работа по сбору ценовых предложений начинается с запуска парсера страницы аккредитованных регистраторов доменных имен:
https://cctld.ru/domains/reg/ 

Сейчас в ecodomen собран 131 регистратор доменных имен.

Затем для каждого полученного регистратора запускается персональный парсер, который забирает стоимости регистрации, продления и трансфера с сайта регистратора. 

Для многих сайтов регистраторов используются обобщенные (aka базовые) парсеры, 7 таких парсеров закрывают 80% сайтов, остальные приходится обрабатывать вручную.

Сейчас и парсеры и приложение Django смотрят в одну и ту же БД PostgerSQL. За создание схемы БД отвечает Django, а парсеры уже опираются на нее.

Из инфраструктуры, развернуто сейчас все на небольшом VPS с Ubuntu 22.04. Одно время у нас работал простой CI/CD, который развертывал дев и прод окружения при пуше в ветки dev и main, но прямо сейчас там что-то сломано.

Еще у нас есть телеграм бот, который сообщает нам в группу об успешности или неуспешности запуска парсеров. Прямо сейчас он сыплет довольно много сообщений об ошибках при парсинге, которые нам некогда поправить, хороший повод присоединиться к проекту?

Можно сразу взять в работу что-нибудь из issues в колонке TODO с текстом “Spider Error”:
https://github.com/orgs/ecodomen/projects/1 

В команде есть гипотеза, что поломался какой-то из базовых парсеров и починка одного вылечит большинство ошибок в других.

Наши планы

Для продукта в целом сейчас важно подтвердить востребованность у пользователей, после этого уже можно будет заняться развитием фич, а идей под них хватает с избытком.

Пока же мы хотим поиграть с технологиями и архитектурой:

  1. Разделить разработку бекенда (Django REST Framework или FastAPI) и фронтэнда (React.js или Vue.js).

  2. Разработать бекенд с микросервисным подходом на базе FastAPI. Понимаем, что для проекта такая сложность скорее всего не оправдана, зато будет весело.

  3. Перенести базу данных с PosgreSQL на YDB в качестве эксперимента. В процессе решения задачи нужно будет разработать адаптеры YDB для Django ORM и SQLAlchemy. Есть шанс, что уже что-то сделано, но мы не нашли. Кстати, ребята из команды разработки самого YDB анонсировали поддержку в этой задаче, так что — хороший повод присоединиться кому-то поопытнее.

  4. Разработать unit-тесты, тесты API, E2E-тесты, наладить нагрузочное тестирование. 

О планах продукта можно узнать в статье на VC:
https://vc.ru/u/366794-aleksey-rezvov/1173879-kak-ecodomen-ru-pomogaet-ekonomit-na-domenah 

Таким образом, мы приглашаем участвовать всех, кому интересны эти задачи. 

Кроме того, мы будем рады видеть, вас:

  1. Технические писатели, аналитики. У нас много всего неописанного, незадокументированного, а надо бы это сделать. Нужно писать статьи, обучающие материалы.

  2. DevOps-инженеры. Явно есть куда развивать мониторинг, систему развертывания и другие аспекты инфраструктуры.

  3. А на Хабре больше всего ждем опытных разработчиков, которые помогут покритиковать имеющийся код, спроектировать новые версии, поддержать советом новичков при разработке. 

Если проект вас заинтересовал, присоединяйтесь:
https://forms.gle/xxuYPCR7AvLj2z7J7 

Ссылки

Сервис: https://ecodomen.ru 
Ваш фидбек: https://forms.gle/SKXX2XffoAYZbGxW9
История проекта: https://youtu.be/hV8Bj291A60
Заявка на участие: https://forms.gle/xxuYPCR7AvLj2z7J7 
Репозиторий с исходным кодом проекта: https://github.com/ecodomen/nsreg-watcher
Доска с задачами: https://github.com/orgs/ecodomen/projects/1
Ecodomen.ru, продукт: https://vc.ru/u/366794-aleksey-rezvov/1173879-kak-ecodomen-ru-pomogaet-ekonomit-na-domenah 
Ecodomen.ru, реализация: https://habr.com/ru/articles/814305/


P.S. Предвижу, что будут мнения в стиле “код очень плох, архитектурные решения крайне неудачные, организация работ никудышная”. 

Это тот случай, когда ваше мнение действительно важно, только, пожалуйста, изложите его конструктивно, например через системное ревью:
https://habr.com/ru/articles/490608/ 

А еще лучше, присоединяйтесь к команде и покажите примером!

Теги:
Хабы:
Всего голосов 8: ↑7 и ↓1+6
Комментарии6

Публикации

Истории

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн