stockControl 🥕🥫🦐 - A comprehensive system for tracking inventory, recipes, ingredients and costs
Tags: webdev, python, django, html
Published: 2023-02-07 20:44:38

Many people who change careers after a considerable amount of time say that it was a difficult decision. For me, it was one of the easiest I've ever made. My journey started as a 15-year-old dishwasher and culminated in managing every aspect of the kitchen operations of a small chain of restaurants with over £6 million in annual revenue and a staff of 80+ across multiple locations in three countries. However, with the industry going through extremely difficult times over the last 5-10 years, I ultimately realised that I was ready for a change.

Now that I'm on the cusp of this career change, actively seeking that first job as a software engineer, I am at the point of building several portfolio projects to both hone and practice my coding skills and have something concrete and visible to back up my experience.  

After building a [Task Manager](https://github.com/siwhelan/taskManagerGUI), and a [personal website](https://siwhelan.dev/) I was looking for something more complex. I decided to create something that has been vital in almost every role I've had up until this point - a Stock Control web app. 

Stock control is a crucial aspect of running a commercial kitchen. It involves tracking and managing the inventory of food and supplies to ensure efficient operation and profitability:

**Cost savings**: Proper stock control helps to minimize waste and reduce the cost of overstocking or understocking. By keeping track of inventory levels, chefs can order only what they need and avoid waste due to spoilage.

**Improved food quality**: Stock control helps to ensure that the kitchen always has the ingredients it needs to prepare dishes to the desired standard. This helps to maintain consistent food quality and customer satisfaction.

**Increased efficiency**: Stock control helps to streamline kitchen operations by reducing the time spent searching for ingredients and supplies and allowing kitchen staff to focus on preparation and cooking.

**Better food safety**: Stock control helps to prevent food waste, which can pose a risk to food safety. By ensuring that food is used before it goes bad, kitchens can maintain a clean and safe environment for their customers and staff.

**Better decision-making**: Stock control provides valuable information that can be used to make informed business decisions, such as adjusting menu offerings or adjusting ordering schedules to match demand.

I've used several existing solutions to this; however, it was rare to find one that had everything that was needed. Many had functionality missing or relied on secondary programs rather than being contained into one box. For a working stock control system, you primarily need - 

📊 An ingredients database
🍲 A recipes database
💰 Prices of all ingredients (which need to be updated regularly)
💳 Total price of recipe (to determine the meal's selling price)
💹 A financial record of daily sales
🍔 A record of which food items have been sold
🗑️ A wastage entry
📦 A method of placing supplier orders and/or entering stock received from supplier

And a program to allow user to enter currently held stock (usually weekly/monthly). This will take all the above info, work out what stock you _should_ have based on your ordering and sales, and then give you a gross profit percentage. 

Adventurous? Absolutely, but with a deep understanding of the required functionality, I'm finding the 'sketching' of the program is going well. I have already started the backend of the system, but it is currently very much in its infancy. Taking on advice from several experienced developers and recruiters, this one is being built very much in the open!

The GitHub repo is [here](https://github.com/siwhelan/stockControl). The plan is to spend a couple of hours on it each day and post a weekly update here on dev.to. This not only helps me to recap all the pieces I've added, but also allows anyone that wishes to follow along to do so 😊

My transition from managing kitchen operations to becoming a software engineer has been an exciting and challenging journey. I have decided to build this Stock Control web app to showcase my coding skills and demonstrate my expertise in this area. This app will bring together all the essential elements required for efficient stock management in a commercial kitchen, including ingredients and recipes databases, financial record-keeping, supplier ordering, and more. 

As always, feedback is more than welcome. I am confident that this project will help me reach my goal of becoming a successful software engineer and I look forward to sharing the finished product with the world.

Thanks for reading! 👋