diff --git a/README.md b/README.md new file mode 100644 index 0000000..e1c084a --- /dev/null +++ b/README.md @@ -0,0 +1,191 @@ +# RATE LIMITER WITH REDIS + +

+ Main Information +

+ +### 📖 Information + + + +### Explore Rest APIs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
MethodUrlDescriptionRequest BodyHeaderValid Path VariableRequest ParamNo Path Variable
POST/api/v1/users/saveCreate a new userCreateUserRequest
GET/api/v1/users/{id}Retrieve a user by ID{id} - Valid UUID
PUT/api/v1/users/{id}Update an existing userUpdateUserRequest{id} - Valid UUID
DELETE/api/v1/users/{id}Delete a user by ID{id} - Valid UUID
GET/api/v1/usersRetrieve a paginated list of usersUserPagingRequest
+ + +--- +### Technologies + + +- Java 21 +- Spring Boot 3.0 +- Restful API +- Lombok +- Maven +- Junit5 +- Mockito +- Integration Tests +- Docker +- Docker Compose +- CI/CD (Github Actions) +- Postman +- Spring Bean Validation + +--- +### Postman + +``` +Import postman collection under postman_collection folder +``` + +--- +### Prerequisites + +#### Define Variable in .env file + +``` +DATABASE_USERNAME={DATABASE_USERNAME} +DATABASE_PASSWORD={DATABASE_PASSWORD} +``` + +--- +- Maven or Docker +--- + + +### Docker Run +The application can be built and run by the `Docker` engine. The `Dockerfile` has multistage build, so you do not need to build and run separately. + +Please follow directions shown below in order to build and run the application with Docker Compose file; + +```sh +$ cd ratelimiter +$ docker-compose up -d +``` + +If you change anything in the project and run it on Docker, you can also use this command shown below + +```sh +$ cd ratelimiter +$ docker-compose up --build +``` + +--- +### Maven Run +To build and run the application with `Maven`, please follow the directions shown below; + +```sh +$ cd ratelimiter +$ docker run --name redis -p 6379:6379 -d redis +$ mvn clean install +$ mvn spring-boot:run +``` + +--- +### Docker Image Location + +``` +https://hub.docker.com/repository/docker/noyandocker/ratelimiter/general +``` + +--- +### Screenshots + +
+Click here to show the screenshots of project +

Figure 1

+ +

Figure 2

+ +

Figure 3

+ +

Figure 4

+ +

Figure 5

+ +

Figure 6

+ +

Figure 7

+ +

Figure 8

+ +
+ +### Contributors + +- [Sercan Noyan Germiyanoğlu](https://github.com/Rapter1990) \ No newline at end of file