Skip to content

Repository files navigation

oClient

Este é um projeto pessoal de longo prazo, desenvolvido no meu tempo livre. Não está pronto para produção, nem mesmo em estágio alpha. O repositório está público para fins de demonstração, já que os meus outros trabalhos estão sob NDA

Plataforma full-stack multi-tenant para gestão de ordens de serviço em campo — construída para demonstrar arquitetura moderna com .NET e React Native.

Sobre

  • Backend: Clean Architecture, CQRS, DDD.
  • Mobile: React Native com Expo, SignalR para atualizações em tempo real, compras in-app via RevenueCat.
  • Infraestrutura: Docker, prontidão para CI/CD, monitoramento e logging via Sentry.
  • Banco de dados: PostgreSQL acessado via EF Core.

O Que Construí

Backend (.NET 10 + PostgreSQL)

O que Como
Arquitetura multi-tenant Isolamento via header + filtros de consulta globais
Padrão CQRS Commands/queries MediatR com FluentValidation
Eventos de domínio Mudanças de status disparam notificações em tempo real
Autenticação JWT Clerk com resolução de tenant por organização
Atualizações em tempo real Hub SignalR com filtro por preferências do usuário
Tratamento de erros Monad ErrorOr (sem exceções na lógica de negócio)

Mobile (React Native + Expo)

O que Como
App cross-platform React Native com Expo
Fluxo de auth Clerk com cache de tokens via SecureStore
Estado do servidor React Query com updates otimistas
Tempo real Conexão SignalR com reconexão automática
Internacionalização i18next (EN, PT, ES, ZH, RU)
Temas Modo escuro/claro com design tokens
Monetização Assinaturas RevenueCat + AdMob

Decisões de Arquitetura

Por que Unit of Work?
Garantir consistência de dados. Previne falhas de sincronização de dados quando o app volta a ser usado online.

Por que ErrorOr em vez de exceções?
Tratamento consistente de erros. Todos os erros são tratados como valores de retorno, sem falhas silenciosas ou vazamento de informações em logs retornados ao cliente.

Estrutura do Projeto

oClient.Api              → Controllers, middleware, routing
oClient.Application      → Features CQRS (Commands/Queries)
oClient.Domain           → Entities, value objects, eventos de domínio
oClient.Infrastructure   → EF Core, repos, auth, SignalR
oClient.Mobile           → App mobile com React Native e Expo

Como Executar

Pré-requisitos

  • .NET 10 SDK
  • Node.js 18+
  • PostgreSQL (ou Docker)

Início Rápido

# Clonar
git clone https://github.com/seu-usuario/oClient.git
cd oClient

# Backend
dotnet restore
docker compose up -d  # Inicia PostgreSQL
dotnet run --project oClient.Api

# Mobile
cd oClient.Mobile
cp .env.example .env  # Adicione suas chaves
npm install
npm start

Testes

dotnet test

About

Versão pública para demonstração de um projeto pessoal

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages