Skip to content

henriqueaguiar-dev/medBrGlobalFrontEnd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MedBR Global Frontend Web

Frontend profissional para presença pública e autenticação de profissionais na MedBR Global.

Slogan: Saúde sem fronteiras

Visão geral

Este projeto entrega o frontend da MedBR Global com foco em páginas públicas, autenticação (Login) e cadastro (Onboarding) de profissionais. A arquitetura segue o padrão Component + Feature (feature-first), com separação clara entre UI, features e serviços compartilhados.

Stack principal

  • React + TypeScript (Vite)
  • Bootstrap 5
  • React Hook Form + Zod (validação)
  • Axios (com interceptors: refresh token, retry, 401)
  • TanStack Query
  • React Router
  • ESLint + Prettier + Husky + lint-staged
  • Vitest + Testing Library
  • Sentry (observabilidade)

Estrutura de pastas (principais)

src/
  components/      # Componentes compartilhados (UI, providers, etc.)
  features/        # Features organizadas por domínio (ex: auth)
  lib/             # Serviços compartilhados (apiClient, env, sentry)
  pages/
  tests/
  styles/

Como rodar

npm install
npm run dev

Build

npm run build
npm run preview

Testes

npm run test
npm run test:watch

Lint e format

npm run lint
npm run format

Variáveis de ambiente

Crie um .env com base em .env.example ou use os ambientes prontos:

  • .env.development
  • .env.staging
  • .env.production
VITE_API_BASE_URL=https://api.medbrglobal.com
VITE_API_TIMEOUT=15000
VITE_API_REFRESH_URL=/api/auth/refresh
VITE_API_LOGIN_PATH=/api/auth/login
VITE_API_REGISTER_PATH=/api/profissionais/register
VITE_SENTRY_DSN=
VITE_ENVIRONMENT=production

Contratos da API

Os contratos são centralizados em src/features/auth/schemas/authSchemas.ts.

Exemplos de chamadas

Login

POST /api/auth/login
{
  "email": "[email protected]",
  "senha": "Senha123"
}

Cadastro profissional

POST /api/profissionais/register
{
  "nome": "Fernanda",
  "sobrenome": "Souza",
  "data_nascimento": "12/04/1988",
  "email": "[email protected]",
  "senha": "Senha@123",
  "pais": "Brasil",
  "estado": "SP",
  "cidade": "São Paulo",
  "cep_zip": "01010-000",
  "endereco": "Av. Paulista, 1000",
  "area_atuacao": "Psicologia",
  "conselho": "CRP",
  "numero_conselho": "06/123456",
  "licenca": "US-98765",
  "estado_licenca": "CA",
  "redes_sociais": {
    "website": "https://drafernandalima.com",
    "linkedin": "https://linkedin.com/in/drafernandalima",
    "instagram": "https://instagram.com/drafernandalima"
  },
  "descricao": "Psicóloga com foco em terapia breve e acolhimento a brasileiros no exterior.",
  "foto": "https://medbrglobal.com/uploads/fernanda.jpg",
  "email_confirmado": false,
  "termos_aceitos": true,
  "data_cadastro": "2024-01-01T00:00:00.000Z"
}

Decisões técnicas

  • Token armazenado após cadastro: o token de acesso é persistido e o usuário é redirecionado para /dashboard.
  • Roles: guard de rotas suporta roles (doctor, admin) via storage.
  • Fallback amigável: erros de rede exibem mensagens claras ao usuário.
  • Zod em contratos: valida payloads enviados e recebidos da API.

Docker

docker build -t medbrglobal-frontend .
docker run -p 8080:80 medbrglobal-frontend

Kubernetes

Manifests em k8s/ incluem Deployment, Service, Ingress e HPA.

CI

Pipeline em .github/workflows/ci.yml com lint, tests e build.

Checklist rápido de prontidão para produção

  • Configurar monitoramento e logging no ambiente de produção
  • Ajustar CSP/headers conforme política corporativa
  • Configurar estratégia de refresh token no backend
  • Revisar acessibilidade e internacionalização

Licenças e compliance

  • Licença MIT em LICENSE.
  • Dependências principais listadas em THIRD_PARTY_NOTICES.md.

Documentação adicional

  • README.md

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors