Skip to content

Latest commit

 

History

History

ibank

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cloud native fictional internet banking application based on Spring.io platform and Netflix OSS

This is a minimal application skeleton that illustrates how an internet banking application can be structured around nfsx foundation components using built on top of Spring.io platform and Netflix OSS libraries.

Modules

domain/profile-api

Domain data model and API definition that servers as contract for both consumer and implementor of micro services. This module does not contain any implementation details.

Highlights:

apps/profile-service

Micro service that provide API to access customer profile data.

Highlights:

  • application configuration is dynamically downloaded from cloud config server upon start.
  • service automatically registers with Eureka server up on start.
  • modelmapper based intelligent Java object mapping between JPA physical data model and domain model.
  • spring-data-jpa based DAO repository.
  • spring-mvc @RestController that implements the REST API secured by spring-security, integrated OAuth2 authorization server.
  • custom health indicator endpoint that display git repository info, available at http://server:port/health
  • Rest Assured fluent API for testing REST APIs.

apps/card-service

Micro service that provide API to access credit card information. It uses the same components as profile-service, plus

  • CXF based web service client to access external SOAP server
  • Use simulator to mock SOAP reply during unit tests.

apps/webapp

Main application UI server.

Highlights:

  • application configuration is dynamically downloaded from cloud config server upon start.
  • SSO integration with Oauth2 authentication server
  • Use spring-session to support clustering. currently using Redis as external store.
  • Annotation driven automatic REST server discovery and consumption based on Feign
  • custom health indicator endpoint that display git repository info, available at http://server:port/health

main-app

main web application. contains UI components for end-users.

To run this demo

  1. start authentication server by cd nfsx/infra/auth-server; mvn
  2. start cloud config and Eureka server by cd nfsx/infra/cloud-server; mvn
  3. start profile service by cd nfsx/ibank/apps/profile-server; mvn spring-boot:run
  4. start Redis server
  5. start main UI application by cd nfsx/ibank/apps/webapp; mvn spring-boot:run
  6. point your browser to http://127.0.0.1:8080/app

After server initializes open the browser and navigator to http://localhost:8000. Login as user/password and you should see a greeting message on top of the screen.

To run this demo using Docker Machine or Kubernetes

see infra support for details.

To check Eureka and Hystrix Dashboard

Use this link to view circuit break statuses for web app module.