← Our Work

Plum

The Plum platform aims to streamline charitable giving by connecting donors, charities, and events in a seamless ecosystem. The platform emphasizes simplicity, transparency, and accessibility, allowing users to donate, organize events, and interact through a unified interface. The backend serves as the core API layer for managing all interactions, while the mobile app acts as the front-end for donors, charities, and event organizers.

Plum

The Challenge

The platform is designed to ensure scalability, capable of handling a large number of users, events, and transactions while maintaining optimal database performance and API responsiveness during peak usage. Security is a top priority, with robust measures in place to manage sensitive data such as user credentials and payment information, including secure file storage and PCI compliance for payments. The project also involves managing multi-environment configurations for development and production, addressing challenges like maintaining environment-specific settings such as API keys and file paths. Data integrity is critical, requiring real-time updates for donations, likes, comments, and event statistics without compromising consistency. Additionally, deployment and maintenance tasks include managing Let’s Encrypt SSL certificates and ensuring platform availability during deployments, which present operational challenges.

Technical Implementation

The Plum is built using Node.js and Express, providing fast and reliable API services, with MongoDB as the database for scalable and flexible data management. It supports environment-specific configurations through separate .env.development and .env.production files, and handles file uploads securely using express-fileupload. Stripe integration enables secure payment processing, including confirming and managing payment intents. The backend features a modularized routing structure for functionalities like authentication, charity management, and events, while maintaining robust security with HTTPS in production through Let’s Encrypt SSL certificates and middleware for error handling and logging. The Plum, developed with Flutter, delivers a seamless cross-platform experience for Android and iOS. It integrates Google Maps API for location-based charity searches, provides secure login with OTP verification, and offers advanced search and filtering options for donors to find charities and events based on preferences. Performance optimization includes a debounce mechanism for API requests triggered by map interactions and dynamic adjustments to search radius based on zoom levels to reduce backend load. Key integrations across the platform include Google Maps for geolocation, Stripe for payment processing, and email notifications for confirming donations and sending OTPs during registration or login.

Plum Technical Implementation
Stripe Stripe
Flutter Flutter
Google Maps Google Maps
Node.js Node.js
TypeScript TypeScript
MongoDB MongoDB
React React
Plaid Plaid
MongoDB MongoDB