Skip to content
/ ebay Public

Tehran Polytechnic Cloud Computing course project implementing a simple post submission service

Notifications You must be signed in to change notification settings

AmirInt/ebay

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ebay

The project attempts to recreate an ebay-like service where users submit their posts along with descriptions to the service.

Project Modules:

All modules are cloud-based and are used by means of addressing the cloud service API.

  1. Backend; FastAPI
  2. Database Service; MySQL
  3. Image Tagging Service
  4. RabbitMQ Service
  5. Object Storage Service; S3

Services:

The following cloud-services are used to provide different functionalities:

  1. Database Service: https://aiven.io/
  2. Image Tagging Service: https://imagga.com/
  3. RabbitMQ Service: https://www.cloudamqp.com/
  4. Object Storage Service: https://www.arvancloud.ir/en (can alternatively use Amazon S3 service)

Process

After a post is submitted to the API, the image is stored in the S3 service and the description along with its corresponding image ID is stored in the database. The post ID is enqueued into the RabbitMQ cloud-service for further process. On the other side. A different process listens on the RabbitMQ and receives the recently submitted image IDs. This service then uses the image tagging service to match the image with the description. The result of this matching is emailed to the submitting user.

Image contains the architecture of the project

Usage

Obtain the services required and connect scripts to their cloud requirements. Create a directory name 'downloads' inside 'src'. Use 'send_request.py' to send your images. Use 'check_status.py' when you haven't yet received any emails to check the confirmation status of your post.

About

Tehran Polytechnic Cloud Computing course project implementing a simple post submission service

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages