CRM & Campaign Management App Dev

Job ID: 38779676

Budget: ₹2,000 – ₹4,000 INR

Build a Mini CRM & Campaign Management App Using React, Node.js, and MongoDB (Deadline: November 14, 2024)
The Task:
Build a Mini CRM & Campaign Management App

We are seeking a freelancer to create a simplified CRM system with core features to help our clients interact with their customers. The application will be evaluated based on the requirements below. Please complete the project by November 14, 2024.

Requirements:
Data Ingestion API

Goal: Set up APIs to load customer and order data into a MongoDB database.

Details:

Build APIs to accept and store customer and order data in MongoDB.
Demonstrate these APIs using Postman, showing data entries successfully populating the relevant tables.
Bonus: Implement a scalable pub-sub architecture, where the API handles only data validation and pushes validated data to a message broker, with actual storage managed by a consumer process.

Campaign & Audience Management Web App

Goal: Create a simple web app that enables users to define audience segments and manage campaign messages.

Details:

Audience Creation:

Allow users to define audience segments based on customer data. Examples include:
Customers with total spending > INR 10,000
Customers with spending > INR 10,000 and visits <= 3
Customers who haven’t visited in the last 3 months
Users should be able to build these segments with multiple conditions using AND/OR logic across various fields. The app should calculate the audience size before saving each segment.
Campaign History & Stats:

After creating a segment, display a page with past campaigns sent, ordered by the most recent.
Set up Google-based authentication to securely access this web app.
Message Sending:

Save the defined audience data in a communications_log table.
Implement a dummy API to send personalized messages to this audience, e.g., “Hi [Name], here’s 10% off on your next order!”
The API should call a “Delivery Receipt” API with a random delivery status (90% SENT, 10% FAILED), referencing the communications_log ID.
The Delivery Receipt API should update the communication status in the database based on whether the message was marked SENT or FAILED.
Bonus:

Use a pub-sub model to batch database updates, even if the Delivery Receipt API is called one by one.
Display campaign statistics (e.g., audience size, number sent, number failed) on the campaign page.
Preferred Tech Stack:
Frontend: React.js or Next.js
Backend: Node.js
Database: MongoDB
Skills We’re Evaluating:
Backend API design and frontend development for segmentation and campaign tracking.
Use of Postman to test and demonstrate API functionality.
Ability to interpret and creatively implement an abstract set of requirements.
Capability to deploy the project online.
Integration of Google authentication.
Creation of a 5-minute demo video showcasing the project.
Understanding and leveraging a pub-sub model for scalability.
Efficient batch processing and database optimization.
Attention to detail and efficiency in completing the project.
Submission Details
Demo Video: Record a narrated video that demonstrates the app's functionality. This will help us evaluate your approach, communication skills, and understanding of the project.
Project Code: Ensure all code is original and well-documented.
This is an ideal project if you have experience with React, Node.js, and MongoDB. If interested, apply with relevant work samples, estimated timelines, and an understanding of the deadline.
Related categories: MySQL Node.js React.js RESTful API MongoDB