GitHunt
QU

Quickredtech/c-bank-app_false-trial

DISCLAIMER: this application don't do real transfer

DISCLAIMER: this application does not do real-world banking.
Transfers are either real (between local accounts) or simulated; no external systems are involved.
This application is made in C++.

Neon database:

  • Set NEON_DATABASE_URL in your environment to your Neon Postgres connection string.
  • Example (PowerShell session only):
    $env:NEON_DATABASE_URL = "postgresql://USER:PASSWORD@HOST/DB?sslmode=require"

Dependencies:

  • Install libpqxx (C++ PostgreSQL library)
    On MSYS2: pacman -S mingw-w64-x86_64-libpqxx
    Or download from https://github.com/jtv/libpqxx and build/install.

Build (Windows, MSVC or MinGW):
g++ -std=c++17 -O2 -o main.exe main.cpp database.cpp account.cpp transaction.cpp ui.cpp utils.cpp -lpqxx -lpq

Run:
.\main.exe

Schema:

  • accounts: user login + balances
  • transactions: all deposits/withdrawals/transfers/fake transfers
  • statements: monthly statements stored as JSON

Security notes:

  • PINs are stored as a salted hash (FNV-1a 64-bit). This is not cryptographically strong.
  • Accounts lock for 60 seconds after 3 failed login attempts.

Exports:

  • While logged in, use "Export History" to create:
    history_.csv
    history_.json

Monthly statements:

  • Use "Generate Monthly Statement" to store statement data in Neon.

Migration:

  • Run .\migrate.ps1 to create Neon tables explicitly (requires psql).
  • Or run: psql "$env:NEON_DATABASE_URL" -f migrations.sql

Languages

C++96.7%PowerShell1.5%Makefile1.2%C0.6%

Contributors

Created January 18, 2025
Updated February 4, 2026