Man, September 2020, feels like a lifetime ago now, doesn’t it? But there was this one thing that really stuck with me, a little project I tackled that year. My buddy, he ran this small local bakery, you know? Just a couple of ovens, a small storefront, always bustling. He was always complaining about how messed up his order tracking was. Everything was on paper, or in a chaotic Excel sheet that he could barely keep straight. It was a proper headache, especially when things got busy, which was, like, always.
I remember him telling me, “Dude, I’m losing my mind. Orders get mixed up, deliveries are late because I can’t find the damn slips, customers are getting cranky.” And he said it right around August, leading into September. I was just chilling at home, messing around with some coding stuff, nothing serious, just hobby projects. But hearing him, it kinda clicked. I thought, “Hey, maybe I can whip up something simple for him.”
So, I started just by sitting down with him. I wanted to see his whole workflow, you know? From when a customer called in an order to when the delivery guy dropped it off. We spent a whole Saturday just tracing orders, looking at his notebooks, his sticky notes, the whole shebang. It was wild, like a treasure hunt every time. He’d scribble down “chocolate cake for Sarah, pickup 3 PM,” and then five minutes later, “vanilla cupcakes for Mr. Henderson, delivery tomorrow.” Just a continuous stream. No real system.

After that, I went back to my own den and just started fiddling. My first thought was, okay, what’s the simplest way to get this off paper? I figured a super basic web app would be the easiest for him and his one or two staff members to use. Nothing fancy, no big databases or complicated frameworks. I remembered playing around with some really basic Python stuff with a Flask backend, so I decided to stick with that. It was familiar enough that I wouldn’t get completely lost, and I knew I could get something up and running pretty quick.
My first step was just to build a simple form. I opened up my text editor, fired up a new Python file. I got Flask running, pretty standard. Then I hammered out an HTML page with fields for customer name, order items, a dropdown for “pickup” or “delivery,” and a date selector. Super barebones. I just wanted to see if I could even get the data to save somewhere. I didn’t even think about a proper database at first. I was just going to try saving to a plain old text file, line by line, just to get the concept working. Pure beginner stuff, you know?
That text file idea lasted about half an hour. I quickly realized that reading and writing to a file for every single update was going to be a nightmare, especially if multiple people tried to use it. Plus, searching would be a pain. So, I scrapped that and thought, “Alright, I gotta bite the bullet and use a proper database.” I didn’t want anything heavy. SQLite felt like the perfect choice. It’s just a file, easy to manage, no server setup needed. Perfect for a tiny bakery. I spent a good chunk of that week just learning the basics of connecting Flask to SQLite, creating tables, inserting data, and pulling it back out.
It was a proper struggle, I won’t lie. I’d try to insert something and get some obscure error message that made no sense to me. I’d spend hours just searching forums, trying different syntax. I remember one time, I kept getting an error about a column not existing, and it turned out I had a typo in my SQL query, just a single letter off. Felt like kicking myself after that, but that’s how you learn, right? You just keep bashing your head against the wall until it gives in.
Once I could reliably save and retrieve orders, the next big challenge was making it look decent and actually usable. My UI/UX skills are, well, let’s just say basic. I just used some really simple CSS to make the forms readable, buttons clickable, and a basic table to display all the orders. I added a “status” field for each order: “Pending,” “Baked,” “Out for Delivery,” “Completed.” My buddy wanted a way to filter orders too, so I slapped on some simple filters by date and status. That was tricky. Getting the Flask routes to handle filtering parameters correctly took a bit of head-scratching.
I also realized pretty quickly that just having a list wasn’t enough. They needed to update an order. So, I added an “edit” button next to each order. Clicking it would take them to a form pre-filled with the order details, and they could change the status or even the items. And, of course, a “delete” button, just in case. Implementing the update functionality, where the form data matched up with the correct record in the database, that was another little hurdle. Needed to pass the order ID around correctly.
By early October, I had a working prototype. It looked rough as hell, but it functioned. I took my laptop over to the bakery, set it up on the counter. “Here, try this,” I told him. He and his staff started poking at it. They were a bit hesitant at first, used to their paper. But they immediately saw how much faster it was to enter an order and then just click a button to mark it “Baked” or “Delivered.” The biggest win was the search function. They could instantly find Sarah’s chocolate cake just by typing “Sarah.” No more digging through stacks of paper.
I iterated on it for a few more weeks. They gave me feedback: “Can we have a way to see only today’s orders by default?” “It would be great if the background color changed for ‘Out for Delivery’ orders.” Small, practical things that made a huge difference. Each little request was another chance for me to learn something new about Python, Flask, or simple front-end stuff. I kept it simple, not trying to be a full-blown enterprise solution, just making his everyday life a little easier. Eventually, I set it up on a small, cheap Raspberry Pi they had lying around, so it was always running and accessible on their local network. It wasn’t perfect, but it sure beat endless sticky notes and frantic searches.
