Django Portal using Apache, Celery and Redis Server

Building Robust and Secure Django Applications

As I write this, I am just finishing up 1.5 year Python-Django project where I built a portal that offers a suite of tools designed to deliver efficiency and ease to the workday for the users of Quantum Components MRO Software. This is the one of the few MRO Softwares out there for the Aircraft Parts Manufacturing and Repair industry and is widely used by those in that industry.

Celery for Task Scheduling

To overcome issues with race conditions, I implemented Celery for task scheduling. Celery creates tasks and sends them to a broker. In my case, I deployed Redis Server as my broker. At first I deployed RabbitMQ but found that it crashed quite a bit on my Windows Server 2019 development environment so I switched. I also deployed the entire portal on Ubuntu 18 and then later on Ubuntu 16 and used Redis Server in all three cases. The only real difference between the Linux and Windows implementations was that I could create a Celery service using an init.d script on Linux and I wasn't ever successful getting Celery to run as a service in Windows.

User Permissions and Management

I found Django's admin panel suitable for the needs of each user group's user admins. The admins use it for adding new users, assigning permissions to users, adding new connections and many other items related to connecting to the user's database. The particular database doesn't matter for the purposes of this article but if you must know, we used the Python library, cx_Oracle, that uses C code to connect to and run queries on the Oracle database.

Building Scalable Django Applications

The users have 11 applications from which to choose in the portal and some are strictly dashboards while others are both dashboards and allow updates. There are 2 designed for barcoding. One that allows for barcoding batch, location and quantity updates to stock. Another allows for updating stock line locations, warehouses, work order statuses and stock carts. Others allow for the creation and filtering of repair orders, manufacturing orders, work orders, tasks, boms, you name it. And I implemented the Kendo UI Grid to display the results in a sortable, orderable, selectable grid for updating particular rows or simply searching and filtering.
Business Efficiency Discovery Session -
No Cost to You!
*denotes a required field
*name:

*email:
*phone: