Budget Breaker? Meet Your Fix.
Walnut is the revolutionary app for college students that makes saving automatic, even with irregular income. Uniquely, we harness your daily spending habits β not just your unpredictable incoming funds β giving you the flexibility you need to truly take control.
For ultimate discipline, Walnut directly re-routes your overspend into your financial goals. Plus, invest your discount wins and effortlessly round up every purchase. No more excuses.
Built for Capital One Tech Summit 2025.
Innovatively presented by the Walnut Team
- π Plaid Integration: Connect real bank accounts securely
- π° Round-up Savings: Automatically round up transactions to save
- π Transaction Tracking: View and manage your spending
- π― Savings Goals: Set and track investment targets
- π§ͺ Sandbox Environment: Test with Plaid's sandbox data
- π± Modern UI: Beautiful, responsive design
- Node.js (v16 or higher)
- npm or yarn
- Plaid account (for API credentials)
- Sign up for a Plaid account
- Navigate to the Plaid Dashboard
- Go to "Team Settings" β "Keys"
- Copy your
Client IDandSandbox Secret
cd serverCreate a .env file with your Plaid credentials:
PORT=3001
PLAID_CLIENT_ID=your_client_id_here
PLAID_SANDBOX_SECRET=your_sandbox_secret_herenpm installcd server
npm installcd server
npm startThe server will run on http://localhost:3001
npm run devThe app will run on http://localhost:5173
When connecting a bank account in the sandbox environment, use these credentials:
- Username:
user_good - Password:
pass_good - Bank: Chase Bank (or any available institution)
- Chase Bank (
ins_109508) - Bank of America (
ins_109509) - Wells Fargo (
ins_109510) - Citibank (
ins_109511) - US Bank (
ins_109512)
The sandbox environment includes:
- Sample checking and savings accounts
- Historical transaction data
- Realistic merchant names and amounts
GET /api/health- Health checkPOST /api/create-link-token- Create Plaid Link tokenPOST /api/exchange-token- Exchange public token for access tokenGET /api/accounts/:userId- Get user's bank accountsGET /api/transactions/:userId- Get user's transactionsPOST /api/sandbox/reset- Reset sandbox data
walnut/
βββ src/
β βββ components/
β β βββ Dashboard.jsx # Main dashboard with Plaid integration
β β βββ Login.jsx # Login component
β β βββ PlaidLink.jsx # Plaid Link component
β βββ services/
β β βββ plaidService.js # Plaid API service
β βββ config/
β β βββ plaid.js # Plaid configuration
β βββ styles/
β βββ Dashboard.css # Dashboard styles
β βββ Login.css # Login styles
β βββ PlaidLink.css # Plaid Link styles
βββ server/
β βββ server.js # Express server with Plaid API
β βββ package.json # Server dependencies
β βββ .env # Environment variables
βββ package.json # Frontend dependencies
- Create new components in
src/components/ - Add corresponding styles in
src/styles/ - Update the main App component to include new routes
- The app uses Plaid's Link component for secure bank authentication
- All Plaid API calls are proxied through the backend server
- Access tokens are stored server-side (in production, use a database)
- CSS modules or regular CSS files
- Responsive design with mobile-first approach
- Consistent color scheme and typography
- Set
NODE_ENV=production - Use production Plaid credentials
- Configure proper CORS settings
- Set up a production database for storing access tokens
- Never expose Plaid secrets in client-side code
- Use HTTPS in production
- Implement proper user authentication
- Store access tokens securely in a database
-
Plaid Link not loading
- Check that the backend server is running
- Verify Plaid credentials in
.envfile - Check browser console for errors
-
CORS errors
- Ensure the backend server has CORS enabled
- Check that the frontend is making requests to the correct URL
-
Transaction data not loading
- Verify that the bank account is properly connected
- Check that the access token is valid
- Ensure the date range is within available data
Enable debug logging by setting DEBUG=true in the backend .env file.
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under the MIT License.
For issues related to:
- Plaid API: Check the Plaid Documentation
- App functionality: Open an issue in this repository
- Setup problems: Check the troubleshooting section above