Horizon Bank - A Fintech Bank Application
A modern fintech banking application built with Next.js, TypeScript, and Tailwind CSS, featuring secure bank integration through Plaid and ACH transfers via Dwolla.
💡 Inspiration
This was an interesting challenge - building a secure banking application in a week. I chose Appwrite over traditional AWS services here because it provided a faster development cycle while still maintaining security standards. The integration of Dwolla and Plaid APIs was crucial - I wanted to demonstrate I could work with real-world financial APIs. Sentry.io was added for error monitoring because in a banking app, you need to catch and address issues immediately.
🌟 Features
- Secure Authentication: User registration and login powered by Appwrite
- Bank Account Integration: Connect and manage bank accounts using Plaid API
- ACH Transfers: Facilitate secure bank transfers through Dwolla's ACH API
- Real-time Error Monitoring: Integrated Sentry.io for immediate issue detection and resolution
- Responsive Design: Mobile-first interface built with Tailwind CSS
- Type Safety: Built with TypeScript for enhanced code reliability
🚀 Live Demo
Visit the application at: https://banking-next-khaki.vercel.app
There are two ways to explore the application:
Option 1: Quick Demo Access
Use these pre-configured demo credentials for instant access:
Option 2: Full Experience
- Create your own account through the sign-up process
- After signing up, you'll be guided to connect your bank account through Plaid
- Use these Plaid sandbox credentials to link a Chase checking or savings account:
- Username: user_good
- Password: pass_good
🛠️ Technical Stack
- Frontend Framework: Next.js
- Language: TypeScript
- Styling: Tailwind CSS
- Backend as a Service: Appwrite
- Financial APIs:
- Plaid (Bank account integration)
- Dwolla (ACH transfers)
- Monitoring: Sentry.io
- Deployment: Vercel
🏗️ Local Development
Clone the repository:
git clone https://github.com/yourusername/horizon-bank.git
cd horizon-bank
Install dependencies:
npm install
# or
yarn install
Set up environment variables:
cp .env.example .env.local
Required environment variables:
NEXT_PUBLIC_APPWRITE_PROJECT_ID=
NEXT_PUBLIC_APPWRITE_ENDPOINT=
PLAID_CLIENT_ID=
PLAID_SECRET=
DWOLLA_API_KEY=
DWOLLA_API_SECRET=
SENTRY_DSN=
- Start the development server:
npm run dev
# or
yarn dev
The application will be available at http://localhost:3000
🔒 Security Features
- Secure bank account integration through Plaid's OAuth flow
- Encrypted data storage with Appwrite
- Real-time error tracking and monitoring with Sentry.io
- Secure ACH transfers through Dwolla's verified API
- Environment variable protection for sensitive credentials
📱 Key Components
- Auth System: Complete authentication flow with registration, login, and password reset
- Bank Integration: Seamless bank account connection through Plaid Link
- Transfer System: ACH transfer capabilities between connected accounts
- Dashboard: Real-time account balance and transaction monitoring
- Profile Management: User profile and settings management
🤝 Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
)
- Commit your changes (
git commit -m 'Add some AmazingFeature'
)
- Push to the branch (
git push origin feature/AmazingFeature
)
- Open a Pull Request
📄 License
This project is licensed under the MIT License - see the LICENSE.md file for details
🙏 Acknowledgments
- Next.js team for the amazing framework
- Appwrite for the robust backend services
- Plaid and Dwolla for their comprehensive financial APIs
- Sentry.io for error tracking capabilities
- The open-source community for their invaluable resources
Matthew Bixby - LinkedIn - matthew.bixby1@gmail.com
Project Link: https://github.com/yourusername/horizon-bank