APIverse
Multi-backend user authentication and banking system with implementations in Flask, FastAPI, Java Spring Boot, NestJS, and Go
Multi-Backend Architecture
APIverse demonstrates the same authentication and banking functionality implemented across five different backend technologies: Flask, FastAPI, Java Spring Boot, NestJS, and Go. All backends are compatible with a single universal GUI client.
This project showcases how the same business logic can be implemented across different technology stacks while maintaining API compatibility.
APIverse
A comprehensive banking system with user authentication, account management, and financial operations. Choose your preferred backend technology stack.
View on GitHubBackend Implementations
Flask (Python)
- • Full banking functionality
- • JWT authentication
- • Password hashing
- • JSON data storage
FastAPI (Python)
- • High-performance async
- • Automatic API docs
- • Type safety
- • Full feature set
Spring Boot (Java)
- • Enterprise-grade security
- • BCrypt password hashing
- • RESTful architecture
- • Maven build system
NestJS (TypeScript)
- • Modular architecture
- • TypeScript type safety
- • BCrypt security
- • Dependency injection
Go
- • High performance and concurrency
- • BCrypt password hashing
- • Minimal dependencies
- • Fast compilation
Features
Authentication
- • User registration and login
- • JWT token-based auth
- • Password hashing (bcrypt)
- • Token expiration handling
Banking Operations
- • Create account with balance
- • Deposit and withdraw
- • Close account (zero balance)
Security
- • Unique account numbers
- • Balance validation
- • Account ownership verification
- • Secure password storage
Universal Client
- • Single GUI for all backends
- • Auto-detection of backend
- • Real-time balance updates
- • Error handling
Quick Start
1. Choose a backend:
2. Run the client:
3. Start banking:
Register a user, create an account, and perform banking operations. The client automatically works with any running backend.
- Universal Client: The GUI client automatically detects and works with any of the five backend servers running on port 5000.
- Data Storage: All backends use JSON files for data persistence (users.json and accounts.json).
- JWT Expiration: Tokens expire after 1 hour for security.
- Account Rules: Each user can have only one active account. Accounts must have zero balance to be closed.