Приложение принимает список полей формы со значениями в теле POST запроса. Возвращает имя шаблона, наиболее подходящего данному списку полей формы, а при отсутствии совпадений с известными шаблонами производит типизацию полей принятой формы на лету и возвращает список полей с их типами. При нахождении более одного подходящего шаблона, алгоритм вычисляет наиболее подходящий (фактически выбирает шаблон с максимальным кол-вом полей из всех найденных шаблонов). Чтобы найти подходящий шаблон нужно выбрать тот, поля которого совпали с полями в присланной форме. Совпадающими считаются поля, у которых совпали имя и тип значения. Полей в пришедшей форме может быть больше чем в шаблоне, в этом случае шаблон все равно будет считаться подходящим. Самое главное, чтобы все поля шаблона присутствовали в форме.
Предварительные условия:
Предполагается, что пользователь:
-
установил Docker и Docker Compose на локальной машине. Проверить наличие можно выполнив команды:
docker --version && docker-compose --version
- Клонируйте репозиторий с GitHub и введите данные для переменных окружения (тестовые данные уже введены, нажмите комбинацию клавиш
ctrl-x
):
git clone https://github.com/alexpro2022/forms_patterns_finder.git
cd forms_patterns_finder
cp env_example .env
nano .env
- Из корневой директории проекта выполните команды запуска тестов:
docker compose -f docker/test.docker-compose.yml up --build --abort-on-container-exit
docker logs tests && docker rm mongo && docker rm tests
После прохождения тестов в консоль будет выведен отчет pytest и coverage.
- Из корневой директории проекта выполните команду:
docker compose -f docker/docker-compose.yml up -d --build
Проект будет развернут в docker-контейнерах:
- приложение можно протестировать Postman по адресу: http://localhost:8080/get_form
- Доступ к БД осуществляется по адресу: http://localhost:8081, учетные данные "admin:pass", коллекция шаблонов
patterns_collection
- Остановить docker и удалить контейнеры можно командой из корневой директории проекта:
docker compose -f docker/docker-compose.yml down
- Если также необходимо удалить тома базы данных, статики и медиа:
docker compose -f docker/docker-compose.yml down -v
Из корневой директории проекта выполните команду:
cd .. && rm -fr forms_patterns_finder