SkyBanking is a secure and scalable banking web application built using a modern Java-based backend with PostgreSQL database support. It provides digital banking features such as user registration, login, account management, deposits, withdrawals, peer-to-peer transfers, QR-based payments, PDF reports, and administrator-level monitoring.
The system focuses on clean architecture, secure transaction handling, role-based access, database consistency, and production-ready deployment.
- Secure user registration and login
- OTP-based verification flow
- Account balance management
- Deposit and withdrawal support
- Peer-to-peer money transfer
- QR code-based payment system
- Transaction history tracking
- PDF account statements and invoices
- Profile and account information management
- Admin login and secure dashboard
- User account monitoring
- Transaction activity overview
- OTP and security audit tracking
- Banking configuration management
- Tax, limit, and interest-related controls
- User lifecycle management
| Layer | Technology |
|---|---|
| Backend | Java 21, Servlets, JSP |
| Database | PostgreSQL |
| Build Tool | Maven |
| Payment Gateway | Stripe |
| Security | BCrypt, OTP, Session Handling |
| Reports | PDF Generation |
| Deployment | Apache Tomcat / Render |
| Version Control | Git & GitHub |
src/main/java/com/skybanking/
โโโ model/ # Data models and entity classes
โโโ util/ # Utility services, validation, PDF, tax, security
โโโ web/ # User-side servlet controllers
โโโ admin/ # Admin-side servlet controllers
git clone <your-repository-url>
cd SkyBankingCreate the database:
CREATE DATABASE skybank;Import the PostgreSQL schema:
psql -U postgres -d skybank -f database/skybanking_schema_pg.sqlCreate a .env file in the root directory using .env.example as reference.
DB_URL=jdbc:postgresql://localhost:5432/skybank
DB_USER=postgres
DB_PASSWORD=your_secure_password
STRIPE_SECRET_KEY=sk_test_your_key_here
SMTP_PASSWORD=your_app_passwordNever commit the
.envfile to GitHub.
mvn clean packageCopy the generated WAR file:
target/BankingWebApp.war
Paste it inside the Tomcat webapps directory.
Start Tomcat:
bin/startup.batUser Portal:
http://localhost:9090/BankingWebApp/
Admin Portal:
http://localhost:9090/BankingWebApp/admin/
User Login:
https://skybanking.onrender.com/login
Admin Login:
https://skybanking.onrender.com/admin/login
If the database is hosted on Supabase and it gets paused due to inactivity, start it manually from the Supabase dashboard:
https://supabase.com/dashboard/project/
SkyBanking follows essential security practices required for public deployment:
- Passwords stored using BCrypt hashing
- Sensitive credentials loaded from environment variables
- No hardcoded database passwords or secret keys
- Secure session-based authentication
- Input validation on critical forms
- SQL injection protection using prepared statements
- Transaction safety using ACID-compliant database operations
- Safe payment verification using Stripe integration
- Audit logs for important system activities
- Android and iOS mobile application
- Multi-currency banking support
- AI-powered fraud detection
- Docker-based deployment
- Kubernetes scaling support
- Advanced analytics dashboard
- Email and SMS alert system
Developed with โค๏ธ by the SkyBanking Team

