Skip to content

A lightweight REST API service for calculating cargo insurance costs based on declared value and cargo type. Built with FastAPI, Docker, and PostgreSQL for modern, efficient deployment.

Notifications You must be signed in to change notification settings

MRossa157/FastAPI-Insurance-Service

Repository files navigation

FastAPI Insurance Service

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

FastAPI Insurance Service — это REST API-сервис для управления тарифами и расчёта стоимости страхования грузов. Сервис поддерживает загрузку тарифов через JSON, фильтрацию данных и расчёт страховки на основе объявленной стоимости груза и актуального тарифа.

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

  • Загрузка тарифов: через API в формате JSON.
  • Фильтрация тарифов: по типу груза и дате.
  • Расчёт страховки: по объявленной стоимости груза с учётом действующего тарифа.
  • Получение истории расчётов.

Установка и запуск

1. Клонирование репозитория

Склонируйте проект с GitHub:

git clone https://github.com/MRossa157/FastAPI-Insurance-Service.git
cd fastapi-insurance-service

2. Установка зависимостей и запуск

pip install poetry
poetry install
make app

[!] Если на этом этапе произошла ошибка, то см. пункт 3, а после чего пропишите make app еще раз.

3. Настройка .env файла

Переименуйте .env.example в .env и поменяйте значения переменных (не обязательно менять данные о переменных, проект поднимется и на стандартных значениях).

4. Настройка базы данных (нужна только при первом запуске)

  1. Зайдите в контейнер базы данных:
docker exec -it postgres_db_backend bash
  1. Выполните команду для подключения к PostgreSQL
psql --username={USERNAME} --dbname={DB_NAME}
  • Параметры USERNAME и DB_NAME берутся из файла .env.

  • В репозитории есть пример файла .env.example, который можно использовать для настройки.

  1. Перезапустите контейнер приложения
make app-down
make app

5. Доступ к документации

После запуска приложение доступно по адресу:

{$BACK_HOST}:{$BACK_PORT}/docs

По умолчанию:

127.0.0.1:5002/docs

Переменные BACK_HOST и BACK_PORT настраиваются в файле .env.

Технологии

Проект построен с использованием следующих технологий:

  • FastAPI: для реализации REST API.
  • SQLAlchemy: ORM для взаимодействия с базой данных.
  • PostgreSQL: база данных.
  • Docker и Docker Compose: для контейнеризации.
  • Poetry: для управления зависимостями.
  • Makefile: для упрощения команд развертывания.

About

A lightweight REST API service for calculating cargo insurance costs based on declared value and cargo type. Built with FastAPI, Docker, and PostgreSQL for modern, efficient deployment.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published