firattamur / spring-resize

SpringResize: A Robust and Scalable Image Resizing Service with Spring Framework

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

🌿 SpringResize

SpringResize is a Spring Boot REST API project that allows you to easily resize images. The application is designed to be highly scalable and leverages various AWS services and Terraform for infrastructure management. It also includes detailed API documentation using Springdoc, as well as separate main and development stages with workflows for smooth deployment.

🌟 Features

  • πŸ–ΌοΈ Image resizing through a simple REST API
  • πŸ“š API documentation using Springdoc
  • πŸ—„οΈ AWS S3 for storing and retrieving images
  • πŸ“¦ AWS DynamoDB for storing image metadata

Architecture

Architecture

πŸ”§ Prerequisites

Before using SpringResize, ensure that you have the following installed on your system:

  • Java 11 or higher
  • Maven 3.6 or higher
  • AWS CLI
  • Terraform
  • Docker

πŸ’» Installation

  1. Clone the repository:
git clone https://github.com/yourusername/SpringResize.git
  1. Navigate to the project directory:
cd SpringResize
  1. Compile and package the application:
mvn clean package

πŸš€ Usage

  1. Set up the AWS infrastructure by navigating to the terraform directory and executing:
terraform init
terraform apply
  1. Build the Docker image:
docker build -t your-image-name .
  1. Push the Docker image to Amazon Elastic Container Registry (ECR) or another container registry:
docker push your-image-name
  1. Deploy the application to AWS Lambda by running:
./deploy.sh
  1. Access the API documentation at the following URL:
https://your-api-gateway-url/swagger-ui.html

Replace your-api-gateway-url with the API Gateway URL generated after deployment.

🌱 Development

For development, use the develop branch:

git checkout develop

🀝 Contributing

We welcome contributions to SpringResize. Please follow these steps to contribute:

  1. Fork the repository
  2. Create a new branch for your feature
  3. Commit your changes
  4. Create a pull request targeting the develop branch

πŸ“„ License

SpringResize is released under the MIT License.

About

SpringResize: A Robust and Scalable Image Resizing Service with Spring Framework

License:MIT License


Languages

Language:Java 100.0%