Skip to content

iTs-rd/Epay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ePay - Your Digital Wallet

ePay is a user-centric digital wallet service designed for effortless financial management. With ePay, users can create and update their unique IDs, add funds securely, withdraw money, and seamlessly transfer funds to other users. This platform empowers individuals with control over their finances, offering a simple and secure solution for all their digital wallet needs.

Tech Stack

#Spring_boot #Mysql #Elasticsearch #Jenkins #Swagger_UI #Docker 

Key Words

#JWT_Tokens #Transactional_Nature #Elasticsearch #Jenkins #CI/CD
#Unit_Test_Case #JUnit #Swagger_UI #Docker #Docker_Compose #OTP_Verification

Key Points

  1. JWT Tokens are employed for authentication purposes.
  2. Custom exceptions are created for enhanced error handling.
  3. Spring Security is implemented for securing the application.
  4. The API transactions are configured to be inherently transactional, ensuring automatic rollback in the event of errors.
  5. The application is containerized using a Dockerfile.
  6. Docker Compose is used for streamlined deployment.
  7. Jenkins is harnessed to construct a CI/CD pipeline.
  8. The incorporation of Elasticsearch serves to boost system performance.
  9. Comprehensive application documentation is provided through the integration of Swagger-UI.
  10. Unit test cases are crafted in JUnit to ensure that the code meets quality standards.
  11. Phone number verification is conducted via OTP.

APIs

Swagger-UI -> api/swagger-ui/index.html

User Controller

METHOD ROUTE FUNCTIONALITY ACCESS
POST /api/user/signup Register new user Open
POST /api/user/verify-phoneno Verify OTP Open
POST /api/user/login Login using phone no and password Open
GET /api/user Get user details Need Token
PUT /api/user Update user details Need Token
DELETE /api/user Delete user Need Token

Wallet Controller

METHOD ROUTE FUNCTIONALITY ACCESS
GET /api/wallet/checkbalance Check wallet balance Need Token
POST /api/wallet/deposit Deposit money in wallet Need Token
POST /api/wallet/withdrawal Withdraw money from wallet Need Token
POST /api/wallet/transfer Transfer money to another user Need Token

Wallet Controller

METHOD ROUTE FUNCTIONALITY ACCESS
GET /api/statement?pageNumber=0 Get Statement of wallet Need Token

Authorization: Bearer {token}

Requirements

1) Elasticsearch is operational and accessible on port number 9200 (i.e. http://localhost:9200).

2) MySql is operational and accessible on port number 3306 ( Username=root and password= root )

NOTE:

  1. You have the flexibility to modify the port number according to your preferences in the application.yaml file.
  2. The version of Elasticsearch being used is 7.17.14.

Resources

  • use full command
  1. docker run -p 9200:9200 -d -m 1GB -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.14
  2. docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=root mysql

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published