Skip to content
Β 
Β 

Latest commit

Β 

History

128 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

🧠 Squad2 Banking System – COBOL to Modern Stack

A fullstack modern banking system inspired by a legacy COBOL application. This project was developed as part of the Hackathon: COBOL to Modern Stack, modernizing core banking features using Spring Boot (Java) for the backend and Angular for the frontend.

The application implements secure customer management, account operations, and transaction handling, using JWT authentication, RESTful APIs, and a modular frontend interface with Angular.


🧱 Project Structure

squad2-cobol/
β”œβ”€β”€ backend/              # Spring Boot API (Java)
β”œβ”€β”€ frontend/             # Angular Web Application
β”œβ”€β”€ README.md             # Unified documentation

πŸ” Backend – Spring Boot API

Features

  • βœ… Customer registration and authentication (JWT)
  • βœ… Account creation and management
  • βœ… Transaction logging (deposits, withdrawals)
  • βœ… Role-based access control
  • βœ… In-memory persistence with H2
  • βœ… OpenAPI/Swagger documentation
  • βœ… Unit tests with JUnit

Technologies

  • Java 17+
  • Spring Boot
  • Spring Security + JWT
  • H2 Database
  • Maven

How to Run

Prerequisites

  • Java JDK 17+
  • Maven 3.9.9+
  • Git

Clone and Run

git clone https://github.com/ieVictor/squad2-cobol.git
cd backend

# Unix
./mvnw spring-boot:run

# Windows
mvnw.cmd spring-boot:run

Example Usage (cURL)

  1. Create Customer:
curl -X POST http://localhost:8080/api/v1/customers/create -H "Content-Type: application/json" -d '{ "name": "John Doe", "email": "john@example.com", "password": "secure123", "birthdate": "1990-01-01" }'
  1. Login:
curl -X POST http://localhost:8080/api/v1/auth/login -H "Content-Type: application/json" -d '{ "email": "john@example.com", "password": "secure123" }'
  1. Create Account:
curl -X POST http://localhost:8080/api/v1/accounts/create -H "Authorization: Bearer <your-jwt-token>" -H "Content-Type: application/json" -d '{ "customerId": 1, "accountType": "CHECKING" }'

Data Flow Overview

Client Request β†’ JWT Filter β†’ Controller β†’ Service β†’ Repository β†’ H2 Database
     ↑                           ↓
     └─────────── Response β”€β”€β”€β”€β”€β”˜

πŸ§‘β€πŸ’» Frontend – Angular Web App

Features

  • βœ… User-friendly web interface
  • βœ… Login and registration forms
  • βœ… Account and transaction views
  • βœ… Real-time UI updates and validation
  • βœ… Angular Modules for structure and scalability

Technologies

  • Angular 17+
  • TypeScript
  • RxJS, Angular Forms
  • Angular Material (optional)

How to Run

Prerequisites

  • Node.js 18+
  • Angular CLI 20+

Installation & Dev Server

cd frontend
npm install
ng serve

Visit: http://localhost:4200

Build for Production

ng build

Testing

# Unit tests
ng test

# End-to-end tests (configure framework first)
ng e2e

πŸ§ͺ Testing & Validation

  • Backend: JUnit + Spring Boot Test
  • Frontend: Jasmine + Karma
  • API: Swagger available at http://localhost:8080/swagger-ui.html
  • Frontend Form Validation: Angular Reactive Forms

⚠️ Troubleshooting

  • JWT Issues: Ensure Bearer token is included and not expired.
  • H2 Database: Access H2 console at http://localhost:8080/h2-console with jdbc:h2:mem:testdb
  • CORS Errors: Make sure frontend and backend are configured to allow cross-origin requests.

πŸ“š Resources


🀝 Team & Acknowledgments

Developed by Squad 2 during the Hackathon AI Talents, with the goal of transforming legacy COBOL program into a clean, scalable modern architecture.

  • Aline Lika Hirokawa
  • Cristovao Murilo Xavier Da Silva
  • Grazielly De Sousa Barros
  • Victor Fritsch Ribeiro
  • Iarlon Soares Da Silva Oliveira
  • Leonardo Paniz Aguiar
  • Victor Gabriel Lucio
  • Luiz Gabriel Alcantara Brito
  • Vitor Antonio Santos Silva
  • Vitor Galvao Mezzomo
  • Gustavo Liebl Pereira
  • Bruno Alexander Gomes Da Silveira

Thanks to the mentors and organizers who supported this challenge! πŸ™Œ

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages