No description
Find a file
2026-02-28 08:38:11 -06:00
backend fix: correcoes de acesso e marketplace 2026-02-27 15:46:35 -03:00
backoffice feat: corrige login e adiciona documentação de regras de negócio 2026-02-14 16:44:50 -03:00
docs feat: resolve react-icons dependency, add frontend e2e and backend tests 2026-02-26 18:27:02 -03:00
frontend Restore original Vite-based frontend in the monorepo 2026-02-28 08:38:11 -06:00
seeder-api docs: add status sections to markdown files 2026-01-08 14:28:34 -03:00
website docs: add status sections to markdown files 2026-01-08 14:28:34 -03:00
.gitignore chore: remove legacy services and restructure monorepo 2026-02-25 16:51:34 -03:00
docker-compose.yml chore: remove legacy services and restructure monorepo 2026-02-25 16:51:34 -03:00
Makefile feat: resolve react-icons dependency, add frontend e2e and backend tests 2026-02-26 18:27:02 -03:00
README.md chore: remove legacy services and restructure monorepo 2026-02-25 16:51:34 -03:00
start.sh feat(backoffice): add root route with api info and correct swagger link 2025-12-27 01:03:01 -03:00
STATUS_REPORT_SAVEINMED.md feat: corrige login e adiciona documentação de regras de negócio 2026-02-14 16:44:50 -03:00

SaveInMed — Monorepo

Marketplace B2B para o setor farmacêutico brasileiro.
Conecta distribuidoras, farmácias e operadores logísticos em uma plataforma única.


Estrutura do repositório

saveinmed/
├── backend/          # API principal (Go · Clean Architecture)
├── frontend/         # Marketplace web (React + Vite + Tailwind)
├── backoffice/       # API administrativa (NestJS · Prisma)
├── seeder-api/       # Seeder de catálogo de produtos
├── website/          # Site institucional
└── docs/             # Documentação técnica centralizada

backend/

API REST em Go seguindo Clean Architecture:

  • internal/domain/ — modelos, regras e contratos de domínio
  • internal/usecase/ — casos de uso por domínio (company_usecase.go, order_usecase.go, …)
  • internal/http/handler/ — handlers HTTP (um arquivo por recurso)
  • internal/repository/postgres/ — implementações de repositório + migrações SQL
  • internal/infrastructure/ — integrações externas: mapbox/, payments/, notifications/
  • cmd/api/ — entrypoint da API REST
  • cmd/seeder/ — seed de dados

frontend/

Marketplace React com Vite. Páginas organizadas por perfil de usuário:

  • src/pages/auth/ — Login, registro, recuperação de senha
  • src/pages/marketplace/ — busca, carrinho, checkout, pedidos
  • src/pages/dashboard/admin/ — painel admin (consome a API do backoffice)
  • src/pages/dashboard/seller/ — painel do vendedor/distribuidora
  • src/pages/dashboard/employee/ — painel do colaborador
  • src/pages/dashboard/delivery/ — painel do entregador
  • src/components/ — componentes reutilizáveis
  • src/stores/ — Zustand (carrinho, filtros, UI global)
  • src/context/ — Context API (auth + tema)
  • src/services/ — clientes HTTP por domínio

backoffice/

API NestJS para operações administrativas internas: KYC, auditoria, disputas, relatórios, detecção de fraude.
Conecta ao mesmo banco de dados do backend via Prisma.
O painel React em frontend/src/pages/dashboard/admin/ é o frontend desta API.


Gerenciamento de estado (frontend)

Estado Onde Justificativa
Autenticação (token JWT, user) Context API (AuthContext) Semântica de provider; mudanças raras
Tema claro/escuro Context API (ThemeContext) Idem
Carrinho de compras Zustand (cartStore) Atualizações frequentes; sem re-render do provider raiz
Filtros de busca persistentes Zustand / usePersistentFilters Sobrevive a navegações
Estado de UI local (modais, loaders) useState local Não precisa ser compartilhado

Regra: Use Context apenas para auth/tema. Para estado de domínio ou UI global, use Zustand.


Comandos úteis

# Backend Go (porta 8214 por padrão)
cd backend && go run ./cmd/api

# Frontend marketplace
cd frontend && pnpm dev

# Backoffice API
cd backoffice && pnpm start:dev

# Aplicar migrações Go
cd backend && go run ./cmd/apply_migration

# Seed manual
cd backend && go run ./cmd/seeder

Swagger disponível em http://localhost:8214/swagger/index.html.


Convenções

  • Commits semânticos: feat:, fix:, refactor:, docs:, chore:
  • Branches: main = produção · develop = staging · feature/* = funcionalidades
  • PRs: obrigatório para main com ao menos 1 revisor

Documentação técnica

Arquivo Conteúdo
docs/architecture.md Visão geral da arquitetura e decisões de design
docs/BACKEND.md Backend Go — detalhes, handlers, domínios
docs/BACKOFFICE.md NestJS backoffice — módulos e responsabilidades
docs/DATABASE.md Modelo de dados e migrações
docs/ROADMAP.md Roadmap de produto
STATUS_REPORT_SAVEINMED.md Status detalhado de cada funcionalidade