Back in high school, our programming class formed a group to produce a senior exhibition project. We decided to tackle the issue of lunchtime delays caused by the sheer volume of customer demand. We came up with: the "McFatter Cafe", an app ecosystem with proposed features including online order functionality, support tickets, payment processing integrations, point of sale (POS) and kitchen display system (KDS) functionality.
By this time, we'd had some exposure to HTML, CSS, JavaScript, and Java. Though, we really only knew how to make small-scale desktop apps and static websites. Earlier in the school year, I began teaching myself Python and learned about the Django web framework. The ability to build a dynamic website seemed like wizardry to me.
Now, having become the backend wizard, I focused on building the dynamic components for the project as my teammates focused on creating the frontend. After I finished with that aspect, I took on the role of building the cart functionality, which I implemented entirely in the DOM. It's only when you place an order that your cart data hits the backend. In retrospect, I see that there are potential issues or insufficiencies with that particular data flow schema.
As we were closing in on the project's deadline, I began integrating the team's frontend components using Django's template system. Another shortcoming of mine was failing to brief the team on the template system, which could have reduced their development time via the principle of DRY. Regardless, we finished our MVP (which we determined would only consist of online orders, support ticketing, and an iOS app), gave the presentation, and got a passing grade.
We never did get to continue its development, though it remains a notable achievement in our academic careers. You can view a live demo of the McFatter Cafe web app here.