Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
тестовое задание, приложение для определения заполненных форм.
- Host: GitHub
- URL: https://github.com/pacmancity/webapp
- Owner: pacmancity
- License: mit
- Created: 2023-11-15T20:46:16.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2023-11-16T04:14:01.000Z (about 1 year ago)
- Last Synced: 2024-11-10T02:13:35.043Z (2 months ago)
- Topics: faker, fastapi, httpx, opencv-pyhton-headless, pytest, pythest-asincio, python, qrcode, tinydb
- Language: Python
- Homepage:
- Size: 6.84 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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).