Skip to content

Sherif-El-Sheikh/tastyFoodApp

Repository files navigation

Food Recipes Management System

The Food Recipes Management System is an innovative web application designed to streamline the process of discovering, sharing, and managing food recipes. Leveraging the latest web technologies, the platform provides an intuitive interface that allows users to effortlessly browse, organize, and contribute recipes. It is ideal for a diverse user base, including amateur cooks and professional chefs, offering features that elevate the cooking experience.

Features

User Authentication and Authorization

  • User Authentication: Secure login and registration system to manage user access, including "Forgot Password" and "Change Password" features for password recovery and management.
  • User Roles: Differentiated user roles, including SuperAdmin and regular users, to control access levels within the application.

Recipe Management

  • 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.

Categories and Tags

  • 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.

Dashboard

  • 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.

Skills and Techniques Covered

  • React Development: Utilizing functional components, hooks (e.g., useState, useEffect, useContext), and the context API for state management across the application.

  • Routing and Navigation: Implemented client-side routing using react-router-dom with route protection to manage navigation between different parts of the application.

  • Form Handling and Validation: Leverageing react-hook-form for efficient form handling and validation, ensuring a smooth user experience when submitting data.

  • API Integration: Used axios for making HTTP requests.

  • Error Handling and Notifications: Implements error handling strategies and user notifications using react-toastify, enhancing the user interface and experience.