Skip to content

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

License

Notifications You must be signed in to change notification settings

firattamur/spring-resize

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌿 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

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages