RealEstateAnalysis
Описание
Проект создан для удобного анализа рынка недвижимости 1-2-хкомнатных квартир до 20 млн. руб. в городе Москва. Пользователь имеет возможность удобно отобрать квартиры по метро, визуализировать информацию по выбранным критериям.
Зависимости и требования
- Python 3.11+
- Docker 28.0.4+
pip install -r requirements.txt
Зависимости, требуемые для работы проекта (установка будет производиться во время запуска контейнеров):
- annotated-types==0.7.0
- beautifulsoup4==4.13.4
- blinker==1.9.0
- bs4==0.0.2
- certifi==2025.4.26
- charset-normalizer==3.4.1
- click==8.2.1
- colorama==0.4.6
- Flask==3.1.1
- flask-cors==6.0.0
- greenlet==3.2.2
- idna==3.10
- itsdangerous==2.2.0
- Jinja2==3.1.6
- MarkupSafe==3.0.2
- mkdocs==1.6.1
- mkdocs-autorefs==1.4.2
- mkdocs-get-deps==0.2.0
- mkdocstrings==0.29.1
- mkdocstrings-python==1.16.11
- packaging==25.0
- pathspec==0.12.1
- platformdirs==4.3.8
- psycopg2-binary==2.9.10
- pydantic==2.11.5
- pydantic-settings==2.9.1
- pydantic_core==2.33.2
- python-dotenv==1.1.0
- PyYAML==6.0.2
- pyyaml_env_tag==1.1
- requests==2.32.3
- schedule==1.2.2
- soupsieve==2.7
- SQLAlchemy==2.0.41
- typing-inspection==0.4.1
- typing_extensions==4.13.2
- urllib3==2.4.0
- Werkzeug==3.1.3
Запуск
- Установите Docker и запустите его.
- Перейдите в терминале в корень проекта, создайте и активируйте виртуальное окружение Windows:
python -m venv .venv
.venv/Scripts/activate
Linux:
python -m venv .venv
source .venv/bin/activate
- Создайте в корне проекта файл .env и настройте его
DB_HOST=localhost
DB_PORT=5432
DB_USER=user
DB_PASS=1234
DB_NAME=flats
Запустите сборку контейнера бд и файл init.py для создания базы данных на локальном хосте. После остановите проект.
docker-compose up -d --build db
python init.py
docker-compose down
ВАЖНО: Теперь поменяйте значение DB_HOST на db
- Запутите сборку образов и контейнеры командой
docker-compose up -d --build
Для последующих запусков без изменения кода можно использовать просто
docker-compose up -d
- Проект будет доступен по адресу: http://localhost:3000
- Для остановки проекта выполните команду
docker-compose down
Структура проекта
.
├── Backend
│ ├── Dockerfile
│ └── main.py
├── config.py
├── database
│ ├── config.py
│ ├── core.py
│ ├── database.py
│ ├── __init__.py
│ └── models.py
├── docker-compose.yml
├── Frontend
│ ├── Dockerfile
│ ├── eslint.config.js
│ ├── index.html
│ ├── nginx.conf
│ ├── package.json
│ ├── README.md
│ ├── src
│ │ ├── api
│ │ │ └── index.js
│ │ ├── App.jsx
│ │ ├── FlatCard.jsx
│ │ ├── FlatsHistogram.jsx
│ │ ├── FlatsList.jsx
│ │ ├── FlatsScatter.jsx
│ │ ├── FlatsStatsPanel.jsx
│ │ ├── HistogramOptions.jsx
│ │ ├── main.jsx
│ │ ├── MetroStationAutocomplete.jsx
│ │ └── ScatterOptions.jsx
│ └── vite.config.js
├── init.py
├── parsing
│ ├── Dockerfile
│ ├── main.py
│ ├── Parser.py
│ ├── scheduler.py
│ └── test.py
├── README.md
└── requirements.txt
Документация
Документация выполнена с помощью mkdocs для .py модулей и storybook для .jsx компонентов Чтобы посмотреть документацию в браузере, выполните команду в корне проекта
mkdocs serve
Создать документацию в ./site
mkdocs build
После создания посмотреть документацию можно, открыв в браузере ./site/index.html