Skip to content

Samrat002/ImageUploader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Image Uploader

A Project that every beginner must do by himself/herself to get started with Python Web-development

Flow Diagram

Flow Diagram

Project Description

It contains an User Interface which contains an Image Uploader Widgets. The widget takes 3 parameters:-

1) Image Blob Object
2) Caption for the Image
3) Resolution

It is mandatory to upload a image of resolution of 1024 X 786. Upon successful upload , In backend it saves the image blob object in the model with details as follows:-

1) Caption
2) Height
3) Width
4) Image Quality 
5) Blob object
6) cloud URL

In current system , Image Quality can be of 4 types:-

1) Very High (1024px x 1024px)
2) High (1024px x 786px)
3) Medium (786px x 786px)
4) Low (124px x 124 px)

On successful validation of the image , A new copy image is created and processed to create the HIgh Quality Image and uploaded to S3 in sync . All the other 3 image Quality type is initiated in Async using celery Task using workers. This returns a response of success and the cloud url so that it can be rendered.

MOTIVE

a) This is a simple mini project that i carried out at the beginning when i was trying to get deep hands on with the Django
   Framework.
   
b) This project is completely build on django which uploads the image of specific size processes 
   it and creates 4 different images via Processing through PIL .

PERKS FROM PROJECT

a) Simple hand on tool to get started with python and Django Framework
b) Small Hands on work with  ***Celery***,  ***Redis Cache***, ***S3*** and ***Consistant Hashing***.

Installing and Running Project in Local

  1. clone the repository in your system

    git clone git@github.com:Samrat002/ImageUploader.git

  2. Make your AWS free Account and add pass key in the non added settings.py file of the project\

  3. Go to the shell and run python manage.py runserver

~~Boom On !!! ~~~

Scope of Enhancement

1) Dockerization
2) Proper credential service requied / Which can be built to store the Keys and Password
3) This imageUploader can be integrated with the user management for leverage the scope.