Securebank
No description available
Install / Use
/learn @SecureBANK2025/SecurebankREADME
SecureBank - Modern Banking Application
<div align="center"> <img src="https://img.shields.io/badge/Angular-19-red" alt="Angular Version"> <img src="https://img.shields.io/badge/Node.js-v14+-green" alt="Node.js Version"> <img src="https://img.shields.io/badge/TypeScript-4.5+-blue" alt="TypeScript Version"> <img src="https://img.shields.io/badge/MongoDB-4.4+-green" alt="MongoDB Version"> </div>📋 Table of Contents
- Overview
- Features
- Technical Architecture
- Project Structure
- API Documentation
- Setup Guide
- Development Guide
- Security Features
- Testing
- Deployment
- Contributing
- Contributors
Overview
SecureBank is a comprehensive banking application that combines modern web technologies with biometric authentication to provide a secure and user-friendly banking experience. The application allows users to perform various banking operations while ensuring high security through biometric authentication and two-factor verification.
🎯 Key Objectives
- Provide secure and convenient banking operations
- Implement biometric authentication for enhanced security
- Support multiple account types and banking services
- Ensure real-time transaction processing
- Maintain high performance and scalability
Features
Authentication & Security
- 🔐 Biometric fingerprint authentication
- 📧 Email OTP verification
- 🔑 Traditional email/PIN login
- 🛡️ JWT token-based security
- 🔒 Card freezing functionality
- 🔄 Session management
- 🚫 Rate limiting
- 🔍 Activity logging
Account Management
- 💳 Multiple account types support
- Current accounts
- Savings accounts
- Foreign currency accounts
- 📊 Account details view
- 💰 Balance and IBAN information
- 📜 Transaction history with filtering
Banking Operations
- 💵 Money deposits
- 💸 Money withdrawals
- 💱 Money transfers between accounts
- 📈 Certificate of deposit purchase
- 💳 Bank card management
Technical Architecture
Frontend
- Framework: Angular 19
- UI Libraries:
- Angular Material
- Bootstrap
- Styling: SCSS
- Authentication: JWT
- State Management: NgRx
- Build Tool: Angular CLI
Backend
- Runtime: Node.js
- Framework: Express.js
- Language: TypeScript
- Database: MongoDB
- Authentication: JWT
- API Documentation: Swagger
- Testing: Jest
- Logging: Winston
- Validation: Joi
Hardware Integration
- Controller: ESP32 Microcontroller
- Sensor: Adafruit Fingerprint Sensor (R307)
- Programming: Arduino IDE
- Communication: WiFi
- Security: Local encryption
Project Structure
securebank/
├── Angular/ # Frontend application
│ ├── src/ # Source code
│ │ ├── app/ # Application modules
│ │ ├── assets/ # Static assets
│ │ ├── environments/ # Environment configs
│ │ └── styles/ # Global styles
│ ├── public/ # Public assets
│ └── package.json # Frontend dependencies
│
├── Back-end/ # Backend application
│ ├── controllers/ # Business logic
│ ├── Models/ # Database schemas
│ ├── Routes/ # API endpoints
│ ├── Utils/ # Helper functions
│ ├── Interfaces/ # TypeScript interfaces
│ ├── validators/ # Input validation
│ ├── DB_config/ # Database configuration
│ ├── tests/ # Test files
│ └── docs/ # API documentation
│
└── docs/ # Project documentation
├── api/ # API documentation
├── setup/ # Setup guides
└── architecture/ # Architecture diagrams
API Documentation
Authentication
POST /api/v1/auth/signup
Content-Type: application/json
{
"email": "user@example.com",
"password": "securePassword",
"name": "John Doe"
}
POST /api/v1/auth/login
Content-Type: application/json
{
"email": "user@example.com",
"password": "securePassword"
}
POST /api/v1/auth/loginWithFinger
Content-Type: application/json
{
"fingerprintId": "user_fingerprint_id"
}
POST /api/v1/auth/verifyOTP
Content-Type: application/json
{
"email": "user@example.com",
"otp": "123456"
}
Accounts
POST /api/v1/accounts/create
Content-Type: application/json
{
"type": "savings",
"currency": "USD"
}
GET /api/v1/accounts/myAccount
Authorization: Bearer <token>
GET /api/v1/accounts/:id
Authorization: Bearer <token>
Transactions
POST /api/v1/transactions/deposit
Content-Type: application/json
{
"accountId": "account_id",
"amount": 1000,
"currency": "USD"
}
POST /api/v1/transactions/withdraw
Content-Type: application/json
{
"accountId": "account_id",
"amount": 500,
"currency": "USD"
}
POST /api/v1/transactions/transfer
Content-Type: application/json
{
"fromAccount": "account_id_1",
"toAccount": "account_id_2",
"amount": 100,
"currency": "USD"
}
GET /api/v1/transactions/history
Authorization: Bearer <token>
Setup Guide
Prerequisites
- Node.js (v14 or higher)
- Angular CLI (v19 or higher)
- MongoDB (v4.4 or higher)
- Arduino IDE
- ESP32 microcontroller
- fingerprint sensor (R307)
- Git
Environment Setup
- Clone the repository:
git clone https://github.com/SecureBANK2025/securebank.git cd securebank
Backend Setup
-
Navigate to backend directory:
cd Back-end -
Install dependencies:
npm install -
Create
.envfile:# Server Configuration PORT=3000 NODE_ENV=development # Database Configuration DB=mongodb://localhost:27017/securebank # JWT Configuration JWT_SECRET_KEY=your_secret_key JWT_EXPIRES_IN=24h # Email Configuration EMAIL_USERNAME=your_email@example.com EMAIL_PASSWORD=your_email_password EMAIL_HOST=smtp.example.com EMAIL_PORT=587 # ESP32 Configuration ESP_IP=192.168.x.x ESP_PORT=80 # Security Configuration RATE_LIMIT_WINDOW=15m RATE_LIMIT_MAX=100 -
Start server:
# Development npm run dev # Production npm run build npm start
Frontend Setup
-
Navigate to Angular directory:
cd Angular -
Install dependencies:
npm install -
Start development server:
# Development ng serve # Production ng build --prod -
Access application at
http://localhost:4200
ESP32 Setup
-
Install required libraries in Arduino IDE:
- Adafruit Fingerprint Sensor Library
- ESP32 WebServer
- ArduinoJson
- WiFiManager
-
Configure ESP32:
// WiFi Configuration const char* ssid = "YourWiFiSSID"; const char* password = "YourWiFiPassword"; // Server Configuration const int serverPort = 80; -
Upload
main.inoto ESP32 -
Connect fingerprint sensor
-
Power on ESP32 and connect to WiFi
Development Guide
Code Style
- Follow Angular style guide
- Use TypeScript strict mode
- Follow ESLint rules
- Write meaningful commit messages
Git Workflow
- Create feature branch
- Make changes
- Write tests
- Submit pull request
- Code review
- Merge to main
Testing
# Backend Tests
cd Back-end
npm test
# Frontend Tests
cd Angular
ng test
Security Features
- JWT authentication for all protected endpoints
- Secure PIN hashing using bcrypt
- Local fingerprint data storage on the R307 sensor
- Email OTP verification
- CORS protection
- Rate limiting
- Input validation
- XSS protection
- SQL injection prevention
- Secure session management
- Regular security audits
Deployment
Backend Deployment
-
Build the application:
npm run build -
Set up PM2:
npm install -g pm2 pm2 start dist/main.js
Frontend Deployment
-
Build for production:
ng build --prod -
Deploy to hosting service (e.g., Netlify, Vercel)
Contributing
- Fork the repository
- Create feature branch
- Commit changes
- Push to branch
- Create pull request
Contributors
Related Skills
node-connect
353.3kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
111.7kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
353.3kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
353.3kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
