The Chat Communications Service is an internal microservice designed to act as middleware between the core application services and chat platforms like Rocket.Chat. It simplifies the integration, management, and scalability of chat-based communications for various use cases.
- Acts as a middleware for seamless communication with chat platforms.
- Provides abstraction for APIs of chat services.
- Offers extensible architecture to integrate additional chat providers in the future.
- Ensures robust logging and error handling for chat-related operations.
- Node.js (v16.x or later)
- PostgreSQL for any required database operations.
- Access to a configured Rocket.Chat server.
-
Clone the repository:
git clone https://github.com/ELEVATE-Project/chat-communications.git cd chat-communications -
Install dependencies:
npm install -
Set up environment variables: Create a
.envfile with the following configurations:CHAT_PLATFORM_URL=<your_chat_platform_url> CHAT_PLATFORM_ADMIN_EMAIL=<your_chat_platform_admin_email> CHAT_PLATFORM_ADMIN_USER_ID=<your_chat_platform_admin_user_id> CHAT_PLATFORM_ACCESS_TOKEN=<your_chat_platform_admin_token> INTERNAL_ACCESS_TOKEN=<your_internal_access_token> DEV_DATABASE_URL=<your_development_database_url> USERNAME_HASH_SALT=<your_username_hash_salt> PASSWORD_HASH_SALT=<your_password_hash_salt> -
Run migrations:
npx sequelize-cli db:migrate -
Start the service:
npm start
- Chat Integration: Unified interface to interact with chat platforms.
- User Management: Create, delete, and manage chat users programmatically.
- Room Management: Automate chat room creation and management.
- Message Handling: Send and receive messages with structured APIs.
- Extensibility: Easily add support for new chat providers.
This project is licensed under the MIT License. See the LICENSE file for details.