Skip to content

Contains backend, frontend, and Heroku deployment source code for a fully functional web application that serves as a middle man between customers and the production of an automated sticker shop where stickers can be customized and uploaded. Automation lies in providing customers with great and accessible tools for uploading their own and modify…

License

Unlicense, Unlicense licenses found

Licenses found

Unlicense
LICENSE
Unlicense
LICENSE.md
Notifications You must be signed in to change notification settings

peterbasar/Sticker-shop-automation-web-app

Repository files navigation

Implementation of a web application for ordering and automatic printing of custom stickers

Bachelor's thesis at Czech Technical University in Prague source code

Department of Control Engineering, CTU in Prague, FEE

by Peter Basár


What

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/

Files in this directory

  • 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/).
    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).
  • 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/).
    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.
  • 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

Technologies used

  • Django (backend)
  • React (frontend)
  • PostgreSQL (database)
  • Python (automated printing)
  • AWS S3 (storage for sticker images)

How to use this application

1. I want to run the application on Heroku's dyno instance
(the easiest way)

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

2. I want to run the application locally

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

3. Running the worker

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.

Media

Architecture

Filtering and adding stickers to cart and favorites

Product page

Editor

Register and login

Additional media including current and past designs in Media/ folder

License

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.

About

Contains backend, frontend, and Heroku deployment source code for a fully functional web application that serves as a middle man between customers and the production of an automated sticker shop where stickers can be customized and uploaded. Automation lies in providing customers with great and accessible tools for uploading their own and modify…

Resources

License

Unlicense, Unlicense licenses found

Licenses found

Unlicense
LICENSE
Unlicense
LICENSE.md

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published