GitXplorerGitXplorer
S

GoBank

public
4 stars
0 forks
0 issues

Commits

List of commits on branch main.
Verified
19fb5310dd0181867e8640e8c4ddd0d33fc8bef8

Update README.md

SSanjaySinghRajpoot committed 2 years ago
Unverified
a6bb6fbc0d207cde92e56466e478c71a8c6408d7

updating readme

SSanjaySinghRajpoot committed 2 years ago
Unverified
e6a8ffa1df4e6ac29963a24c8b37104275d47640

fix: format

SSanjaySinghRajpoot committed 2 years ago
Unverified
2aa81825c2765663c6a49aefb28e2e0d5f743d57

fix: format

SSanjaySinghRajpoot committed 2 years ago
Unverified
dd5a9310c2d06077aad072e6d0f7416dd983a278

fix: format

SSanjaySinghRajpoot committed 2 years ago
Unverified
d2f9f684761f83fc4d13863265e17d8f311ab766

fix: updated readme

SSanjaySinghRajpoot committed 2 years ago

README

The README file for this repository.

GoBank

Gobank is a scalable backend banking service developed in GoLang. The service allows users to create accounts, transfer money, and disable bank accounts through RESTful HTTP APIs built using the Gin framework. The following technical details are included in Gobank:

Architecture and Deployment

The application uses the Model-View-Controller (MVC) architecture to facilitate easy code maintenance. The application is configured for deployment with robust unit testing and application configurations. To deploy the latest Docker images, a CI/CD pipeline is used to push images from the Container Registry to the Kubernetes cluster on AWS.

User Authentication and API Security

Gobank uses JWT and PASETO tokens to authenticate users and secure the APIs. User authentication is implemented using the JWT token while PASETO tokens are used for API security. The application features token authentication, refresh, and auth token features for improved security.

Testing and Documentation

Gobank has robust test cases for unit testing and end-to-end (e2e) testing. The API documentation is available through Swagger docs, which makes it easy to explore and test the APIs. Gobank also uses gRPC APIs for low-latency and high-throughput communication.

Tech Stack

  • Backend - Go, Gin, Golang, PSQL
  • Tools - Docker, Kubernetes, JWT, Paseto
  • Database - Postgres
  • Cloud - AWS EKS, AWS ECR, Github Action,

Features:

  • Account Creation: Users can create their bank accounts by providing personal information and login credentials.
  • Money Transfer: Users can transfer money to other bank accounts by providing the recipient's bank details and the amount to be transferred.
  • Disable Bank Account: Users can disable their bank account in case of any fraudulent activity.
  • RESTful HTTP APIs: The service provides easy-to-use RESTful HTTP APIs for seamless integration with frontend applications.
  • Robust Unit Testing: Gobank has a comprehensive unit testing suite to ensure error-free execution and performance.
  • App Configs: The service provides various app configs for easy deployment in production environments.
  • Authentication and Authorization: Gobank uses JWT and Paseto tokens to authenticate users and secure the APIs from unauthorized access.
  • CI/CD: Gobank uses Github Actions for continuous integration and deployment. It builds and pushes the latest Docker images to the Kubernetes cluster on AWS EKS.
  • MVC Architecture: Gobank follows the MVC (Model-View-Controller) architecture to maintain the code easily and improve its maintainability.
  • Swagger Docs: The service provides Swagger documentation for APIs for easy reference and integration.
  • Secure APIs: Gobank uses JWT and Paseto tokens for authentication and authorization, and it also provides token refresh and auth token features for enhanced security.

Installation

You can easily setup the application with the help of docker file. Just clone the repo and run docker compose up from the root folder.