A full fledged ecommerce platform with asynchronous task manager and PDF generator for orders. Built with Django.
Django ecommerce website with full-fledged backend features like mailing order to customers, printing order pdfs and managing asynchronous tasks.
The templates used in the frontend is designed by https://boostrapious.com.
The templates are great for learning how to build an e-commerce website.
virtualenv env
source env/bin/activate
pip install -r requirements.txt
python manage.py makemigrations
python manage.py migrate
python manage.py runserver
Install RabbitMQ on Linux by executing the command below from the shell
apt-get install rabbitmq
If you’re using macOS or Windows, click here to download the standalone version of RabbitMQ.
After installing, RabbitMQ, execute the following commmand to launch RabbitMQ
rabbitmq-server
Open a new shell, change directory to your project directory and start your
celery worker with the following command
celery -A myshop worker -l info
Note that celery has been installed when you ran ‘pip install -r requirements.txt’
To monitor asynchronous tasks with Flower - a web application for monitoring
celery. Open a new shell and run the following command from your project directory.
celery -A myshop flower
Weasyprint - To create pdf receipt for orders. Find implementation in
views.py of orders app (line 44 - 52).
Celery - To handle asynchronous tasks - Example: sending order mails
to customers. Find implementation in celery.py of ecommmerce folder, tasks.py of orders app and line 28 of views.py
RabbitMQ - Used as message broker for celery
Flower - Used to monitor Celery