Upload. Prettify. Share.
Neatpix is a simple web app that allows users to upload their photos to the cloud, apply and save filters/effects to these photos and then share them on social media. In addition, the app also lets users download their edited photos to desktop. Social media support is limited to Facebook for this version.
The Neatpix app will be built using a number of web development technologies and services, some of which include:
- Django - Python web development framework for building web apps quickly and with less code.
- PostgreSQL - relational database management system.
- Bower - front end javascript dependency manager.
- Flexgrid - front-end flexbox framework for layout.
- jQuery - fast, small, and feature-rich JavaScript library.
- Python Image Library (Pillow) - image manipulation and effects.
- Facebook Javascript SDK - Facebook SDK for JavaScript for integrating client-side Facebook functionality into your web apps.
Follow the steps below to install Neatpix on your local machine:
-
Ensure you have Python >= 2.7 installed. You can get it here. Using a virtual environment is also recommended.
-
Ensure you have npm and bower installed. You can get npm here.
-
Ensure you have PostgreSQL installed and create a database with the name
neatpix
. -
Clone this repository to your machine.
-
In the project root, add a
.env.yml
file to hold all your environment variables, such your secret key (required) and database credentials e.g:SECRET_KEY: 'very-very-very-secret-key' DATABASE_USER: 'foo_user' DEBUG_MODE: 'debug-mode-for-current-deploy' DATABASE_PASSWORD: 'youcannotguessme' FACEBOOK_APP_ID: 'your-own-facebook-appi-id'
-
Install all python and front end dependencies by running the followings commands in order, from in the project root:
$ npm install -g bower $ bower install $ pip install -r requirements.txt
-
To setup static files and database migrations, run (also in the project root):
$ neatpix/python manage.py collectstatic $ python neatpix/manage.py makemigrations $ python neatpix/manage.py migrate
Run $ neatpix/python manage.py runserver
to start the server.
-
To run tests:
$ python neatpix/manage.py test --settings=neatpix.settings.testing
-
For the coverage report:
$ coverage run --source=webapp neatpix/manage.py test neatpix --settings=neatpix.settings.testing
$ coverage report
$ coverage html