Built with Next.js 14, Horizon is designed to be a one-stop solution for personal and small business finance. It integrates with industry-standard APIs like Plaid and Dwolla to bridge the gap between traditional banking and modern software interfaces.
- Framework: Next.js 14 (App Router)
- Language: TypeScript
- Styling: Tailwind CSS, ShadCN
- Charts: Chart.js
- Forms: React Hook Form, Zod
- Backend-as-a-Service: Appwrite (Auth & Database)
- Banking API: Plaid
- Payment Processing: Dwolla
- Secure Authentication: Ultra-secure SSR-based authentication with proper validation and authorization via Appwrite.
- Connect Banks: Integration with Plaid for linking multiple bank accounts simultaneously.
- Home Page Dashboard: Overview of total balances across all banks, recent transactions, and category-based spending charts.
- Funds Transfer: Securely transfer funds using Dwolla to other platform users with real-time status updates.
- Transaction Management: Advanced filtering and pagination for viewing full transaction histories.
Follow these steps to set up the project locally on your machine.
Make sure you have the following installed:
-
Clone the Repository
git clone https://github.com/DeveloperThierry/banking.git cd banking -
Install Dependencies
npm install
-
Set Up Environment Variables Create a
.envfile in the root directory and add the following:# NEXT NEXT_PUBLIC_SITE_URL=http://localhost:3000 # APPWRITE NEXT_PUBLIC_APPWRITE_ENDPOINT=[https://cloud.appwrite.io/v1](https://cloud.appwrite.io/v1) NEXT_PUBLIC_APPWRITE_PROJECT= APPWRITE_DATABASE_ID= APPWRITE_SECRET= # PLAID PLAID_CLIENT_ID= PLAID_SECRET= PLAID_ENV=sandbox # DWOLLA DWOLLA_KEY= DWOLLA_SECRET= DWOLLA_BASE_URL=[https://api-sandbox.dwolla.com](https://api-sandbox.dwolla.com)
-
Running the Project
npm run dev
Open http://localhost:3000 in your browser.
To test the application in a sandbox environment:
- Sign Up: Create a new account.
- Link Bank: Navigate to "Connect Bank" and use the Plaid sandbox credentials.
- Analyze: View the dashboard to see your balance and transaction history automatically populated.
- Transfer: Use the "Payment Transfer" tab to send a test payment to another user on the platform.
We encourage community contributions! Please check out our CONTRIBUTING.md for our submission process and coding standards.
This project is licensed under the MIT License. See the LICENSE file for full details.
Thank you for your assests and guidance @jsmastery





