GithubHelp home page GithubHelp logo

online-bank's Introduction

Build Status Codacy Badge Code Coverage Issue Count Issues Docker Stars Docker Pull License Join the chat at https://gitter.im/online-bank-bdd/Lobby

Online Bank

Spring Boot/Spring Data/Spring Security/Hibernate/MySQL/REST

The project simulates online banking system. It allows to register/login, deposit/withdraw money from accounts, add/edit recipients, transfer money between accounts and recipients, view transactions, make appointments.

There are two roles user and admin.

The admin has there own fronent implemented in Angular2, which communicates with backend through REST services.

There is a sql dump with prepopulated data inside project folder. The username and password for database: root

You can login with: User - password; Admin - password

Deployment Steps on Docker:

Download application
git clone https://github.com/ravikalla/online-bank.git
Start MySQL Docker Container
docker run --detach --name=bankmysql --env="MYSQL_ROOT_PASSWORD=root" -p 3306:3306 mysql:5.7.22
Execute SQL scripts in MySQL
cd online-bank
docker exec -i bankmysql mysql -uroot -proot < sql_dump/onlinebanking.sql
Run Docker image of the application
docker run --detach -p 8888:8888 --link bankmysql:localhost -t ravikalla/online-bank:latest

Access the application by clicking the URL "http://localhost:8888!"

Deployment Steps without Docker:

Build application
mvn clean build
DB Setup
Run application
java -jar target/online-bank-0.0.1-SNAPSHOT.jar

Things to know:

Build Docker image for the application
docker build -t ravikalla/online-bank:latest .
Create Jenkins image that has Maven
sudo chmod 777 /var/run/docker.sock && \
mkdir -p /jenkins_bkp/jenkins_home && \
chmod -R 777 /jenkins_bkp && \
git clone https://github.com/ravikalla/online-bank.git && \
cd online-bank && \
git checkout master && \
cp Dockerfile-Jenkins-Maven ../Dockerfile && \
cd .. && \
docker build -t ravikalla/jenkins-maven-docker:v0.1 .
Start Jenkins Server on Docker
docker run --detach -v /var/run/docker.sock:/var/run/docker.sock -v $(which docker):$(which docker) -p 9080:8080 -p 50000:50000 -v /jenkins_bkp/jenkins_home:/var/jenkins_home ravikalla/jenkins-maven-docker:v0.1
Setup "online-bank" project in Jenkins:
  • Login to Jenkins and setup a pipeline project with source code from Link to OnlineBank GIT repo!
  • Run the job to build and deploy the application
Debug H2 DB while testing

Code Quality Reports - (wiki)

For Online-Bank application, build happens in TravisCI Build Status and the test reports are generated in the same TravisCI server during the build process.

We are generating Cucumber test results in "ExtentReport" format. Extent Reports are open source and provides very good visuals for test reports - sample Extent report.

In the file .travis.yml, it is configured to push the generated test reports to "gh-pages" branch once the build is complete.

Once these test reports are uploaded to "gh-pages" branch in Online-Bank project, you can access various reports online using below links -

  1. Cucumber Native Test Results - https://ravikalla.github.io/online-bank/cucumber/cucumber-html-report

  1. Extent Report that has Cucumber Test Results - https://ravikalla.github.io/online-bank/extent-report.html

  1. JaCoCo Report for code coverage - https://ravikalla.github.io/online-bank/site/jacoco

online-bank's People

Contributors

hari0806 avatar ravi-soda avatar ravi523096 avatar ravikalla avatar

Stargazers

 avatar

Watchers

 avatar  avatar  avatar  avatar

online-bank's Issues

Adding Security testing at BDD level

There are some tests added in "AccountBalanceTest.java". These tests should be merged in the step definition classes under "BDDConfigurationTest.java". Create new step definitions like "PersonRecordStepsTest_Jersey.java"

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.