The Food Recipes Management System is a comprehensive web application designed to facilitate the management, sharing, and discovery of food recipes. Built with modern web technologies, this system offers a user-friendly interface for users to explore, manage, and contribute recipes. It caters to a wide range of users, from home cooks to professional chefs, providing features tailored to enhance the culinary experience.
You may watch the following video demo:
FoodrecipeappDemo.webm
A live production demo will be available soon after resolving a deployment issue.
- User Authentication: Secure login and registration system to manage user access.
- User Roles: Differentiated user roles, including SuperAdmin and regular users, to control access levels within the application.
- Browse Recipes: Users can browse through a list of recipes, with options to filter by categories or tags.
- Recipe Details: View detailed information about a recipe, including ingredients, preparation steps, and images.
- Add and Edit Recipes: Users with appropriate permissions can add new recipes or edit existing ones, including uploading images and specifying categories and tags.
- Favorites: Users can mark recipes as favorites for easy access later.
- Manage Categories: Admin users can add, edit, or delete categories to organize recipes.
- Manage Tags: Admin users can add, edit, or delete tags to provide additional recipe metadata.
- Admin Dashboard: A dashboard for SuperAdmin users to manage recipes, categories, and tags, and view system statistics.
- User Dashboard: A personalized dashboard for regular users to view their favorite recipes and recent activity.
- React.js: For building the user interface.
- React-hook-form: For form validation.
- React Bootstrap: For styling.
- React Toastify: For toast notifications.
- React Icons: For icons.
- Context API: For managing application state across components.
- React Router: For navigation within the application.
-
React Development: Utilizing functional components, hooks (e.g.,
useState,useEffect,useContext), andthe context APIfor state management across the application. -
Routing and Navigation: Implemented client-side routing using
react-router-domwith route protection to manage navigation between different parts of the application. -
Form Handling and Validation: Leverageing
react-hook-formfor efficient form handling and validation, ensuring a smooth user experience when submitting data. -
API Integration: Used
axiosfor making HTTP requests to protected and public endpoints, as seen in theapiProtectedandapiPublicutilities. -
Custom Hooks: Showcases the creation and use of
custom hooks(e.g.,useCategories) to encapsulate and reuse logic across components. -
Error Handling and Notifications: Implements error handling strategies and user notifications using
react-toastify, enhancing the user interface and experience.
To get the application running locally on your machine, follow these steps:
-
Clone the repo
git clone https://github.com/Farahat612/UpskillingEG-Project01-FoodRecipesApp
-
Change directory
cd UpskillingEG-Project01-FoodRecipesApp -
Install dependencies
npm install
-
Start the development server
npm run dev
-
Visit
http://127.0.0.1:5173/in your browser.
This applicetion was developed and built as part of UpSkillingEG
frontend job simulation bootcamp, following theirFigmadesign guidelines andAPIdocs.
Contributions are welcome! Please read the contributing guidelines first.
This project is licensed under the MIT License. See the LICENSE file for details.