Production-style full stack banking platform built with Spring Boot and React.
This project includes:
- Spring Boot backend with layered architecture
- JWT authentication with role-based access
- Banking modules for users, accounts, transactions, and admin operations
- React + Vite + Tailwind frontend for customers, employees, and admins
- Swagger/OpenAPI documentation
- File-based logging for debugging
- Java 25
- Spring Boot 4
- Spring Security
- JWT
- Spring Data JPA / Hibernate
- Maven
- H2 for local development
- MySQL / PostgreSQL ready configuration
- React
- Vite
- Tailwind CSS
- React Router
- Axios
- User registration
- Login with JWT authentication
- Refresh token flow
- Role-based access for
ADMIN,EMPLOYEE, andCUSTOMER - Profile management
- Create savings and current accounts
- Multiple accounts per user
- Balance tracking
- Account freeze and unfreeze support
- Deposit money
- Withdraw money
- Transfer money between accounts
- Transaction history
- View all users
- View all transactions
- Freeze and unfreeze accounts
- Swagger UI
- Global exception handling
- Validation
- Application logs written to file
- Seeded demo users for quick testing
banking_app/
|-- frontend/ # React + Tailwind frontend
|-- src/main/java/com/prismbyte/banking_app
| |-- bootstrap/
| |-- config/
| |-- controller/
| |-- dto/
| |-- entity/
| |-- exception/
| |-- repository/
| |-- security/
| `-- service/
|-- src/main/resources/
`-- pom.xml
From the project root:
./mvnw spring-boot:runOn Windows PowerShell:
.\mvnw.cmd spring-boot:runBackend base URL:
http://localhost:8080/api
From the frontend folder:
npm install
npm run devFrontend URL:
http://localhost:5173
The frontend expects the backend at:
http://localhost:8080/api
If needed, create frontend/.env:
VITE_API_BASE_URL=http://localhost:8080/api- Admin:
admin@prismbyte.com / Admin@12345 - Employee:
employee@prismbyte.com / Employee@12345 - Customer:
customer@prismbyte.com / Customer@12345
- Swagger UI:
http://localhost:8080/api/swagger-ui.html - OpenAPI JSON:
http://localhost:8080/api/v3/api-docs
- URL:
http://localhost:8080/api/h2-console
- Log file:
logs/banking-app.log
/api/auth/*/api/users/me/api/accounts/*/api/transactions/*/api/admin/*
Backend verification completed with:
./mvnw testFrontend verification completed with:
npm run build- Replace the default JWT secret before production
- Replace seeded demo credentials
- Point datasource settings to MySQL or PostgreSQL
- Add Flyway or Liquibase migrations for stronger schema control
- Add integration and end-to-end tests for critical workflows
You can add screenshots here later for:
- Login page
- Customer dashboard
- Accounts page
- Transactions page
- Admin console