Skip to content

melixz/ark-backend

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

ark-backend

Описание проекта

ark-backend — это серверная часть веб-приложения, созданного для управления объектами недвижимости, включая города, комплексы, квартиры, земельные участки и секции. Проект реализован на Django и Django REST Framework, предоставляет REST API для работы с объектами и поддерживает уведомления в Telegram о новых заявках, а также отправку заявок в CRM-систему.

Установка

  1. Клонируйте репозиторий:

    git clone https://github.com/melixz/ark-backend
  2. Настройте переменные окружения в файле .env:

    # Подключение к БД
    POSTGRES_DB=имя_бд
    POSTGRES_USER=имя_пользователя
    POSTGRES_PASSWORD=пароль
    POSTGRES_HOST=localhost
    POSTGRES_PORT=5432
    
    # Подключение к CRM
    CRM_API_TOKEN=токен_CRM_API
    
    # Подключение к Telegram боту и каналу
    TELEGRAM_BOT_TOKEN=токен_бота
    TELEGRAM_CHAT_ID=ID_чата
  3. Установите зависимости:

    pip install -r requirements.txt
  4. Выполните миграции базы данных:

    python manage.py migrate
  5. Запустите сервер разработки:

    python manage.py runserver
  6. Приложение будет доступно по адресу http://127.0.0.1:8000.

Технологии

  • Python 3.12+
  • Django 5.0 и Django REST Framework: для создания и управления API
  • PostgreSQL: в качестве базы данных
  • Django Admin: для управления объектами из панели администратора
  • Pillow: для обработки изображений
  • Requests: для отправки данных в CRM и Telegram

Текущие возможности

  • Управление городами и объектами недвижимости: Поддержка CRUD-операций для городов, жилых комплексов, квартир, застроек и земельных участков.
  • Секции и изображения: Добавление и отображение изображений для объектов недвижимости, включая секции для квартир и участков.
  • Кэширование и ограничение запросов: Реализованы кэширование для оптимизации скорости отклика и ограничение запросов с помощью кастомных классов CustomAnonRateThrottle и CustomUserRateThrottle.
  • Административная панель: Полный доступ к управлению объектами через Django Admin, с удобными инлайнами для изображений и секций.
  • Уведомления и интеграции: Отправка заявок в CRM и уведомлений в Telegram о новых заявках через API /submit-form/.

Основные команды API

  • GET /api/full-data/ — Получение полной информации о новостройках и застройках, включая комплексы, участки и их секции.
  • POST /api/submit-form/ — Отправка формы заявки в CRM и уведомления в Telegram.

Уведомления и интеграция с CRM

Проект интегрирован с CRM через API для отправки заявок, что позволяет отслеживать данные в реальном времени. Кроме того, поддерживается отправка уведомлений в Telegram-канал при поступлении новых заявок.

Преимущества

  • Гибкость и расширяемость: Поддержка различных типов объектов недвижимости, добавление секций и изображений.
  • Кэширование запросов и ограничения: Оптимизация отклика за счет кэширования и лимитов на количество запросов для анонимных и авторизованных пользователей.
  • Интеграция с Telegram и CRM: Поддержка автоматизированной отправки данных в CRM и уведомлений о заявках в Telegram-канал.

Цель проекта

Целью проекта является предоставление удобного и расширяемого интерфейса для работы с объектами недвижимости через REST API и административную панель Django. Это позволяет пользователям и администраторам легко управлять данными о недвижимости, получать уведомления о заявках и интегрировать данные с CRM.

Ссылки

About

Backend-server(Django, DRF, PostgreSQL, requests, python-telegram-bot)

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published