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/ 

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

Комментарии (6)


  1. Vadiok
    14.05.2024 19:20
    +3

    Жаль, что информация только по .ru


    1. arezvov Автор
      14.05.2024 19:20

      Будем развивать и для других зон.



  1. pae174
    14.05.2024 19:20
    +3

    Я чего-то не понял ничего. В списке полно каких-то мутных сайтов, которые предлагают мне зарегистрировать рушку за 15,000 (пятнадцать тысяч) рублей, и потом еще за такие же деньги продлевать, и больше эти компании ничего и не предлагают - только регистрацию рушек. Сайты выглядят одинаково и принадлежат компаниям, которые учреждены одними и теми же лицами и находятся по одному и тому же адресу. Это что за новый модный скам?

    Кроме того там есть сайты с просроченными сертификатами, чужими сертификатами, и просто нерабочие. Что там вообще творится то?


    1. arezvov Автор
      14.05.2024 19:20

      Есть только предположение (дальше содержимое комментария удалил по совету друга).

      Что касается проекта, мы опираемся на список аккредитованных https://cctld.ru/ регистраторов.


  1. pashkovka
    14.05.2024 19:20
    +2

    Нормальный проект.

    Непонятно, почему только сайт в сайте открывается. Добавить бы... target="blank"

    Сразу сортируем по низу и покупаем .ru за 149 руб. + продление... Конечно тут регистратор уже сам может увеличивать продление так что не угадать!