Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MooN logo

MooNsConfig

The open-source operating system for travel agencies—from first enquiry to post-trip support.

License: MIT Node.js 24 TypeScript 5 React 19 Docker Compose Security policy

GitHub stars GitHub forks GitHub contributors Contributions welcome Product tour

Hall of Fame Roadmap Champions Contributor certificates

MooNsConfig connects CRM, itinerary creation, route maps, supplier RFQs, quotations, bookings, payments, trip operations, customer support, and Maya-assisted workflows in one multi-tenant platform.

Ready to use: The included stack runs the core CRM, packages, itineraries, vendors, route maps, RFQs, bookings, and operations workflows locally. Provider-backed features such as AI, email, telephony, payments, SSO, live inventory, and WhatsApp become available after you add your own credentials. Complete the production-readiness checklist before handling real customer, payment, or identity data.

Start here — choose what you want to do

Every bold title in the first column is a link. Choose the path that matches what you want to do:

Start here What you will find
🚀 Install and run MooNsConfig → Windows, Linux, macOS, Docker, native development, login, stopping, and troubleshooting
Explore every feature → Maya, CRM, RFQs, maps, itineraries, packages, vendors, hotels, cars, chat, and operations
🎬 Open the live product tour → Privacy-safe captures from the running application and a guided workflow
📊 Check what is ready → Local capabilities, provider requirements, limitations, and maturity
🤝 Make your first contribution → Fork, clone, branch, test, push, open a pull request, and earn recognition
🛡️ Read the security policy → Private vulnerability reporting and rules for protecting traveller data
💬 Get project support → Setup questions, bug reports, feature requests, and safe support channels
🧭 Understand project governance → Maintainer roles, decisions, reviews, releases, and roadmap ownership

Repository documents are also available through GitHub's README, Contributing, Code of conduct, MIT license, and Security tabs above this page.

See the application before installing

Click here to open the live product tour →

The tour uses direct, privacy-safe captures from the running application—not UI mock-ups. Any visible lead data is deliberately fictional.

MooNsConfig dashboard

View the full screenshot tour →

Who MooNsConfig is for

  • Travel agencies replacing spreadsheets and disconnected point tools.
  • Tour operators building custom itineraries, quotations, and packages.
  • DMCs coordinating suppliers, hotels, vehicles, activities, and traveller operations.
  • Engineering teams evaluating a multi-tenant travel SaaS foundation.
  • Contributors interested in maps, realtime systems, workflow automation, accessibility, travel technology, and governed AI.

One connected traveller journey

  1. Capture the enquiry. Receive a lead through a form, customer chat, callback, WhatsApp, or incoming phone call.
  2. Qualify and follow up. Assign ownership, record requirements, schedule calls and messages, and keep the entire lead timeline visible.
  3. Discover and curate. Start from a destination brief, existing catalogue, or uploaded inspiration picture.
  4. Build the itinerary. Add days, activities, stays, rooms, cars, transfers, pricing, media, and route maps.
  5. Request supplier rates. Select vendors, prepare reusable or Maya-composed RFQs, review them, and organize outreach.
  6. Quote and confirm. Build versioned proposals and PDFs, collect approval, create bookings, and manage payment schedules.
  7. Operate the trip. Coordinate participants, services, documents, messages, incidents, flight watches, and recovery actions.
  8. Support the traveller. Continue through team chat, customer chat, Maya assistance, human handover, invoicing, refunds, and post-trip follow-up.

Feature highlights

The summary below explains the main product areas. Use the complete feature guide for the full capability list and provider boundaries.

Maya call answering and end-to-end follow-up

  • Connects to Asterisk ARI for incoming travel calls, returning-traveller recognition, enquiry capture, package search, callback scheduling, escalation, and end-of-call CRM journaling.
  • Keeps calls, emails, WhatsApp messages, meetings, quotations, outcomes, next actions, Maya-owned cadences, and staff-owned queues connected from first contact to conversion.
  • Uses read-only defaults, approval-bound operational writes, audit records, sensitive-data redaction, and an external-write kill switch.

CRM, leads, quotations, and WhatsApp

  • Manages lead ownership, priority, notes, recordings, requirements, next actions, outcomes, follow-up queues, customer profiles, sales pipeline, and deal context.
  • Builds versioned quotations from catalogue and supplier data with branded PDFs, feedback, approval, bookings, invoices, payment schedules, escrow, refunds, and promo codes.
  • Provides a human-operated lead WhatsApp inbox with unread badges, approved templates, conversation history, retry handling, and sent, delivered, and read states.

Team chat and autonomous customer support

  • Provides realtime staff channels, direct conversations, customer chat, attachments, presence, unread state, call requests, and support history through Socket.IO and Redis.
  • Allows eligible customer conversations to be assigned to Maya with urgent-travel recognition, human escalation, takeover, and hand-back.
  • Gives staff a browser-based voice and chat workspace for asking Maya questions while preserving permissions and operational guardrails.

AI itinerary builder and picture-based curation

  • Creates editable day-by-day itineraries from destination briefs while keeping the manual editor available without an AI provider.
  • Turns an uploaded inspiration picture into destination, mood, activity, and itinerary ideas.
  • Supports activity selection, drag-and-drop days, stays, rooms, vehicles, transfers, inclusions, media, coordinates, pricing, margin, and route generation.

Supplier RFQs and vendor outreach

  • Selects suppliers by destination, service, hotel, vehicle, experience, scope, and travel date.
  • Uses reusable templates or Maya-composed RFQs, with staff review before external sending.
  • Tracks outreach queues, delivery history, inbound and outbound supplier conversations, extracted offers, reviewable inventory drafts, and approval.

Route maps and animated journeys

  • Builds interactive road, rail, air, sea, and mixed-mode routes with destinations, waypoints, labels, transport icons, coordinates, and styling.
  • Exports static maps for itineraries and proposals.
  • Produces animated journey playback for presentations and marketing while keeping the route connected to itinerary data.

Packages, hotels, cars, activities, and vendors

  • Creates reusable packages with media, SEO content, day-by-day plans, pricing, inclusions, and exclusions.
  • Manages hotels, resorts, rooms, amenities, galleries, vendors, supplier net costs, margin, selling prices, vehicles, coverage, capacity, luggage, and transfers.
  • Maintains activities, experiences, destinations, flights, cruises, themes, and broader catalogue inventory with search, filtering, editing, and source verification.

Booking, journey operations, and traveller support

  • Moves approved proposals into bookings with participants, services, payments, documents, messages, and wallet metadata.
  • Gives operations teams a Journey Manager, activity status, flight watches, broadcasts, incident desk, recovery workflows, and customer updates.
  • Gives travellers a hub for proposals, trips, services, payments, documents, messages, and Maya SOS or human support.

Marketing, content, and analytics

  • Supports campaigns, audiences, automations, banners, promotions, destination content, packages, Travel Hub content, visa content, and SEO workflows.
  • Assists with audience rules, campaign drafts, banner copy, trend analysis, lead priority, and analytics chat while leaving external publication and sending reviewable.

Multi-tenant platform and security

  • Uses a platform database plus isolated logical databases for travel-company workspaces.
  • Covers tenant registration, provisioning, lifecycle, plans, quotas, billing, backup, operator controls, authentication, invitations, roles, module permissions, MFA-sensitive actions, and audit trails.
  • Uses Redis-backed limits, locks, caching, queues, transactional outbox patterns, idempotent workers, and provider integrations that remain disabled or fail closed when unconfigured.

Explore the complete feature guide →

Capability snapshot

Area Status
CRM, leads, proposals, bookings, packages, vendors, stays, and cars Ready in the local stack
Itinerary editor, visual curation, activities, and route-map studio Ready; AI generation needs a configured provider
Supplier RFQs and vendor-response workflow Ready; external delivery needs configured email
Team chat and customer-support workspace Ready with the included Redis and Socket.IO stack
Human-operated lead WhatsApp inbox Ready after connecting a Meta WhatsApp Business account
Maya chat, calling, follow-up, and operational assistance Provider-backed with approval and audit guardrails
Payments, SSO, object storage, live flights, and external inventory Optional provider integrations

Open the detailed capability and maturity matrix →

Run locally

Install and start Docker Desktop, then:

git clone https://github.com/schowdary75/moonsconfig.git
cd moonsconfig
chmod +x start.sh stop.sh
./start.sh

On Windows, run the commands in Git Bash or WSL. The launcher generates an ignored local environment, builds the full stack, applies Prisma migrations, creates the initial administrator, and prints the login details. Open http://localhost:8080 when startup completes.

Stop without deleting local application data:

./stop.sh

Open the complete Windows, Linux, macOS, Docker, and native setup guide →

Architecture

flowchart TB
  subgraph Channels["Users and inbound channels"]
    Staff["Agency staff and administrators"]
    Travellers["Traveller Hub and customer chat"]
    Webhooks["Signed provider webhooks"]
    Voice["Asterisk ARI and voice services"]
  end

  subgraph Edge["Edge and web delivery"]
    Nginx["Nginx reverse proxy"]
    SPA["React 19 and Vite single-page application"]
  end

  subgraph Application["Application runtime"]
    API["Express 5 API"]
    Realtime["Socket.IO realtime gateway"]
    Security["Authentication · MFA · RBAC<br/>plan entitlements · tenant context"]
    RequestFlow["Routes → controllers → services<br/>repositories → Prisma"]
    Domains["Travel domain services<br/>CRM · itineraries · RFQs · bookings · support"]
  end

  subgraph Async["Asynchronous processing"]
    Scheduler["Schedulers and idempotent jobs"]
    Redis[("Redis 7.4<br/>queues · cache · locks · rate limits")]
    Worker["Separate BullMQ worker process"]
  end

  subgraph Data["Persistence and tenant isolation"]
    PlatformPrisma["Platform Prisma client"]
    TenantPrisma["Tenant Prisma client"]
    PlatformDB[("Platform MySQL database<br/>identity · tenants · plans · credentials")]
    TenantDB[("Isolated tenant MySQL databases<br/>travel and operational records")]
    Storage[("Persistent uploads and logs")]
  end

  subgraph Integrations["Optional provider adapters"]
    AdapterBoundary["Validated provider boundary"]
    AI["AI"]
    Communications["WhatsApp · email · SMS"]
    Travel["Flights · inventory · travel rules"]
    Business["Payments · SSO · accounting"]
    Cloud["Object storage · CDN · malware scanning"]
  end

  Staff -->|HTTPS| Nginx
  Travellers -->|HTTPS| Nginx
  Nginx -->|serves static assets| SPA
  SPA -->|REST through Nginx| API
  SPA <-->|realtime through Nginx| Realtime
  Webhooks -->|verified HTTPS events| API
  Voice <--> API

  API --- Realtime
  API --> Security
  Realtime --> Security
  Security --> RequestFlow
  RequestFlow --> Domains

  Domains --> PlatformPrisma
  Domains --> TenantPrisma
  PlatformPrisma --> PlatformDB
  TenantPrisma --> TenantDB
  Domains --> Storage
  Domains <--> Redis

  Scheduler -->|enqueue| Redis
  Redis -->|BullMQ jobs| Worker
  Worker --> PlatformPrisma
  Worker --> TenantPrisma
  Worker --> Storage

  Domains <--> AdapterBoundary
  Worker <--> AdapterBoundary
  AdapterBoundary --- AI
  AdapterBoundary --- Communications
  AdapterBoundary --- Travel
  AdapterBoundary --- Business
  AdapterBoundary --- Cloud
Loading

Socket.IO is shown separately to make realtime traffic clear, but it runs with the API rather than as another Docker service. The API and BullMQ worker are separate processes.

Layer Responsibility
Nginx and React/Vite Serve the browser application, provide SPA history fallback, and proxy API, upload, sitemap, and realtime paths
Express API and Socket.IO Expose versioned HTTP endpoints, accept verified webhooks, and publish tenant-scoped realtime updates
Security and workspace resolution Validate sessions, MFA, permissions, plan entitlements, and tenant identity before protected data access
Domain and repository layers Run CRM, itinerary, RFQ, booking, support, and operations rules through explicit repository boundaries
Redis and BullMQ Hold queues, rate-limit state, caches, distributed locks, retries, and idempotent background work
Platform data Keep shared identity, workspace, plan, domain, and encrypted provider-credential metadata
Tenant data Keep each workspace's travel and operational records in its resolved tenant database
Provider adapters Connect only configured AI, communications, travel, business, and cloud providers; otherwise fail closed

Request and background-job flow

  1. Nginx serves the SPA and proxies API and realtime traffic.
  2. Authentication, MFA, RBAC, plan entitlements, and tenant context are resolved before a protected request reaches a domain service.
  3. Synchronous data access follows routes → controllers → services → repositories → Prisma → MySQL.
  4. Long-running or retryable work is enqueued in Redis with an idempotency key.
  5. The separate worker claims BullMQ jobs, writes through the same Prisma boundaries, and records bounded retries or dead-letter outcomes.
  6. Socket.IO publishes tenant-scoped updates when enabled. Provider-dependent workflows remain disabled or return a real configuration/error state when credentials are absent.

The TypeScript monorepo uses React 19, Express 5, MySQL 8.4, Prisma 6, Redis 7.4, BullMQ, Socket.IO, Docker Compose, and Nginx.

Read the architecture guide → · Understand the travel operating-system design →

Documentation library

Open this guide Use it when you want to…
Features → Explore the complete product surface
Getting started → Install, configure, run, stop, or troubleshoot
Product tour → Inspect real application screens and workflows
Project status → Check what works locally and what needs a provider
Production readiness → Prepare a deployment that handles real data
Contributing → Make a focused, tested pull request
Security → Report vulnerabilities without exposing details
Support → Ask for help through the correct channel
Governance → Understand decisions, reviews, releases, and ownership
Documentation index → Browse every product, technical, and community guide

Contributing and community

Contributions are welcome across travel workflows, route maps, accessibility, tests, provider adapters, responsive UI, documentation, setup, and security.

Find a good first issue → · Follow the visual fork-to-PR guide → · Read the contribution rules →

Accepted work is recognized in the Hall of Fame, leaderboard, and contributor recognition program. Milestone closers can receive Roadmap Champion recognition and repository-verifiable digital certificates.

All participation follows the Code of Conduct. For setup or usage questions, read Support. Report vulnerabilities privately through the Security Policy, never through a public issue.

License

Original MooNsConfig source code is available under the MIT License, copyright 2026 MooNsConfig. Third-party components retain their own licenses and terms; see THIRD_PARTY_NOTICES.md.

About

Open travel OS with Maya AI for calls, support chat, RFQs, vendor outreach, itinerary curation, route maps, packages, hotels, cars, CRM, bookings, and multi-tenant SaaS.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages