Skip to content

Dendroculus/Food-Recipe-Website-React

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

React React Router JavaScript CSS Vercel MIT Bootstrap

🍽️ Food Recipe Website (React)

A modern React-based food & recipe platform featuring user authentication, shop integration with daily promos, and dynamic recipe browsing. This project is a fully dynamic evolution of my original static Food Recipe Website, focused on refactoring, maintainability, and clean architecture.

Live demo: Food Recipe Website


✨ Features

  • 🍲 Recipe Browsing – Dedicated recipes pages for exploring dishes.
  • πŸ›’ Shop Experience – Product cards and detail modals in the shop section.
  • πŸ” Authentication Screens – Login/registration–style pages under authentication/ with front‑end validation.
  • πŸ’‘ Content Pages – home, about-us, inspiration, coming-soon, and payment pages for a full website feel.
  • βœ… Form Validation – Centralized auth validation in validator/AuthValidator.jsx and AuthValidator.css.
  • πŸ“± Responsive Layout – Built with reusable components and CSS for desktop, tablet, and mobile.
  • 🧱 Component-Based Architecture – Organized components/ for navigation, loaders, footers, modals, and shop UI.
  • πŸ§ͺ Testing Setup – Ready-to-use Jest + React Testing Library via Create React App.

πŸ–ΌοΈ Screenshots

Home Page Recipes Main Page
Home Page Recipes Page
Shopping Page Recipes Page
Shopping Page Recipe Details
Authentication Page Payment Page
Authentication Page Payment Page
Inspiration Page About Us Page
Inspiration Page About Us Page

πŸ—οΈ Project Structure

Food-Recipe-Website-React/
β”œβ”€β”€ public/                         # Static assets (index.html, favicon, etc.)
β”‚
β”œβ”€β”€ src/
β”‚   β”œβ”€β”€ components/
β”‚   β”‚   β”œβ”€β”€ footer/                 # Footer components
β”‚   β”‚   β”œβ”€β”€ loader/                 # Loading indicators / skeletons
β”‚   β”‚   β”œβ”€β”€ modals/                 # Generic modal components
β”‚   β”‚   β”œβ”€β”€ navigations/            # Navbar / navigation UI
β”‚   β”‚   └── shop/                   # Shop-specific components
β”‚   β”‚
β”‚   β”œβ”€β”€ utils/                      # Shared utilities / helpers
β”‚   β”‚
β”‚   β”œβ”€β”€ validator/
β”‚   β”‚   β”œβ”€β”€ AuthValidator.css       # Styles for auth validation
β”‚   β”‚   └── AuthValidator.jsx       # Auth validation logic / components
β”‚   β”‚
β”‚   β”œβ”€β”€ pages/
β”‚   β”‚   β”œβ”€β”€ about-us/               # About page
β”‚   β”‚   β”œβ”€β”€ authentication/         # Login / register pages
β”‚   β”‚   β”œβ”€β”€ coming-soon/            # Coming soon page
β”‚   β”‚   β”œβ”€β”€ home/                   # Landing / home page
β”‚   β”‚   β”œβ”€β”€ inspiration/            # Inspiration / content page
β”‚   β”‚   β”œβ”€β”€ payment/                # Payment / checkout experience
β”‚   β”‚   β”œβ”€β”€ recipes/                # Recipe listing / detail pages
β”‚   β”‚   └── shop/                   # Shop main page
β”‚   β”‚
β”‚   β”œβ”€β”€ App.css                     # Global app styles
β”‚   β”œβ”€β”€ App.js                      # Root component
β”‚   β”œβ”€β”€ App.test.js                 # Tests for App component
β”‚   β”œβ”€ index.css                    # Global CSS / reset
β”‚   β”œβ”€β”€ index.js                    # ReactDOM entry point
β”‚   β”œβ”€β”€ logo.svg                    # Logo asset
β”‚   β”œβ”€β”€ reportWebVitals.js          # Web vitals reporting (CRA default)
β”‚   β”œβ”€β”€ routes.js                   # Route configuration using React Router
β”‚   └── setupTests.js               # Jest / RTL test setup
β”‚
β”œβ”€β”€ .gitignore
β”œβ”€β”€ LICENSE
β”œβ”€β”€ package-lock.json
β”œβ”€β”€ package.json
└── README.md

🧰 Tech Stack

  • Framework: React 18 (react, react-dom)
  • Routing: React Router v6 (react-router-dom)
  • Styling: Plain CSS (App.css, index.css, per-feature CSS like AuthValidator.css)
  • Icons: react-icons
  • Tooling: Create React App (react-scripts)
  • Testing: Jest + React Testing Library
    (@testing-library/react, @testing-library/jest-dom, @testing-library/user-event, @testing-library/dom)
  • Performance: web-vitals (optional reporting)

πŸš€ Getting Started

1️⃣ Clone the repository

git clone https://github.com/Dendroculus/Food-Recipe-Website-React.git
cd Food-Recipe-Website-React

2️⃣ Install dependencies

Using npm (recommended with CRA):

npm install

You’ll see dependencies such as react, react-scripts, react-router-dom, react-icons, @testing-library/*, etc., as defined in package.json.

3️⃣ Start the development server

npm start

This runs the app in development mode at:
http://localhost:3000

The page reloads automatically when you edit files, and lint errors appear in the console.


▢️ Available Scripts

From the project root, you can run:

# Start development server
npm start

# Build production bundle
npm run build

# Run tests in watch mode
npm test

# Eject configuration (not reversible)
npm run eject
  • npm start – Uses Create React App’s dev server via react-scripts start.
  • npm run build – Builds the app for production to the build folder.
  • npm test – Launches the test runner in interactive watch mode.
  • npm run eject – Exposes the underlying Webpack/Babel config (only if you really need to customize heavily).

🌐 Deployment

The project is deployed on Vercel:

To deploy your own version:

  1. Push your repository to GitHub.
  2. Log in to Vercel and click β€œNew Project”.
  3. Import this GitHub repo.
  4. Vercel will auto-detect Create React App and use npm run build as the build command.
  5. Click Deploy.
  6. Every push to the default branch triggers a new deployment.

πŸ’‘ Improvements Over the Original Static Version

This project is an improved version of the original static Food Recipe Website:

  • Migrated from static HTML/CSS/JS to a React SPA.
  • Centralized routing in routes.js with React Router v6.
  • Added dedicated auth, shop, recipes, payment, and inspiration pages.
  • Introduced modal-based UX for shop interactions (ShopAddModal, ShopDetailsModal).
  • Centralized auth validation logic for cleaner forms.
  • Prepared for tests with Jest + React Testing Library out of the box.
  • Easier to integrate backend APIs or state management in the future.

🀝 Contributing

Contributions, ideas, and feedback are welcome!

  1. Fork the repository.
  2. Create a new branch:
    git checkout -b feature/your-feature-name
  3. Make your changes and commit:
    git commit -m "Add some feature"
  4. Push the branch:
    git push origin feature/your-feature-name
  5. Open a Pull Request to this repo.

For larger features or refactors, consider opening an issue first to discuss the approach.


πŸ“œ License

This project is licensed under the MIT License.
See the LICENSE file for details.


About

Improved version of original Food-Recipe-Website, previously static now dynamic

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •