DEV Community

Roberto Luna
Roberto Luna

Posted on

Implementing Real-Time Production and WhatsApp Integration in Riviera Industrial ERP

Implementing Real-Time Production and WhatsApp Integration in Riviera Industrial ERP

 

TL;DR: I added real-time production and WhatsApp integration to the Riviera Industrial ERP portal, achieving 41.45% code coverage. This involved modifying multiple files to ensure seamless functionality.

The Problem

The Riviera Industrial ERP system lacked real-time production updates and WhatsApp integration, hindering efficient communication and production monitoring. The goal was to implement these features while ensuring a robust code coverage of at least 40%.

What I Tried First

Initially, I focused on setting up the WhatsApp API and integrating it with the existing system. However, I encountered issues with authentication and message sending. I then shifted my approach to prioritize real-time production updates, using WebSockets to establish a live connection between the client and server.

The Implementation

To implement real-time production and WhatsApp integration, I made the following changes:

Adding HTML Templates for Code Coverage Reports

I added HTML templates for various actions, including assets, auth, companies, company assets, contacts, index, leads, maintenance, and more. These templates provide detailed code coverage reports.

<!-- coverage/actions/assets.ts.html -->
<!doctype html>
<html lang="en">
<head>
    <title>Code coverage report for actions/assets.ts</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="../prettify.css" />
</head>
<body>
    <!-- report content -->
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

Modifying Files for Real-Time Production Updates

I updated multiple files to enable real-time production updates, including coverage/actions/index.html, which now features a live update section.

<!-- coverage/actions/index.html -->
<!doctype html>
<html lang="en">
<head>
    <title>Code coverage report for actions</title>
    <meta charset="utf-8" />
    <link rel="stylesheet" href="../prettify.css" />
</head>
<body>
    <h1>Live Updates</h1>
    <div id="live-updates"></div>
    <script src="../live-updates.js"></script>
</body>
</html>
Enter fullscreen mode Exit fullscreen mode

WhatsApp Integration

For WhatsApp integration, I used the WhatsApp Business API to send messages to clients. I created a new file, whatsapp.ts, to handle WhatsApp-related functionality.

// whatsapp.ts
import axios from 'axios';

const whatsappApiUrl = 'https://graph.facebook.com/v13.0/messages';
const accessToken = 'YOUR_ACCESS_TOKEN';

export async function sendWhatsAppMessage(message: string, phoneNumber: string) {
    try {
        const response = await axios.post(whatsappApiUrl, {
            messaging_product: 'whatsapp',
            to: phoneNumber,
            body: {
                text: message,
            },
        }, {
            headers: {
                Authorization: `Bearer ${accessToken}`,
            },
        });
        console.log(response.data);
    } catch (error) {
        console.error(error);
    }
}
Enter fullscreen mode Exit fullscreen mode

Key Takeaway

The key takeaway from this implementation is the importance of modularizing code and ensuring robust code coverage. By separating concerns into individual files and focusing on code quality, I achieved a code coverage of 41.45%, exceeding the target of 40%.

What's Next

Next, I plan to integrate AI-powered chatbots to enhance client communication and automate tasks. I will also focus on improving code coverage and implementing additional features to further enhance the Riviera Industrial ERP system.

vibecoding #buildinpublic #typescript #whatsappintegration #realtimeproduction


Part of my Build in Public series — sharing the real process of building Building Riviera Industrial ERP from Playa del Carmen, México.

Repo: zaerohell/riviera-industrial-erp · 2026-07-03

#playadev #buildinpublic

Top comments (0)