BankSync is a powerful financial management tool that connects with multiple banks, helps users manage their transactions, and provides personalized savings recommendations. This project leverages modern web technologies to deliver a secure, user-friendly experience.
- Next.js: A React framework for server-side rendering and static site generation.
- TypeScript: For type-safe JavaScript development.
- Appwrite: Backend server for authentication and database management.
- Plaid: For integrating with multiple bank accounts.
- Dwolla: Facilitates funds transfers between accounts.
- React Hook Form: Manages form state efficiently with minimal re-renders.
- Zod: Schema declaration and validation library for TypeScript.
- TailwindCSS: Utility-first CSS framework for designing responsive UIs.
- Chart.js: A charting library to visualize transaction data.
- ShadCN: A collection of components built with Radix UI and Tailwind CSS.
- Ultra-secure server-side rendered (SSR) authentication with robust validation and authorization mechanisms, ensuring user data remains protected.
- Seamlessly integrate with multiple bank accounts using Plaid, allowing users to link and manage their financial accounts within the app.
- Displays a general overview of the user’s account, including total balance across all connected banks, recent transactions, money spent across different categories, and more.
- View a complete list of all connected banks, including respective balances and account details, providing users with a consolidated financial overview.
- Access a detailed transaction history with pagination and filtering options to easily navigate and search through past transactions across different banks.
- Real-time data synchronization across all relevant pages ensures that changes, such as connecting new bank accounts, are instantly reflected.
- Transfer funds between accounts using Dwolla, with required fields and recipient bank ID validation for secure transactions.
- The application is fully responsive, providing a seamless experience across desktop, tablet, and mobile devices, ensuring consistent usability on any screen size.
- The project emphasizes clean code architecture and reusability, making it easy to maintain and extend. Additional features include advanced error handling, modular components, and performance optimization. ##Preview
To get started with BankSync, follow the installation instructions below:
-
Clone the Repository:
git clone https://github.com/vaibhav720/BankSync.git cd BankSync
-
Install Dependencies:
npm install
-
Environment Setup:
- Create a
.env.local
file and add your environment variables for Next.js, Appwrite, Plaid, and Dwolla.
- Create a
-
Run the Application:
npm run dev
- The application will be available at
http://localhost:3000
.
- The application will be available at
We welcome contributions! If you'd like to contribute to BankSync, please fork the repository and submit a pull request. For major changes, please open an issue first to discuss what you'd like to change.
This project is licensed under the MIT License. See the LICENSE file for more details.