Skip to content

This is a REST API designed for managing information about houses and apartments, as well as calculating utility costs. The API provides features for retrieving a list of houses, detailed information about specific houses and apartments, recording water meter readings, and calculating utility costs.

Notifications You must be signed in to change notification settings

bikovshanin/eic

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EIC MVP API

Описание

"EIC MVP API" — это REST API, предназначенный для управления информацией о домах и квартирах, а также для расчета стоимости коммунальных услуг. API предоставляет функции для получения списка домов, подробной информации о конкретных домах и квартирах, записи показаний счетчиков воды и расчета стоимости коммунальных услуг.

Используемые технологии

pre-commit pre-commit pre-commit PostgreSQL Nginx gunicorn docker celery redis

Начало работы:

  1. Установка: Клонируйте репозиторий на свой локальный компьютер.
  2. Настройка окружения: В корневом каталоге проекта создайте файл .env. Вы можете использовать предоставленный файл .env.example в качестве шаблона. Убедитесь, что заполнили необходимые переменные окружения своими настройками.
  3. Docker Compose: Перейдите в каталог проекта и выполните следующие команды, чтобы запустить приложение с использованием Docker Compose
docker compose up --build
  1. Доступ к приложению: После того, как Docker Compose закончит настройку окружения, вы сможете получить доступ к документации, перейдя по адресу http://127.0.0.1/redoc/. Для доступа к админ-зоне пройдите по адресу http://127.0.0.1/admin/, суперпользователь создан автоматически (логин: admin, пароль: admin)

Основные возможности

  1. Управление домами:

    • Получение списка всех домов.
    • Получение подробной информации о конкретном доме, включая список квартир.
  2. Управление квартирами:

    • Получение списка всех квартир
    • Получение информации о конкретной квартире, включая данные о счетчиках воды и их показаниях.
    • Запись показаний счетчиков воды для квартиры.
  3. Расчет коммунальных услуг:

    • Расчет стоимости коммунальных услуг для дома на основе показаний счетчиков воды и других параметров.
    • Получение расчетов стоимости коммунальных услуг для конкретного дома и месяца.

Основные модели данных

  • House (Дом): содержит информацию о доме, включая город, улицу и номер дома.
  • Apartment (Квартира): содержит информацию о квартире, включая номер, площадь и привязку к дому.
  • WaterMeter (Счетчик воды): содержит информацию о счетчике воды, установленном в квартире.
  • WaterMeterReading (Показания счетчика воды): содержит данные о показаниях счетчика воды на определенную дату.
  • CalculationResult (Результат расчета): содержит результаты расчета стоимости коммунальных услуг для квартиры на определенный месяц.

Примеры запросов

  1. Получение списка домов:

    • GET /houses/
  2. Получение информации о конкретном доме:

    • GET /houses/{id}/
  3. Получение списка квартир:

    • GET /spartments/
  4. Получение информации о квартире:

    • GET /apartment_detail/?city={city}&street={street}&house_number={house_number}&apartment_number={apartment_number}
  5. Запись показаний счетчиков воды:

    • POST /apartment_detail/
      {
        "readings": [
          {
            "meter_id": 165,
            "value": 120.5
          }
        ]
      }
  6. Расчет стоимости коммунальных услуг для дома:

    • POST /calculate_bills/{house_id}/
      {
        "date": "2024-07-19"
      }
  7. Получение расчета стоимости коммунальных услуг для дома:

    • GET /calculate_bills/{house_id}/?date=2024-07-19

Использование API

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

  1. Определите id дома, в котором есть показания счётчика за три месяца. Для этого используйте пункт 3 из примеров запросов и найдите счётчик под названием кухня.
  2. Используя id этого дома, можно рассчитать стоимость коммунальных услуг за июнь и июль, используя соответствующие примеры запросов.

About

This is a REST API designed for managing information about houses and apartments, as well as calculating utility costs. The API provides features for retrieving a list of houses, detailed information about specific houses and apartments, recording water meter readings, and calculating utility costs.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published