A full‑stack digital banking accounts platform inspired by EQ Bank, built with Spring Boot and Angular. This project demonstrates modern backend API design, frontend integration, validation, testing, and clean architecture practices aligned with real‑world financial systems.
The EQ Banking Platform allows users to:
- Create bank accounts
- View all accounts
- Deposit and withdraw funds
- Freeze, unfreeze, and close accounts
- Validate inputs on both frontend and backend
- Persist data using an in‑memory relational database
The project is intentionally designed to mirror enterprise banking workflows and graduate‑level engineering expectations.
eq-banking-platform/
├── backend/
│ └── account-serv/ # Spring Boot microservice
│ ├── domain/ # JPA entities
│ ├── dto/ # Request/response DTOs
│ ├── repository/ # JPA repositories
│ ├── service/ # Business logic
│ ├── web/ # REST controllers
│ └── config/ # MVC + SPA forwarding config
│
├── frontend/
│ └── eq-banking-web/ # Angular application
│ └── src/
│ ├── accounts/ # Feature module
│ ├── services/ # API services
│ └── ui/ # Components & styles
└── README.md
Backend: Spring Boot 4, Java 21, JPA, H2
Frontend: Angular, TypeScript, SCSS
- Java 21
- Spring Boot 4
- Spring MVC
- Spring Data JPA
- H2 (in‑memory database)
- Bean Validation (Jakarta Validation)
- Spring Security (Basic Auth)
- JUnit 5 & Spring Test
- Angular
- TypeScript
- SCSS (Modern CSS Variables, Dark Mode)
- REST API integration
The API is secured using HTTP Basic Authentication.
- Username:
admin - Password:
password
All frontend requests automatically inject these credentials via the Authorization header.
Base URL:
http://localhost:8081/api/accounts
| Method | Endpoint | Description |
|---|---|---|
| POST | / | Create account |
| GET | / | Get all accounts |
| GET | /{id} | Get account by ID |
| POST | /{id}/deposit | Deposit funds |
| POST | /{id}/withdraw | Withdraw funds |
| POST | /{id}/freeze | Freeze account |
| POST | /{id}/unfreeze | Unfreeze account |
| POST | /{id}/close | Close account |
This project includes unit and integration tests aligned with enterprise standards.
AccountServiceTest– business logic validationCreateAccountRequestValidationTest– DTO validation rules
- Input validation
- Default account state
- Persistence correctness
- API contract behavior
cd backend/account-serv
./mvnw spring-boot:runBackend runs on:
http://localhost:8081
cd frontend/eq-banking-web
npm install
ng serveFrontend runs on:
http://localhost:4200
The Angular app consumes the Spring Boot API directly.
In production builds, Angular can be compiled into Spring Boot’s static/ directory for a single‑artifact deployment.
- DTO‑first API design to avoid entity leakage
- Service‑layer business rules (not controllers)
- Explicit account state transitions (ACTIVE, FROZEN, CLOSED)
- Validation on backend for security
- Angular feature‑module separation
- Advanced Authorization (JWT / OAuth2)
- Persistent database (PostgreSQL)
- Pagination & filtering
- CI pipeline (GitHub Actions)
- API documentation (OpenAPI / Swagger)
- Dockerized deployment
Maxence Jules
B.Sc. Computer Science Student
Aspiring Software Engineer
GitHub: https://github.com/Maxencejules
This project is provided for educational and portfolio purposes.