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.
#Spring_boot #Mysql #Elasticsearch #Jenkins #Swagger_UI #Docker
#JWT_Tokens #Transactional_Nature #Elasticsearch #Jenkins #CI/CD
#Unit_Test_Case #JUnit #Swagger_UI #Docker #Docker_Compose #OTP_Verification
JWT Tokens are employed for authentication purposes.
Custom exceptions are created for enhanced error handling.
Spring Security is implemented for securing the application.
The API transactions are configured to be inherently transactional, ensuring automatic rollback in the event of errors.
The application is containerized using a Dockerfile.
Docker Compose is used for streamlined deployment.
Jenkins is harnessed to construct a CI/CD pipeline.
The incorporation of Elasticsearch serves to boost system performance.
Comprehensive application documentation is provided through the integration of Swagger-UI.
Unit test cases are crafted in JUnit to ensure that the code meets quality standards.
Phone number verification is conducted via OTP.
Swagger-UI -> api/swagger-ui/index.html
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
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
METHOD
ROUTE
FUNCTIONALITY
ACCESS
GET
/api/statement?pageNumber=0
Get Statement of wallet
Need Token
Authorization: Bearer {token}
2) MySql is operational and accessible on port number 3306 ( Username=root and password= root )
NOTE:
You have the flexibility to modify the port number according to your preferences in the application.yaml file.
The version of Elasticsearch being used is 7.17.14.
docker run -p 9200:9200 -d -m 1GB -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.14
docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=root mysql