#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.
| 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}
1) Elasticsearch is operational and accessible on port number 9200 (i.e. http://localhost:9200).
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.
- use full command
docker run -p 9200:9200 -d -m 1GB -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.14docker run -p 3306:3306 -d -e MYSQL_ROOT_PASSWORD=root mysql