M2M
Площадка объявлений о недвижимости для целой страны — квартиры, земля, офисы и гаражи, с фотографиями, видео и картой. Одиннадцать отдельных программ за одним сайтом.
Разместить объявление может кто угодно, но само по себе ничего не публикуется.
Двадцать видов недвижимости
От комнаты до склада, гаража или участка земли. У каждого вида свои поля, свои правила и свои фильтры.
Пять видов аккаунта
Частный владелец, агент, агентство, застройщик и магазин видят каждый свой сайт.
Каждое объявление проверяют
Сотрудники читают каждое новое объявление и каждую новую регистрацию, а затем одобряют или отклоняют его с письменной причиной, которая доходит до того, кто его разместил.
Три языка и вторая площадка
Весь сайт на румынском, русском и английском. Площадку для стройматериалов добавили позже, рядом с недвижимостью.
Чтение и запись, разделённые намеренно.
-
1
Сторона, которая ищет
Одна программа не делает ничего, кроме ответов на вопросы: найди мне вот такие объекты, покажи вот этого продавца. На сайте объявлений просмотр случается в тысячу раз чаще, чем размещение.
-
2
Сторона, которая публикует
Вторая программа не делает ничего, кроме изменений: размести это объявление, поправь его, убери. Разделённая надвое, сторона поиска может настраиваться только на скорость, а сторона размещения ей не мешает.
-
3
Всё вокруг них
Вход, фотографии и видео, модерация, платежи, уведомления — каждое своя маленькая программа, и все доверяют одному и тому же пропуску.
Разделение чтения и записи — решение, на котором держится вся платформа. Оно же и самое дорогое, если ошибиться: с этого момента обе стороны должны договариваться обо всём, ни разу не поговорив напрямую.
Обычные инструменты, одиннадцать раз подряд.
В браузере
То, что видит посетитель. Страницы сначала собираются на сервере, поэтому объявление открывается быстро, а поисковые системы могут его прочитать.
- TypeScript
- React 17
- Next.js 12
- Material UI
На серверах
Девять маленьких программ, почти все на одном языке, поэтому тот, кто разобрался в одной, справится с любой.
- Go 1.17
- Gin
- FastAPI
Где живут данные
Одна база данных для объявлений, быстрый кеш перед ней и облачное хранилище для фотографий и видео.
- MongoDB
- Redis
- Облачное хранилище
Как это выкладывалось
Каждая программа в своей коробке, все они на одном управляемом кластере, а сам кластер записан кодом, а не собран кликами.
- Docker
- Kubernetes
- Terraform
- GitLab CI
Три задачи которые нельзя было купить готовыми.
Форма строит себя сама
Квартире в аренду и складу на продажу нужны совершенно разные вопросы. Вместо двадцати написанных вручную форм сайт спрашивает у сервера, о чём спрашивать, и рисует форму из ответа. Новый вид недвижимости можно добавить, вообще не трогая сайт.
121 фильтр, один запрос
Цена, этаж, комнаты, ремонт, мебель, парковка, животные, город, район, улица. Каждый должен стать частью одного запроса, на который база данных отвечает быстро.
Цены, сравнимые между валютами
Каждую ночь платформа скачивает официальные курсы национального банка и переводит ценовой диапазон покупателя перед сравнением. Без этого большая часть каталога невидима для любого поиска.
Около 1 800 часов работы, за тринадцать месяцев.
Построено в 2021 и 2022 годах командой из девяти человек. Платформа больше не работает, поэтому отправить вас некуда.
Есть идея для проекта? Запросите предложение!
Есть проект? Напишите нам, если хотите поработать вместе над чем-то интересным. Или вам нужна наша помощь? Не стесняйтесь обращаться к нам.