This project aims to address these shortcomings by developing a robust and innovative centralized banking system with customized finance management platform that integrates seamlessly with online banking functionalities. This platform will empower users to consolidate multiple financial accounts into a single, secure interface, gain real-time insights into spending habits, budgeting, and investment performance, set and track financial goals effectively, access personalized financial advice and recommendations, and conduct secure online transactions with ease.
Watch the video 👇
- Next.js
- TypeScript
- Appwrite
- Plaid
- Dwolla
- React Hook Form
- Zod
- TailwindCSS
- Chart.js
- ShadCN
👉 Authentication: An ultra-secure SSR authentication with proper validations and authorization
👉 Connect Banks: Integrates with Plaid for multiple bank account linking
👉 Transaction History: Includes pagination and filtering options for viewing transaction history of different banks
👉 Real-time Updates: Reflects changes across all relevant pages upon connecting new bank accounts.
👉 Funds Transfer: Allows users to transfer funds using Dwolla to other accounts with required fields and recipient bank ID.
👉 Responsiveness: Ensures the application adapts seamlessly to various screen sizes and devices, providing a consistent user experience across desktop, tablet, and mobile platforms.
and many more, including code architecture and reusability.
- Clone the repository:
git clone [https://github.com/CodewithRajDeep/finance-flow.git]
- Install all dependcies
cd your-project npm install npm run dev # or yarn dev
- plugins installation
shadcn ui@latest sentry installation: https://docs.sentry.io/cli/installation/ plaid installation dwolla plugins
- Open http://localhost:3000 with your browser to see the result.
Make sure you have the following installed on your machine:
Create a new file named .env
in the root of your project and add the following content:
#NEXT
NEXT_PUBLIC_SITE_URL=
#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
Guidelines for contributing to the project.
Reporting Issues:
Search for existing issues: Before creating a new issue, search the issue tracker to see if the problem has already been reported. Provide clear and concise information: When creating a new issue, please include as much detail as possible, such as: Clear description of the problem Steps to reproduce the issue Expected behavior Actual behavior Screenshots or logs (if applicable) Use issue templates: If available, use the provided issue templates to structure your report.
Submitting Pull Requests:
Fork the repository: Create a fork of the project on your GitHub account. Create a new branch: Create a new branch based on the main branch or a feature branch. Make changes: Implement your changes and commit them with clear commit messages. Push changes to your fork: Push your changes to your forked repository. Open a Pull Request: Create a pull request from your branch to the main repository. Provide details: Clearly describe the changes you've made and the benefits they bring. Address code review feedback: Be open to feedback and make necessary changes.
Testing:
Write unit tests for any new features or bug fixes. Ensure existing tests pass after your changes.
Issued : Copyright (c)| 2024 Deep Raj