How service-bot/servicebot works
Servicebot is an XaaS subscription-management platform: customers browse service offerings, submit service requests, and manage active services and billing; staff configure the catalog, users, and permissions. The React client communicates with a REST API gateway, whose routes expose domain operations backed by models and plugin services. The README also documents quotes, trials, add-on pricing, invoicing, refunds, messaging, and extensibility. Some plugin and domain implementations are not sampled, so links for those capabilities are limited to documented boundaries rather than inferred call chains.
Main entry points: app.js API gateway · index.jsx React application · service-instances.js REST route modules · database.js Database plugin
Components 23
Customer and Staff UI
- React application
views/index.jsx - Service catalog
views/components/pages/service-catalog.jsx - Service request
views/components/pages/service-request.jsx - My services
views/components/pages/my-services.jsx - Admin pages
views/components/pages/manage-catalog.jsx
REST API
- API gateway
plugins/api-gateway/app.js - REST route modules
api/service-instances.js - Authentication routes
api/auth.js
Service and Billing Domain
- Service templates
models/service-template.js - Service instances
models/service-instance.js - Charges and invoices
models/charge.js - Users and roles
models/user.js
Platform Services
- Database plugin
plugins/database/database.js - Lifecycle manager
plugins/service-lifecycle/main.js - Payment manager
plugins/payment-manager/main.js - Notifications
plugins/notification/saga.js - Webhook dispatch
plugins/webhooks/main.js - Initial setup
plugins/setup/app.js
External Integrations
- PostgreSQL
- Stripe
Other components
- Customer
- Staff
- Customer endpoints
Connections 28
- Customer → React application: uses
- Staff → React application: uses
- React application → Service catalog: renders
- React application → Service request: renders
- React application → My services: renders
- React application → Admin pages: renders
- Service catalog → API gateway: fetches catalog
- Service request → API gateway: submits requests
- My services → API gateway: requests services
- Admin pages → API gateway: manages catalog
- API gateway → REST route modules: dispatches routes
- API gateway → Authentication routes: registers routes
- REST route modules → Service templates: accesses templates
- REST route modules → Service instances: accesses instances
- REST route modules → Charges and invoices: accesses billing
- REST route modules → Users and roles: accesses users
- Service templates → Database plugin: persists data
- Service instances → Database plugin: persists data
- Charges and invoices → Database plugin: persists data
- Users and roles → Database plugin: persists data
- Database plugin → PostgreSQL: reads and writes
- Payment manager → Service instances: checks subscriptions
- Payment manager → Charges and invoices: creates charges
- Lifecycle manager → Webhook dispatch: runs lifecycle hooks
- Webhook dispatch → Customer endpoints: posts events
- Initial setup → API gateway: provides setup routes
- Payment manager → Stripe: billing integration
- Notifications → Customer: sends notices