Skip to content

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

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors