Picmate is a Django powered photo editing application. It allows a user to perform a set of filters and effects on images he uploads. A user can register or login using either Facebook or Twitter.
- Framework in use: Django
- Authentication: Django Allauth
- Image Manipulation: Pillow
- Image Upload: ImageKit
-
Install Python on your system
-
Install a relational database (Postgres has been used for development and testing).
-
Download or clone the repo
-
Install requirements.
pip install -r requirements.txt
-
Setup environment variables
DATABASE_URL="postgres://<user>:<password>@localhost:5432/<db_name>"
SECRET=<SECRET>
-
Perform database migrations.
python manage.py makemigrations
python manage.py migrate
-
Run the application
python manage.py runserver
-
Create the admin user
python manage.py createsuperuser
-
Login as admin and configure social authentication apps. For this you need to:
- Add a Site for the domain in use, matching settings.SITE_ID (django.contrib.sites app).
- Create Facebook and Twitter apps to get provider credentials.
-
Add effects and filters. The ones configured are listed below.
Effect Type | Effect |
---|---|
image | rotate |
imageenhance | enhance |
imagefilter | smooth, emboss, contour, sharpen, findedges, blur |
imageops | flip, mirror, grayscale |
Log in on the main site to upload images and apply effects and filters |
Tests are configured to to use nosetests
. This is done from the root folder
python manage.py test
To show Coverage results
coverage report -m