Skip to main content

EML Backend

Description

EML Backend is a set of services designed to improve the efficiency of call centers, enabling seamless connections between customers and service agents. Additionally, it facilitates the management of messages, reminders, and notifications through various communication channels.

Main Features

  • Intelligent Call Routing: Optimizes agent-to-customer assignment.
  • Message Management: Sending and receiving messages via messaging queues.
  • Automated Notifications: Configurable reminders and alerts.
  • WebSockets Support: Real-time communication.
  • Secure Authentication: Implementation with JWT and Passport.
  • Scalability and High Availability: Use of microservices and containers.

Technologies Used

  • Framework: NestJS
  • Database: PostgreSQL (Sequelize), MongoDB (Mongoose), MySQL (TypeORM)
  • Messaging: RabbitMQ (AMQP)
  • Authentication: Passport and JWT
  • WebSockets: Implementation with Socket.IO
  • Infrastructure: Docker, Kubernetes
  • API Documentation: Swagger

Installation and Configuration

Prerequisites

  • Docker and Docker Compose installed
  • Node.js (v14+ recommended) and Yarn
  • PostgreSQL or MongoDB configured

Installation

  1. Clone the repository:
    git clone https://gitlab.com/eml-backend.git
    cd eml-backend
  2. Install dependencies:
    yarn install
  3. Configure environment variables:
    cp .env.example .env
    nano .env # Edit values as needed
  4. Start services with Docker:
    docker-compose up -d
  5. Verify execution:
    curl http://localhost:3000/health

Usage

Example request to send a message:

curl -X POST http://localhost:3000/messages      -H "Content-Type: application/json"      -d '{"recipient": "+50312345678", "message": "Hello, this is a reminder."}'

Testing

Run unit tests:

yarn test

Contribution

If you want to contribute, follow these steps:

  1. Fork the repository.
  2. Create a new branch: git checkout -b feature-new
  3. Make changes and run tests.
  4. Submit a pull request detailing your improvements.

API Documentation

The service includes Swagger documentation accessible at:

http://localhost:3000/api

License

Copyright (c) 2025 Experience Model Labs S.A. de C.V.

All rights reserved.

This software and its source code are the exclusive property of Experience Model Labs S.A. de C.V. Copying, distribution, modification, or reverse engineering of this software is strictly prohibited without the express written consent of the rights holder.

Use of this software is subject to the terms and conditions outlined in the End User License Agreement (EULA).

For more information, contact: [email protected]