У нас самописный сайт, на фраймворке YII, нужно посмотреть и сказать, вы разбираете в нем, есть множество работ, которые нужно провести на сайте
Парсер и интерфейс для управления полученными данными через бд
Про Парсинг и веб-интерфейс:
Парсер должен загружаться на компьютер пользователя с кодом веб-страницы не требуя какой либо установки. Запускаться он должен с клиентского компьютера, а не с сервера.
Изначально пользователь вносит входные данные
City - текстовое поле
Street_number - вводим вручную
Street_address - вводим вручную
Suburb - вводим вручную
Property_type - лист со значениями: House, apartment, townhouse, unit.
Bedrooms - лист от 1-6
После того как внесены поля упомянутые выше, должен запускаться парсер который используя введенные выше данные будет производить поиск по нескольким внешним реестрам (webscraping, а не API), выбирать определенные поля из результатов и ими заполнять последующие поля.
Поле Median_Rent_TB – Поле которое должно заполняться по результату поиска во внешнем реестре используя значение suburb.
https://tenancy.govt.nz/rent-Rent-and-bills/market-rent/
Часто бывает что такой район может быть в нескольких городах, или даже в одном городе но разделен на части.
Например введите Frankton и увидите, что сайт выдаст сообщение Sorry, there are multiple results for "Frankton".
И 3 ссылки на франктон:
SUGGESTIONS:
Hamilton - Dinsdale South/Frankton
Hamilton - Hamilton Central/Maeroa/Frankton Junction
Queenstown Lakes - Queenstown/Frankton/Arrowtown
В этом случа парсер должен открыть попап окно браузера и позволить пользователю выьрать из предлагаемых ссылок.
И уже из результата извлечь значение поля Median и подставить его в поле Median_Rent_TB.
Такой же принцип попап окна должен относится ко всем ошибкам поиска во всех реестрах. Например если внешнией реестр недоступен то должно открыться попап окно браузера с ошибкой которую возвращает реестр - будь то 403,404 или 500. Ну или если реестр отвечает, что не смог найти ничего для этого адреса. Или если нашел, но больше одного результата.
Поле Median_Rent_QV – Поле которое должно заполняться по результату поиска во внешнем реестре используя полный адрес дома. https://www.qv.co.nz/resources/property-investment-rental-analysis
Тут для поиска используются поля city, property_type, bedrooms.
В результате выдачи надо найти нужный район(suburb), извлечь оттуда значение поля median rent и внести его в значение median_rent_qv.
Поле Government_value – Поле которое должно заполняться по результату поиска во внешнем реестре.
Реестр зависит от города.
Hamilton - http://www.hamilton.govt.nz/our-services/property-and-rates/propertydatabase/Pages/default.aspx (пример для поиска 15 Arista way)
В результате выдаст ссылку на Valuation Number(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Capital value и подставить его в Government_value
Whangarei - http://www.wdc.govt.nz/RatesandPayments/Rates/Pages/RatesDatabaseSearch.aspx (пример для поиска 12 Ngaio street)
В результате выдаст ссылку на Assessment No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Capital value и подставить его в Government_value
Upper Hutt - http://eservices.uhcc.govt.nz/rates/properties/search (пример для поиска 18 Kiwi street)
В результате выдаст ссылку на Valuation No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Capital value и подставить его в Government_value
Поле Current_Rates – Поле которое должно заполняться по результату поиска во внешнем реестре используя полный адрес дома.
Реестр зависит от города.
Причем для города Hamilton искать нужно по двум реестрам и суммировать результат перед внесением его в поле Current_Rates.
Hamilton - http://www.hamilton.govt.nz/our-services/property-and-rates/propertydatabase/Pages/default.aspx (пример для поиска 15 Arista way)
В результате выдаст ссылку на Valuation Number(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Current rates, потом провести работу со вторым реестром
http://www.waikatoregion.govt.nz/Council/Rates/Find-out-your-rates/ откуда выбрать значение Total rates (including GST) и суммировав оба значения подставить их сумму в current_rates.
Whangarei - http://www.wdc.govt.nz/RatesandPayments/Rates/Pages/RatesDatabaseSearch.aspx (пример для поиска 12 Ngaio street)
В результате выдаст ссылку на Assessment No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Total $ и подставить его в Current_Rates
Upper Hutt - http://eservices.uhcc.govt.nz/rates/properties/search (пример для поиска 18 Kiwi street)
В результате выдаст ссылку на Valuation No(если выдаст более одной то запускается сценарий с попап окном) надо проследовать по ней и в результате выдачи выбрать значение Estimated Total и подставить его в Current_Rates
Поле Capital_Growth
реестр https://www.qv.co.nz/resources/monthly-residential-value-index
в зависимости от города выбирается District и после этого жмется кнопка show.
Из результата нужно выбрать поле Change in Value и подставить в Capital_Growth. Значение может быть отрицательным.
Хотя все эти поля презаполняются парсером перед сохранением листинга в базу должна быть возможность поправить их руками.
Вот когда поиск по всем нужным реестрам произведен и все поля презаполнены найденными значениями - мы можем оценить найленные значения, может какое то из них ручками подправить и уже после этого нажать кнопку сохранить листинг и он попадет в базу.
Должен быть интерфейс поиска листингов в базе по адресу с гибкой фильтрацией. Или если нажать поиск без критериев то интерфейс должен показать все листинги.
При выведении результатов должна быть возможность отредактировать или удалить листинг. Причем если изменилось одно из полей по которому производится поиск во внешних реестрах то и поиск должен произойти по новой.
Пара примеров:
Представьте, что во время внесения адреса я допустил ошибку в имени улицы. То есть поиск по реестрам вернет ошибку. Вот я это обнаружил, исправил имя улицы и джаваскрипт должен понять, что поле Street_name поменялось. Как только он это понял он должен прогнать поиск по реестрам снова.
Или другой пример . Вот внес я листинг и через 3 дня понял, что допустил ошибку и при внесении листинга указал, что он 1-комнатный, а не 3-х.
Я нахожу поиском этот листинг. Начинаю редактироват его и меняю количество комнат.Парсер должен понять, что количество комнат поменялось и так как этот параметр используется при поиске по реестру https://www.qv.co.nz/resources/property-investment-rental-analysis, то парсер должен прогнать поиск по этому реестру по новой и в соответствии с новыми результатами выдачи поменять значение поля Median_Rent_QV.
Писать код для вставки в базу нужно с экранированием:
На уровне приложения мы данные от пользователя оборачиваем в строку и кавычки экранируем с помощью обратного слэша.
Нужна возможность просмотра, внесения, редактирования и удаления листингов
Описание базы:
id – уникальное поле счетчик
city - текстовое поле
street_number - текстовое поле
street_address - текстовое поле
suburb - текстовое поле
property_type - текстовое поле
bedrooms - целые числа
government_value - целые чила
current_rates - целые чила
median_rent_qv - целые чила
capital_growth - десятичные чила
median_rent_tb - целые чила
Код надо писать с документацией (на русском) и коментариями.
Ежедневные коммиты в мой git репозиторий.
Оплата через безопасную сделку.
Возможна работа двух согласованных специалистов - по парсеру и интерфейсу.
Заявки фрилансеров
Похожие заказы
- Веб-программирование12 заявокЗакрыт8 лет назад
Необходимо поправить, или установить другую форму заявки у сайта на MODX.
Веб-программирование1 исполнительЗавершен8 лет назадНужно немного доработать логику работы вывода каталога товаров, а также формы оформления заказа. Подробности: по skype (в профиле)
Веб-программирование1 заявкаЗакрыт8 лет назадНеобходимо внести правки в логику работы сайта на php. Система неизвестна. Скорее всего, что-то самописное. Подробности: по skype (в профиле)
Веб-программирование8 заявокЗакрыт8 лет назадДля дальнейшей разработки и развития маркет-плейс проекта, нужен постоянный программист график работы гибкий. (офис в Киеве - возможна удаленная работа, на постоянной основе) Требования: Возраст до 32 лет;не менее 2-х ...
Веб-программирование7 заявокЗакрыт8 лет назадПривет! :) Есть сайт http://selen-grand.ru/ на hostcms Хостинг https://www.nic.ru/ и менять хостинг пока не будем. Нужно улучшить скорость загрузки страниц сайта, не только главной а всех. Сейчас для моб устройств http://clip2net.com/s/3D7umMQ На ПК http://clip2net.com/s/3D7uvHr ...
Веб-программирование2 заявкиЗакрыт8 лет назадБудет разрабатываться сайт на джумшоппинге нужно сделать такую карточку товара (атрибуты с описанием и кратинкой, произвольные текстовые поля, передающиеся в заказ. загружаемая картинка и т.д.) https://yadi.sk/d/vy3wyB0uwaBa2 далее такое вот оформление заказа: https://yadi.sk/d/sCX1xa06waC3G ...
Веб-программирование1 заявкаЗакрыт8 лет назадПривести в приятный и удобный вид форум или установить плагин. Пишите точную цену, ссылка на работу вот: http://ladys-forum.ru/forums или скрин прилагаю. Указывайте точную цену пожалуйста!
Веб-программирование1 исполнительЗавершен8 лет назад- $20
Нужно сделать одностраничник, за копию взять - evgenijjmarkevich2.wixsite.com/mysite-1 Должен получиться один в один, могут быть совсем минимальные отклонения. Никакой админки не нужно, просто html страница со слайдером. Плюс нужно ...
Веб-программирование1 исполнительЗавершен8 лет назад ТЗ: https://docs.google.com/document/d/1KKBjfRWWnUY5yA6w5SGwvJMIvMlWRpRI0z8SQ7w9uzQ/edit?usp=sharing Пишите цену и сроки.
Веб-программирование6 заявокЗакрыт8 лет назад