Skip to content

Release v1.0.0 - Sinatra Mini SaaS

Choose a tag to compare

@evslopes evslopes released this 21 Jan 12:06
· 21 commits to main since this release

🎉 Lançamento Inicial - Sinatra Mini SaaS

Sistema SaaS simplificado para gestão de vendas de múltiplas lojas, com foco em desempenho, escalabilidade e eficiência de memória.

✨ Features Principais

📊 APIs Analíticas

  • Exportação CSV de Vendas Diárias - Streaming para suportar 100k+ registros
  • Maior Intervalo Sem Vendas - Algoritmo O(N) linear
  • Dia com Menor Venda - Com suporte a timezones
  • Média Semanal - Agrupada por dia da semana (Seg-Dom)

⚡ Otimizações de Performance

  • Índices compostos (loja_id, data_pedido)
  • Projeções JPA (70% menos dados trafegados)
  • Streaming com @QueryHints (fetchSize=500)
  • Algoritmos lineares O(N) vs quadráticos O(N²)

🧪 Qualidade e Testes

  • 53 testes (9 unit + 27 integration + 16 validation + 1 performance)
  • 98.11% de aprovação (52/53 passando)
  • 70-75% cobertura de código
  • Status QA: ✅ APROVADO PARA PRODUÇÃO

🏗️ Stack Tecnológica

  • Java 17 (LTS)
  • Spring Boot 3.2.12
  • H2 Database (in-memory)
  • Maven
  • JPA/Hibernate

📚 Documentação Completa

🚀 Como Usar

git clone https://github.com/evslopes/sinatra-mini.git
cd sinatra-mini/sinatra-mini
mvn clean install
mvn spring-boot:run

Endpoints disponíveis:

  • GET /pedidos/{lojaId}/reports/daily-sales.csv
  • GET /pedidos/{lojaId}/reports/longest-no-sales?start={date}&end={date}
  • GET /pedidos/{lojaId}/reports/min-day-sales?start={date}&end={date}&zoneId={timezone}
  • GET /pedidos/{lojaId}/reports/weekly-average?start={date}&end={date}&zoneId={timezone}

Console H2: http://localhost:8080/h2-console


Desenvolvido por: Elvis Herllain
Versão: 1.0.0
Data: 20/01/2026