The User Image System - UIS is a simple CRUD that recieves clients names and images from the endpoint API and store it into a datababase.
- Para iniciar a aplicação, basta clonar no projeto e, na raiz, executar o seguinte comando:
docker compose up
- O framework de testes utilizado foi o pytest.
- Certifique-se de ter o pytest instalado e na pasta
app
executar:python -m pytest
- Em distribuições Ubuntu pode ser necessário executar:
python3 -m pytest
- Em distribuições Ubuntu pode ser necessário executar:
- Veja um exemplo da saída abaixo:
- Como se trata de um crud simples, não foi adotada uma arquiterura com banco de dados separado e nem um proxy para receber as conexões. Deste modo, temos apenas um container Docker com a FastAPI e o Guvicorn servindo os clientes na porta padrão http:8000.

├── app -> Pasta Raiz da aplicação. É o conteúdo que é copiado para o container docker
│
│ ├── api -> Arquivos
│ │
│ │ ├── v1
│ │ │ └── enpoints
│ │ │ ├── root.py
│ │ │ ├── user.py
│ │ │ ├── user_image.py
│ │ │ └── user_image_thumb.py
│ │ └── api.py
│ ├── core
│ │ ├── configs.py
│ │ ├── database.py
│ │ ├── deps.py
│ │ └── util.py
│ ├── db -> Pasta que guarda o bando de dados sqlite (é criado no momento do deploy da aplicação)
│ │ └── uis.sqlite
│ ├── models
│ │ ├── all_models.py
│ │ ├── images_model.py
│ │ └── users_model.py
│ ├── resources
│ │ ├── img
│ │ │ ├── exemplo-jpg.jpg
│ │ │ └── img_teste.jpg
│ │ └── txt
│ │ └── base64_img_teste.txt
│ ├── schemas
│ │ ├── images_schema.py
│ │ └── users_schema.py
│ ├── test -> Guarda o código para aexecução do framework pytest
│ │ └── test_api.py
│ ├── Dockerfile -> instruções de build do aplicação fastAPI.
│ ├── criar_tabelas.py -> Arquivo que pode ser executado separadamente para criar o bando da aplicação e suas respectivas tabelas.
│ ├── main.py -> Arquivo principal da aplicação.
│ └── requirements.txt
├── diagrams -> Diretório com os diagramas e modelos da aplicação.
│ ├── Application Diagram.png
│ ├── Modelo ER - UIS.pdf
│ └── Modelo ER - UIS.png
├── Docker-compose.yml