← Voltar ao índice
Easy Travel
Plataforma corporativa de viagens com busca de voos, hotéis, carros, gerenciamento de documentos, câmbio, alertas e assistente IA.
NestJS
TypeORM
JWT + Passport
PostgreSQL
Redis
Swagger
Amadeus API
Duffel API
Anthropic AI
Stripe / MercadoPago
Next.js
Recharts
Especificação do Produto
Plataforma de busca e comparação de passagens e hotéis com preços reais via SerpAPI, assistente IA e alertas de preço via WhatsApp.
Público geral / viajantes
✅ Produção — easy-travel.blackcatcorp.com.br
- Busca de voos com preços reais (Google Flights via SerpAPI)
- Comparação multi-canal de hotéis (Google Hotels + Booking.com)
- Busca pública sem login
- Assistente IA (Groq/Llama-3.3-70b)
- Alertas de preço via WhatsApp
- Widget de clima (wttr.in)
- Calculadora de viagem
- Calendário de preços
- Links diretos para compra
- Conversão de moeda em tempo real
- Upgrade SerpAPI para plano pago (Booking.com)
- Modo inspire-me com destinos aleatórios
- Itinerário compartilhável
- App mobile
Módulos e Endpoints
Autenticação — /api/auth
POST/api/auth/register
Registra novo usuário. Body: { name, email, password }
POST/api/auth/login
Autenticação com email/senha. Retorna Bearer token JWT.
GET/api/auth/me
Requer JWT
Retorna dados do usuário autenticado.
Usuários — /api/users
GET/api/users/me
Requer JWT
Perfil completo do usuário com preferências de viagem.
PATCH/api/users/me
Requer JWT
Atualiza perfil e preferências do usuário.
GET/api/users/:id
Requer JWT
Busca usuário por ID.
Pesquisa de Viagens — /api/search
POST/api/search/flights
Requer JWT
Pesquisa voos. Providers: Amadeus, Duffel, AviationStack. Body: { origin, destination, date, passengers, class }
POST/api/search/hotels
Requer JWT
Pesquisa hotéis. Body: { city, checkin, checkout, guests }
POST/api/search/cars
Requer JWT
Pesquisa aluguel de carros.
POST/api/search/inspire
Requer JWT
Sugestões de destinos baseadas em preferências.
POST/api/search/calendar
Requer JWT
Pesquisa por preços em calendário de datas flexíveis.
POST/api/search/flexible
Requer JWT
Pesquisa com datas e destinos flexíveis.
POST/api/search/multi-origin
Requer JWT
Pesquisa voos com múltiplas origens (útil para grupos corporativos).
Viagens — /api/trips
POST/api/trips
Requer JWT
Cria nova viagem/reserva.
GET/api/trips
Requer JWT
Lista viagens do usuário.
GET/api/trips/upcoming
Requer JWT
Lista viagens futuras (próximas a acontecer).
GET/api/trips/:id
Requer JWT
Detalhes de uma viagem específica.
PATCH/api/trips/:id
Requer JWT
Atualiza detalhes da viagem.
DELETE/api/trips/:id
Requer JWT
Cancela/remove viagem.
Câmbio — /api/currency
GET/api/currency/destination/:iata
Requer JWT
Retorna moeda local do aeroporto/cidade pelo código IATA.
GET/api/currency/:from/:to
Requer JWT
Taxa de câmbio entre duas moedas. Ex: /api/currency/BRL/USD
Corporativo — /api/corporate
POST/api/corporate/requests
Requer JWT
Cria solicitação de viagem corporativa para aprovação.
GET/api/corporate/requests
Requer JWT
Lista solicitações corporativas.
GET/api/corporate/requests/:id
Requer JWT
Detalhes de uma solicitação.
PATCH/api/corporate/requests/:id/approve
Requer JWT (Admin)
Aprova solicitação de viagem corporativa.
PATCH/api/corporate/requests/:id/reject
Requer JWT (Admin)
Rejeita solicitação com motivo.
POST/api/corporate/expenses
Requer JWT
Registra despesa corporativa de viagem.
GET/api/corporate/expenses
Requer JWT
Lista despesas corporativas.
GET/api/corporate/summary
Requer JWT (Admin)
Resumo de gastos corporativos com métricas.
Documentos de Viagem — /api/documents
GET/api/documents
Requer JWT
Lista documentos do viajante (passaporte, visto, etc.).
GET/api/documents/expiring
Requer JWT
Documentos próximos ao vencimento.
POST/api/documents
Requer JWT
Adiciona novo documento.
PATCH/api/documents/:id
Requer JWT
Atualiza documento.
DELETE/api/documents/:id
Requer JWT
Remove documento.
POST/api/documents/ocr
Requer JWT
Extrai dados de documento via OCR (passaporte, identidade).
Alertas — /api/alerts
POST/api/alerts
Requer JWT
Cria alerta de preço para uma rota específica.
GET/api/alerts
Requer JWT
Lista alertas ativos do usuário.
DELETE/api/alerts/:id
Requer JWT
Remove alerta de preço.
Assistente IA — /api/ai
POST/api/ai/chat
Requer JWT
Chat com assistente de viagens via IA (Anthropic/OpenAI). Body: { message, context }
Compartilhamento — /api/share
POST/api/share/whatsapp
Requer JWT
Compartilha itinerário de viagem via WhatsApp.
Clima — /api/weather
GET/api/weather/:city
Requer JWT
Previsão do tempo para cidade de destino. Provider: OpenWeather API.
Variáveis de Ambiente
| Variável | Descrição | Módulo |
| DATABASE_URL | PostgreSQL connection string | Core |
| JWT_SECRET | Secret para tokens JWT | Auth |
| JWT_EXPIRES_IN | Expiração do token (ex: 7d) | Auth |
| REDIS_URL | Redis connection string | Cache |
| AMADEUS_CLIENT_ID | Amadeus Travel API Client ID | Voos/Hotéis |
| AMADEUS_CLIENT_SECRET | Amadeus API Secret | Voos/Hotéis |
| DUFFEL_ACCESS_TOKEN | Duffel API Token | Voos |
| AVIATIONSTACK_API_KEY | AviationStack API Key | Voos |
| GOOGLE_MAPS_API_KEY | Google Maps Platform Key | Mapas |
| OPENWEATHER_API_KEY | OpenWeather API Key | Clima |
| ANTHROPIC_API_KEY | Anthropic Claude API Key | IA |
| STRIPE_SECRET_KEY | Stripe Secret Key | Pagamentos |
| MERCADOPAGO_ACCESS_TOKEN | MercadoPago Token | Pagamentos |
| NEXT_PUBLIC_API_URL | URL pública da API (frontend) | Frontend |
Arquitetura Docker
et-frontend (Next.js, nginx:80) ─┐
├─ rede blackcat (Caddy proxy)
et-backend (NestJS, 3001) ────────┤
└─ rede et-internal
et-postgres (5432) ───────────────── rede et-internal
et-redis (6379) ──────────────────── rede et-internal
Gerado automaticamente — BlackCat Corp • Voltar ao índice