Django Image Processor

A cloud-hosted web app for applying image filters in real-time using Django and Pillow.

๐Ÿ“‚ View the code on GitHub

๐ŸŽ“ About the Project

This project was developed as part of the Cloud Computing course at Temple University. It explores deploying a responsive web-based image processing tool on a EC2 instance of Amazon AWS servers using Django.

The application lets users upload images and apply a set of filters including grayscale, sepia, posterize, blur, and edge detection. Results are displayed side-by-side and can be downloaded directly.


๐Ÿ–ผ๏ธ Interface Preview

Image upload form with filter options.
Processed output displayed alongside the original image.

๐Ÿ”ง Technology Stack

  • Backend: Django, Pillow
  • Frontend: HTML, CSS, JavaScript, Bootstrap 5
  • Deployment: AWS EC2 (Ubuntu 22.04)
  • Web Server: Nginx
  • App Server: Gunicorn
  • Database: SQLite (lightweight for demo purposes)

๐Ÿ”„ Workflow

  1. User uploads an image through the web UI.
  2. The backend handles validation and stores the image.
  3. Based on user selection, the filter is applied using Pillow.
  4. Filtered image is saved and previewed.
  5. A download link is offered for the processed result.

โ˜๏ธ Cloud Deployment

The full stack runs on an AWS EC2 instance with the following setup:

  • ๐Ÿ Python + Django app running in virtualenv
  • ๐Ÿ”ฅ Gunicorn as WSGI server
  • ๐Ÿงฑ Nginx reverse proxy to serve static/media files
  • ๐Ÿ’พ Database: SQLite (lightweight for demo purposes)
System architecture showing user interaction with Django app through Nginx and Gunicorn on AWS EC2.

๐Ÿ“‹ Features

  • Upload images (JPG, PNG, etc.)
  • Saves each users processed images in database.
  • Apply filters instantly with visual feedback
  • On-demand download of output
  • Responsive and simple UI

๐Ÿงช Notes

This project demonstrates the end-to-end development and deployment of a real-time image processing web app using cloud-native tools. The front-end design and boilerplate code has been completed with assitance of Replit.