{"id":26508471,"url":"https://github.com/ashish8329/piccompressor","last_synced_at":"2026-04-18T14:33:16.531Z","repository":{"id":280949337,"uuid":"943275137","full_name":"Ashish8329/picCompressor","owner":"Ashish8329","description":"PicCompressor is an image processing system that takes a CSV file containing multiple product names with image URLs. The system downloads all images, compresses them, and provides the compressed images as a response.","archived":false,"fork":false,"pushed_at":"2025-03-14T08:07:07.000Z","size":73,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-14T09:23:51.383Z","etag":null,"topics":["celery","djagno","filehandling","kafka","postgresql","python","redis","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Ashish8329.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-03-05T12:52:29.000Z","updated_at":"2025-03-12T10:02:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"70b17dff-7231-4781-a062-0f8485e56b8d","html_url":"https://github.com/Ashish8329/picCompressor","commit_stats":null,"previous_names":["ashish8329/piccompressor"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Ashish8329/picCompressor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashish8329%2FpicCompressor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashish8329%2FpicCompressor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashish8329%2FpicCompressor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashish8329%2FpicCompressor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Ashish8329","download_url":"https://codeload.github.com/Ashish8329/picCompressor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Ashish8329%2FpicCompressor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31972370,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T00:39:45.007Z","status":"online","status_checked_at":"2026-04-18T02:00:07.018Z","response_time":103,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["celery","djagno","filehandling","kafka","postgresql","python","redis","rest-api"],"created_at":"2025-03-21T00:32:02.613Z","updated_at":"2026-04-18T14:33:16.491Z","avatar_url":"https://github.com/Ashish8329.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Image Processing System :camera_flash:\n\nWelcome to the Image Processing System repository! This project is designed to efficiently process image data from CSV files, ensuring validation, asynchronous processing, and storage of compressed images. The system provides APIs for uploading, tracking processing status, and webhook integration for automated responses(upcomming).\n\n---\n\n## Key Features :star2:\n\n- **CSV-Based Image Processing**:\n  - Accepts CSV files containing product names and image URLs.\n  - Supports multiple input images per product.\n  \n- **Data Validation**:\n  - Ensures correct CSV format before processing.\n  \n- **Asynchronous Image Compression**:\n  - Reduces image quality by 50% to optimize storage and performance.\n  \n- **Database Storage**:\n  - Stores original and processed image URLs along with product details.\n  \n- **RESTful APIs**:\n  - Upload API to submit CSV and receive a unique request ID.\n  - Status API to track image processing progress.\n  \n- **Webhook Integration**:\n  - Option to trigger a webhook after processing completion.\n  \n---\n\n## Tech Stack :computer:\n\n- **Backend**: Python (Django/Django REST Framework) \n- **Database**: PostgreSQL, \n- **Asynchronous Processing**: Celery with Redis (for Python)\n- **Image Processing**: Pillow (Python)  \n \n\n---\n\n## Getting Started\n\nFollow these steps to set up the Image Processing System:\n\n### 1. Clone the Repository\nClone this repository to your local machine:\n```sh\n git clone https://github.com/Ashish8329/picCompressor.git\n```\n\n### 2. Set Up a Virtual Environment (Python)\n```sh\npython3 -m venv venv\nsource venv/bin/activate\npip install -r requirements.txt\n```\n \n\n### 3. Navigate to the Project Directory\n```sh\ncd picCompressor\n```\n\n### 4. Set Up the Database\n- Configure the database settings in `.env` file.\n```\nDB_NAME = your_db_name\nDB_USER = your_db_user\nDB_PASSWORD = your_db_password\nDB_HOST = localhost\nDB_PORT = 5432\n\n```\n- Run migrations (for Django):\n```sh\npython manage.py migrate\n```\n\n### 5. Create a Superuser (Django Admin)\n```sh\npython manage.py createsuperuser\n```\n\n### 6. Run Celery Workers in different terminals (Python) \n```sh\ncelery -A picCompressor worker --loglevel=info\n```\nFor flower :\n```sh\ncelery -A picCompressor flower\n```\n\n### 7. Start the Development Server\nFor Django:\n```sh\npython manage.py runserver\n```\nFor Node.js:\n \nNow visit `http://127.0.0.1:8000/admin/` to manage image processing.\n\n---\n\n## API Endpoints :rocket:\n\n### Upload API\n**POST** `/api/product`\n- Accepts a CSV file and returns a unique request ID.\n\n### Status API\n**GET** `/api/status/{request_id}`\n- Retrieves processing status for the given request ID.\n\n---\n## Documentation 📖\n\nFor detailed Project documentation, visit:  \n[📄 Project Documentation](https://docs.google.com/document/d/1yd4U50l6zCW0i6BOulP43dmtyoIvBontwxSf-lRqrwM/edit?usp=sharing)\n\n\nFor Api documentation, visit:  \n[📄 API Documentation ](https://docs.google.com/document/d/1k_H6J-OVBThmURbQPekJ-dbDYT3LrrptYUtWCtiw11g/edit?usp=sharing)\n\nFor Postman collection, visit:  \n[📩 Postman Collection](https://drive.google.com/drive/folders/10KfjKN0jSNWS7Y7QqpqbtHk4pyTBnhqg?usp=drive_link)\n\n## Contribution Guidelines\nWe welcome contributions! Please follow these steps:\n1. Fork the repository.\n2. Create a feature branch (e.g., `feat/image-compression`).\n3. Commit with clear messages (e.g., `feat: Add async image processing`).\n4. Push changes and create a pull request.\n\n---\n## Contact 📬\n\nFor any queries or collaborations, feel free to reach out:\n\n📧 Email: [ashishauti123@gmail.com](mailto:ashishauti123@gmail.com)  \n🔗 LinkedIn: [Ashish](https://www.linkedin.com/in/ashish-auti-069346254)\n\n## Explore the System :sparkles:\n:point_right: **Congratulations** :tada:! Your Image Processing System is now ready to use. :confetti_ball:\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish8329%2Fpiccompressor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fashish8329%2Fpiccompressor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fashish8329%2Fpiccompressor/lists"}