Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/pacmancity/webapp

тестовое задание, приложение для определения заполненных форм.
https://github.com/pacmancity/webapp

faker fastapi httpx opencv-pyhton-headless pytest pythest-asincio python qrcode tinydb

Last synced: 16 days ago
JSON representation

тестовое задание, приложение для определения заполненных форм.

Awesome Lists containing this project

README

        

# Web-приложение для определения заполненных форм.

#### Для работы проекта нужен pyhon 3.9 или выше(или изменить версии библиотек на более старые)

## O Проекте

Это веб-приложение предназначено для определения заполненных форм на основе шаблонов, хранящихся в базе данных. Шаблон
формы представляет собой уникальный набор полей, каждое из которых имеет определенный тип данных. Поддерживаемые типы
данных включают email, телефон, дату и текст.

### Пример шаблона формы:

```json
{
"name": "Form template name",
"field_name_1": "email",
"field_name_2": "phone"
}
```

### Входные данные:

Заказчик уточнил что формат входных данных: "не JSON", выбор оказался максимально широким.

Примем формат входных данных JPEG и будем отправлять запросы jpeg-ами.

**Пример входных данных:**

пример-входных-данных

### Выходные данные:

При наличии совпадения с известным шаблоном формы возвращается имя этого шаблона. В случае отсутствия совпадений
производится типизация полей на лету, и возвращается список полей с их типами, определенными на основе правил валидации
в порядке: дата, телефон, email, текст.

Пример ответа при отсутствии совпадений:

```json
{
"f_name1": "FIELD_TYPE",
"f_name2": "FIELD_TYPE"
}
```

## Клонировать проект

```bash
git clone [email protected]:kluev-evga/webapp.git
```

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

Установите виртуальное окружение:

```bash
python3 -m venv venv
```

Активируйте виртуальное окружение:

```bash
venv\Scripts\Activate # PowerShell
source venv/bin/activate # Linux|windows (Bash, git bash)
```

Установите зависимости:

```bash
pip install -r requirements.txt
```

```bash
poetry install # альтернатива
```

Запустите приложение:

```bash
uvicorn main:app --reload
```

Приложение будет доступно по адресу [http://localhost:8000](http://localhost:8000).
Документация в формате OpenApi [http://localhost:8000/docs](http://localhost:8000/docs).

## Запуск в Docker

```bash
docker build -t webapp .
```

```bash
docker run -d -p 8000:8000 --name appcontainer webapp
```

Приложение будет доступно по адресу http://localhost:8000.

## Запуск скрипта, который совершает тестовые запросы:

```bash
docker exec -it appcontainer pytest /app
```

## Лицензия 📜

Этот проект распространяется под лицензией `MIT`. Дополнительную информацию можно найти
в [LICENSE](https://github.com/kluev-evga/webapp/blob/master/LICENSE).