A secure, full-stack financial management platform that allows users to link multiple bank accounts, view real-time transactions, and transfer funds. Built with Next.js 14, Appwrite, and Plaid.
MoneyMap addresses the fragmentation of modern banking by unifying accounts into a single dashboard. It leverages Plaid for secure bank authentication and Dwolla for handling ACH payment transfers.
The application ensures type safety using TypeScript and manages secure backend processes (Database & Auth) via Appwrite, focusing on performance and security compliance.
| Financial Dashboard | Transaction History |
|---|---|
| Connect Bank Flow | Tranfer Funds |
|---|---|
- Framework: Next.js 14 (App Router, Server Actions)
- Language: TypeScript
- Styling: Tailwind CSS + Shadcn/UI
- Form Handling: React Hook Form + Zod
- BaaS (Backend-as-a-Service): Appwrite (Auth, Database, Functions)
- Banking API: Plaid (Account linking, Transaction data)
- Payments: Dwolla (ACH Transfers)
- Monitoring: Sentry (Error Tracking)
- 🔐 Bank-Grade Security: Integration with Plaid Link ensures banking credentials are never stored on our servers.
- 💸 Fund Transfers: Authorized users can initiate ACH transfers between connected accounts via Dwolla.
- 📊 Real-time Insights: Dynamic charts using
Chart.jsto visualize spending habits and income streams. - 📱 Multi-Device Sync: Fully responsive UI optimized for mobile banking experiences.
- 👤 Secure Auth: SSR-compatible authentication flows powered by Appwrite.
- Node.js 18+
- Appwrite Cloud Account
- Plaid Sandbox Account
- Dwolla Sandbox Account
git clone [https://github.com/your-username/moneymap.git](https://github.com/your-username/moneymap.git)
cd moneymap
npm installCreate a .env.local file in the root directory and add your keys:
# Appwrite
NEXT_PUBLIC_APPWRITE_ENDPOINT=[https://cloud.appwrite.io/v1](https://cloud.appwrite.io/v1)
NEXT_PUBLIC_APPWRITE_PROJECT=your_project_id
APPWRITE_DATABASE_ID=your_db_id
APPWRITE_USER_COLLECTION_ID=your_collection_id
# Plaid
PLAID_CLIENT_ID=your_plaid_id
PLAID_SECRET=your_plaid_secret
PLAID_ENV=sandbox
# Dwolla
DWOLLA_KEY=your_dwolla_key
DWOLLA_SECRET=your_dwolla_secret
DWOLLA_BASE_URL=[https://api-sandbox.dwolla.com](https://api-sandbox.dwolla.com)npm run devVisit http://localhost:3000 to view the application.
MoneyMap/
├── app/ # Next.js App Router Pages
├── components/ # Reusable UI Components
├── lib/ # Utility functions (Plaid/Appwrite config)
├── public/ # Static assets
└── types/ # TypeScript Interfaces-
Integration with Stripe for Card Payments.
-
AI-powered spending predictions.
-
Dark Mode support.