High-Level Architecture
Backend Structure
The Uniconnect Platform is designed with a modular architecture to ensure scalability, maintainability, and flexibility.
The platform is divided into several key components:
Frontend
- Web App: A browser-based interface that interacts with the backend services through REST and WebSocket APIs.
- Desktop App (Uniconnect Edge): A desktop/mobile application that provides access to the system's features, also communicating with the backend via REST and WebSocket APIs.
Backend
API Gateway
- Acts as the entry point for all client requests, routing them to the appropriate backend services.
Auth Service
- Handles authentication and authorization of requests, ensuring secure access to the platform's services.
Core Services
- Campaign Management Service: Manages marketing and communication campaigns, including scheduling, execution, and tracking.
- Agent Performance Management Service: Monitors and evaluates the performance of customer service agents, providing insights and reports.
Dynamic CRM Services
- CRM Module Management Service: Manages customer relationship management modules, allowing for customization and configuration of CRM functionalities.
Workflow Engine
- Event Listener: Acts as a central hub for publishing and subscribing to events within the system.
- Rule Engine Service: Processes incoming events and triggers actions based on predefined rules.
Data Store
- PostgresDB: A relational database used for storing persistent data, ensuring data integrity and reliability.
Integration
- Integration Gateway: Facilitates connectivity with external systems, databases, and APIs.
- External DBs: External databases integrated with the platform for data exchange.
- Object Storages: External object storage systems for storing large amounts of unstructured data.
- External APIs: Third-party APIs integrated with the platform to extend its functionality.
Reporting
- Cube.js: A reporting and analytics service that provides insights and visualizations based on the platform's data.
Pluggable Integration Hub
- Pluggable Integration Hub: A flexible integration layer that connects with various external sources and internal services, enabling seamless data flow and interoperability.
Data Flow and Interactions
- Event Listener: Listens to events and triggers actions in the Rule Engine.
- Rule Engine: Triggers actions in the Campaign Management Service, Agent Performance Management Service, and CRM Module Management Service based on events.
- Core Services: Store data in PostgresDB and interact with the Pluggable Integration Hub for integration with external sources.
- Integration Gateway: Connects with external databases, object storages, and APIs, facilitating data integration and exchange.
- Cube.js: Integrates with PostgresDB for data reporting and provides insights through the Reporting Service.
- Frontend Applications: Interact with the API Gateway for API requests and receive authenticated responses from the Auth Service.
Technologies Used
- Node.js: The runtime environment for executing JavaScript code on the server-side.
- Express: The web application framework for Node.js, providing a robust set of features for web and mobile applications.
- TypeScript: A superset of JavaScript that adds static typing, making the code more robust and maintainable.
- PostgreSQL: The relational database used for storing persistent data.
Integration Layer
- REST API: Allows external systems and the user interface to interact with the backend services.
- WebSocket API: Used for real-time communication, pushing updates from the server to the client interfaces.
- External APIs: Integrates with third-party services to extend functionality.
- TCP Sockets: Facilitates socket-based communication for real-time data exchange.
- Database Connectors: Provides connectivity to external databases, allowing for seamless data integration.
Event System
- Event Listener: Acts as a central hub for publishing and subscribing to events within the system.
- Rule Engine: Processes incoming events and triggers actions based on predefined rules.
CRM Management
- Low/No Code Module: Provides a user-friendly interface for creating and managing CRM modules without writing code.
- Module & Field Manager: Handles the backend logic for managing CRM modules and their fields, storing configurations in PostgreSQL.
User Interface
- Web UI: A browser-based interface that interacts with the backend services through REST and WebSocket APIs.
- Uniconnect Edge: A desktop/mobile application that provides access to the system's features, also communicating with the backend via REST and WebSocket APIs.