Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Общее описание:

Есть excel файлдля работы с листингами по недвижимости. В нем листы:

Лист базы листингов недвижимости – Deal Tracker.

И листы вывода расчетов которые производятся по заложенной в visual basic логике с применением коэффициентов, которые частично определены на листе Deal Tracker, а частично на листах расчетов.

 

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

 

Требуется логику перенести в питон, базу в PostgreSQL, написать скриптимпорта базы из Excel в SQL и написать вэбинтерфейс позволяюший пополнять базу, менять/удалять записи и коэффициенты и

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

 

База на PostgreSQL должна состоять из нескольких таблиц. Первая таблица listings:

Она должна содержать все такие же поля, что и на листе deal tracker плюс несколько новых полей:

После поля rent per week нужно вставить еще поля median-bond и appraisal.

Перед полем Notes нужно вставить поле link для адреса ссылки листинга.

 

Для коэффициэнтов нужно создать отдельную таблицу variables. (И вебстраницу позволяющую их менять когда потребуется).

 

Скрипт импорта который мигрирует существующую базу из файла в sql базу: Нужно чтобы он мог создать базу и необходимые таблицы перед импортом если они не

существуют еще. И умел выдавать сообщения об ошибке которые опишут, что пошло

не так и почему импорт прервался.

 

Веб интерфейс:

Нужно что бы он позволял выводить записи из базы данных, с фильтром и без. При этом, что бы любое поле (кроме ID) можно было редактировать.

Он должен позволять не только вносить и менять новые записи в таблице listings, но и менять коэффициенты такие как vacancy rate, interest rate и тд в таблице variables.  

При заполнении нового листинга в базу какие то поля будут вноситься вручную (например улица и номер дома), а какие то презаполняться с возможностью редактирования значения для данного конкретного листинга (описано внизу).

Например параметр capital growth должен презаполняться из отдельной таблицы БД в зависиомти от значения поля city. Назвать эту отдельную таблицу нужно CG. Она будет состоять из названия городов и их годового роста в процентах. Ее тоже нужно сделать пополняемой и изменяемой из веб интерфейса.

 

В поля repair and maintenance и insurance должны подставляться презаполненые значения в зависимости от количества комнат (опять таки из таблицы коэффициентов). 

Например для 3-х комнатного repairs and maintenance будет 1000 а Insurance 800.

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

 

Поле city должно презаполняться значением поля city в предыдущем внесенном  листинге, но давать возможность выбрать другой город из выпадающего списка. Список будет браться из таблицы CG.

 

После того как заполнены поля BCDE(Это поля точного адреса если смотреть в эксель файле) программа должна на ходу проверить нет ли уже такого листинга в базе. То есть эти 4 поля будут primary key видимо. (Хотя вам видней)

 

Поле ID должно быть уникальным и должно присваиваться автоматически по порядку.

 

При заполнении одного из трех полей - agent name, agent phone, agent email вебинтерфейс должен предлагать авторекомендации. То есть вводим например Василий. И вот после введения первой буквы он показывает снизу всех агентов чье имя начинается на В. После ввода второй буквы он сокращает список рекомендаций только до тех

агентов чье имя начинается на Ва и тд (может имеет смысл хранить данные агентов

в отдельной таблице). Примерно как гугл уточняет рекомендации по мере ввода в поисковую строку.

Вот он значит находит мне например 5 Василиев в базе и показывает их под строкой ввода в списке рекомендаций. Я кликаю на нужном Василие и тут он должен презаполнить 2 других поля значением телефона этого Василися и его email. Но в то же время оставить их редактируемыми (на случай полного тезки).

То же самое должно действовать если сначало вместо того, что бы ввести значение в поле  agent name я начал вводить телефон в поле agent phone или начал вводить email в поле agent email.

То есть например в случае если я начал с ввода телефона система должна  выдать пре-рекомендации по телефонам и сокращать список вариантов в рекомендации по мере того как я ввожу больше цифр телефона. Ну и когда я выбрал из списка нужный телефон он должен автоматом презаполнить имя и email агента.

 

 

Есть 3 особых поля:

Поле median bond

Поле Government valuation

Поле rates

По ним информация тоже должна презаполняться, но не из базы, а из интернета. Есть определенные общедоступные реестры в интернете (для каждого города отдельный реестр, ссылки на них будут в таблице CG)  куда скрипт должен сходить и сделать поиск по адресу из листинга и определенными полями из результатов выдачи заполнить эти 3 специальных поля.

Так же под этими полями (когда вносишь листинг)должны быть выведены кнопки открывающие эти линки на эти реестры в новой закладке браузера на случай если в реестрах поменяют дизайн и скрипт не сможет больше автоматом выцеплять инфо для этих полей. Кнопки должны менять значения линков по которым они откроют страницу если в поле city выбрать другой город.

 

Теперь по поводу изменения информации в базе.Должен присутствовать гибкий механизм поиска(Фильтр). Например найти мне дома где стоимость выше или равна 200000 и выставляет их агент Василий Иванов и расположенны в таком то городе и в таком то районе.

Вот он выдает например 5 домов. Напротив каждого две кнопки – показать полную запись и показать в интеренете (должна брать значение из поля link). Я вижу нужный мне и кликаю по иконке показать полную запись.

Это выводит мне табличку со всеми полями из базы и там я могу выбрать любой параметр и подредактировать его (кроме ID) по нажатию кнопки изменить.

 

Теперь про вэбинтефейс расчетов/репортов:

В Scenario manager несмотря на то,что поля Weekly Rent, Purchase price и Margin презаполняются из базы должна быть возможность менять их на ходу для перерасчета (но не вносить изменения в базу при этом) и нажимать кнопку перерасчет, что бы оно перерасчитало Property performance значения с этими временно измененными переменными, что бы посмотреть на сколько изменятся показатели Property performance если мы увеличим weekly rent или снизим Purchase Price. Так же в этом же Scenario manager нужно под Walk away price просто выводить Government valuation значение из базы с комментарием, что это government valuation.

Поле Vacany по умолчанию должно браться из таблицы коэффициентов, но для перерасчета его нужно иметь

возможность менять на ходу в вебинтерфейсе расчетов, не внося изменение в базу.

 

В файле, в логике кстати есть один косяк связанный с кнопкой find purchase price.

Я его потом по ходу объясню. Там нужно будет формулу подправить, что бы оно считало правильно.

 

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

 

Надеюсь, что мои объяснения выглядят связными, потому как у меня в голове все выглядит понятно, но вот если прочитать со стороны может оно и не так понятно все объяснено.

 

Если что непонятно - спрашивайте.

 

Подумайте возьметесь ли.

Если да то перед началом опишите как вы представляете архитектуру приложения и базы, что бы мы оба убедились, что

понимаем проект и друг друга правильно.

 

8 лет назад
freelance4me
Леонид 
43 годаРоссия
8 лет в сервисе
Был
7 лет назад
1 отзыв