AIOChatWC or in other words All in one chat web component is a highly configurable chat solution that includes a web component for embedding chat functionality into your frontend and a backend service for managing chat logic, authentication, and database interactions.
- Web Component: Easily embed a chat widget into your application.
- Backend Service: Manage chat logic, authentication, and database interactions.
- Authentication: Supports multiple authentication methods, including JWT, Proxy, and Custom.
- Database Support: Works with SQLite, MySQL, and PostgreSQL.
- Customizability: Override default behavior for both the web component and backend service.
The documentation is divided into two main sections:
- Web Component: Learn how to set up and configure the AIOChatWC web component.
- Service: Understand the backend service, its configuration, and customization options.
Install the package:
npm install aio-chat-wcAlso, ensure Vue.js is installed in your project:
npm install vueThe AIOChatWC web component allows you to embed a chat widget into your application. It supports two ways to initialize:
-
Using the
<chat-widget>HTML Element:<chat-widget user_id="123" service_url="https://your-backend.com"></chat-widget>
-
Using the
initChatWidgetFunction:import { initChatWidget } from 'aio-chat-wc'; initChatWidget({ user_id: 123, service_url: 'https://your-backend.com', container: document.querySelector('#chat-container') });
For more details, refer to the Web Component Documentation.
The AIOChatWC service provides the backend functionality required for chat, including database management, authentication, and chat logic.
- Authentication: Supports Direct, Auth Endpoint, JWT, Proxy, and Custom authentication methods.
- Database: Works with SQLite, MySQL, and PostgreSQL. Includes migration utilities.
- Customizability: Override default chat logic and user filtering.
-
Create a file to start the service (e.g.,
chat_service.js). -
Import and start the service:
import { startService } from 'aio-chat-wc/service'; startService(config) .then(() => console.log("Chat service started successfully.")) .catch((err) => console.error("Failed to start chat service:", err));
-
Add a start command to your
package.json:"scripts": { "start:service": "node path/to/chat_service.js" }
For more details, refer to the Service Documentation.
Both the web component and service are highly configurable. Key configuration options include:
-
Web Component:
service_url: The base URL of the chat service.user_id: The ID of the authenticated user.token: The JWT token used for authentication.
-
Service:
DB_TYPE: Type of database (sqlite,mysql, orpostgres).AUTH_MODE: Authentication mode (direct,auth-endpoint,jwt,proxy, orcustom).user_mapping: Map user fields to your database schema.
For a full list of configuration options, refer to the Configuration Documentation.
AIOChatWC supports multiple authentication methods:
- Direct: Quick prototyping with minimal setup.
- Auth Endpoint: Verifies users through a backend endpoint.
- JWT: Uses existing JWT authentication systems.
- Proxy: Routes all chat requests through an authenticated backend.
- Custom: Implements custom authentication logic.
For detailed instructions, refer to the Authentication Documentation.
AIOChatWC supports SQLite, MySQL, and PostgreSQL. It includes migration utilities to set up and manage the database schema.
- SQLite: Ideal for quick setups or local development.
- MySQL/PostgreSQL: Recommended for production environments.
For more details, refer to the Database Documentation.
AIOChatWC is designed to be highly customizable:
- Web Component: Customize the widget's behavior. In the future change modes and appearance.
- Service: Override default chat logic, user filtering, authentication and connect it to your existing database.
For advanced use cases, refer to the Chat Service Documentation.
- Change Default Authentication Method: Avoid using the default authentication method (
direct) in production. Choose an authentication method that best fits your application's needs, such asjwt,proxy, orcustom. - Update Authentication Defaults: Replace default authentication values like
TOKEN_SECRETandPROXY_SECRETwith secure, unique values to enhance security. - Migrations: Before running migrations on existing database make sure to check documentation on User Entity customization
- Authentication Errors: Ensure secrets and token names match between your app and the chat service.
- CORS Issues: Configure CORS on both your proxy endpoint and the chat service.
- Database Errors: Verify your database configuration and run migrations.
For more help, check the GitHub repository or create a new issue.
This project is licensed under the MIT License.