Voltar para o Blog
Projetos

Juju Docinhus - A Engenharia por Trás do Ecossistema

Juju Docinhus - A Engenharia por Trás do Ecossistema

O desenvolvimento de software moderno exige muito mais do que apenas escrever linhas de código que funcionam localmente; exige a construção de soluções escaláveis que conectem negócios e clientes de forma fluida e segura. Foi exatamente com essa visão de engenharia e produto que nasceu o ecossistema Juju Docinhus.

O que começou como um projeto de extensão universitária rapidamente evoluiu para uma plataforma completa de cardápio digital e gestão operacional. No meu caso, o desafio foi transformar a teoria da sala de aula em uma infraestrutura que não quebrasse no primeiro acesso real.

O Problema e a Visão do Produto

O objetivo do projeto era claro desde o dia zero: modernizar e automatizar a experiência de compra de uma doceria. O setor de varejo de alimentos muitas vezes sofre com pedidos descentralizados (WhatsApp, anotações de papel) e gestão confusa. A solução precisava unir dois mundos:

  • Painel administrativo robusto (Dashboard): para os lojistas gerenciarem produtos, categorias e pedidos em tempo real.
  • Interface de consumo (App Web): rápida, imersiva e altamente intuitiva para os clientes finais, acessível de qualquer dispositivo sem a necessidade de downloads.

Arquitetura e Decisões Técnicas (A Stack)

Para garantir a escalabilidade futura e manter um padrão rigoroso de Clean Code, a arquitetura do projeto foi pensada de forma desacoplada, dividindo o sistema em micro-serviços e utilizando uma stack moderna:

  • Backend: Construído com Python e FastAPI. A escolha do FastAPI não foi acidental; ele garante performance assíncrona por padrão, tipagem rigorosa com Pydantic e documentação automática via Swagger.
  • Frontend Web: Desenvolvido em React. O foco aqui foi entregar um dashboard administrativo ágil, utilizando componentização profunda para garantir fácil manutenção.
  • Frontend Mobile/App: Uma interface dedicada, construída com Flutter/React, otimizada milimetricamente para a experiência do usuário (UX) em telas de celular.

"A verdadeira engenharia de software começa quando o servidor cai, a conexão é recusada ou o usuário não consegue clicar no botão."

Arquitetura do sistema

Desafios de Engenharia no Mundo Real

Levar um projeto do conforto do localhost para o ambiente hostil e imprevisível da nuvem sempre traz lições valiosas. Durante o ciclo de desenvolvimento da Juju Docinhus, enfrentei e superei gargalos de infraestrutura que não aparecem em tutoriais básicos.

1. Orquestração de Deploy e CI/CD

A transição para a nuvem exigiu a configuração de pipelines de Continuous Deployment (CD) na Vercel para o frontend e no Render para o backend. Tive que gerenciar rigorosamente a injeção de variáveis de ambiente, como chaves de API e URLs dinâmicas, garantindo que o código de produção fosse seguro e isolado do ambiente de desenvolvimento.

2. O Fantasma do CORS e Autenticação

Sistemas desacoplados sofrem com políticas rigorosas de segurança dos navegadores. Configurei as regras de CORS (Cross-Origin Resource Sharing) para permitir que a Vercel falasse com a API no Render de forma segura. Além disso, implementei a autorização via Firebase Authentication, configurando whitelists de domínios personalizados como jujudocinhus.thiagosiena.com.

3. Resiliência de Banco de Dados (Evitando o Cold Start)

Hospedar bancos de dados na nuvem significa lidar com conexões ociosas que são derrubadas pelos provedores para economizar recursos. Para evitar que a API falhasse ao tentar acessar uma conexão "morta", implementei estratégias de pool avançadas no SQLAlchemy, utilizando pool_pre_ping e reciclagem de conexões.

4. UI/UX: A Mágica dos Detalhes

A experiência do usuário precisava ser imersiva. Fiz adaptações na web para simular o comportamento nativo do mobile. Substituí cursores padrão por interações temáticas e alterei o ScrollBehavior da aplicação para permitir que usuários de PC pudessem "clicar e arrastar" as listas, replicando a sensação de toque de um smartphone.

Conheça o Ecossistema em Produção

Acredito que o conhecimento deve ser compartilhado. Por isso, todo o código-fonte foi mantido como open-source e as aplicações já estão em produção. Convido você a explorar a arquitetura e a interface final do projeto através dos links abaixo:

Evoluir a arquitetura é um processo contínuo. Seguimos otimizando para entregar a melhor experiência.

O próximo passo agora é refinar a latência das chamadas assíncronas no Render, que ainda me incomoda um pouco em horários de pico. Como você tem lidado com o cold start em serviços gratuitos de hospedagem?