In interviews, recruiters often ask, “Can you tell us about a challenge you’ve faced and how you overcame it?” While it’s a common question, it’s not always easy to provide a detailed response on the spot. So, I’ve decided to write about one of the significant challenges I encountered during my professional journey.
It was 2021, and the world was still adapting to the pandemic’s effects. My client, Mamma Jamma, a renowned Brazilian restaurant chain and part of Grupo Noz, was dealing with the impact of empty dining rooms. As restrictions eased and businesses began reopening, Mamma Jamma could welcome customers back, but one crucial change was required: menus had to be contactless.
The solution? QR codes on each table that would lead customers to a digital menu on the Mamma Jamma website. However, this wasn’t a simple project. The restaurant had multiple locations, each with unique menus and pricing. Additionally, the menu had to be available in both Portuguese and English, with sections for pasta, pizza, beverages, wines, and desserts. There were also requirements for identifying vegan dishes with icons, and the system needed to be both scalable and optimized for mobile.
The Solution
To meet these demands, I built a custom system using WordPress. Here’s how I structured it:
- Custom Post Type: I created a custom post type for each dish, allowing the team to easily manage and update the menu items.
- Custom Taxonomies: I implemented two custom taxonomies to handle the various categories and subcategories, including options for different locations and cities. The menu structure was complex, featuring three levels of subcategories, such as Wines > Type > Glass/Bottle > Origin.
- Recursive Functions: I used recursive functions to dynamically generate submenus and categorized items, ensuring a seamless display of nested items without cluttering the user interface.
- Mobile-Friendly Display: To ensure a user-friendly experience, I incorporated jQuery and CSS to create accordion-style menus that expanded and collapsed, providing a clean, easy-to-navigate frontend.
- Custom Admin Dashboard: One unique requirement was that the menu items needed to be ordered manually, not by date or alphabetically. This is a common strategy in restaurant marketing, and I addressed it by building a drag-and-drop interface for the Mamma Jamma team to reorder dishes as they saw fit. This was all manageable through WordPress’s backend.
- Advanced Custom Fields (ACF): Each dish required various details like pricing, images, categories, and whether it was vegan. Using ACF, I created custom fields with size and format constraints, ensuring that every item was consistent with the design requirements. These fields could also be copied and translated using WPML, making it easy for the team to manage both language versions.
- City-Specific Menus: Since each restaurant location had slight variations in menu and pricing, I configured the system to ensure that only the relevant items appeared based on the restaurant’s location.
The Outcome
The project was a great success, as highlighted by Isabella Lobo, the marketing director of Grupo Noz, in her testimonial video (in Portuguese only). The solution allowed Mamma Jamma to navigate a challenging time during the pandemic by offering a contactless menu that was easy for both the restaurant staff and customers to use.
Though the menu system is no longer in use, as Mamma Jamma later transitioned to a specialized marketing company for lead generation and analytics, I am proud of the role this system played. It helped Mamma Jamma maintain business during a difficult period, and it proved to be a more efficient solution than alternatives like PDF menus, which would have been cumbersome to update and manage.
This project exemplified my passion for solving complex problems through thoughtful coding. As the famous WordPress quote says, “Code is poetry,” and this experience allowed me to live that ethos.
If you’d like to learn more about my work, feel free to visit eduardocapella.dev or connect with me on LinkedIn.
Cheers, and have a great day!