Back to Projects

Wabil.

A comprehensive bookkeeping and dashboard application designed to streamline financial operations for businesses of all scales.

React.jsNode.jsMongoDBStripe

The Challenge

The enterprise required a unified financial operations platform capable of processing high-volume transactional data in real-time without sacrificing integrity or user experience. The existing infrastructure relied on fragmented spreadsheets and manual reconciliation, leading to significant data discrepancies and operational bottlenecks. Integrating Stripe's payment processing infrastructure presented a multi-faceted challenge: the system needed to handle complex subscription lifecycle events, manage disputed transactions with automated retry logic, and process webhook payloads idempotently to prevent duplicate charge entries. Furthermore, the MongoDB data model had to be architected to support diverse business structures — from sole proprietors to multi-entity corporations — while maintaining sub-100ms query performance on datasets exceeding millions of financial records. The dashboard itself demanded real-time analytics capabilities, transforming raw transactional data into actionable P&L statements and cash flow projections without requiring manual data exports.

The Solution

We architected an event-driven backend on Node.js with a dedicated Stripe service layer that abstracts the complete payment lifecycle — from charge initiation through settlement and dispute resolution. Idempotent webhook handlers were implemented using a combination of event deduplication keys and a transactional outbox pattern, ensuring zero duplicate processing even under network partitioning. The MongoDB schema employed a hybrid embedding-referencing strategy, with denormalized financial summaries for rapid dashboard reads and normalized transaction logs for audit-grade accuracy. Aggregation pipelines were optimized with compound indexes to deliver real-time profit-and-loss analytics in under 80ms. The React.js frontend utilized optimistic UI patterns for instantaneous feedback on financial operations, while a WebSocket layer powered live dashboard updates. The final platform reduced the client's monthly reconciliation time from 40+ hours to under 15 minutes, processing over 10,000 transactions daily with 99.99% data accuracy.