All Projects

Influencer Cave

B2B influencer marketplace — implemented real-time order-scoped chat, Stripe payment processing with dynamic fee/tax calculation, and a dual-mode invoice system with automated email notifications.

Node.jsTypeScriptExpressMongoDBSocket.IOStripeAWS S3
S Situation

Influencer Cave is a B2B marketplace connecting clients with influencers for promotional services. The platform needed real-time messaging tied to orders, a complete Stripe payment flow with saved methods and dynamic fees, and a flexible invoice system supporting both standard orders and custom billing.

T Task

I was brought in to implement three specific features on an existing Node.js/Express/MongoDB backend: the real-time chat system, the Stripe payment module, and the full invoice lifecycle — working within the established codebase architecture.

A Actions
  • Built order-scoped Socket.IO chat: each conversation is tied to an orderId room, messages are persisted to MongoDB with sender/receiver references and an S3 image array, unread counts are updated per participant using MongoDB array filters when the receiver is offline, and a sendImage endpoint handles multipart uploads to S3.
  • Implemented the full Stripe payment flow: SetupIntent creation for card and US bank account, off-session PaymentIntent charges against saved payment methods, dynamic fee calculation (2.9%+$0.30 domestic card, 4.4%+$0.30 international, 0.8% ACH capped at $5, $0.80 flat iDEAL), Stripe Tax API integration for address-based tax calculation, and full payment method management (list, set default, delete, update billing).
  • Built a dual-mode invoice system: order-based invoices auto-created on package purchase (unique alphanumeric demoId — 3 letters + 4 digits, uniqueness-checked in DB) with an initial chat message linking buyer and seller; custom invoices created by sellers for clients by email with HTML email notification dispatch.
  • Handled both online and offline payment paths: online payments charge via Stripe PaymentIntent, mark the invoice paid, increment the influencer's myBalance, record an expense entry, and dispatch confirmation emails to both buyer and seller via Nodemailer HTML templates; offline payments store deposit proof, set a pending admin-approval state, and notify both parties.
  • Wired Socket.IO events throughout — newMessage on invoice creation, updatedMessage on payment completion — keeping all connected clients in sync without polling.
R Results
  • All three features shipped and integrated into the live platform available on Google Play.
  • Dual-path invoice flow (online Stripe + offline deposit with admin approval) gave the platform flexibility for clients unwilling to pay by card.
  • Order-scoped chat rooms kept messaging context isolated per transaction, preventing cross-order message confusion.