Manufacturing Planner - Alpha release v0.10
Manufacturing Alpha is designed to automate the day to day administrative operations of a typical custom manufacturing department. The application has been created using a Flask / Python back end, and HTML, CSS and Javascript front end, incorporating the bootstrap UI library for styling. Link to site - https://manufacturing-llmk.onrender.com/ As this is a private site, access will need to be requested - [email protected]
Table of contents
Introduction
Features
Technologies Used
Setup
Project status
Introduction
The application allows an admin user to set up user accounts for a team of emloyees in various operative functions, and enter a catalogue of work orders. The work orders contain various informative details and allow users to progress thier completion by selecting certain flags. Users may optionally attach documentations specific to work order operations and material requirements. Work order history is tracked at certain operations to allow managment to track KPI and assist with planning.
Inspiration
Much of the inspiration behind this implementation comes from many years of experience working in manufacturing and operations environemnt, across various CRMS and ERPs. Due to the nature of small business, it is often difficult to adapt processes to an ERP and vice versa, leaving behind a situation of inefficient workflow and difficulty in ahcieving the ultimate goal of fast turn around times.
From the perspective of self-development, I wanted to implement all the knowledge learnt as part of Unit 2 at General assembly. Along with this, I attempted to incorporate various other learnings from the past few weeks. This led to a list of design requirements as per below.
Fully functional catalogue of work order data persistantly stored in a back end.
Ability for multiple users to view, edit and update data.
Secure login environment, routes and access levels
Develop familiarity of OOP knowledge, pricipals, trying to model the system behaviour as set of services that incorporate objects to connect to the database.
API end points to serve static pages that can fetch data.
Design the code such that it can scale easily and features can be implemented post launch (e.g. addition of future models e.g. material, purchasing, tasks, etc)
Challenges
Building a system to access datatbase for all CRUD operations, with multiple tables and different cases, proved to be simple at first, however, when questions around efficiency, latency, optimisations began to arrise,
refactoring the code base was an extremely time consuming process
Creating API end points with a standardised set of data required quite a lot of homework e.g. jsonify, encoding of files etc, data structures etc.
Features
Functioning work order catalogue system
Work orders status and progress visual tracker
Work order documenttion system to upload component and traveler list
Friendly on every monitor size from low-budget mobiles to ultra-wide monitors. Dynamic scaling to ensure readibility and functionality.
Fully functional buttons
Administrator and standard user seperation
Order history tracking
Efficient use of system resources e.g. minimsing database calls, executing multiple lines and retrieve/process data quickly. Minimize loading and refreshing times
Technologies Used
HTML5 - Used as a backbone to the website. This is an mandatory requirement for webpages. Many Bootstrap templates, sections, headers, footers have been organised using HTML rather than generated by Javascript (JS).
Bootstrap 5.0 - The primary purpose of was to enable the use of Modal forms (pop up windows). As a mobile first approach was used, a smaller screen size limited space available on the page, hence the use of Modals would allow for extra menu options such as hints, settings, displays etc. Due to the overwhelingmly positive impact of bootstrap on the layout and visual appear, over time, almost the entire application was converterd to use modal templates over vanilla CSS.
Javascript/ES6 was used for dynamic functionality of the site. Various functions within JS are impleneted,
Dynamic table row generation
Submit button overrides and route/data logic
Data fetching from API
Python Flask -
Set of up routes to serve static pages, apply logic logic, set user session tokens,
Setup -
https://manufacturing-llmk.onrender.com/
Partially complete
Work order filtering and sorting
Progress bar - better visual appearance and indication logic
User profiles and data to be displayed for personal preferances
User set up pages require CSS
To add
Monetisation
WO add time and clock
Costings module
Add more information to WO detail
Improve CSS