- 🍁 Introduction
- ⚙️ Tech Stack
- 🕸️ Features
- 🤸 Quick Start
- 📂 Project Structure
- 🔭 Deployment
⚠️ Error Monitoring- 🔗 Assets
- 🤝 Contributing
- 📄 License
Horizon is a online banking application built with Next.js, React, TaildwindCSS, Appwrite, Plaid & Dwolla that provides users with a secure and convenient way to manage their finances on the go. Key features include account management, bill pay, money transfers, budgeting tools and more. The app is designed to be fast, responsive and accessible across all devices. The goal of Horizon is to simplify personal finance management with an intuitive interface and seamless user experience. Modern banking functionality is made accessible through a minimal yet powerful feature set. Data security and privacy are top priorities, with credentials and transactions fully encrypted on the backend.
- Next.js 14
- TypeScript
- Tailwind CSS
- Appwrite (Backend as a Service)
- React Hook Form (Form Management)
- Zod (Input Validation)
- Chart.js (Graphs and Charts)
- ShadCN (Components library)
- Plaid API (Financial data aggregation)
- Dwolla API (Payment processing)
- Sentry (Error tracking and performance monitoring)
- User authentication and account management
- Bank account integration using Plaid
- Real-time transaction tracking and categorization
- Fund transfers between linked accounts
- Detailed financial insights and analytics
- Secure payment processing with Dwolla integration
- Responsive design for desktop and mobile devices
Follow these steps to set up the project locally on your machine.
Prerequisites
Make sure you have the following installed on your machine:
- Clone the repository:
git clone https://github.com/laxman-rathod/Horizon-Banking-App.git
- Install dependencies:
npm install
- Set up environment variables:
Create a .env.local
file in the root directory and add the necessary environment variables (refer to .env.example
for required variables).
#NEXT
NEXT_PUBLIC_SITE_URL=http://localhost:300
#APPWRITE
NEXT_PUBLIC_APPWRITE_ENDPOINT=https://cloud.appwrite.io/v1
NEXT_PUBLIC_APPWRITE_PROJECT=
APPWRITE_DATABASE_ID=
APPWRITE_USER_COLLECTION_ID=
APPWRITE_BANK_COLLECTION_ID=
APPWRITE_TRANSACTION_COLLECTION_ID=
APPWRITE_SECRET=
#PLAID
PLAID_CLIENT_ID=
PLAID_SECRET=
PLAID_ENV=
PLAID_PRODUCTS=
PLAID_COUNTRY_CODES=
#DWOLLA
DWOLLA_KEY=
DWOLLA_SECRET=
DWOLLA_BASE_URL=https://api-sandbox.dwolla.com
DWOLLA_ENV=sandbox
Replace the placeholder values with your actual respective account credentials. You can obtain these credentials by signing up on the Appwrite, Plaid and Dwolla
- Run the development server:
npm run dev
- Open http://localhost:3000 in your browser to see the application.
app/
: Next.js app router and page componentscomponents/
: Reusable React componentslib/
: Utility functions and API clientsconstants/
: Application-wide constantspublic/
: Static assetstype/
: TypeScript types
The app is configured for easy deployment on Vercel
. Connect your GitHub repository
to Vercel for automatic deployments on each push to the main branch.
Sentry
is integrated for error tracking and performance monitoring. Configure your Sentry DSN in the sentry.*.config.ts
files.
Static assets like images, fonts etc. are stored in the public
directory and referenced using the /
path prefix.
Contributions are welcome! Please feel free to submit a Pull Request.
To contribute:
Fork the repository
Create your feature branch (git checkout -b feature/your-feature
)
Commit your changes (git commit -m 'feat: add your feature'
)
Push to the branch (git push origin feature/your-feature
)
Open a pull request
This project is licensed under the MIT License.