Giter Club home page Giter Club logo

pdf-processing's Introduction

PDF Compressor

project-image

The PDF Compressor project is a system for compressing PDF files and managing them using a combination of MongoDB Kafka and a Golang-based web service. This README provides an overview of the project its components and how to set it up.

๐Ÿ’ป Components

1. Web Service (Golang)

  • Description: Handles file uploads, compression, and file downloads.
  • Dependencies: Gin (HTTP framework), MongoDB Go driver, Confluent Kafka Go library.

2. Kafka (Message Broker)

  • Description: Manages asynchronous communication between the web service and the consumer service.
  • Dependencies: Confluent Kafka.

3. MongoDB (Database)

  • Description: Stores compressed PDF files and associated metadata.
  • Dependencies: MongoDB, GridFS.

4. Consumer Service (Python)

  • Description: Consumes messages from Kafka, indicating successful compression.
  • Dependencies: Confluent Kafka.

5. Database Cleaner Service (Python)

  • Description: Scheduled job for deleting old files from MongoDB GridFS.
  • Dependencies: MongoDB, GridFS

๐Ÿง Features

Here're some of the project's best features:

  • Upload PDF files for compression.
  • Compress PDF files using PyMuPDF
  • Store compressed PDF files in MongoDB using GridFS.
  • Asynchronous processing of compression tasks with Kafka.
  • Download compressed PDF files.

๐Ÿ› ๏ธ Installation Steps:

1. Fork The Repository

2. Clone the repository:

git clone https://github.com/your-username/pdf-compressor.git

3. Navigate to the project directory:

cd pdf-compressor

4. Add the helm bitnami repo:

helm repo add bitnami https://charts.bitnami.com/bitnami

5. Install the Confluentic Kafka service using below command:

helm upgrade --install kafka-release bitnami/kafka --set persistence.size=8GilogPersistence.size=8GivolumePermissions.enabled=truepersistence.enabled=truelogPersistence.enabled=trueserviceAccount.create=truerbac.create=true --version 23.0.7 -f Helm_charts/Kafka/values.yaml

6. Install MongoDB service using command:

helm install mongo Helm_charts/MongoDB -f Helm_chart/MongoDB/values.yaml

7. Run frontend service using command

kubectl apply -f frontend-service/manifests/

8. Run producer service using command

kubectl apply -f producer-service/manifests/

9. Run compressor service using command

kubectl apply -f compressor-service/manifests/

10. Run DB Cleaner Service using command

kubectl apply -f DBClean-service/manifests/

๐Ÿ’ป Built with

Technologies used in the project:

  • Golang
  • Kafka
  • Helm Charts
  • MongoDB
  • Python
  • Html
  • Bootstrap
  • Javascript

๐Ÿ›ก๏ธ License:

This project is licensed under the MIT

pdf-processing's People

Contributors

kratos-14 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.