Skip to content

Project is an HTTP API for managing tenders and offers

License

Notifications You must be signed in to change notification settings

haqer0002/tender-service

Repository files navigation

Tender Service

Сервис проведения тендеров предоставляет API для управления тендерами и предложениями, позволяя организациям создавать тендеры, а пользователям предлагать свои услуги.

Стек технологий

  • Язык программирования: Python 3.12.4
  • Веб-фреймворк: FastAPI
  • База данных: PostgreSQL
  • Контейнеризация: Docker, Docker Compose

Запуск проекта

Предварительные требования

Убедитесь, что у вас установлены следующие инструменты:

Инструкция по запуску

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

    Клонируйте репозиторий проекта на ваш локальный компьютер:

    git clone https://github.com/haqer0002/tender-service.git

    Перейдите в директорию проекта:

     cd tender-service
  2. Запуск приложения с помощью Docker Compose

    Выполните следующую команду для сборки и запуска контейнеров:

    docker-compose up --build

    Эта команда:

    • Соберет Docker-образ приложения.
    • Запустит контейнеры приложения и базы данных PostgreSQL.
    • Настроит связь между контейнерами.

    Если Docker не запускается или что-то работает не корректно, выполните следующую команду для остановки и удаления собранных контейнеров.

    docker-compose down
  3. Запуск приложения с помощью Docker Compose

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

    curl -X GET http://localhost:8080/api/ping

    Ожидаемый ответ:

    {"message": "ok"}
  4. Доступ к документации API

    Вы можете использовать автоматически сгенерированную документацию Swagger UI для взаимодействия с API.

    Откройте в вашем браузере:

    http://localhost:8080/docs

    Здесь вы найдете описание всех доступных эндпоинтов и сможете протестировать их напрямую.

Структура проекта

  • main.py: Основной файл приложения FastAPI с определением всех эндпоинтов.
  • Dockerfile: Файл для сборки Docker-образа приложения.
  • docker-compose.yml: Конфигурационный файл Docker Compose для запуска приложения и базы данных.
  • requirements.txt: Файл с зависимостями Python для проекта.
  • .env: Файл с переменными окружения (необходимо создать самостоятельно).
  • README.md: Документация проекта.
  • .gitignore: Файл с исключениями для Git.
  • .dockerignore: Файл с исключениями для Docker

Возможные проблемы и их решения

Ошибка подключения к базе данных:

Убедитесь, что сервис базы данных PostgreSQL запущен и доступен по указанному адресу и порту.

Порты уже заняты:

Если порты 8080 или 5432 уже используются, измените их в файле docker-compose.yml:

ports:
  - "8081:8080"  # Для приложения
  - "5433:5432"  # Для базы данных

И соответствующим образом обновите адреса в командах и настройках.

About

Project is an HTTP API for managing tenders and offers

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published