
Cerrado
Publicado
Pagado a la entrega
We are looking for an experienced Full-Stack or Backend developer to build and deploy a dedicated backend service (“WhatsApp Bridge”) that allows the integration of multiple WhatsApp Web (Business App) accounts via QR code with our CRM built on the Base44 platform. Our CRM (frontend) runs on Base44 and already has the user interface for initiating the QR connection and managing conversations. However, due to the limitations of Base44’s serverless Backend Functions (which cannot maintain persistent sessions), we need an external server that will handle the actual WhatsApp connections. This server will be deployed on our VPS hosted at Contabo. The goal is to have a fully functional system where CRM users can connect their WhatsApp numbers by scanning a QR code, send and receive messages in real time, and have all interactions reflected and persisted in our Base44 database. Context & Architecture CRM Frontend & Database: Hosted on Base44. Users initiate the connection process and interact with the chat interface here. Base44 Backend Functions: Used as intermediaries to communicate with the new “WhatsApp Bridge.” These functions will persist conversations and messages. WhatsApp Bridge (Your Development): A Node.js server running on our Contabo VPS. This is the core integration layer that maintains WhatsApp sessions and manages message flow. WhatsApp Technology: The integration will use the [login to view URL] library to interact with WhatsApp Web. Key Requirements & Features VPS Setup (Contabo): Configure a Node.js runtime environment (with NVM). Install PM2 for process management and automatic restarts. Install Chromium and all dependencies required for whatsapp-web.js. Configure firewall (UFW) to allow necessary traffic. Backend Development (Node.js “WhatsApp Bridge”): Session Management: Initialize and maintain multiple independent WhatsApp Web sessions, each identified by a unique session_id. Generate dynamic QR codes for each new session and keep updating the QR until it is scanned. Handle connection/disconnection events (e.g., if the user’s phone disconnects). Persist session data (auth_info) to avoid constant rescans after server restarts. REST API: Expose HTTP endpoints so Base44 Backend Functions can interact: POST /api/whatsapp/init-session: Start a new session and return a QR code. GET /api/whatsapp/check-status/:session_id: Get the current status and QR of a session. POST /api/whatsapp/send-message: Send text or media to a specific WhatsApp number from a given session_id. POST /api/whatsapp/disconnect-session: Close and remove a WhatsApp session. Real-Time Communication ([login to view URL]): Implement [login to view URL] so the Node.js server can push updates in real time to Base44 (or an intermediate client): QR code updates (when refreshed). Session state changes (connected, disconnected, error). Incoming messages: notify Base44 whenever new messages arrive on any connected session. Integration with Base44 Backend Functions: From the “WhatsApp Bridge,” make requests to Base44 Backend Functions when: A new message arrives (whatsappReceiveMessage). A session successfully connects (whatsappScanQR). A session disconnects (whatsappDisconnect). A QR code changes (so Base44 can save and display it). (Base44 will provide function URLs and, if necessary, an SDK.) Deployment & Management Configure the Node.js app with PM2 so it auto-starts on VPS boot and stays alive. Handle environment variables via .env. Key Technologies Language: Node.js (LTS) Framework: [login to view URL] WhatsApp Library: [login to view URL] Real-Time: [login to view URL] Process Manager: PM2 Server: Contabo VPS (Linux, Ubuntu/Debian likely) Deliverables for the Client (Me) The freelancer must provide the following, clearly and concisely, so I can configure my Base44 application without needing to grant access to my Base44 environment: WHATSAPP_BACKEND_URL: The public base URL of the Node.js server (e.g., http://your_vps_ip:3000). Source Code ([login to view URL]): Complete and final Node.js server code, including configuration/auxiliary files (.[login to view URL], etc.), with clear comments. Base44 Configuration Instructions (API Keys/Secrets): If the Node.js server requires an API key or secret to communicate with Base44 (e.g., BASE44_API_KEY_FOR_SERVER), specify its name and how to obtain it. If the Node.js server needs webhook URLs or function IDs from Base44, specify the corresponding environment variables and how to set them in .env. Contabo VPS Service Administration Guide: Basic PM2 commands to check status, restart, and view logs. Confirmation that PM2 is configured to auto-start the app on VPS reboot. List of used ports and confirmation firewall allows them. Message Flow Explanation (Optional but Useful): Diagram or text explaining how a WhatsApp message travels from the user’s phone → VPS → Base44, and vice versa. Success Criteria Ability to initiate a WhatsApp Web connection via QR from the Base44 CRM. QR code is displayed correctly and updates in the CRM. Upon scanning the QR with a phone, the CRM updates session state to “Connected.” Sending messages from CRM → WhatsApp works. Receiving messages from WhatsApp → CRM works. WhatsApp sessions remain active on the VPS even if the CRM browser is closed. Node.js server automatically restarts with PM2 on crash or VPS reboot.
ID del proyecto: 39835366
11 propuestas
Proyecto remoto
Activo hace 14 horas
Fija tu plazo y presupuesto
Cobra por tu trabajo
Describe tu propuesta
Es gratis registrarse y presentar ofertas en los trabajos

medellin, Colombia
Forma de pago verificada
Miembro desde dic 2, 2017
$30-250 USD
$30-250 USD
$10-30 USD
$30-250 USD
$30-250 USD
$10-30 USD
$750-1500 AUD
$750-1500 USD
₹600-1500 INR
₹1500-12500 INR
₹1500-12500 INR
£3000-5000 GBP
₹1500-12500 INR
₹12500-37500 INR
$8-15 USD /hora
₹12500-37500 INR
$50000-120000 USD
$30-250 USD
₹1500-12500 INR
₹600-1500 INR
$750-1500 USD
$250-750 USD
$250-750 USD
$30-250 USD
₹12500-37500 INR