React Native Focus Timer App
January 21, 2024
Web3 Decentralized Exchange
January 18, 2024

ZenFoci Lifestyle App - Meal Search Feature

The ZenFoci Lifestyle App was a team project developed as part of the University of Birmingham Coding Bootcamp I attended in 2022. My Role was to create a key part of the app, a Meal Search feature. This functionality allows users to search for recipes, view comprehensive details, and manage their culinary preferences efficiently. The feature is designed to enhance user engagement and simplify the process of meal planning and grocery shopping.

Key Features

Dynamic Data Presentation
Search results are displayed in a well-organized manner, with tabs and modals used to present comprehensive recipe details such as ingredients, cooking instructions, and nutritional information.
Real-time API Integration
The feature integrates with the Tasty API, fetching real-time data based on user queries. This ensures that the users have access to a vast and updated repository of recipes and meal ideas.
Intuitive Search Functionality
Users can effortlessly search for meals or ingredients, with the feature responding to both click and keyboard inputs. This flexibility enhances the overall user experience, making the search process accessible and user-friendly.
Interactive Shopping List Creation
The app enables users to click on ingredients within recipes to add them directly to a shopping list, streamlining the meal preparation process.
Local Storage for Personalization:
Users can save their favorite recipes and shopping list items in local storage, allowing for easy access and management of their personal culinary preferences.
Error Handling and User Feedback
Robust error handling mechanisms are in place to manage scenarios like empty search results or API failures, with user-friendly notifications enhancing the overall usability of the app.
Modern, Responsive Design

Leveraging Materialize CSS, the app’s interface is both modern and responsive, ensuring a consistent and engaging user experience across various devices and screen sizes.

Functionality and Workflow

Recipe Search and Fetching Data:

  • The feature begins with a user-initiated search where they enter a meal or ingredient into a search bar.
  • Upon submitting the search query, the app makes an API call to the Tasty API, fetching a list of recipes that match the query.
  • The search functionality is designed to handle both click and 'Enter' keypress events, ensuring accessibility and ease of use.

Data Processing and Display:

  • The fetched data is processed to filter out undefined or irrelevant information, ensuring that only complete and useful data is presented to the user.
  • Each recipe's detailed information, including cooking instructions, ingredients, and nutritional facts, is dynamically displayed.
  • The app uses tabs and modal windows to organize and present this information in a user-friendly manner.

Local Storage Integration:

  • The feature integrates with the browser’s local storage, allowing users to save their favorite recipes for later access.
  • Users can also click on ingredients to add them to a shopping list, which is stored and can be viewed anytime during the session.

Error Handling and User Feedback:

  • The application includes error handling to manage situations where no results are found or if an API call fails.
  • An error modal is displayed to the user in case of such events, providing a clear and friendly notification.

Technical Stack

JavaScript and jQuery

Utilized for scripting the search functionality, DOM manipulations, handling events, and making AJAX calls.

Materialize CSS

Employed for UI components like modals, tabs, and buttons to ensure a responsive and modern interface.

Local Storage

Integrated with the Tasty API for fetching recipe data based on user queries.

External APIs

ntegrated with the Tasty API for fetching recipe data based on user queries.

Project Significance

The Meal Search feature in the ZenFoci Lifestyle App highlights my skills in creating intuitive, user-centric web functionalities. It demonstrates my ability to integrate various technologies and APIs to provide a seamless user experience.
 
This feature also showcases my proficiency in handling data, user interactions, and crafting dynamic web pages that respond to user inputs in real time.
 
 

Further Info

The deployed application can be found here
 
The project source code is available on GitHub at