This document contains an overview of the files located in this directory as well as short description of different ways one can run the application and presentation of its functions.
Application accessible on address (as of 29.5.2022):
https://sticker-application-frontend.herokuapp.com/
- AWS-media-copy/ This folder contains a copy of the AWS S3 storage server used by this application for storing sticker images, editor cutout images, user-uploaded canvases, sticker page familiar item background, and editor style backgrounds.
- Run-locally/ This folder contains implementation of server-side implementation in Django (subfolder web_app_django) as well as client-side implementation in React (subfolder web_app_react/).
- Run-with-Heroku/ This folder contains implementation of server-side implementation in Django (subfolder web_app_django) as well as client-side implementation in React (subfolder web_app_react/).
- Worker/ This folder contains the basic implementation of a Python script that connects to the database, searches for paid orders, downloads the print and cutout images, changes order status and prints the images using the default printer.
- API-testing-files/ Postman collections for manual API response testing. https://learning.postman.com/docs/getting-started/importing-and-exporting-data/
- Media/ Media for presenting this application
- thesis.pdf Copy of a bachelor's thesis
This implementation is bascially the same as the one in Run-with-heroku/ but prepared to be run locally (local PostgreSQL database, local React API url).
This implementation is bascially the same as the one in Run-locally/ but prepared to be run on Heroku's dyno instances 1 for backend and 1 for frontend. It contains neccessary files such as Procfile, and different neccessarry settings in Django settings and React package.json.
- Django (backend)
- React (frontend)
- PostgreSQL (database)
- Python (automated printing)
- AWS S3 (storage for sticker images)
The easiest way to run this application is to setup backend and frontend on 2 separate Heroku Dyno instances.
One instance will be for backend and one for frontend. The backend one will aditionally requiere PostgreSQL addon, available in the Heroku addons list.
https://devcenter.heroku.com/articles/django-app-configuration
https://blog.heroku.com/deploying-react-with-zero-configuration
Additionally, setting up AWS S3 instance and uploading to it the folder in AWS-media-copy/sticker-application-storage/ and make it public.
At last, uploading the backedup PostgreSQL database (in folder Database-backup/) using DBeaver software (recommended) (see https://dbeaver.com/docs/wiki/Backup-Restore/).
Clear instructions and requierements in Run-with-Heroku/readme.md
This application was developed on Ubuntu 20.04.
The second easiest way to run this application is to setup AWS S3 instance and upload to it the folder in AWS-media-copy/sticker-application-storage/ and make it public.
(It is possible to access the AWS folder locally but the application will require some adjustments in the settings and changing some constants as right now it runs https://django-storages.readthedocs.io/en/latest/ AWS S3)
Then, upload the backup PostgreSQL database (in folder Database-backup/) using DBeaver software (recommended) (see https://dbeaver.com/docs/wiki/Backup-Restore/).
At last, running the Django and React in two terminals with all the requierements.
Clear instructions and requierements in Run-locally/readme.md
If the database is accessible by the worker and this computer has a default printer all that is needed is to specify PostgreSQL database credentials in the Worker/worker.py script and run the script.
The Unlicense
A license with no conditions whatsoever which dedicates works to the public domain. Unlicensed works, modifications, and larger works may be distributed under different terms and without source code.