Modern banking simulation with full authentication, RLS-backed authorization, transaction processing and audit logs built on FastAPI + Supabase + Next.js.
| Component | URL |
|---|---|
| 🖥️ Frontend | https://rupeewave.vercel.app |
| ⚙️ Backend (Swagger) | https://rupeewave.onrender.com |
┌───────────────────────────┐
│ Frontend │
│ Next.js + ShadCN UI │
│ Sends cookies w/ fetch │
└────────────┬──────────────┘
│ HttpOnly Cookies
▼
┌───────────────────────────┐
│ Backend │
│ FastAPI + JWT │
│ Access + Refresh tokens │
└────────────┬──────────────┘
│ RLS Enforced
▼
┌───────────────────────────┐
│ Supabase │
│ Postgres + RLS Policies │
│ Audit Logs + RPCs │
└───────────────────────────┘
- Admin / Teller login
- JWT Access & Refresh (HttpOnly)
- Auto token refresh
- Bruteforce protection (PIN lockout)
- Full audit logs (IP + User-Agent)
- Create new account
- Update mobile/email
- Change PIN
- Balance check
- Deposit / Withdraw / Transfer
- Atomic RPC functions
- Fully logged
- Transaction timeline
- Transfer IN/OUT classification
- Audit logs on admin/teller activity
| Capability | Customer | Teller | Admin |
|---|---|---|---|
| Create Account | ❌ | ✅ | ✅ |
| View Own Balance | ✅ | ✅ | ✅ |
| Deposit / Withdraw | ✅ (self) | ✅ (for customers) | ✅ |
| Transfer | ✅ (self) | ✅ (for customers) | ✅ |
| Change PIN / Email / Mobile | ✅ (own) | ✅ (for customers) | ✅ |
| View All Users | ❌ | ✅ | ✅ |
| Create New User | ❌ | ❌ | ✅ |
| View Audit Logs | ❌ | ✅ | ✅ |
| Delete Users / Accounts | ❌ | ❌ | ✅ |
| Manage Roles | ❌ | ❌ | ✅ |
RupeeWave/
│
├── Backend/
│ ├── main.py
│ ├── auth/
│ ├── accounts/
│ ├── transactions/
│ ├── tests/
│ └── utils/
│
├── Frontend/
│ ├── app/
│ ├── components/
│ ├── lib/
│ └── hooks/
│
├── README.md
├── LICENSE
└── CONTRIBUTING.md
yarn install # or pip install -r requirements.txt
uvicorn main:app --reloadnpm install
npm run devpytest -vCovers:
- User & account creation
- Deposit, withdraw, transfer
- PIN security
- History validation
- Cookies are HttpOnly + Secure
- No tokens stored in JS
- RLS policies for all tables
- Auditing for every transaction
- Argument validation at DB + API level
- Customer Portal
- Teller analytics dashboard
- PDF statements
- SMS/Email alerts
git checkout -b feature/amazing-featuregit commit -m "Add amazing feature"git push origin feature/amazing-featureBug reports should include:
Steps to reproduce:
Expected behavior:
Actual behavior:
Environment:
Feature requests should include:
Use case:
Proposed solution:
Alternatives:
MIT License
Sri Charan Machabhakthuni Full-stack engineer | Python backend specialist





