Skinner API (Django)
Backend em Django REST Framework e PostgreSQL de uma plataforma SaaS multi-tenant para clínicas de ABA, desenvolvida na Self Aplicações Tecnológicas para Saúde, Educação e Bem-Estar.
- Python
- Django
- Django REST Framework
- PostgreSQL
- AWS Lambda
- Zappa
- ReportLab
- Matplotlib
Projeto sob confidencialidade. Esta página descreve apenas a natureza técnica do trabalho, sem detalhes internos, dados ou código proprietário.
Sobre o projeto
A Skinner API foi a primeira geração do backend da plataforma Skinner. O sistema gerenciava organizações, pacientes, profissionais, programas terapêuticos, sessões, jogos de biofeedback e relatórios.
Atuei na evolução da API e do banco de dados durante o desenvolvimento e operação do produto, trabalhando diretamente com regras de negócio, modelagem de dados e integrações.
Principais desafios técnicos
- Arquitetura multi-tenant, com isolamento de dados entre organizações.
- Desenvolvimento de APIs REST com Django REST Framework.
- Modelagem e evolução de banco de dados PostgreSQL.
- Autenticação, autorização e controle de acesso por organização.
- Desenvolvimento de regras de negócio para treinos, sessões e pacientes.
- Processamento de dados fisiológicos provenientes dos jogos.
- Geração de relatórios em PDF com dados e gráficos.
- Armazenamento de arquivos utilizando serviços AWS.
- Otimização de consultas e prevenção de problemas de performance.
- Documentação da API com OpenAPI.
- Testes automatizados para os principais fluxos da aplicação.
Arquitetura
A aplicação foi desenvolvida como um monólito Django organizado por domínios, utilizando Django REST Framework para exposição das APIs.
O isolamento entre organizações foi tratado como requisito fundamental da aplicação, com validações de pertencimento aplicadas às operações que manipulam dados dos clientes.
A arquitetura evoluiu ao longo do tempo conforme novos domínios e funcionalidades foram incorporados ao produto.
Relatórios e processamento de dados
A API também era responsável pelo processamento de dados provenientes das partidas dos jogos e pela geração de relatórios em PDF.
Os relatórios combinavam dados da aplicação e informações fisiológicas processadas no backend, incluindo visualizações gráficas, e eram armazenados em infraestrutura AWS.
Engenharia
Durante o desenvolvimento, trabalhei principalmente com:
- Python e Django;
- Django REST Framework;
- PostgreSQL;
- modelagem e migrações de banco de dados;
- arquitetura multi-tenant;
- regras de negócio;
- otimização de consultas;
- processamento de dados;
- geração de documentos e gráficos;
- AWS Lambda e S3;
- documentação de APIs;
- testes automatizados.
Evolução do projeto
A experiência acumulada durante a evolução dessa primeira geração ajudou a identificar melhorias arquiteturais que posteriormente foram aplicadas nas novas versões da plataforma, especialmente na separação das regras de negócio, modelagem dos estados do domínio, reutilização de estruturas e estratégia de testes.
Projeto concluído e substituído por uma nova geração da plataforma.
Projeto sob confidencialidade. As informações apresentadas foram deliberadamente limitadas a aspectos técnicos gerais, sem exposição de código, dados de usuários ou detalhes internos do produto.