https://github.com/gowth6m/bank-thing
Open Banking integration platform using NestJS, React, Redis, BullMQ, and Postgres. Connect and sync bank accounts.
https://github.com/gowth6m/bank-thing
bullmq nestjs react redis
Last synced: 6 months ago
JSON representation
Open Banking integration platform using NestJS, React, Redis, BullMQ, and Postgres. Connect and sync bank accounts.
- Host: GitHub
- URL: https://github.com/gowth6m/bank-thing
- Owner: gowth6m
- License: mit
- Created: 2025-05-09T18:29:41.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-05-12T23:42:59.000Z (6 months ago)
- Last Synced: 2025-05-13T00:24:50.999Z (6 months ago)
- Topics: bullmq, nestjs, react, redis
- Language: TypeScript
- Homepage: https://bank-thing.gowtham.io
- Size: 208 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Bank Thing
## Description
Simple bank application that uses Yapily (open banking provider) to fetch bank accounts, transactions, and balances. The application is with React frontend, NestJS backend, Postgres database and Redis with BullMQ for job queueing.
## Links
- [Live Demo](https://bank-thing.gowtham.io)
- [API Documentation](https://api.bank-thing.gowtham.io/docs)
## Bank Connect & Sync Flow
```text
1. FE → BE : POST /bank/connect
2. BE → Yapily : create auth URL
3. FE : redirect browser to Yapily
4. User ↔ Yapily : login & consent
5. Yapily → BE : GET /bank/callback?consent=…
6. BE : save consent & enqueue “sync-account” jobs
7. FE : open SSE → GET /event/sync
8. Worker : process jobs → fetch & save transactions
9. Worker → FE : emit SSE “transactions-updated” events
10. FE : on SSE event → refresh UI
```
## Running the Application
Run locally using docker compose (localhost:80)
```sh
make docker-local-up
```
## Required Environment Variables
- `YAPILY_APP_ID`: The application ID for Yapily. This is required for the application to connect to the Yapily API.
- `YAPILY_APP_SECRET`: The application secret for Yapily. This is required for the application to connect to the Yapily API.
- `DATABASE_URL`: The URL for the database. This is required for the application to connect to the database.
- `REDIS_HOST`: The host for the Redis server. This is required for the application to connect to the Redis server.
- `REDIS_PORT`: The port for the Redis server. This is required for the application to connect to the Redis server.