Skip to content

SanjivKannaa/ChaosBank

Repository files navigation

ReliaBank

Tech-Stack

Frontend

React JS

Backend

Flask (python)
JWT
bcrypt

Database

MySQL (with master-slave architecture)

DevOps

Docker
Terraform (AWS)
Ansible

Cloud

  • AWS

Contributors

Sanjiv Kannaa J

How To Run (local)

For running each microservice seperately, refer README.md inside each folder

$ git clone https://github.com/sanjivkannaa/chaosbank.git
$ cd chaosbank
$ cp ./backend/.env.example ./backend/.env
$ cp ./frontend/.env.example ./frontend/.env

setup .env [make sure to set strong username and P4$$w0=D]

$ docker-compose up -d

set up mySQL master-slave architecture

  1. shell into master
docker exec -it reliabank-mysql mysql -u root -p
  1. copy paste the contents of backend/mysql_files/master.sql into the terminal
GRANT REPLICATION SLAVE ON *.* TO 'reliabank'@'%';
FLUSH PRIVILEGES;
FLUSH TABLES WITH READ LOCK;
SHOW MASTER STATUS;
UNLOCK TABLES;
  1. copy "SOURCE_LOG_FILE" and "SOURCE_LOG_POS" displayed in the output of [2]
  2. shell into slave (do for each slave)
docker exec -it reliabank-mysql-slave<number> mysql -u root -p
  1. copy paste the contents of backend/mysql_files/slave.sql into the terminal (dont forget to replace "SOURCE_LOG_FILE" and "SOURCE_LOG_POS") ''' CHANGE REPLICATION SOURCE TO SOURCE_HOST='mysql', SOURCE_USER='reliabank', SOURCE_PASSWORD='reliabank', SOURCE_LOG_FILE='binlog.000002', // update this SOURCE_LOG_POS=1684; // update this GET_MASTER_PUBLIC_KEY=1; START REPLICA; SHOW REPLICA STATUS; '''

now visit localhost:3000

How To Deploy to AWS (using terraform)

Refer to IaC/ directory