https://github.com/jaynightmare/mini-java-banking
Mini Banking System using Java, Spring Boot, and Gradle
https://github.com/jaynightmare/mini-java-banking
bank banking gradle java spring-boot
Last synced: about 1 month ago
JSON representation
Mini Banking System using Java, Spring Boot, and Gradle
- Host: GitHub
- URL: https://github.com/jaynightmare/mini-java-banking
- Owner: JayNightmare
- Created: 2025-09-12T02:20:48.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-09-12T02:21:00.000Z (9 months ago)
- Last Synced: 2025-10-04T04:48:01.990Z (9 months ago)
- Topics: bank, banking, gradle, java, spring-boot
- Language: HTML
- Homepage:
- Size: 69.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Core Banking Application
## Setup Instructions
### 1. Database Setup
Make sure you have PostgreSQL running with the following configuration:
- Database: `bank`
- Username: `bank`
- Password: `bank`
- Port: `5432`
### 2. API Keys Setup
You have two options to configure your OpenAI API key:
#### Option A: Using application-secrets.yml (Recommended)
1. Copy the template file:
```bash
cp src/main/resources/application-secrets.yml.template src/main/resources/application-secrets.yml
```
2. Edit `src/main/resources/application-secrets.yml` and replace `your-actual-openai-key-here` with your actual OpenAI API key
3. The file will be automatically ignored by Git
#### Option B: Using Environment Variables
Set the environment variable before running the application:
```bash
# Windows
set OPENAI_API_KEY=your-actual-openai-key-here
# Linux/Mac
export OPENAI_API_KEY=your-actual-openai-key-here
```
### 3. Running the Application
```bash
# Build and run
./gradlew bootRun
# Or just build
./gradlew build
```
The application will start on `http://localhost:8080`
### 4. Security Notes
- Never commit your actual API keys to version control
- The `application-secrets.yml` file is excluded from Git
- Use environment variables in production environments
- The application includes a fallback dummy key for development testing
## Web Interface
The application includes a complete web-based GUI accessible at:
### Main Interface
- **Dashboard**: `http://localhost:8080/` - Overview and quick actions
- **Customers**: `http://localhost:8080/customers` - Customer management
- **Accounts**: `http://localhost:8080/accounts` - Account management
- **Transactions**: `http://localhost:8080/transactions` - Transaction history and transfers
### Features
- 📊 **Dashboard**: Statistics overview and quick actions
- 👥 **Customer Management**: Create and view customers
- 💳 **Account Management**: Create accounts with auto-generated IBANs
- 💸 **Money Transfers**: Transfer money between accounts with transaction history
- 📱 **Responsive Design**: Works on desktop and mobile devices
- 🎨 **Modern UI**: Bootstrap-based professional banking interface
## API Endpoints
- Health Check: `GET /actuator/health`
- Application Info: `GET /actuator/info`
- Customer API: `POST /api/v1/customers`
## Development
The application uses:
- Spring Boot 3.5.5
- Java 21
- PostgreSQL 17
- Flyway for database migrations
- Spring Security
- Spring AI with OpenAI integration