Skip to content

3D Print Queue Web Application using Django (Python)


Problem

This project was created out of a need for a better solution, the same way that many others start. During the fall of my freshman year at Rowan University, some other members of the A-Team - a group in the college of engineering that I am a part of needed a better way to collect 3D print requests and make sure they are all printed in a timely manner. Before this system, there was a Google Form that students could put their information into and upload their cad file to. The problems with this system is that there is no indication to the staff in the fabrication center of what has been printed, what the prints are on the printers and when things need to be printed by. There is also no indication to the user that something is actually happening behind the scenes and so students would email constantly asking for status updates, and many times emailing the wrong people.

Goals

  • Students and Faculty (requestors) can easily upload files for 3D printing
  • Requestors can add relevant information about their print so it can be completed successfully
  • Requestors can view the status of their print and any technician notes
  • Requestors can choose materials and colors from a list of available materials
    • Eliminates requestors asking for things we don't have in stock
  • Fabrication center workers (staff) can view all prints in the queue and their status
  • Staff can alter requests to
  • Staff can track spools of filament based on material, color and specific spools
  • Staff can enter part weight once printed and what printer is being used to complete a specific print

Finished Web App (Version 1)

Using this list as deliverables, I created a Django web application to fulfill these needs. The finished application shows users a screen where they can create a 3D print job, and a list of all current and past prints. When they click the create button, they are directed to a form where they can enter the specifics about their part as well as upload their STL file.

Create Print Page

Once submitted, they are brought back to the main page.

Print Queue Main Page

They can click on the print to view its information and status. The progress bat will progress as the print goes through the many steps of printing and is full when the item is ready to be picked up.

Print Queue Status Page

The staff interface is similar to the requestor interface, with the ability to edit more fields about the print and change the print status to keep requestors in the loop.

Version 2 Updates

After pushing the app into production, I gathered feedback from the fabrication center staff (myself included) as well as the general ECE student body to find out how to make the app better for all users. From what I gathered, the ordering experience was good, however students could not cancel prints once they had submitted them, leading to unnecessary duplicate print jobs after they made small adjustments.

From the center workers perspective, the app did it's job, but some steps required extra clicks to preform simple actions. Mainly, tracking which parts were assigned to each printer as well as changing the status of the parts was slow, and as such, many parts were marked as printing but were never assigned to a printer, making it difficult as other workers came in to printers with parts on them with no idea which order number to associate them with.

Using all of this (and some more) feedback, I created the following list for a UI overhaul:

  • Add a quick actions section with
    • All printers that currently have jobs assigned
    • Allow job status to be updated quickly
  • Filter out completed prints into a separate page to speed up loading time
  • Allow prints to be downloaded and assigned to a printer without changing pages
  • Add ability for staff to cancel or reject parts that cannot be printed and provide feedback to the end user
  • Allow end users to cancel their own print jobs if they are not already printing

The result of this list created a new staff interface that was much more conducive to managing the increased number of prints that were being sumbitted since when the app was initially created. The customer interface also now has more clear status messages and features a cancel button when the print job is eligible to be cancelled.

Print Queue Staff Page V2

The new staff interface allows users to quickly assign print jobs to printers and mark the prints as either 'uploaded' or 'printing' in one motion, without leaving the page. Users can also download the print files from slicing without leaving the page using the download icon on each print. The top Quick Actions section allows staff to visualize what each active printer is doing, and allows staff to walk into the room and know who's parts are on each of the print beds. The completed prints have also been moved to a separate page to keep the staff interface clutter free.

Print Queue Main Page V2

The customer interface was also updated to allow users to cancel their prints up until they are marked as printing by staff to as designs change quite often when rapid prototyping.