Full-stack banking app with:
client: React + TypeScript + Viteserver: Node.js + Express + TypeScriptclient/ - frontend appserver/ - backend APIinit_schema.sql - database schema bootstrapGET /auth/meIN_DOUBT, recover flow)Create server/.env (you can copy from server/.example_env):
PORT=5001
CORE_DB_URL=postgresql://...
LEDGER_DB_URL=postgresql://...
PG_DISABLE_SSL=false
SIMULATE_FAILURE=false
AUTH_SECRET=dev-auth-secret-change-me
AUTH_TOKEN_TTL_SECONDS=86400
BCRYPT_SALT_ROUNDS=12
cd server && npm install
cd ../client && npm install
Start backend:
cd server
npm run dev
Start frontend:
cd client
npm run dev
URLs:
http://localhost:5173http://localhost:5001Backend:
cd server
npm run typecheck
npm run build
npm run start
Frontend:
cd client
npm run build
npm run preview
Auth:
POST /auth/registerPOST /auth/loginGET /auth/meAccounts:
POST /accountsGET /accounts/overviewGET /accounts/recipient-accounts?username=...GET /accounts/:accId/transactions?limit=5POST /accounts/:accId/transferPOST /accounts/:accId/adjust-balanceDELETE /accounts/:accIdTransactions (2PC simulation):
POST /transactions/transferGET /transactions/:txIdPOST /transactions/:txId/recoverGET /transactions/failpointPOST /transactions/failpointhttp://localhost:5001.client/README.mdclient/src/README.mdserver/README.mdserver/src/README.md