Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mahmud0808/quantabank
A financial platform built with Next.js for real-time bank account management and fund transfers.
https://github.com/mahmud0808/quantabank
appwrite dwolla-v2 nextjs14 plaid shadcn-ui
Last synced: about 1 month ago
JSON representation
A financial platform built with Next.js for real-time bank account management and fund transfers.
- Host: GitHub
- URL: https://github.com/mahmud0808/quantabank
- Owner: Mahmud0808
- Created: 2024-07-09T18:23:16.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2024-08-04T13:30:37.000Z (5 months ago)
- Last Synced: 2024-08-04T15:29:42.001Z (5 months ago)
- Topics: appwrite, dwolla-v2, nextjs14, plaid, shadcn-ui
- Language: TypeScript
- Homepage:
- Size: 1.12 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Quanta Bank
Quanta Bank is a dynamic financial platform that connects to multiple bank accounts, displays transactions in real-time, allows users to transfer money to other platform users, and manages their finances comprehensively. Built with Next.js, TypeScript, and Appwrite, Quanta Bank offers a seamless and secure experience for managing and interacting with financial data.
## ✨ Features
- **Authentication:** An ultra-secure SSR authentication with proper validations and authorization.
- **Connect Banks:** Integrates with Plaid for multiple bank account linking.
- **Home Page:** Shows a general overview of the user account with total balance from all connected banks, recent transactions, money spent on different categories, etc.
- **My Banks:** Check the complete list of all connected banks with respective balances and account details.
- **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.
- **Frontend:** Next.js, Shadcn UI, TailwindCSS
- **Backend:** Next.js, Appwrite
- **Forms:** React Hook Form for form handling
- **Validation:** Zod for input validation
- **Type Safety:** TypeScript for type-checking and improved code quality
- **Integration:** Plaid and Dwolla for secure connection to bank account
- **Serverless APIs:** Deploy and manage APIs serverlessly
Follow these steps to set up the project locally on your machine.
### Prerequisites
Make sure you have the following installed on your machine:
- [Git](https://git-scm.com/)
- [Node.js](https://nodejs.org/en)
- [npm](https://www.npmjs.com/) (Node Package Manager)### Cloning the Repository
```bash
git clone https://github.com/Mahmud0808/QuantaBank.git
cd QuantaBank
```### Installation
Install the project dependencies using npm:
```bash
npm install
```### Set Up Environment Variables
Create a new file named `.env` in the root of your project and add the following content:
```env
#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 credentials. You can obtain these credentials by signing up for the corresponding websites on [Appwrite](https://appwrite.io/?utm_source=youtube&utm_content=reactnative&ref=JSmastery), [Plaid](https://plaid.com/) and [Dwolla](https://www.dwolla.com/).
### Running the Project
```bash
npm run dev
```Open [http://localhost:3000](http://localhost:3000) in your browser to view the project.
## 🤝 Contributing
Contributions are welcome! Here's how you can contribute:
- 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.## 📬 Contact
Wanna reach out to me? DM me at 👇
Email: [email protected]