An open API service indexing awesome lists of open source software.

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.

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.