Por André Blos Aliatti
Depois de um período consistente de estudo, refatoração e organização da base técnica, subi a primeira versão funcional do MedicFlow, uma aplicação web full stack voltada para gestão clínica e prontuário eletrônico.
Eu sou André Blos Aliatti, desenvolvedor backend em evolução, e esse deploy marcou um ponto importante: o momento em que conceitos estudados de forma isolada — backend, frontend, banco de dados e arquitetura — passaram a funcionar como um sistema integrado.
Até esse ponto, boa parte do aprendizado acontece de forma fragmentada. Quando a aplicação entra em produção, essas partes deixam de ser abstrações e passam a ter impacto direto no comportamento real do sistema.
O que foi publicado nesta primeira versão
Essa primeira entrega já representa um fluxo completo de aplicação web, com backend, frontend e banco integrados de forma funcional.
- autenticação de usuários com controle de acesso
- interface de login conectada ao backend
- dashboard inicial com navegação estruturada
- gestão de pacientes (CRUD completo)
- estrutura de agenda e consultas
- API REST com paginação e filtros
- persistência em PostgreSQL
- versionamento de banco com Flyway
Não se trata apenas de uma interface ou de endpoints isolados. Existe uma base funcional com regras de negócio, persistência consistente e comunicação entre camadas.
Arquitetura e organização do backend
Um dos pontos centrais do projeto foi a decisão de estruturar o backend desde o início com separação clara de responsabilidades.
- Controller → responsável pela entrada da API e exposição dos endpoints REST
- Service → responsável pelas regras de negócio
- Repository → responsável pelo acesso aos dados via JPA
- DTO → responsável por separar o modelo interno do contrato da API
Essa organização evita um dos problemas mais comuns em projetos iniciantes: acoplamento excessivo e mistura de responsabilidades, que tornam o sistema difícil de manter e evoluir.
Esse tipo de estrutura também permite crescimento progressivo do sistema sem necessidade de reescrita constante. Mais detalhes podem ser vistos na página de projetos.
Deploy: quando o sistema deixa de ser local
Colocar uma aplicação em produção muda completamente o nível de complexidade.
Enquanto tudo roda localmente, muitos problemas ficam ocultos. No deploy, entram fatores que não aparecem em estudos isolados:
- configuração de variáveis de ambiente
- políticas de CORS
- conexão com banco remoto
- build e distribuição do frontend
- orquestração de serviços em ambiente cloud
É nesse ponto que o projeto deixa de ser exercício e passa a ser um sistema com comportamento real, sujeito a falhas, ajustes e decisões técnicas mais críticas.
Conclusão
Esse deploy deixou claro que software não é apenas código funcionando isoladamente. É integração de camadas, decisões e responsabilidades.
Não basta criar endpoints.
Não basta construir interface.
Não basta conectar banco.
O que sustenta um sistema é a estrutura por trás e a forma como essas partes se organizam ao longo do tempo.
Para entender melhor a trajetória por trás desse projeto, vale conhecer quem é André Blos Aliatti e acompanhar a jornada na tecnologia.