Skip to content

Commit

Permalink
Merge pull request #914 from Sypher0Dronzer/FoodAPI
Browse files Browse the repository at this point in the history
Food API has been integrated in the menu
  • Loading branch information
sunny0625 authored Jun 4, 2024
2 parents af95efe + e01f942 commit 13e6d01
Show file tree
Hide file tree
Showing 3 changed files with 221 additions and 19 deletions.
2 changes: 2 additions & 0 deletions Css-files/content.css
Original file line number Diff line number Diff line change
Expand Up @@ -183,6 +183,8 @@ body {

.menu_items {
display: flex;
flex-wrap: wrap;
max-width: 90vw;
justify-content: center;
}

Expand Down
199 changes: 199 additions & 0 deletions Html-files/MenuAPI.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,199 @@
// const menuContainer= document.querySelector('.menu_container')
// menuContainer.innerHTML=``

// const categories = [
// "Beef", "Breakfast", "Chicken", "Dessert", "Goat",
// "Lamb", "Miscellaneous", "Pasta", "Pork", "Seafood",
// "Side", "Starter", "Vegan", "Vegetarian"
// ]

// async function getMealsByCategory(category) {
// const url = `https://www.themealdb.com/api/json/v1/1/filter.php?c=${category}`;
// const response = await fetch(url);
// const data = await response.json();
// return data.meals || [];
// }

// // Function to log image source and name of the dish for a given category
// async function getMealDataByCategory(category) {
// try {
// const meals = await getMealsByCategory(category);
// return meals.map(meal => ({
// name: meal.strMeal,
// imgSrc: meal.strMealThumb
// }));
// } catch (error) {
// console.error('Error fetching meals:', error);
// return [];
// }
// }

// // Example usage for the category "Seafood"
// // (async () => {
// // const mealData = await getMealDataByCategory('Seafood');
// // console.log(mealData);
// // })();
// let mealData
// categories.forEach(async(category)=>{
// (async () => {
// mealData = await getMealDataByCategory(category);
// console.log(mealData);
// })();
// function renderMeals(){
// mealData.forEach(mealDetails=>{
// return `
// <div class="items">
// <img
// src="${mealDetails.imgScr}"
// />

// <h3>${mealDetails.name}</h3>
// <p>$10.20</p>
// <!-- <button class="but">Add to Cart</button> -->
// <button
// class="butt add-to-cart-button"
// data-product-id="1.01"
// data-product-name="Indian Thali"
// data-product-price="10.20"
// >
// Add to Cart
// </button>

// <div class="star-rating">
// <button class="star-button" onclick="rateItem(this, 1)">
// <i class="fas fa-star"></i>
// </button>
// <button class="star-button" onclick="rateItem(this, 2)">
// <i class="fas fa-star"></i>
// </button>
// <button class="star-button" onclick="rateItem(this, 3)">
// <i class="fas fa-star"></i>
// </button>
// <button class="star-button" onclick="rateItem(this, 4)">
// <i class="fas fa-star"></i>
// </button>
// <button class="star-button" onclick="rateItem(this, 5)">
// <i class="fas fa-star"></i>
// </button>
// </div>
// </div>
// </a>
// `
// })
// }
// menuContainer.innerHTML+=`<h2
// data-aos="zoom-out-left"
// data-aos-duration="1000"
// data-aos-offset="170"
// data-aos-easing="ease-in-out"
// >
// ${category}
// </h2>
// ${renderMeals()}
// `
// })

const menuContainer = document.querySelector(".menu_container");
menuContainer.innerHTML = ``;

const categories = [
"Beef",
"Breakfast",
"Chicken",
"Dessert",

"Lamb",
"Miscellaneous",
"Pasta",
"Pork",
"Seafood",
"Side",
"Starter",
"Vegan",
"Vegetarian",
];

// Function to get meals by category
async function getMealsByCategory(category) {
const url = `https://www.themealdb.com/api/json/v1/1/filter.php?c=${category}`;
const response = await fetch(url);
const data = await response.json();
return data.meals || [];
}

// Function to log image source and name of the dish for a given category
async function getMealDataByCategory(category) {
try {
const meals = await getMealsByCategory(category);
return meals.map((meal) => ({
name: meal.strMeal,
imgSrc: meal.strMealThumb,
}));
} catch (error) {
console.error("Error fetching meals:", error);
return [];
}
}

// Function to render meal details
function renderMeals(mealData) {
return mealData
.map(
(mealDetails) => `
<div class="items">
<img src="${mealDetails.imgSrc}" />
<h3>${mealDetails.name}</h3>
<p>$10.20</p>
<button class="butt add-to-cart-button"
data-product-id="1.01"
data-product-name="${mealDetails.name}"
data-product-price="10.20">
Add to Cart
</button>
<div class="star-rating">
<button class="star-button" onclick="rateItem(this, 1)">
<i class="fas fa-star"></i>
</button>
<button class="star-button" onclick="rateItem(this, 2)">
<i class="fas fa-star"></i>
</button>
<button class="star-button" onclick="rateItem(this, 3)">
<i class="fas fa-star"></i>
</button>
<button class="star-button" onclick="rateItem(this, 4)">
<i class="fas fa-star"></i>
</button>
<button class="star-button" onclick="rateItem(this, 5)">
<i class="fas fa-star"></i>
</button>
</div>
</div>
`
)
.join(""); // Join the array into a single string
}

categories.forEach(async (category) => {
const mealData = await getMealDataByCategory(category);
const renderedMeals = renderMeals(mealData);

menuContainer.innerHTML += `<h2
data-aos="zoom-out-left"
data-aos-duration="1000"
data-aos-offset="170"
data-aos-easing="ease-in-out"
>
${category}
</h2>
<div
class="menu_items"
data-aos="zoom-out"
data-aos-duration="1000"
data-aos-offset="170"
data-aos-easing="ease-in-out"
>
${renderedMeals}
</div>
`;
});
39 changes: 20 additions & 19 deletions Html-files/menu.html
Original file line number Diff line number Diff line change
Expand Up @@ -71,7 +71,7 @@ <h2 data-aos="zoom-out-left" data-aos-duration="1000" data-aos-offset="170" data

<h3>Indian Thali</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.01" data-product-name="Indian Thali"
data-product-price="10.20">Add to Cart</button>

Expand All @@ -91,7 +91,7 @@ <h3>Indian Thali</h3>
src="https://imgmediagumlet.lbb.in/media/2018/04/5acf822418a23c0efc21496b_1523548708582.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Dessert</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.02" data-product-name="Dessert"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -111,7 +111,7 @@ <h3>Dessert</h3>
src="https://imgmediagumlet.lbb.in/media/2019/07/5d27585dc18a2b0ed5739eb5_1562859613517.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Snacks</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.03" data-product-name="Snacks"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -129,7 +129,7 @@ <h3>Snacks</h3>
<img src="https://static.india.com/wp-content/uploads/2017/04/Juices-Delhi.jpg">
<h3>Juices</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.04" data-product-name="Juices"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -150,7 +150,7 @@ <h3>Juices</h3>
src="https://www.mumbailive.com/images/media/images/thali_1635502261446jpeg?bg=08394e&crop=5328%2C2991.157894736842%2C0%2C504.42105263157896&fit=crop&fm=webp&h=432.2807017543859&height=4000&w=770&width=5328">
<h3>Indian Thali</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.05" data-product-name="Indian Thali"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -169,7 +169,7 @@ <h3>Indian Thali</h3>
src="https://imgmediagumlet.lbb.in/media/2018/04/5acf822418a23c0efc21496b_1523548708582.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Dessert</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.06" data-product-name="Dessert"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -188,7 +188,7 @@ <h3>Dessert</h3>
src="https://imgmediagumlet.lbb.in/media/2019/07/5d27585dc18a2b0ed5739eb5_1562859613517.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Snacks</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.07" data-product-name="Snacks"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -206,7 +206,7 @@ <h3>Snacks</h3>
<img src="https://static.india.com/wp-content/uploads/2017/04/Juices-Delhi.jpg">
<h3>Juices</h3>
<p>$10.20</p>
<!-- <button class="but">Add to Cart</button> -->

<button class="butt add-to-cart-button" data-product-id="1.08" data-product-name="Juices"
data-product-price="10.20">Add to Cart</button>
<div class="star-rating">
Expand All @@ -221,7 +221,8 @@ <h3>Juices</h3>
</div>

</section>
<section class="menu_container">

<!-- <section class="menu_container">
<h2 data-aos="zoom-out-up" data-aos-duration="1000" data-aos-offset="170" data-aos-easing="ease-in-out">Juices</h2>
<div class="menu_items" data-aos="zoom-out" data-aos-duration="1000" data-aos-offset="170" data-aos-easing="ease-in-out">
<a href="./dish-detailes.html" style="text-decoration: none; color: inherit;">
Expand All @@ -231,7 +232,7 @@ <h2 data-aos="zoom-out-up" data-aos-duration="1000" data-aos-offset="170" data-a
src="https://www.mumbailive.com/images/media/images/thali_1635502261446jpeg?bg=08394e&crop=5328%2C2991.157894736842%2C0%2C504.42105263157896&fit=crop&fm=webp&h=432.2807017543859&height=4000&w=770&width=5328">
<h3>Indian Thali</h3>
<p>$5.10</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="2.01" data-product-name="Indian Thali"
data-product-price="5.10">Add to Cart</button>
<div class="star-rating">
Expand All @@ -250,7 +251,7 @@ <h3>Indian Thali</h3>
src="https://imgmediagumlet.lbb.in/media/2018/04/5acf822418a23c0efc21496b_1523548708582.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Dessert</h3>
<p>$5.10</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="2.02" data-product-name="Dessert"
data-product-price="5.10">Add to Cart</button>
<div class="star-rating">
Expand All @@ -269,7 +270,7 @@ <h3>Dessert</h3>
src="https://imgmediagumlet.lbb.in/media/2019/07/5d27585dc18a2b0ed5739eb5_1562859613517.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Snacks</h3>
<p>$5.10</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="Snacks" data-product-name="Snacks"
data-product-price="5.10">Add to Cart</button>
<div class="star-rating">
Expand All @@ -287,7 +288,7 @@ <h3>Snacks</h3>
<img src="https://static.india.com/wp-content/uploads/2017/04/Juices-Delhi.jpg">
<h3>Juices</h3>
<p>$5.10</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="2.04" data-product-name="Juices"
data-product-price="5.10">Add to Cart</button>
<div class="star-rating">
Expand All @@ -311,7 +312,7 @@ <h2 data-aos="zoom-out-up" data-aos-duration="1000" data-aos-offset="170" data-a
src="https://www.mumbailive.com/images/media/images/thali_1635502261446jpeg?bg=08394e&crop=5328%2C2991.157894736842%2C0%2C504.42105263157896&fit=crop&fm=webp&h=432.2807017543859&height=4000&w=770&width=5328">
<h3>Indian Thali</h3>
<p>$15.80</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="3.01" data-product-name="Indian Thali"
data-product-price="15.80">Add to Cart</button>
<div class="star-rating">
Expand All @@ -330,7 +331,7 @@ <h3>Indian Thali</h3>
src="https://imgmediagumlet.lbb.in/media/2018/04/5acf822418a23c0efc21496b_1523548708582.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Dessert</h3>
<p>$15.80</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="3.02" data-product-name="Dessert"
data-product-price="15.80">Add to Cart</button>
<div class="star-rating">
Expand All @@ -349,7 +350,7 @@ <h3>Dessert</h3>
src="https://imgmediagumlet.lbb.in/media/2019/07/5d27585dc18a2b0ed5739eb5_1562859613517.jpg?fm=webp&w=750&h=500&dpr=1">
<h3>Snacks</h3>
<p>$15.80</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="3.03" data-product-name="Snacks"
data-product-price="15.80">Add to Cart</button>
<div class="star-rating">
Expand All @@ -367,7 +368,7 @@ <h3>Snacks</h3>
<img src="https://static.india.com/wp-content/uploads/2017/04/Juices-Delhi.jpg">
<h3>Juices</h3>
<p>$15.80</p>
<!-- <button class="but">Add to Cart</button> -->
<button class="butt add-to-cart-button" data-product-id="3.04" data-product-name="Juices"
data-product-price="15.80">Add to Cart</button>
<div class="star-rating">
Expand All @@ -379,7 +380,7 @@ <h3>Juices</h3>
</div>
</div>
</a>
</section>
</section> -->

<!-- footer -->
<footer>
Expand Down Expand Up @@ -461,7 +462,7 @@ <h4>Follow Us</h4>
</footer>

<script>document.getElementById("copyright-year").textContent = new Date().getFullYear();</script>

<script src="./MenuAPI.js"></script>
<script src="menu.js">
function redirectLogin() {
window.location.href = "login.html";
Expand Down

0 comments on commit 13e6d01

Please sign in to comment.