Skip to content

MattBarhou/MiniBank

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MiniBank Backend API

MiniBank is a Spring Boot REST API that simulates core digital banking operations: secure user authentication, account management, money transfers, transaction history, fraud flagging, and admin oversight.

Features

  • JWT-based authentication with Spring Security
  • Role-based access control (CUSTOMER, ADMIN)
  • Account creation and balance tracking
  • Account statuses: ACTIVE, FROZEN, CLOSED
  • Internal transfers with transactional consistency (@Transactional)
  • Transaction history filtering (date, amount, type) with pagination/sorting
  • Fraud/risk flagging for suspicious transfers (high-value/frequent activity)
  • Admin APIs for dashboard metrics, account freezing, and flagged transaction review
  • Audit logging for sensitive admin actions

Tech Stack

  • Java 17
  • Spring Boot 4
  • Spring Web MVC
  • Spring Data JPA
  • Spring Security
  • JWT (jjwt)
  • MySQL 8
  • Liquibase (migrations + seed data)
  • OpenAPI/Swagger (springdoc)
  • JUnit 5 + Mockito
  • Docker Compose (local MySQL)
  • dotenv support for local environment secrets

Data Model

  • users
  • roles
  • user_roles
  • accounts
  • transactions
  • fraud_flags
  • audit_logs

API Documentation

  • Swagger UI: http://localhost:8080/swagger-ui.html
  • OpenAPI JSON: http://localhost:8080/api-docs

Notes

  • Configuration is environment-driven for sensitive values (JWT/admin secrets)
  • Built as a practical backend foundation for digital banking workflows and future production-style enhancements

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages