Primeiros Passos — Chronos¶
Pre-requisitos¶
- Docker e Docker Compose
- Java 21 (para desenvolvimento local)
- Node.js 18+ (para o frontend)
- MongoDB 7 (via Docker)
- Servicos Haus rodando (OATH, Guild, Herald, Vault)
Subindo o Ambiente¶
1. Clone o repositorio¶
2. Suba o MongoDB¶
MongoDB na porta padrao com database chronosdb.
3. Inicie o backend¶
O backend inicia na porta 5050.
4. Inicie o frontend¶
O frontend inicia com Next.js App Router.
Primeiro Acesso¶
1. Criar conta¶
Acesse a pagina de login. O cadastro e feito via OATH.
2. Criar tenant (clinica/consultorio)¶
Apos o login, crie seu tenant:
- Nome do negocio
- Slug (URL da pagina publica:
/c/{slug}) - Descricao, telefone, email
- Timezone
3. Cadastrar servicos¶
Em Servicos > Novo:
- Nome do servico
- Duracao (minutos)
- Preco (centavos)
- Categoria
- Buffer entre agendamentos
4. Cadastrar profissionais¶
Em Profissionais > Novo:
- Nome, email, telefone
- Titulo (ex: "Dr.", "Psicóloga")
- Especialidades
- Servicos que atende
- Foto (via Vault)
5. Configurar agenda¶
Em Agenda:
- Selecionar profissional
- Definir horarios por dia da semana
- Modo INTERVALS (a cada X minutos) ou FIXED_SLOTS (horarios fixos)
- Adicionar excecoes (ferias, feriados)
6. Ativar pagina publica¶
Em Configuracoes:
- Ativar "Permitir agendamento online"
- Configurar cor da marca
- Definir janela de agendamento (ex: 90 dias)
- Logo e descricao
A pagina fica acessivel em: http://localhost:3050/c/{slug}
Variaveis de Ambiente¶
Backend¶
QUARKUS_MONGODB_CONNECTION_STRING=mongodb://localhost:27017
QUARKUS_MONGODB_DATABASE=chronosdb
OATH_API_URL=http://localhost:5001
GUILD_API_URL=http://localhost:5002
HERALD_API_URL=http://localhost:5004
VAULT_URL=http://localhost:5006
Frontend¶
Estrutura de Pastas¶
chronos-backend/
├── src/main/java/chronos/
│ ├── api/controllers/ # BFF + Webhooks
│ ├── application/
│ │ ├── services/ # Business logic
│ │ └── engines/ # Availability, Promotion
│ ├── domain/entities/ # MongoDB entities
│ └── infrastructure/
│ ├── clients/ # OATH, Guild, Herald, WhatsApp
│ ├── persistence/ # MongoDB Panache repos
│ ├── scheduler/ # Reminder, MessageSender
│ └── security/ # AuthFilter
└── pom.xml
chronos-frontend/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── (dashboard)/ # Area protegida
│ │ └── (public)/ # Booking publico
│ ├── actions/ # Server Actions
│ ├── components/ # Dashboard, Booking
│ ├── lib/ # API, utils, tenant
│ └── auth.ts # NextAuth config
└── package.json
Comandos Uteis¶
# Backend
./mvnw quarkus:dev # Dev mode
./mvnw compile # Compilar
./mvnw clean package # Build
# Frontend
npm run dev # Dev server
npm run build # Production build
Testando o Booking Publico¶
- Crie tenant, servicos, profissionais e agenda
- Acesse
/c/{slug}no frontend - Selecione servico → profissional → data/hora
- Preencha dados do cliente
- Confirme o agendamento
- Verifique o email de confirmacao (Herald)