Este é o repositório do back-end para o Molar Check, um sistema dedicado à identificação da Hipomineralização Molar-Incisivo (HMI).
A API foi desenvolvida para servir a aplicação front-end, gerenciando usuários, pacientes, registros, diagnósticos e o armazenamento seguro de imagens.
- Autenticação e Autorização:
- Login social com Google OAuth2.
- Sistema de papéis (roles) para distinguir
responsáveiseespecialistas.
- Gerenciamento de Usuários e Pacientes: Endpoints para criar, ler, atualizar e deletar usuários e seus pacientes associados.
- Fluxo de Registros (MIH):
- Criação de registros de HMI com dados clínicos e observações.
- Endpoints para especialistas avaliarem e atualizarem registros com um diagnóstico.
- Upload de Imagens Seguro:
- Gera URLs pré-assinadas para o upload de imagens diretamente para um serviço de object storage (MinIO), evitando sobrecarga no servidor.
- Associa os IDs das imagens aos registros dos pacientes.
- FastAPI
- Python 3.12+
- SQLModel para interação com o banco de dados e validação de dados.
- PostgreSQL como banco de dados relacional.
- MinIO para armazenamento de objetos (imagens).
- Docker e Docker Compose para orquestração dos serviços.
- Alembic para migrações de banco de dados.
Siga estas instruções para rodar o servidor e seus serviços dependentes localmente.
- Docker e Docker Compose
- Python (versão 3.12 ou superior)
O ambiente utiliza Docker para rodar o PostgreSQL e o MinIO.
-
Navegue até o diretório de configuração do banco:
cd install/dbms/ -
Crie uma cópia do arquivo
docker-compose-model.ymle renomeie paradocker-compose.yml:cp docker-compose-model.yml docker-compose.yml
Make 2 directories, docker and impexp, and use their path on their respective volumes inside docker-compose.yml.
-
Inicie os contêineres:
docker-compose up -d
Isso iniciará o PostgreSQL em background.
-
Volte para a raiz do projeto e crie um ambiente virtual:
cd ../.. python -m venv .venv source .venv/bin/activate
-
Instale as dependências do Python:
pip install -r requirements.txt
-
Crie seu arquivo de ambiente a partir do modelo:
cp .env-model .env
-
Abra o arquivo
.enve preencha todas as variáveis, especialmente as credenciais do Google OAuth (CLIENT_ID,CLIENT_SECRET) e aSECRET_KEY.
-
Execute as migrações do banco de dados com o Alembic:
alembic upgrade head
-
Inicie o servidor FastAPI:
fastapi dev main.py
A API estará disponível em http://localhost:8000/docs para documentação interativa.
A API é modularizada em diferentes roteadores:
/auth: Lida com a autenticação (login com Google)./users: Gerenciamento de usuários (responsáveis e especialistas)./users/patients: Gerenciamento dos pacientes de um usuário./mih: Gerenciamento dos registros de HMI e seus diagnósticos./images: Geração de URLs para upload de imagens.