This is a springboot webapp that emulates the validation and creation of account numbers using Nigeria's CBN protocol
# 💳 bankApp — NUBAN Account Management API
An emulation of a Nigerian bank account system that generates, validates, and manages NUBAN (Nigeria Uniform Bank Account Number) using the official CBN (Central Bank of Nigeria) specification.
Built with **Spring Boot 3**, **Java 17**, and **Spring Data JPA**.
---
## 🚀 Features
- ✅ Generate valid 10-digit NUBAN account numbers using checksum
- ✅ Validate existing NUBAN account numbers
- ✅ Store and retrieve account details (account number, name, bank code)
- ✅ Input validation using Jakarta Bean Validation
- ✅ H2/PostgreSQL database support
- ✅ Global exception handling
- ✅ RESTful design with meaningful HTTP status codes
- ✅ Swagger/OpenAPI documentation (if enabled)
---
## 🛠️ Technologies
- Java 17
- Spring Boot 3.x
- Spring Web
- Spring Data JPA
- Bean Validation
- PostgreSQL / H2 (runtime)
- Lombok
- Swagger (optional)
---
## 📦 Getting Started
### 1. Clone the repository
```bash
git clone
github.com
cd bankApp
```
2. Run the application
Make sure you have Java 17+ and Maven installed.
./mvnw spring-boot:run
The app will start on:
localhost
3. Create a new bank account
POST /api/accounts
Request body:
{
"bankCode": "999",
"accountName": "John Doe"
}
Response:
{
"bankCode": "999",
"accountNumber": "1234567891",
"accountName": "John Doe"
}
Validate a NUBAN account number
GET /api/accounts/validate?accountNumber=1234567891&bankCode=999
Response:
{
"valid": true
}
Get account details by account number
GET /api/accounts/{accountNumber}