EN | δΈζ
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
- π² Recipe Browsing β Dedicated
recipespages for exploring dishes. - π Shop Experience β Product cards and detail modals in the
shopsection. - π Authentication Screens β Login/registrationβstyle pages under
authentication/with frontβend validation. - π‘ Content Pages β
home,about-us,inspiration,coming-soon, andpaymentpages for a full website feel. - β
Form Validation β Centralized auth validation in
validator/AuthValidator.jsxandAuthValidator.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.
| Home Page | Recipes Main Page |
![]() |
![]() |
| Shopping Page | Recipes Page |
![]() |
![]() |
| Authentication Page | Payment Page |
![]() |
![]() |
| Inspiration Page | About Us Page |
![]() |
![]() |
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- Framework: React 18 (
react,react-dom) - Routing: React Router v6 (
react-router-dom) - Styling: Plain CSS (
App.css,index.css, per-feature CSS likeAuthValidator.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)
git clone https://github.com/Dendroculus/Food-Recipe-Website-React.git
cd Food-Recipe-Website-ReactUsing npm (recommended with CRA):
npm installYouβll see dependencies such as
react,react-scripts,react-router-dom,react-icons,@testing-library/*, etc., as defined inpackage.json.
npm startThis 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.
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 ejectnpm startβ Uses Create React Appβs dev server viareact-scripts start.npm run buildβ Builds the app for production to thebuildfolder.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).
The project is deployed on Vercel:
- Live Site: Food Recipe Website
To deploy your own version:
- Push your repository to GitHub.
- Log in to Vercel and click βNew Projectβ.
- Import this GitHub repo.
- Vercel will auto-detect Create React App and use
npm run buildas the build command. - Click Deploy.
- Every push to the default branch triggers a new deployment.
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.jswith 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.
Contributions, ideas, and feedback are welcome!
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes and commit:
git commit -m "Add some feature" - Push the branch:
git push origin feature/your-feature-name
- Open a Pull Request to this repo.
For larger features or refactors, consider opening an issue first to discuss the approach.
This project is licensed under the MIT License.
See the LICENSE file for details.







