From 369dbcde63e0bce9e8de9537b0fdaae323cc821e Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Tue, 23 Sep 2025 20:23:48 +0200 Subject: [PATCH 01/22] first push --- .DS_Store | Bin 0 -> 6148 bytes .vscode/settings.json | 3 + image/pizza.jpg | Bin 0 -> 59587 bytes index.html | 107 ++++++++++++++++++++++++++++++++ script.js | 9 +++ style.css | 139 ++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 258 insertions(+) create mode 100644 .DS_Store create mode 100644 .vscode/settings.json create mode 100644 image/pizza.jpg create mode 100644 index.html create mode 100644 script.js create mode 100644 style.css diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..9ef2be26a6e9f7ab8917f84a41312c966da3058b GIT binary patch literal 6148 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 literal 0 HcmV?d00001 diff --git a/index.html b/index.html new file mode 100644 index 000000000..a8c539b51 --- /dev/null +++ b/index.html @@ -0,0 +1,107 @@ + + + + + + + Document + + +
+

Recipe Library

+
+
+ +
+
+
+

Filter on kitchen

+
+
+
+
    +
  • +
  • +
  • +
  • +
+
+
+ + +
+
+

Sort on time

+
+
+
    +
  • +
  • +
+
+
+
+ +
+ +
+

Temporary placeholder for filters/sorting options

+
+ +
+ +
+ +
+ a picture of an American food +

Temporary placeholder recipe

+

Cuisine: American

+

Time: 1h 30min

+ +

Ingredients

+

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

+

1/2 teaspoon coarse salt

+

1/2 teaspoon Mrs. Dash seasoning

+

1/4 teaspoon freshly ground black pepper

+
+
+ a picture of an American food +

Temporary placeholder recipe

+

Cuisine: American

+

Time: 1h 30min

+ +

Ingredients

+

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

+

1/2 teaspoon coarse salt

+

1/2 teaspoon Mrs. Dash seasoning

+

1/4 teaspoon freshly ground black pepper

+
+
+ a picture of an American food +

Temporary placeholder recipe

+

Cuisine: American

+

Time: 1h 30min

+ +

Ingredients

+

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

+

1/2 teaspoon coarse salt

+

1/2 teaspoon Mrs. Dash seasoning

+

1/4 teaspoon freshly ground black pepper

+
+
+ + + \ No newline at end of file diff --git a/script.js b/script.js new file mode 100644 index 000000000..2df70fc27 --- /dev/null +++ b/script.js @@ -0,0 +1,9 @@ +const btns = document.querySelectorAll(".filter-btn, .sort-btn"); +const container = document.getElementById("text-container"); + +btns.forEach((btn) => { + // change the color of the button when it's clicked + btn.addEventListener("click", () => { + btn.classList.toggle("active"); + }) +}) \ No newline at end of file diff --git a/style.css b/style.css new file mode 100644 index 000000000..78c4f184c --- /dev/null +++ b/style.css @@ -0,0 +1,139 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +body { + background-color: #fafbff; +} + +h1 { + font-family: "Futura", sans-serif; color: #0018a4; + width: 495px; + height: 85px; + top: 64px; + left: 64px; + font-size: 64px; + margin: 50px 10px; +} + +/* h2 { + color: blue; +} */ + +h3 { + color: #000000; + font-size: 22px; + margin-bottom: 16px; + margin-left: 10px; +} + +h4 { + color: #000000; +} + +p { + color: #000000; +} + +img { + width: 268px; + height: 200px; + border-radius: 12px; +} + +li { + list-style: none; +} + +.button-container { + display: flex; + flex-direction: row; +} + +.sort-container { + display: flex; + flex-direction: column; +} +.filter, +.sort { + display: flex; + flex-direction: row; +} + +.filter-btn { + background-color: #ccffe2; + color: #0018a4; + border: none; + width: 70px; + height: 40px; + border-radius: 50px; + padding: 8px 16px; + margin: 10px; + cursor: pointer; +} + +.sort-btn { + background-color: #ffecea; + color: #0018a4; + border: none; + width: 118px; + height: 40px; + border-radius: 50px; + padding: 8px 16px; + margin: 10px; + cursor: pointer; +} + +.filter-btn:hover, +.sort-btn:hover { + border: 2px solid #0018a4; +} + +.filter-btn.active { + background-color: #0018a4; + color: #fff; +} + +.sort-btn.active { + background-color: #ff6589; + color: #fff; +} + +article { + display: flex; + flex-direction: row; +} + +.placeholder p { + opacity: 1; + /* margin: 8px 0; */ +} + +.recipe-title { + margin-left: 0; + margin-bottom: 10px; +} + +.line { + background-color: gray; + width: 150px; + height: 10px; +} + +.temporary-placeholder, +.recipe-card { + width: 300px; + height: auto; + border: 1px solid #e9e9e9; + border-radius: 16px; + margin: 16px; + padding: 16px 16px 24px 16px; + background-color: #fff; +} + +.recipe-card:hover { + box-shadow: 5px 5px 3px 0 #bebaba; +} + From 260a92b80d6d94231b44eca41d6149bbb5703eb3 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Tue, 23 Sep 2025 23:50:25 +0200 Subject: [PATCH 02/22] add text in placeholder --- index.html | 18 +++++++++--------- script.js | 14 +++++++++++++- style.css | 2 +- 3 files changed, 23 insertions(+), 11 deletions(-) diff --git a/index.html b/index.html index a8c539b51..073a06f99 100644 --- a/index.html +++ b/index.html @@ -46,16 +46,16 @@

Sort on time

Temporary placeholder for filters/sorting options

-
- +
+
- diff --git a/script.js b/script.js index 2df70fc27..89bdfe179 100644 --- a/script.js +++ b/script.js @@ -6,4 +6,16 @@ btns.forEach((btn) => { btn.addEventListener("click", () => { btn.classList.toggle("active"); }) -}) \ No newline at end of file +}) + +btns.forEach((btn) => { + btn.addEventListener("click", () => { + const targetID = btn.textContent.trim().toLowerCase(); + const template = document.querySelector(`#templates #${targetID}`); + + if (template) { + const clone = template.cloneNode(true); + container.appendChild(clone); + } + }); +}); diff --git a/style.css b/style.css index 78c4f184c..1898d6f4a 100644 --- a/style.css +++ b/style.css @@ -108,7 +108,7 @@ article { .placeholder p { opacity: 1; - /* margin: 8px 0; */ + margin: 8px 0; } .recipe-title { From bf89ff1a4e4844eac38463f51c953a9f72aef49f Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 25 Sep 2025 17:56:22 +0200 Subject: [PATCH 03/22] add JS --- .DS_Store | Bin 6148 -> 6148 bytes image/chiken.jpg | Bin 0 -> 57808 bytes image/deep fry.jpg | Bin 0 -> 66317 bytes image/fish.jpg | Bin 0 -> 47240 bytes image/{pizza.jpg => focaccia.jpg} | Bin index.html | 207 ++++++++++++++++-------------- script.js | 55 +++++++- style.css | 67 +++++++--- 8 files changed, 206 insertions(+), 123 deletions(-) create mode 100644 image/chiken.jpg create mode 100644 image/deep fry.jpg create mode 100644 image/fish.jpg rename image/{pizza.jpg => focaccia.jpg} (100%) diff --git a/.DS_Store b/.DS_Store index 9ef2be26a6e9f7ab8917f84a41312c966da3058b..98cd95593b2d4b9adae61e6bf8202d18653722b8 100644 GIT binary patch delta 14 VcmZoMXffFEg^7`I^H(N*Q2;3u1m6Gv delta 14 VcmZoMXffFEg^7`2^H(N*Q2;3o1l|Au diff --git a/image/chiken.jpg b/image/chiken.jpg new file mode 100644 index 0000000000000000000000000000000000000000..b62be9d36343807d8d5304b348224b2ec17006b2 GIT binary patch literal 57808 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

t>)1s^0*=#ay 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 literal 0 HcmV?d00001 diff --git a/image/deep fry.jpg b/image/deep fry.jpg new file mode 100644 index 0000000000000000000000000000000000000000..f36b64a4cb4389dd70e9728cc710b9466cf3e55d GIT binary patch literal 66317 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 N*!De!jnf>z|Jm4N7qtKY literal 0 HcmV?d00001 diff --git a/image/fish.jpg b/image/fish.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2265ea3f6aa1bc6e754bd04fc70e9c5df5a84652 GIT binary patch literal 47240 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≧p80L5RX;Pz<^2FGmv>YTMsY3`6Zt+#~dsP)SM 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%0Aao9&57{Oh^tUu90c>)j&PSJAW^oi^Xe zTGi)StOYw5LSS%AN{m1x<^ZXuqTw{p5xO8j=en;IXB4Of%z3!vxqiFjS5<44%X05t zxM?7HcJ@~5SW10XO!J=Ahr7OUZ=0LcyKv)&dX%-wjQgCL^&W-x8S1@C{R60-(X>$D zP+CRG*91fqr);Kk-}3L&^w0f2x*f|lm9F);E~Elh!T6db_V1mOlD{Dn)DxrA7?#(U3ItKwOcHO45&sugb#nty;0$3 z*+0S`4ibe}xV!s>{wJSMQCB&RAZELskD_S0N>JUMssd6u@7}7^)jD?&%mtxILD;Yv zM|pDp01Lba(z;QUDORaU#?Yk{iBw~n?Uouvm6{UUY@{V4;rM;2OuUV-l$loti4`F$ z*||Wc*YQ*=U~14OkWT=Hz$XzHoYSc&NdUxVbL~*ob!^&U>!!xwNF`!_y+^v$?3$2o zn85r#XvGnDV7fu2*jJ>WrWzn0PijJ+0~-h?N3B)0eQ34<+i^}#VF*&E@*dGg{-B_c zyL~q83D}g7Vpd?( zMCy#VnQh?kCq7Dde`x0A}g)=^atU(}?JAeInp}7r> z$sz>(epKyEo%cVR@B99Pn5|7!Q9+QzsJ4pQn*)MMKGWs)`3^r;{_Q#yKzV^0H!S z56?K<%*6m;LK1xC_M|6;u)QpM>YgS}9mOH+iupH@8?8bI{0|VZ>Z{HnKz0#@L1BP> zVGYo;TkuiSqd$~INm1Hr9rJyDA}-M=^~m{s`zJ@G>BGwtS0bwNn7Roi}cEvxB9|Db?iMRZqM?s$hWWxw_qo2bekGjdjp+>py3lhxCz`grMmOby@Lis)g5!dS2r{TDWA)YxQBA+OXhjEa+l#=4k zMjM50KLLk;Lb>mp-eUOkSU)WGHz~ITAxt9@4z1Z4{o&+=+ng-co5=Re{aK59@ja`e2H>Pwu*rJqY z*GW0yDRyObiFz_@pAEpk#<(a$M7??>sG9;bQ3#|gjRp@a7i#ceS*_FNvK&7*lVbl7 zyreUws~`MaYb&>c6a-7B{xj~UkPw!r0DyhLIhNNVInxK3Y()#Jr2rT3NAs}0bF=bY z{kGy+aja^_OIiXx;`eYiyEo+uC%3^*aU>H=vglu~R?(5Yj<)?0wlQ>3n z1BU7os!8se6@uuTuv;{7ED={V-@#uS-xpDMF~)_%q0<3jf`#v0W`I52 zhuXPMO+^(udN@RV{?aSAe=1y0Sr_xr?8h=G3`r>4<#z*d$}Il+(=UJLoG#wNL}Ibp zq1m*Xs?8-bWh|+YB`QL2VM@3@Me1Bq6^P9zj}`5BPl}cS)JHp=X2KJv`v!cdADcc* z_nT2JEnQ6!kK8i*l~2onkisz}gTvDR$e}?RLuC@-U_uc7aHI^>F7{Jfmp?Ii9UAgh zPeI*5Jc>>9-#AA)5j3Df*mY@gc0rzfJ)ubwmIR3fcNfu$qFsil7#ql;|Wn}95# z;|Z%&t<0=jD*2nFs~{z#;t-=Z{F`LOy`Cw0(=avdop0atb$rH zb~-_ZHLjuvY7xv6zV4B6Y$=qQO*C#tQ&$jy)E4Dye)}yNOrS`iEgVUpTun{1xCwef zO7KLg;(Ta<>(S`T4yfn-1+0|N_xJfG%Un7~j+M!7t%-(;QNpCkpFl&Ak_@Nb`42Nt zZXUdhOY6AwM6!S(;iZN5zQj|iwFh4nE&pi+h{m*PO?_$oqTf0S{#eF%$P4mUsSYvT zp*XoDy*KHNAKSY&Ul`9nZg!Nbyz2jmWjmSWS$XX-HTgiRR0vp}#JoJ!@Ej>|vvjlA zt{*GTM{e}{9b&dBi%NQqRf=XpYT8et{#hS;C!EI)y-5tXe3Q`t;gZE}4-}4uH*Da@ zBN_0AB2fwYx7|z2@GoEI=L!C3IkcWKv7So)cK6e7#nkF>5FJaH+lqdZ*M8R=hOO>y z8(VmwiCg|K5J$5&So`~^ffk33^#nkmLPCl;Zm(V@KI-ATe=R@MTCAPRfZk3A(?o9p z67`D|Q6iX3RezB=sebztZrM+s1W4QcuB5-O-ZCp3x?oeNHQB@AVGB&QvI*;0NTqUM zQ&rRw)&sAS@h8RhF8X_Ti*b?!^Ud!F)khqAm+>p!u+2#KzvXekO`uqB13=F+0TS59VodnMB5TTI?U= zY%o>{a;*ipB%H}PQ%>T4oDVRjH2KpFAL0A;vyNT>{Gw0VjwPH0w2_!k3lc%yEgFW!>foKM10Bz!kc>$1!<4`*kn@gW8o!Y z!dg&%x*h&@ZPnI*I%!&5x4|L1aKD;Ls7){|jIF&BK6ep(5Y6 z$C!b*#CU|A&>tTy7T=M0Cwtmq2*+Dx7EapK!s=VL(Xw&(^+W>(1ccFGte>kIX^E}M zN5QD~D?<4;SuSZ3RwZ1gV=YAZ(5yXFVvT0Qp+FQQ@+bLQ)ZuFqgNs~KJShJ~-7eHc zn~a;H1N3LToeE2(a43^2;{>Kf7FtS6r?Zsa1Fbr9&~)S1ZC9j2n<#BpZt@y1E0!PV zF_sCct=atQOv3^C0+wCrEi)9Z2PY3lo5p0J7P$-DR8{pemIqOo?6c5G(~J@d|5(55 zKIwxzaCg+!6A_qz<(vC?SYPUmbweR>hx?L)Vm zZ=CybG)2+YKniN1SlR%JeS(AF);Fo0$90#C8GLnt>2!sKS5Sqh>lGr=&nIT5J&w>eNmM`<2zJ0$FC}Kf&C9ldQY%E%l3n{gL^xRCz$E0T3 z6?6yH1?C<`hridTQB=jY^%<&MHKt2P%oK1^wPzei<_QLrN?N;FrW!V5;p&``VI!Q& z{5L-xU#oLiaLt!o-d&*9MRw8~K0JD`@`)vU^t<5kzu{~7cJq3Usp54dVD^QtV?Bmu z7MB^D-ezIZwGTXnMSFLUzf{B)3uG=o9Su?E=8I~y!UF~18aHCt3_S;Ta{eU8KX#F9 z-xvJ(Gmxm@?63)*C)LYF{JVWTbYpqZ$hQYdHvEXd@uofeG|^cnxZod?m(iaqR~~R` zym$7^r(Gz8Ws8C*;{HZmO^)^41aouN)T7g8>3>Ay?9=9gJdNZ3(yzZjl>u7>Xj3j~IJ?rw5S~Fy!=7kXjUy(DM7XvapDiibiT;s0!t>HF8j zUcYvSQESsoWu33LUmI6(^Ln)9!6lGIb68@dfuC#g3>zE5OC+he3Zzp?-Qblf2ZTa7o zNk!(_$BuyYmb`;jMfwpr+0a@zYX50RWr9i@faW~D}^6TGqEftGPEI^Cb zZZ3e5y(UQ?rSfNXlAKCI;xQamhNt`krO0LV_}lAGOQ|Us;MTXpEv_b!)+||SbMPG; zv~iLKqo#7Qb1ZGR>syz?{q@b{>RY&n_=P5pMl+8*701^Gj&3Hzl{9i11A`Egf+y_rcj zTUyJ3vP7*9v^x3tgKRqOxQ>Y7VLMyCIz0D{KQ-o*`av4Dj@CC%3-qBRKB@rdYcv&M zKc`X|5EF$(oLy8j9#*tEbrbuJMc7bM3`OCXUhO8oIH~;TW^}r!LtL~|o?*@=lzve; z+Hkm~7WMRWG+#Lux(JW0=8mpYF+8+Rt@^mABs8%jUnzl}WzdXdbJW}zFFqygIW6{e z*l@>?Y^HBJK6}Tf6zDhhA##vK7oE1GyBs0uUU-}tmm{j(Sn69fFNbIDN`JBYQ;+C4n5=0(U;QjPZVPlT$FlydZk&B<`t;|(M0nx8us>!-Q^Ien@*0|Znq)>JS_ zTfTW?RRvbr9LxA{@56^9s$H}3%ZQ!V6VLpbt7QFtLsH??l3n=5p^lj{*?`FpCFlp;I$q1-?W2J>ShS!Y7eCK--YDXBstEa|NJ4 zZew}9U8%Vi^l<12zx>Zjjc;KlQ-;vRV9S;k*h2=3sH3V&CU^V7SH@)6nrHN7u$bVp z^PIw6#rblubAb!~0P?H(%w);{;$Xn4^y?+0J4G6&sU-ou3)U@b9EIujhO!&;I*`Cw za>>4`8&NTK_(Vdrz&o-nFX(9{kH|boWJkc$LHO|@+lN?N8FdP!nF>S}FitJ3q8ZoND7Xbynu$;iL3%P^()XzurciJ#i!%R(dpETQ@b zVG!3%Jr4;np#jUFV*BeS$!?j>!3~c$n_g$ka;urb&+XqoT9%|e>~SZ%tnMVQ_kHeB zK7Nr@MM}(?f6;JX`A{%cu3dGuOaiu`oD#zZiuz^vjMMZW;M0Hw=?PcUOEZa+gquZL zTUUY&RLjwQhRr7`gz{11Y^H1 z{MW_C_TBnV!Y&Tl2TCHg*opPVr=-D%9YL`ommlX*F5i?Nf9KV3zC4gpMv1L2UjI5| z5&?+3VD>pSo$n(DZ;Xa@gHF3Xk-T&p$$ke+cPTuH4%BG5@M7_if^IlbONCq)s={ z1H$Fqlht2J=+j*@{->@&%ZJv;(b9im?rUz|wd{YrtjS4(oXXQJ74;G2&wu>~*wKH= z-U3h4cysK;MIHm)x%+dsrDG-7z2us;DkRaWS*D9#nv`Q=z6z@=mmXB@R-cf5Nq|1J|>Hh#FQ*9xt2lSt;BRyHk>sM2Ivh}MG z-ALW$%1(l`0>cCQ}j3XJnycj$Q&plb&+79FjZ1juq8BpPJGdNf$01GvWSf5@%kyp|PWO@*^wQANTqusl9(TT&qGx&E4lJrzGXjXhR4a(>Ps% zQ4b{mkE4tk3r{1cAm9QClxZ1*pBN>s6P*{(A_E<*-kuT?={|RPCo4lu7mOG%WPz1a zz|`Fv3b!IxSaCwBe<_m^=ImQXQ6j?RObZ4V)}c=`9|>dQl;rf;lCi~H;GD#OQ~zSfj2`_Yf48P)mu_;YkP zW_-tV&e-epQb^$jJK$ts&$xy}BBfi;%M|J6e=KMz|Lx@&c+J=29D{z*fCfd~g(}{{ zJ6yk&b@!jxvaD`Ef9OK8(K6w2lTB&K;y#NoLkb8^V_;!Hs7~>~=sn&MAzS^wo>sm# zE|W}ms!R;~LXTWC6mDTr3Uim4%3o|zMK{WVsT8{p!fh@$=cNP1n;+8Yvl%OQ+Y&94 zY(C@<&<8>QFpwmGKmV?Kpbr^uymXE3Ay5_7cl%iULoVqC@3rqqU`?IrxO?kAz3j@- z(N=+I%5Y!JajF1p_KxsePDDOurML8otHBZ?Esv6uMu}7D3Il6jD~xU18Stf)Ey{ZQ zQS`5i$)nGv{=cdiUN+HgwFm%1M-gQT2w%f$-0O}Pz~vlcA7SWvo79pSrKP&lJ=GG> zL@Zb>K^T0vtrakBFnWe=#D)TuwM8o(*2Vh-PJI2Z%@s>L<@f4hw) z`8Ekh-dS{b90$bcFaa)DtdYQhQ;%hkqF=`8ehi4XtIe+XLXR;emca~(qbQww0`03- zo+>tH$m1W(*J_PASVD#@M}7d>-@~Xttvi#`si&Ba?;=0%X2 zOfVrihNpz%pDy;lGt#l6+<@kPJ+%5#lOU9P(-1Lw^IdBVzws7|-XZ+A?{o<3h zEXqcEQsJi$ud|dgewo-}mdM3}#-_6|T@Om$Gn92gZ(+((nyI}++pR#d#1hlAGWb0d z+ueg>e8ZpSO1-qGebu{P`NvCk2AUO!?PDd~9zh7Nfl7R>Ei4es`Ql*Xs7!c$260PF zKuf5AAtJ@7AZUH;$zU4m>yAjS!f#hF%LMPwjymq~`iyU7lApzXr<{00NKXcq(e$2m1mx1*T!w$Ie?3Hjbl+pDV)}d+d4t9!a6Tt1AOnu9LZv* z;$T$leuHF=g^y((GlFN@py*Jei7>R}o+ZSJhmX-_jGFnrw zg?K~SDO5%7IfEk-id)?GBuaKNv`2$)s<56&i|>B+U+&MB)2H%ZlMO(pl9Sm8*d70AEypnZVto7;%ZzC#e_jj4Tgqc)WSh89%xxk>kq# z>UmyMbkwrn-6pS7g7|Cv)w5CtK+F%KTqAjH+Tsy$9Y8{wAe_FrJyjPrzi>XQCjfCY8!q4|Cnon+4 zqpg}IEyT=)yG3Iz+NNw4OU6Z=rauxbOZ1l5eGfl$q!VMC?X=H*zSuI-ne#f(RsH3s$ajXYvt@pE8Vj^ zV_5V9_F$-V+AHG`a;h8~YHS7be@*P+(iIckzvV0AQ)dz*2I^JDD3!f53UbJUT^98K zOMN?}!Yamhr>^fn;c)|0Inwj5jM`r=i%Kii3I1xMrE)ZXYnqk9FK^yx!SkuX;=TJu zxdUQ?H;#7OP;kmcP2=_Nv!v1N>R2Jy_z_|Ap&H5<-ZxHVm;J3eNBtoBuO_+Tb%Uwx z_tKfjamgAd8&8extnKd$ZI~5V!nEp!}e-YVx)ptZpvi9)Q zFD?dqrqc_p8DyH|ucmV@gOWG?mXofbFL_aNomdVg{r(xjwm+*`)D4k z3tE0H0gP3S&ae1e#1z&JonA2b{N$N{y2JB-SE>4$3yo+E7pS^nFV6NE8-%7bM)Pj_ zE_@m@&y26oko*acp9?d9A7pgJdo49b6E&H7m0I@nUy)&UdBx*!tcuX4QSS4`0~XVu z!-op4RW@mML&*%oJMTTB2s4Fu>q|J$awmOmMlEg!qaTVWn^}Ax@X01NI=bpb^`;T# zt|u2=`J2=(@Mv+CUS+3{$~k!iB|8^9Fv;2PHc}P>_R;1GY9D_Q7aHbJB`g#^Z zldE+n$TbsooN_i0ZX9<6Mzz0MUQgxESN!CVF(`?ZWaF6VH%F-=*?h6EAG%GS+FI0q zW6LE?H9c+?fS8TVrfq~hgJQOCy*`u)db}H^Ge<`bNQ4mDExxsj70;Av|GFlfTPL`D z)&Uo7?3CL(o06QFygkh7e{|c?%AZI7!LWyNdA|ft&K{r#Raw2wjN%i^!Qzg`{N2R#WxhGEuo)#vpF5RM2a zim;Zka|doM!NB_GoHso6Y%8Q#Vqz zNtgouuX-e_Yuo}|^djkeGL!NV0{72O$N4kIXK|?C+-TWtZH0-GGLa<<>fwRdI}gN? zmF={9ty;C2cPq19O}8Wk5s}LwoDUf*Hpw+ptbn$$V)R2B?b#3P6QajTf zLRFD2Yh9$ma`yPvt!S6cB(Kpmv`3z&USo*VyTAVT;q{G%`Kya`>h+vvl67U`)B+$n zVKhDeqoXlBS$*P-9)&sXvoZR3{;weE&e|qJf{|Hy1~2p)#WjWK(m$7O^*j-Afk_C&jn1?YAiH6cS6b1#wdhn9(HGwf^&Y`z5cak=vyaNVf~uvk zq9BTd*W;Y`L4ZVpTcaLaLOG>ABxwTb`o*ef#o$7en+hQm+EX7I87YVNe zMsO!b&AQ6v+{H|jzf1i!Ea{H*5G7%s_$HgVSwIG|5u7HH~&}1y(+l_&s z8FmUd8=aiU)3Zs#cCoLF0INV=*89ruRhKqzsXo+MjQ`nfr~h%n^vnA4tdM;j9(=O# z52JP|i*D=yWrO?*3)d{g+>ak^ez)l|+K|Dewg|1MjO?2P%_$8|mv?ob)9HcT1HWN1 z2vtFS3*EnJJ^}Vi8v{JkE@-MDPKo!!e$0x`?6Ztxu^C?X#`j^SI)^7j`WC+-y{15N z0o-;;`uroP83=*esqBg<>}z%*`Rb8%e2Wt*&kQO?H!>)dS)9$e`cIdPqjEq%rp+TTfl<#!f zj9r8<9H;zvc#>_#k#c4EV1SZ+Vce@aHH1rC9DJ&B$ECEV=fr4n4$gzm4Xh(ojCIv> z1Z54~%5z)OLMpr)i?*jIbKQ$+wuI>#@fiA_Utvn-Zfs4q|GKa6_byuEo$Yz^I5*4w#=h!Umc*r~}{>q5oK**W`#;liRSF)pt+w+?Ih==IF$ zA1;XAC#%_CJ72WE=aBq}KQ1)*v331bwfRCOcozy}HnwE@VG!^rtLXuwCZj4INF(5= zqS(=qq;KlG$FX}1-8 zP3cWA*KOPKx^k`vpq^0bI6ba@`qRT;ywmnwp;%cEk#X>8h;UDIk^kTHhi53l8<^qqX8;#W4ogs! zdyNFjTx+WSMtbEX-bcw5x3ji|vZVd$O~a%gbO}W+ls&R!Q3D`M{u!T#xH6p$3qPhu zL5~YmMh@I1*Q#5r?4mVnji=YRtTb{pB0Jwq?(Dp-;FxHvVQXOQ`x!UF$+m{CJ~(cR z6?QVsCVCdrOpMT@#84v-_fWhnOD4s^(xjLp!Aopx6Y~`)q_5~4fgf~ePF9iO?CrO31LSvb?8X4;!AE?-#29ryrMSZpG@wCG-YhL z3jX4&5us1YF=_nwGT~wsmjd)kJ>u|a&K$v>S*LQd3Sw0*^g37h`c299_D!8!R|UfF z(WR5$!G}nQ1YY>4+-+oq6_D@%dPgP`8|(F=2P(@$FUBCC;i__yqhb4Y#U6p;5Oj)p zO60SvxBK;slT>DKVLc#vM(&5|4Ka2Kx!xR+?wPBRkYwjB(0QUN46(GKRs&zC+A^dX z^jskTmy$w-(q2@}zs=Rl0da--fP;L1VhJBBYv+1?fDDdzzM1>$dUp7vZeSmWnhJgL z-Z|RyT|hp;BaZ@QX^u%Yl5S#q+$33~KGsQfS98*r1gzqHvobpRIM-#_S{*UBI;_R4 zC?w}OJm5{dBb8r4#ck%}{2|AqboD0btC#8t#tsBTtPe?z%@{e>`nBBO3EIU?C zMdcaxWkUK!eejEW6c?WgCc&G7QV;S41Ts-kr_KXtq^y28X6pEzMw_=EIY6{}bI2k3m3GrE}}{g#pQya{j1&30)c ze}eLSM+K&%-|SrllDKue-PHB-CG~r&pqKL<332X3kWP~cR2=`Y{aoVl)xl;vP3JtL z%vT#5@w8WyjzX(K$5l#usK?gLE8mcr93LkzSH6o;`>bpR(ktEe!LaJj8oUnq1M4Q- ze`9cwcWfU54}MrB9^O7@0R2SAp}Mu9X;5v`jcqk=%^3U8sUgMa(%K5_jf|xzetB0j zn264Un^lDIV0%C*>#_PKyaP$p(#F(5jM1T^rQ^k|(`n5yk$F*@ox}_`3tyH{w}=Yi6joBJv_snWLFKkVG;+FWscJ-b>a;qKZ~jdEB`r=b0| zW_n$2mLBNo>2TORq2?(+gRqmtfq7F6hC|RS(d9F$AVirud%*_cyybK!pII{;1cgo3Nf7 zKxnYOn<<^pp03ogZq`wmrQDa30VWt6%faN}++b0E+&)yF4TW0V(;Sdf`cw!j4-_(N zMnUFgS%to}l)mm+QCslH(WV=5`w_FZp3_DZe1xKmj5pfgU(fdT%Z0(E3PLBRfRD<* zbebc_$Ssuh5)W}m69^fmaB@VP@e&Wlta@d-@o=!!9fq=`-fw*(k{kUK70A!!ayOeu z&?7wOkYVcFFF&|CGNf6|yl786`hEQ{$7h>YB=muIYvhs`+#7~ARA~F(!b;EY7Dh>& z(+P%uDtqWtMq0L3g%w zGFojFXWT2B`o+jbjiGd3<-YF)&8-F#aFl|zYF;lH{V&PXJLqZP?-6`CSuOhHj^yx~ zfQt`Dtj^EV`x|u=8y=Y36zD0RuIZ!gK)xBRH_Qc2WmI~fD%7!@ z-y;*~B`3&)XH$aw{VLCqgKDFe+FMLyQxJ^fZeZD>FgX7WB>v_eVp7~Z1Y(KC&~>oL z@h(?g{Z9O(fNXvAjZM2t6Ngl>Gs^Z1+O$H(LO{C|Mi8^{z6iomVdviL+itEW#DFb>L! z&C9beE*%X1M5FRdSFfsB%?Qlf(aDOOYn{h8t~y^9{Zame2(mN|M@O&QJB98eR{4Y# zEP1J-bRYG0F%5SR{FvPCpTt`ZeG$A5)a4B-$6Z6vOT^N5l3#qv<))pOuVe2d0OSSq zg_k1-zK?<48I803a}f3V+2v1WaS2EA&Z+4?*VrCXq;G6FWN{Q^GHfCe-*8xWTIz}b zK-v)nixmcz{sU@wm9Q??M4~#jN+j%QnVd#6FOLxKtt3mG9PJh8YOwNp;T?fq%q&JO zrt|g(R7;~QgSKL``P&<1P5VS0mzz|I2JGHvZjz0JR2UmMZ{Ti%ZFL_a3mpf(P6tyMAQaaA)Bu9%kHtwKfS{W6P+d-9j~W?Co|Ln%H&Ik(wYN9Ty9b# z1=IQnnCZAa1wv2T(VSyg7)IpsG=4peI zdw{g~*P7P*oOH$F7X}+aw)%B?-Hldw!qM|fGWwtcOXLYvTl)5Z)t}cgNQ{&vqfPs| zck}u@&8Lc(!ITCU-e*^VAnnJBU#E($W~X~=G)-cgK!JQpJa zAr2cfP%BsF`)Felmqi<=S+LVNonEM64>;B#Dmy{MLXuMR725G}qnp)l<WbGJF`N`J337^49;UO3 zkvg@9-{X%ezW?N+&$7giJ-WwZ{uFV2kUS6JqS~Sv5|grUE0_P~tl3bKvv0lYG0~gz z0|2$Uvy9#AozZX;ab~}Hr3J-v_4Z(6seX)SGR8m+2JT1Np7Mr4`U2Ixe&?qJRDStO ze-AD?`fMULrb11XFDiRa&lloLj|NCN2aTofog2p*R5O^tcqzVyq9xZkl9I0TYq8Ed zdZ*DT>hfm};^)eaJO$Jw!Cr{y61x8Y3238r84LClp_3uSmzZ(&8$~k7J#i|QT=L63 zB2u*0P`Ga}jAF{ehqXZmcu4M^3vSKcdLcRx@M<>Fq2H|e0b`TmbPA<4(jn+PLJt2b z?G-tZmbr)wI@V*{z3b?2-tb1v0MtA-hmXYbf6gKg;ih|3HegeL+{pW!4sB*$7=BlE z)xSl$aqD;m`#B5d`r;38O9L)1o&pyI$_u^>myjfRrg4r`VCeZsxB`Z3J!#Aw59Y`c zVWQnLl|A<^^gMlu;?Sl?-Y;-_JG*9;PC9fbvlmLPQ8tmoBIaLr)z01u-VEx|6QKSS znatzuRwqMc9p4I|52S#Tf!T&POI=Ay42~_}bN)HJYaL4A18Vk@3)&DM zpq}04s0*U$$DHit7%PC3dif2T30sw zhdE)6ngwp%ca@Doq~!fEZ}U?MH&>5WtG(pkY_6xxhgx}R@)0{Kaudmj(72^@GUeXU zPO&Jp`=2oax$H0Wy;kQMcb&!fh|rZ#z^gnX5&a1UCXV=y9V7$3;A^gRYVl zKU~^Q4_kU12Zus%NrF`Lri$Wdd>L?M{DX3H``OVM@%7a}djzh7sljZa48~2a0AV67gs|(K+0O{@O4tEPKG^3(AjW!vPbu*6UI$X%erUsX2C0Xz{*xVi28QlTr2~G@lU#jHg_Ep z!H?N)6W-uq&F;2s3swE!Pw`MamhTTnl~Fa&@PSL)gGA?f-;QEM|1*q2uG3rya$bgj z`dh5XzyU1{0pG6B=^Y)H_sE8M>c(~!Fq)<%Dnw4^m#31sYZ!>huV9JQ_Z4+iXQk$^ zG=8$h-xU>Y2RNL?!=bu=vG+t`8L%Ej^|+o^8@6;79EHNG2sg(Q#aP-bHaZGb!-vJ{ zrAz`R=o_ze0ve++kq4SJ;ouQb>83%iTQD!9wWNQAJ3H#J4{v~vR3}1ZE0VrtEzV`& zeE^`ZCOPwlX}soLk-)y&X%J(0CN)@a2-@bC3o?zBkf^MGL$@w;K&<|tw;3F%S-~WF zFYz!E7H)70~WNV{+pUp@2g0-FI-rY{jPefp*zeA zjE8_jjh)OC)Or{=A#+>ctOVcd)x!|fTi?1?11^~QO+7d`ML7ngciWD^NJ;@!jLPJ( zF?XksLE|#4Zo(fI(EzV5iIuOe1JsNjQZ+DeWJ#j2Gj>{%?2!-;&;W3>7@Y?JwE9?8 W;Y`)TN?cIIMq98)U+?@k`~Luz2jnsU literal 0 HcmV?d00001 diff --git a/image/pizza.jpg b/image/focaccia.jpg similarity index 100% rename from image/pizza.jpg rename to image/focaccia.jpg diff --git a/index.html b/index.html index 073a06f99..dbb19a903 100644 --- a/index.html +++ b/index.html @@ -4,104 +4,119 @@ - Document + Recipe Library -

-

Recipe Library

-
-
- -
-
-
-

Filter on kitchen

+
+

Recipe Library

+
+
+ +
+
+
+

Filter on kitchen

+
+
+
+
    +
  • +
  • +
  • +
  • +
+
+
+ + +
+
+

Sort on time

+
+
+
    +
  • +
  • +
+
+
-
-
-
    -
  • -
  • -
  • -
  • -
-
-
- - -
-
-

Sort on time

-
-
-
    -
  • -
  • -
-
-
-
- -
- -
-

Temporary placeholder for filters/sorting options

-
- -
- -
- -
- a picture of an American food -

Temporary placeholder recipe

-

Cuisine: American

-

Time: 1h 30min

- -

Ingredients

-

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

-

1/2 teaspoon coarse salt

-

1/2 teaspoon Mrs. Dash seasoning

-

1/4 teaspoon freshly ground black pepper

-
-
- a picture of an American food -

Temporary placeholder recipe

-

Cuisine: American

-

Time: 1h 30min

- -

Ingredients

-

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

-

1/2 teaspoon coarse salt

-

1/2 teaspoon Mrs. Dash seasoning

-

1/4 teaspoon freshly ground black pepper

-
-
- a picture of an American food -

Temporary placeholder recipe

-

Cuisine: American

-

Time: 1h 30min

- -

Ingredients

-

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

-

1/2 teaspoon coarse salt

-

1/2 teaspoon Mrs. Dash seasoning

-

1/4 teaspoon freshly ground black pepper

-
-
- + +
+ +
+

Temporary placeholder for filters/sorting options

+
+ +
+ +
+ +
+ a picture of focaccia +

Cheat's cheesy Focaccia

+
+

Cuisine: Italian

+

Time: 40 minutes

+
+

Ingredients

+

500 pack bread mix

+

2tbsp. olive oil, plus a little extra for drizzling

+

25g parmesan (or vegetarian alternative), grated

+

75g dolcelatte cheese (or vegetarian alternative)

+
+
+ a picture of a burnt-scallion fish +

Burnt-Scallion Fish

+
+

Cuisine: Chinese

+

Time: 1h 10 minutes

+
+

Ingredients

+

2 bunches scallions

+

8 tbsp. butter

+

2 8-oz. fish filets

+
+
+ a picture of baked chicken +

Backed Chicken

+
+

Cuisine: American

+

Time: 1h 30min

+
+

Ingredients

+

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

+

1/2 tsp. coarse salt

+

1/2 tsp. Mrs. Dash seasoning

+

1/4 tsp. freshly ground black pepper

+
+
+ a picture of an deep fried fish bones +

Deep Fried Fish Bones

+
+

Cuisine: South-East Asia

+

Time: 30minutes

+
+

Ingredients

+

8 small whiting fish or smelt

+

4 cups vegetable oil

+
+
+ \ No newline at end of file diff --git a/script.js b/script.js index 89bdfe179..b98a18a7d 100644 --- a/script.js +++ b/script.js @@ -8,14 +8,57 @@ btns.forEach((btn) => { }) }) +// btns.forEach((btn) => { +// btn.addEventListener("click", () => { +// const targetID = btn.textContent.trim().toLowerCase(); +// const template = document.querySelector(`#templates #${targetID}`); + +// if (template) { +// const clone = template.cloneNode(true); +// container.appendChild(clone); +// } +// }); +// }); + btns.forEach((btn) => { btn.addEventListener("click", () => { - const targetID = btn.textContent.trim().toLowerCase(); - const template = document.querySelector(`#templates #${targetID}`); + const textContainer = document.querySelector("#text-container"); + if (btn.textContent.trim() === "All") { + const p = document.createElement("p"); + p.textContent = "You eat everything, maybe liver then?"; + textContainer.appendChild(p); + } + + if (btn.textContent.trim() === "Italy") { + const p = document.createElement("p"); + p.textContent = "Are you a pasta or a pizza person?"; + textContainer.appendChild(p) + } + + if (btn.textContent.trim() === "USA") { + const p = document.createElement("p"); + p.textContent = "Cranberry sauce?"; + textContainer.appendChild(p); + } + + if (btn.textContent.trim() === "China") { + const p = document.createElement("p"); + p.textContent = "You chose Chinese"; + textContainer.appendChild(p); + } + + if (btn.textContent.trim() === "Descending") { + const p = document.createElement("p"); + p.textContent = "You ar in a hurry mate?"; + textContainer.appendChild(p); + } + + if (btn.textContent.trim() === "Ascending") { + const p =document.createElement("p"); + p.textContent = "You want to impress on someone?"; + textContainer.appendChild(p); + } + - if (template) { - const clone = template.cloneNode(true); - container.appendChild(clone); - } }); }); diff --git a/style.css b/style.css index 1898d6f4a..fd668b4de 100644 --- a/style.css +++ b/style.css @@ -1,4 +1,4 @@ -* { +–* { margin: 0; padding: 0; box-sizing: border-box; @@ -9,8 +9,9 @@ body { } h1 { - font-family: "Futura", sans-serif; color: #0018a4; - width: 495px; + font-family: "Futura", sans-serif; + color: #0018a4; + /* width: 495px; */ height: 85px; top: 64px; left: 64px; @@ -18,15 +19,10 @@ h1 { margin: 50px 10px; } -/* h2 { - color: blue; -} */ - h3 { color: #000000; font-size: 22px; - margin-bottom: 16px; - margin-left: 10px; + margin: 10px 0 10px 16px; } h4 { @@ -38,9 +34,15 @@ p { } img { - width: 268px; + /* width: 268px; */ + width: 100%; height: 200px; border-radius: 12px; + object-fit: cover; +} + +ul { + padding: 0; } li { @@ -56,33 +58,39 @@ li { display: flex; flex-direction: column; } + .filter, .sort { display: flex; + flex-wrap: wrap; flex-direction: row; } .filter-btn { + text-align: center; background-color: #ccffe2; color: #0018a4; + font-size: 18px; border: none; - width: 70px; + width: 80px; height: 40px; border-radius: 50px; padding: 8px 16px; - margin: 10px; + margin: 5px; cursor: pointer; } .sort-btn { + text-align: center; background-color: #ffecea; color: #0018a4; + font-size: 18px; border: none; - width: 118px; + width: 127px; height: 40px; border-radius: 50px; padding: 8px 16px; - margin: 10px; + margin: 5px; cursor: pointer; } @@ -102,8 +110,9 @@ li { } article { - display: flex; - flex-direction: row; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); + gap: 20px; } .placeholder p { @@ -117,23 +126,39 @@ article { } .line { - background-color: gray; - width: 150px; - height: 10px; + background-color: lightgrey; + width: auto; + height: 1px; + margin: 20px 0; } .temporary-placeholder, .recipe-card { - width: 300px; + /* width: 300px; */ height: auto; border: 1px solid #e9e9e9; border-radius: 16px; - margin: 16px; + margin: 10px; padding: 16px 16px 24px 16px; background-color: #fff; } +.recipe-card { + cursor: pointer; +} + .recipe-card:hover { box-shadow: 5px 5px 3px 0 #bebaba; } +@media (max-width: 1023px) { + h1 { + font-size: 6.3vw; + } + + .button-container { + display: flex; + flex-direction: column ; + } +} + From da424cb07d9c701a6d58d90b892a51ea551f78df Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Mon, 29 Sep 2025 21:33:11 +0200 Subject: [PATCH 04/22] fix filter/sort buttons --- index.html | 249 +++++++++++++++++++++++++++++------------ script.js | 318 +++++++++++++++++++++++++++++++++++++++++++++-------- style.css | 55 +++++++-- 3 files changed, 497 insertions(+), 125 deletions(-) diff --git a/index.html b/index.html index dbb19a903..39b690bf7 100644 --- a/index.html +++ b/index.html @@ -20,14 +20,15 @@

Filter on kitchen

    -
  • +
  • +
  • +
-
@@ -35,87 +36,191 @@

Sort on time

    -
  • -
  • +
  • +
+ +
+
+

Try Random Recipe

+
+
+
    +
  • Surprise
  • +
+
+
+

Temporary placeholder for filters/sorting options

-
- -
- +
+ +
+
-
- a picture of focaccia -

Cheat's cheesy Focaccia

-
-

Cuisine: Italian

-

Time: 40 minutes

-
-

Ingredients

-

500 pack bread mix

-

2tbsp. olive oil, plus a little extra for drizzling

-

25g parmesan (or vegetarian alternative), grated

-

75g dolcelatte cheese (or vegetarian alternative)

-
-
- a picture of a burnt-scallion fish -

Burnt-Scallion Fish

-
-

Cuisine: Chinese

-

Time: 1h 10 minutes

-
-

Ingredients

-

2 bunches scallions

-

8 tbsp. butter

-

2 8-oz. fish filets

-
-
- a picture of baked chicken -

Backed Chicken

-
-

Cuisine: American

-

Time: 1h 30min

-
-

Ingredients

-

6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on

-

1/2 tsp. coarse salt

-

1/2 tsp. Mrs. Dash seasoning

-

1/4 tsp. freshly ground black pepper

-
-
- a picture of an deep fried fish bones -

Deep Fried Fish Bones

-
-

Cuisine: South-East Asia

-

Time: 30minutes

-
-

Ingredients

-

8 small whiting fish or smelt

-

4 cups vegetable oil

-
+
+
+ a picture of focaccia +

Cheat's cheesy Focaccia

+
+

Cuisine: Italian

+

Time: 40 minutes

+
+

Ingredients

+
    +
  • 500 pack bread mix
  • +
  • 2tbsp. olive oil, plus a little extra for drizzling
  • +
  • 25g parmesan (or vegetarian alternative), grated
  • +
  • 75g dolcelatte cheese (or vegetarian alternative)
  • +
+
+
+ +
+ a picture of a burnt-scallion fish +

Burnt-Scallion Fish

+
+

Cuisine: Chinese

+

Time: 1h 10 minutes

+
+

Ingredients

+
    +
  • 2 bunches scallions
  • +
  • 8 tbsp. butter
  • +
  • 2 8-oz. fish filets
  • +
+
+
+ +
+ a picture of baked chicken +

Backed Chicken

+
+

Cuisine: American

+

Time: 1h 30min

+
+

Ingredients

+
    +
  • 6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on
  • +
  • 1/2 tsp. coarse salt
  • +
  • 1/2 tsp. Mrs. Dash seasoning
  • +
  • 1/4 tsp. freshly ground black pepper
  • +
+
+
+ +
+ a picture of an deep fried fish bones +

Deep Fried Fish Bones

+
+

Cuisine: South-East Asia

+

Time: 30minutes

+
+

Ingredients

+
    +
  • 8 small whiting fish or smelt
  • +
  • 4 cups vegetable oil
  • +
+
+
+ +
+ a picture of a vegetarian pest pasta +

Vegetarian Pesto Pasta

+
+

Cuisine: Italian

+

Time: 25 minutes

+
+

Ingredients

+
    +
  • pasta
  • +
  • basil
  • +
  • parmesan cheese
  • +
  • garlic
  • +
  • pine nuts
  • +
  • olive oil
  • +
  • salt
  • +
  • black pepper
  • +
+
+
+ +
+ a picture of tacos +

Dairy-Free Tacos

+
+

Cuisine: Mexican

+

Time: 15 min

+
+

Ingredients

+
    +
  • corn tortillas
  • +
  • ground beef
  • +
  • taco seasoning
  • +
  • lettuce
  • +
  • tomato
  • +
  • avocado
  • +
+
+
+ +
+ a picture of beef stew +

Beef Stew

+
+

Cuisine: European

+

Time: 1 h 30 minutes

+
+

Ingredients

+
    +
  • beef chunks
  • +
  • potatoes
  • +
  • carrots
  • +
  • onion
  • +
  • garlic
  • +
  • tomato paste
  • +
  • beef broth
  • +
  • red wine
  • +
  • bay leaves
  • +
  • thyme
  • +
  • salt
  • +
  • black pepper
  • +
  • flour
  • +
  • celery
  • +
  • mushrooms
  • +
+
+
diff --git a/script.js b/script.js index b98a18a7d..f07c2929e 100644 --- a/script.js +++ b/script.js @@ -1,12 +1,239 @@ -const btns = document.querySelectorAll(".filter-btn, .sort-btn"); -const container = document.getElementById("text-container"); +const allBtn = document.getElementById("all") +const filterBtn = document.querySelectorAll(".filter-btn") +const defaultSortBtn = document.getElementById("disc") +const sortBtn = document.querySelectorAll(".sort-btn") +const randomBtn = document.querySelector(".random-button") -btns.forEach((btn) => { - // change the color of the button when it's clicked - btn.addEventListener("click", () => { - btn.classList.toggle("active"); - }) -}) +allBtn.classList.add("active") //default select +defaultSortBtn.classList.add("active")//default select + +//=============================== +// filter buttons +//=============================== + +filterBtn.forEach((filterButton) => { + filterButton.addEventListener("click", () => { + + // only "all" button will be active when it is clicked + if (filterButton.id === "all") { + filterBtn.forEach(btn => btn.classList.remove("active")); + allBtn.classList.add("active") + } else { + // when other filter buttons are clicked + filterButton.classList.toggle("active"); + + const anyActive = [...filterBtn].some( + btn => btn !== allBtn && btn.classList.contains("active") + ); + if (anyActive) { + // when buttons other than all are active, remove "active" + allBtn.classList.remove("active"); + } else { + // put "active" back, when other buttons are not active + allBtn.classList.add("active") + } + } + }); +}); + +//=============================== +// sort buttons - only one button can be selected +//=============================== + +sortBtn.forEach(sortButton => { + sortButton.addEventListener("click", () => { + sortBtn.forEach(btn => btn.classList.remove("active")); + sortButton.classList.add("active"); + }); +}); + + +//=============================== +// recipes +//=============================== + +const recepis = [ + { + id: 1, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, + { + id: 2, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, + { + id: 3, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, + { + id: 4, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, + { + id: 5, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, + { + id: 6, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, + { + id: 7, + title: "Vegan Lentil Soup", + image: "./chicken.webp", + readyInMinutes: 30, + servings: 4, + sourceUrl: "https://example.com/vegan-lentil-soup", + diets: ["vegan"], + cuisine: "Mediterranean", + ingredients: [ + "red lentils", + "carrots", + "onion", + "garlic", + "tomato paste", + "cumin", + "paprika", + "vegetable broth", + "olive oil", + "salt" + ], + pricePerServing: 2.5, + popularity: 85 + }, +] + +// old JS below =========================================================== + +// const btns = document.querySelectorAll(".filter-btn, .sort-btn, .random-btn"); +// const container = document.getElementById("text-container"); + +// btns.forEach((btn) => { +// // change the color of the button when it's clicked +// btn.addEventListener("click", () => { +// btn.classList.toggle("active"); +// }) +// }) // btns.forEach((btn) => { // btn.addEventListener("click", () => { @@ -20,45 +247,50 @@ btns.forEach((btn) => { // }); // }); -btns.forEach((btn) => { - btn.addEventListener("click", () => { - const textContainer = document.querySelector("#text-container"); - if (btn.textContent.trim() === "All") { - const p = document.createElement("p"); - p.textContent = "You eat everything, maybe liver then?"; - textContainer.appendChild(p); - } +// btns.forEach((btn) => { +// // add click event on each button +// btn.addEventListener("click", () => { +// // add text in HTML +// const textContainer = document.querySelector("#text-container"); +// if (btn.textContent.trim() === "All") { +// // create p tag +// const p = document.createElement("p"); +// // put text in p +// p.textContent = "You eat everything, maybe liver then?"; +// // add p in #text-container +// textContainer.appendChild(p); +// } - if (btn.textContent.trim() === "Italy") { - const p = document.createElement("p"); - p.textContent = "Are you a pasta or a pizza person?"; - textContainer.appendChild(p) - } +// if (btn.textContent.trim() === "Italy") { +// const p = document.createElement("p"); +// p.textContent = "Are you a pasta or a pizza person?"; +// textContainer.appendChild(p) +// } - if (btn.textContent.trim() === "USA") { - const p = document.createElement("p"); - p.textContent = "Cranberry sauce?"; - textContainer.appendChild(p); - } +// if (btn.textContent.trim() === "USA") { +// const p = document.createElement("p"); +// p.textContent = "Cranberry sauce?"; +// textContainer.appendChild(p); +// } - if (btn.textContent.trim() === "China") { - const p = document.createElement("p"); - p.textContent = "You chose Chinese"; - textContainer.appendChild(p); - } +// if (btn.textContent.trim() === "China") { +// const p = document.createElement("p"); +// p.textContent = "You chose Chinese"; +// textContainer.appendChild(p); +// } - if (btn.textContent.trim() === "Descending") { - const p = document.createElement("p"); - p.textContent = "You ar in a hurry mate?"; - textContainer.appendChild(p); - } +// if (btn.textContent.trim() === "Descending") { +// const p = document.createElement("p"); +// p.textContent = "You ar in a hurry mate?"; +// textContainer.appendChild(p); +// } - if (btn.textContent.trim() === "Ascending") { - const p =document.createElement("p"); - p.textContent = "You want to impress on someone?"; - textContainer.appendChild(p); - } +// if (btn.textContent.trim() === "Ascending") { +// const p =document.createElement("p"); +// p.textContent = "You want to impress on someone?"; +// textContainer.appendChild(p); +// } - }); -}); +// }); +// }); diff --git a/style.css b/style.css index fd668b4de..c61d0f427 100644 --- a/style.css +++ b/style.css @@ -1,4 +1,4 @@ -–* { +* { margin: 0; padding: 0; box-sizing: border-box; @@ -49,18 +49,29 @@ li { list-style: none; } +a { + text-decoration: none; + color: initial; +} + +/* ====================================== +style for the buttons +======================================= */ + .button-container { display: flex; flex-direction: row; } +.filter-container, .sort-container { display: flex; flex-direction: column; } .filter, -.sort { +.sort, +.random { display: flex; flex-wrap: wrap; flex-direction: row; @@ -72,7 +83,7 @@ li { color: #0018a4; font-size: 18px; border: none; - width: 80px; + width: auto; height: 40px; border-radius: 50px; padding: 8px 16px; @@ -86,6 +97,20 @@ li { color: #0018a4; font-size: 18px; border: none; + width: auto; + height: 40px; + border-radius: 50px; + padding: 8px 16px; + margin: 5px; + cursor: pointer; +} + +.random-btn { + text-align: center; + background-color: beige; + color: #0018a4; + font-size: 18px; + border: none; width: 127px; height: 40px; border-radius: 50px; @@ -95,8 +120,10 @@ li { } .filter-btn:hover, -.sort-btn:hover { +.sort-btn:hover, +.random-btn:hover { border: 2px solid #0018a4; + box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1); } .filter-btn.active { @@ -109,6 +136,15 @@ li { color: #fff; } +.random-btn.active { + background-color: orange; + color: #fff; +} + +/* ====================================== +style for recipe cards +======================================= */ + article { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); @@ -126,7 +162,6 @@ article { } .line { - background-color: lightgrey; width: auto; height: 1px; margin: 20px 0; @@ -143,14 +178,14 @@ article { background-color: #fff; } -.recipe-card { - cursor: pointer; -} - .recipe-card:hover { - box-shadow: 5px 5px 3px 0 #bebaba; + box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.1); } +/* ====================================== +responsive design +======================================= */ + @media (max-width: 1023px) { h1 { font-size: 6.3vw; From d1fb109b5f7c8d3548e403d9c6d6b357161ec891 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Tue, 30 Sep 2025 18:11:26 +0200 Subject: [PATCH 05/22] add filter function --- image/{chiken.jpg => chicken.jpg} | Bin index.html | 30 ++-- script.js | 255 ++++++++++++++++++------------ style.css | 2 +- 4 files changed, 164 insertions(+), 123 deletions(-) rename image/{chiken.jpg => chicken.jpg} (100%) diff --git a/image/chiken.jpg b/image/chicken.jpg similarity index 100% rename from image/chiken.jpg rename to image/chicken.jpg diff --git a/index.html b/index.html index 39b690bf7..137600c5d 100644 --- a/index.html +++ b/index.html @@ -21,11 +21,11 @@

Filter on kitchen

  • -
  • -
  • -
  • -
  • -
  • +
  • +
  • +
  • +
  • +
@@ -48,7 +48,7 @@

Try Random Recipe

    -
  • Surprise
  • +
  • Surprise me!
@@ -56,23 +56,15 @@

Try Random Recipe

+
-
+
- - + -->
@@ -114,7 +106,7 @@

Ingredients

a picture of baked chicken

Backed Chicken


@@ -173,7 +165,7 @@

Ingredients

a picture of tacos

Dairy-Free Tacos


diff --git a/script.js b/script.js index f07c2929e..8af996d1a 100644 --- a/script.js +++ b/script.js @@ -52,177 +52,237 @@ sortBtn.forEach(sortButton => { // recipes //=============================== -const recepis = [ +const recipes = [ { id: 1, - title: "Vegan Lentil Soup", - image: "./chicken.webp", - readyInMinutes: 30, + title: "Cheat's cheesy Focaccia", + image: "image/focaccia.jpg", + readyInMinutes: 40, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "Italian", ingredients: [ - "red lentils", - "carrots", - "onion", - "garlic", - "tomato paste", - "cumin", - "paprika", - "vegetable broth", - "olive oil", - "salt" + "500 pack bread mix", + "2 tbsp. olive oil, plus a little extra for drizzling", + "25g parmesan (or vegetarian alternative), grated", + "75g dolcelatte cheese (or vegetarian alternative)", ], pricePerServing: 2.5, popularity: 85 }, { id: 2, - title: "Vegan Lentil Soup", - image: "./chicken.webp", - readyInMinutes: 30, + title: "Burnt-Scallion Fish", + image: "image/fish.jpg", + readyInMinutes: 70, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "Chinese", ingredients: [ - "red lentils", - "carrots", - "onion", - "garlic", - "tomato paste", - "cumin", - "paprika", - "vegetable broth", - "olive oil", - "salt" + "2 bunches scallions", + "8 tbsp. butter", + "2 8-oz. fish filets", ], pricePerServing: 2.5, popularity: 85 }, { id: 3, - title: "Vegan Lentil Soup", - image: "./chicken.webp", - readyInMinutes: 30, + title: "Backed Chicken", + image: "image/chicken.jpg", + readyInMinutes: 90, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "American", ingredients: [ - "red lentils", - "carrots", - "onion", - "garlic", - "tomato paste", - "cumin", - "paprika", - "vegetable broth", - "olive oil", - "salt" + "6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on", + "1/2 tsp. coarse salt", + "1/2 tsp. Mrs. Dash seasoning", + "1/4 tsp. freshly ground black pepper", ], pricePerServing: 2.5, popularity: 85 }, { id: 4, - title: "Vegan Lentil Soup", - image: "./chicken.webp", + title: "Deep Fried Fish Bones", + image: "image/deep fry.jpg", readyInMinutes: 30, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "South-East Asia", ingredients: [ - "red lentils", - "carrots", - "onion", - "garlic", - "tomato paste", - "cumin", - "paprika", - "vegetable broth", - "olive oil", - "salt" + "8 small whiting fish or smelt", + "4 cups vegetable oil", ], pricePerServing: 2.5, popularity: 85 }, { id: 5, - title: "Vegan Lentil Soup", - image: "./chicken.webp", - readyInMinutes: 30, + title: "Vegetarian Pesto Pasta", + image: "image/fish.jpg", + readyInMinutes: 25, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "Italian", ingredients: [ - "red lentils", - "carrots", - "onion", + "pasta", + "basil", + "parmesan cheese", "garlic", - "tomato paste", - "cumin", - "paprika", - "vegetable broth", + "pine nuts", "olive oil", - "salt" + "salt", + "black pepper", ], pricePerServing: 2.5, popularity: 85 }, { id: 6, - title: "Vegan Lentil Soup", - image: "./chicken.webp", - readyInMinutes: 30, + title: "Dairy-Free Tacos", + image: "image/chicken.jpg", + readyInMinutes: 15, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "Mexican", ingredients: [ - "red lentils", - "carrots", - "onion", - "garlic", - "tomato paste", - "cumin", - "paprika", - "vegetable broth", - "olive oil", - "salt" + "corn tortillas", + "ground beef", + "taco seasoning", + "lettuce", + "tomato", + "avocado", ], pricePerServing: 2.5, popularity: 85 }, { id: 7, - title: "Vegan Lentil Soup", - image: "./chicken.webp", - readyInMinutes: 30, + title: "Beef Stew", + image: "image/deep fry.jpg", + readyInMinutes: 90, servings: 4, sourceUrl: "https://example.com/vegan-lentil-soup", diets: ["vegan"], - cuisine: "Mediterranean", + cuisine: "European", ingredients: [ - "red lentils", + "beef chunks", + "potatoes", "carrots", "onion", "garlic", "tomato paste", - "cumin", - "paprika", - "vegetable broth", - "olive oil", - "salt" + "beef broth", + "red wine", + "bay leaves", + "thyme", + "salt", + "black pepper", + "flour", + "celery", + "mushrooms", ], pricePerServing: 2.5, popularity: 85 }, ] +const container = document.querySelector(".recipe-container") + +//=============================== +// display recipes +//=============================== + +const displayRecipes = (recipeArray) => { + container.innerHTML = "" //reset the container + + recipeArray.forEach(recipe => { + container.innerHTML += ` +
+

${recipe.title}

+ picture of food +
+ ` + }) +} + +displayRecipes(recipes); + +//=============================== +// filter recipes +//=============================== + +const italyBtn = document.getElementById("italy") +const usaBtn = document.getElementById("usa") +const chinaBtn = document.getElementById("china") +const europeanBtn = document.getElementById("european") +const mexicanBtn = document.getElementById("mexican") + +allBtn.addEventListener("click", () => { + displayRecipes(recipes); +}) + +italyBtn.addEventListener("click", () => { + const italianRecipes = recipes.filter((recipe) => + recipe.cuisine.includes("Italian") + ) + displayRecipes(italianRecipes) +}) + +usaBtn.addEventListener("click", () => { + const usaRecipes = recipes.filter((recipe) => + recipe.cuisine.includes("American") + ) + displayRecipes(usaRecipes) +}) + +chinaBtn.addEventListener("click", () => { + const chinaRecipes = recipes.filter((recipe) => + recipe.cuisine.includes("Chinese") + ) + displayRecipes(chinaRecipes) +}) + +europeanBtn.addEventListener("click", () => { + const europeanRecipes = recipes.filter((recipe) => + recipe.cuisine.includes("European") + ) + displayRecipes(europeanRecipes) +}) + +mexicanBtn.addEventListener("click", () => { + const mexicanRecipes = recipes.filter((recipe) => + recipe.cuisine.includes("Mexican") + ) + displayRecipes(mexicanRecipes) +}) + +//=============================== +// sort recipes +//=============================== + +const discBtn = getElementById("disc") +const ascBtn = getElementById("asc") + + + +//=============================== +// pic a random recipe +//=============================== + + + + + + // old JS below =========================================================== // const btns = document.querySelectorAll(".filter-btn, .sort-btn, .random-btn"); @@ -235,17 +295,6 @@ const recepis = [ // }) // }) -// btns.forEach((btn) => { -// btn.addEventListener("click", () => { -// const targetID = btn.textContent.trim().toLowerCase(); -// const template = document.querySelector(`#templates #${targetID}`); - -// if (template) { -// const clone = template.cloneNode(true); -// container.appendChild(clone); -// } -// }); -// }); // btns.forEach((btn) => { // // add click event on each button diff --git a/style.css b/style.css index c61d0f427..371bce77f 100644 --- a/style.css +++ b/style.css @@ -111,7 +111,7 @@ style for the buttons color: #0018a4; font-size: 18px; border: none; - width: 127px; + width: auto; height: 40px; border-radius: 50px; padding: 8px 16px; From ee3a2c0418aaf6f6708495932fb1d6582a42e411 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Wed, 1 Oct 2025 22:33:06 +0200 Subject: [PATCH 06/22] add sort function --- index.html | 8 ++++---- script.js | 58 ++++++++++++++++++++++++++++++++++-------------------- style.css | 4 ++-- 3 files changed, 43 insertions(+), 27 deletions(-) diff --git a/index.html b/index.html index 137600c5d..0b77723f6 100644 --- a/index.html +++ b/index.html @@ -36,7 +36,7 @@

Sort on time

    -
  • +
@@ -48,7 +48,7 @@

Try Random Recipe

    -
  • Surprise me!
  • +
@@ -66,7 +66,7 @@

Temporary placeholder for filters/sorting options

--> -
+
diff --git a/script.js b/script.js index 8af996d1a..ab92f8881 100644 --- a/script.js +++ b/script.js @@ -1,11 +1,13 @@ const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") -const defaultSortBtn = document.getElementById("disc") + const sortBtn = document.querySelectorAll(".sort-btn") -const randomBtn = document.querySelector(".random-button") +const descBtn = document.getElementById("desc") +const ascBtn = document.getElementById("asc") + +const randomBtn = document.querySelector(".random-btn") allBtn.classList.add("active") //default select -defaultSortBtn.classList.add("active")//default select //=============================== // filter buttons @@ -47,6 +49,13 @@ sortBtn.forEach(sortButton => { }); }); +//=============================== +// random buttons - change the color when clicked +//=============================== + +randomBtn.addEventListener("click", () => { + randomBtn.classList.toggle("active"); +}) //=============================== // recipes @@ -207,8 +216,14 @@ const displayRecipes = (recipeArray) => { recipeArray.forEach(recipe => { container.innerHTML += `
-

${recipe.title}

picture of food +

${recipe.title}

+
+

Cuisine: ${recipe.cuisine}

+

Time: ${recipe.readyInMinutes} minutes

+
+

Ingredients

+
    ${recipe.ingredients.join("
    ")}
` }) @@ -265,36 +280,37 @@ mexicanBtn.addEventListener("click", () => { displayRecipes(mexicanRecipes) }) -//=============================== -// sort recipes -//=============================== - -const discBtn = getElementById("disc") -const ascBtn = getElementById("asc") //=============================== -// pic a random recipe +// sort recipes (sort by time) //=============================== +descBtn.addEventListener("click", () => { + const descendingRecipes = [...recipes].sort((a,b) => b.readyInMinutes - a.readyInMinutes) + displayRecipes(descendingRecipes) +}) +ascBtn.addEventListener("click", () => { + const ascendingRecipes = [...recipes].sort((a,b) => a.readyInMinutes - b.readyInMinutes) + displayRecipes(ascendingRecipes) +}) +//=============================== +// pick a random recipe +//=============================== +randomBtn.addEventListener("click", () => { + const randomIndex = Math.floor(Math.random() * recipes.length); + const randomRecipe = recipes[randomIndex]; + displayRecipes([randomRecipe]) +}) -// old JS below =========================================================== - -// const btns = document.querySelectorAll(".filter-btn, .sort-btn, .random-btn"); -// const container = document.getElementById("text-container"); -// btns.forEach((btn) => { -// // change the color of the button when it's clicked -// btn.addEventListener("click", () => { -// btn.classList.toggle("active"); -// }) -// }) +// old JS below =========================================================== // btns.forEach((btn) => { // // add click event on each button diff --git a/style.css b/style.css index 371bce77f..982279da7 100644 --- a/style.css +++ b/style.css @@ -145,7 +145,7 @@ style for the buttons style for recipe cards ======================================= */ -article { +.recipe-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; @@ -169,7 +169,7 @@ article { .temporary-placeholder, .recipe-card { - /* width: 300px; */ + max-width: 300px; height: auto; border: 1px solid #e9e9e9; border-radius: 16px; From d51086001d2ff4095d0636fd8abcada56afd1e65 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 2 Oct 2025 21:58:46 +0200 Subject: [PATCH 07/22] fix filter/sort functions --- index.html | 164 ++--------------------------------------------------- script.js | 161 ++++++++++++++++++++++------------------------------ style.css | 9 ++- 3 files changed, 80 insertions(+), 254 deletions(-) diff --git a/index.html b/index.html index 0b77723f6..6f5ad368e 100644 --- a/index.html +++ b/index.html @@ -21,11 +21,13 @@

Filter on kitchen

  • -
  • -
  • -
  • +
  • +
  • +
  • +
  • +
@@ -57,162 +59,6 @@

Try Random Recipe

- - - -
diff --git a/script.js b/script.js index ab92f8881..d83680d00 100644 --- a/script.js +++ b/script.js @@ -235,52 +235,49 @@ displayRecipes(recipes); // filter recipes //=============================== -const italyBtn = document.getElementById("italy") -const usaBtn = document.getElementById("usa") -const chinaBtn = document.getElementById("china") -const europeanBtn = document.getElementById("european") -const mexicanBtn = document.getElementById("mexican") +// save the selected filter +let activeFilters = [] +// show all recipes when "all" button is clicked allBtn.addEventListener("click", () => { + activeFilters = []; displayRecipes(recipes); -}) - -italyBtn.addEventListener("click", () => { - const italianRecipes = recipes.filter((recipe) => - recipe.cuisine.includes("Italian") - ) - displayRecipes(italianRecipes) -}) - -usaBtn.addEventListener("click", () => { - const usaRecipes = recipes.filter((recipe) => - recipe.cuisine.includes("American") - ) - displayRecipes(usaRecipes) -}) +}); -chinaBtn.addEventListener("click", () => { - const chinaRecipes = recipes.filter((recipe) => - recipe.cuisine.includes("Chinese") - ) - displayRecipes(chinaRecipes) -}) +// +filterBtn.forEach(button => { + if (button.id === "all")return; -europeanBtn.addEventListener("click", () => { - const europeanRecipes = recipes.filter((recipe) => - recipe.cuisine.includes("European") - ) - displayRecipes(europeanRecipes) -}) + button.addEventListener("click", () => { + const cuisine = button.id; -mexicanBtn.addEventListener("click", () => { - const mexicanRecipes = recipes.filter((recipe) => - recipe.cuisine.includes("Mexican") - ) - displayRecipes(mexicanRecipes) -}) + if (activeFilters.includes(cuisine)) { + activeFilters = activeFilters.filter(f => f !== cuisine); // f = filter name + } else { + // + activeFilters.push(cuisine); + } + applyFilters(); + }); +}); +const applyFilters = () => { + if (activeFilters.length === 0) { + displayRecipes(recipes); + return; + } + + const filtered = recipes.filter(recipe => + activeFilters.includes(recipe.cuisine.toLowerCase()) + ); + + if (filtered.length > 0) { + displayRecipes(filtered); + } else { + container.innerHTML = `

No results

`; + } +} //=============================== @@ -288,15 +285,43 @@ mexicanBtn.addEventListener("click", () => { //=============================== descBtn.addEventListener("click", () => { - const descendingRecipes = [...recipes].sort((a,b) => b.readyInMinutes - a.readyInMinutes) - displayRecipes(descendingRecipes) + currentSort = "desc"; + applyKitchenFilters(); }) ascBtn.addEventListener("click", () => { - const ascendingRecipes = [...recipes].sort((a,b) => a.readyInMinutes - b.readyInMinutes) - displayRecipes(ascendingRecipes) + currentSort = "asc"; + applyKitchenFilters(); }) +// filter + sort function +const applyKitchenFilters = () => { + let filtered = []; + + // sort all recipes + if (activeFilters.length === 0) { + filtered = [...recipes]; + } else { + filtered = recipes.filter(recipe => + activeFilters.includes(recipe.cuisine.toLocaleLowerCase()) + ); + } + + // sort filtered recipes + if (currentSort === "desc") { + filtered.sort((a,b) => b.readyInMinutes - a.readyInMinutes); + } else { + filtered.sort((a,b) => a.readyInMinutes - b.readyInMinutes); + } + + // display recipes + if (filtered.length > 0) { + displayRecipes(filtered); + } else { + container.innerHTML = `

{ const randomRecipe = recipes[randomIndex]; displayRecipes([randomRecipe]) }) - - - -// old JS below =========================================================== - -// btns.forEach((btn) => { -// // add click event on each button -// btn.addEventListener("click", () => { -// // add text in HTML -// const textContainer = document.querySelector("#text-container"); -// if (btn.textContent.trim() === "All") { -// // create p tag -// const p = document.createElement("p"); -// // put text in p -// p.textContent = "You eat everything, maybe liver then?"; -// // add p in #text-container -// textContainer.appendChild(p); -// } - -// if (btn.textContent.trim() === "Italy") { -// const p = document.createElement("p"); -// p.textContent = "Are you a pasta or a pizza person?"; -// textContainer.appendChild(p) -// } - -// if (btn.textContent.trim() === "USA") { -// const p = document.createElement("p"); -// p.textContent = "Cranberry sauce?"; -// textContainer.appendChild(p); -// } - -// if (btn.textContent.trim() === "China") { -// const p = document.createElement("p"); -// p.textContent = "You chose Chinese"; -// textContainer.appendChild(p); -// } - -// if (btn.textContent.trim() === "Descending") { -// const p = document.createElement("p"); -// p.textContent = "You ar in a hurry mate?"; -// textContainer.appendChild(p); -// } - -// if (btn.textContent.trim() === "Ascending") { -// const p =document.createElement("p"); -// p.textContent = "You want to impress on someone?"; -// textContainer.appendChild(p); -// } - - -// }); -// }); diff --git a/style.css b/style.css index 982279da7..e03bd389e 100644 --- a/style.css +++ b/style.css @@ -5,11 +5,11 @@ } body { + font-family: "Futura", sans-serif; background-color: #fafbff; } h1 { - font-family: "Futura", sans-serif; color: #0018a4; /* width: 495px; */ height: 85px; @@ -182,6 +182,13 @@ style for recipe cards box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.1); } +.no-results { + text-align: center; + margin-top: 100px; + font-size: 2rem; + color: #555; +} + /* ====================================== responsive design ======================================= */ From 21098330ce6ae346b333f42a027eecb4638a1c6f Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Mon, 6 Oct 2025 21:20:51 +0200 Subject: [PATCH 08/22] add search form --- index.html | 16 +++++++++- script.js | 88 +++++++++++++++++++++++++++++++++++++++++++++++------- style.css | 81 +++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 173 insertions(+), 12 deletions(-) diff --git a/index.html b/index.html index 6f5ad368e..3f8070bd7 100644 --- a/index.html +++ b/index.html @@ -9,7 +9,21 @@

Recipe Library

+
❤️ My favorites
+ +
+ + +
+
@@ -58,7 +72,7 @@

Try Random Recipe

-
+
Loading...
diff --git a/script.js b/script.js index d83680d00..0b92a4afe 100644 --- a/script.js +++ b/script.js @@ -7,6 +7,8 @@ const ascBtn = document.getElementById("asc") const randomBtn = document.querySelector(".random-btn") +const container = document.getElementById("recipe-container") + allBtn.classList.add("active") //default select //=============================== @@ -204,8 +206,6 @@ const recipes = [ }, ] -const container = document.querySelector(".recipe-container") - //=============================== // display recipes //=============================== @@ -218,6 +218,7 @@ const displayRecipes = (recipeArray) => {
picture of food

${recipe.title}

+

Cuisine: ${recipe.cuisine}

Time: ${recipe.readyInMinutes} minutes

@@ -227,6 +228,8 @@ const displayRecipes = (recipeArray) => {
` }) + + // attachLikeEvents(); } displayRecipes(recipes); @@ -235,26 +238,27 @@ displayRecipes(recipes); // filter recipes //=============================== -// save the selected filter +// save the selected filter here let activeFilters = [] // show all recipes when "all" button is clicked allBtn.addEventListener("click", () => { - activeFilters = []; + activeFilters = []; //reset filters displayRecipes(recipes); }); // filterBtn.forEach(button => { - if (button.id === "all")return; + if (button.id === "all")return; // ignore the rest of the functions is "all" is clicked button.addEventListener("click", () => { const cuisine = button.id; if (activeFilters.includes(cuisine)) { - activeFilters = activeFilters.filter(f => f !== cuisine); // f = filter name + // remove recipes if they are already displayed + activeFilters = activeFilters.filter(country => country !== cuisine); } else { - // + // add the filtered recipes activeFilters.push(cuisine); } @@ -263,6 +267,7 @@ filterBtn.forEach(button => { }); const applyFilters = () => { + // if there are no active filters, then show all recipes if (activeFilters.length === 0) { displayRecipes(recipes); return; @@ -272,6 +277,7 @@ const applyFilters = () => { activeFilters.includes(recipe.cuisine.toLowerCase()) ); + // if there are active recipes, show the recipes. otherwise show the text if (filtered.length > 0) { displayRecipes(filtered); } else { @@ -296,14 +302,15 @@ ascBtn.addEventListener("click", () => { // filter + sort function const applyKitchenFilters = () => { - let filtered = []; + let filtered = []; // make an empty box - // sort all recipes if (activeFilters.length === 0) { + // if no active filter, make a copy of recipes list filtered = [...recipes]; } else { + // if filters are active, pick up the recipes filtered = recipes.filter(recipe => - activeFilters.includes(recipe.cuisine.toLocaleLowerCase()) + activeFilters.includes(recipe.cuisine.toLowerCase()) ); } @@ -318,7 +325,7 @@ const applyKitchenFilters = () => { if (filtered.length > 0) { displayRecipes(filtered); } else { - container.innerHTML = `

No results

`; } }; @@ -332,3 +339,62 @@ randomBtn.addEventListener("click", () => { const randomRecipe = recipes[randomIndex]; displayRecipes([randomRecipe]) }) + +//=============================== +// like button +//=============================== + +// save favorite recipes +let favorites = JSON.parse(localStorage.getItem("favorites")) || []; + +function attachLikeEvents() { + const likeButtons = document.querySelectorAll(".like-button"); + + likeButtons.forEach(button => { + button.addEventListener("click", () => { + const card = button.closest(".recipe-card"); + const recipeID = card.dataset.id; + + if (favorites.includes(recipeId)) { + // remove recipe if it is already liked + favorites = favorites.filter(id => id !== recipeId); + button.classList.remove("liked"); + } else { + // otherwise add recipe + favorites.push(recipeId); + button.classList.add("liked"); + } + + // save recipes + localStorage.setItem("favorites", JSON.stringify(favorites)); + }); + }); +} + +//=============================== +// show favorite recipes +//=============================== + +const favoriteBtn = document.querySelector(".favorites") + +favoriteBtn.addEventListener("click", () => { + const favRecipes = recipes.filter(recipe => + favorites.includes(recipe.id.toString()) + ); + + if (favRecipes.length >0) { + displayRecipes(favRecipes); + } else { + container.innerHTML = `

No favorite recipes yet

`; + } +}); + + + +//=============================== +// fetch recipes +//=============================== + +const API_URL = "https://api.spoonacular.com/recipes/random?number=20&e1711b2ca9f84dec882725da3bd3acfd"; + +fetch("") \ No newline at end of file diff --git a/style.css b/style.css index e03bd389e..e29a9ee67 100644 --- a/style.css +++ b/style.css @@ -54,6 +54,72 @@ a { color: initial; } +/* ====================================== +favorite recipes +======================================= */ + +.favorites { + color: #555; + text-align: center; + margin-left: 10px; + margin-bottom: 50px; + background-color: lightpink; + width: 150px; + padding: 10px; + border-radius: 10px; + cursor: pointer; +} + +/* ====================================== +search form +======================================= */ + +.search-form { + display: flex; + justify-content: space-between; + align-items: center; + width: 50%; + margin-left: 10px; + margin-bottom: 20px; + overflow: hidden; + border: 1px solid #777777; + border-radius: 50px; +} + +.search-form:hover { + border: 2px solid #777777; +} + +.text-input { + width: 100%; + height: 45px; + padding: 5px 15px; + border: none; + box-sizing: border-box; + font-size: 1em; + outline: none; +} + +.text-input::placeholder{ + font-size: 1em; + color: #777777; +} + +.search-button { + background-color: skyblue; + display: flex; + justify-content: center; + align-items: center; + width: 50px; + height: 45px; + border: none; + cursor: pointer; +} + +.search-emoji { + font-size: 1.5rem; +} + /* ====================================== style for the buttons ======================================= */ @@ -161,6 +227,17 @@ style for recipe cards margin-bottom: 10px; } +#like-button { + font-size: 20px; + background-color: transparent; + border: none; + margin: 0 0 0 auto;cursor: pointer; +} + +#like-button.liked { + color: red; +} + .line { width: auto; height: 1px; @@ -202,5 +279,9 @@ responsive design display: flex; flex-direction: column ; } + + .search-form { + width: 90%; + } } From 436840acb1e6d167a487c1aa14a156fdcea8a94e Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Mon, 6 Oct 2025 22:10:44 +0200 Subject: [PATCH 09/22] add like button --- script.js | 6 ++++-- style.css | 19 +++++++++++++------ 2 files changed, 17 insertions(+), 8 deletions(-) diff --git a/script.js b/script.js index 0b92a4afe..7a7ee2154 100644 --- a/script.js +++ b/script.js @@ -216,9 +216,11 @@ const displayRecipes = (recipeArray) => { recipeArray.forEach(recipe => { container.innerHTML += `
- picture of food +
+ + picture of food +

${recipe.title}

-

Cuisine: ${recipe.cuisine}

Time: ${recipe.readyInMinutes} minutes

diff --git a/style.css b/style.css index e29a9ee67..c36c0a075 100644 --- a/style.css +++ b/style.css @@ -127,6 +127,7 @@ style for the buttons .button-container { display: flex; flex-direction: row; + margin-bottom: 20px; } .filter-container, @@ -211,10 +212,11 @@ style for the buttons style for recipe cards ======================================= */ -.recipe-container { +#recipe-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 20px; + margin-bottom: 50px; } .placeholder p { @@ -222,14 +224,19 @@ style for recipe cards margin: 8px 0; } -.recipe-title { - margin-left: 0; - margin-bottom: 10px; +.recipe-image { + position: relative; } #like-button { - font-size: 20px; - background-color: transparent; + position: absolute; + top: 10px; + right: 10px; + width: 40px; + height: 40px; + font-size: 24px; + background-color: white; + border-radius: 50%; border: none; margin: 0 0 0 auto;cursor: pointer; } From 848a6d0ecdd17ee5526444313e43331045276d87 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Tue, 7 Oct 2025 23:11:37 +0200 Subject: [PATCH 10/22] add search function --- index.html | 7 ++++-- script.js | 63 ++++++++++++++++++++++++++++++++++++++++++++++++------ style.css | 15 +++++-------- 3 files changed, 67 insertions(+), 18 deletions(-) diff --git a/index.html b/index.html index 3f8070bd7..8ab6fb4d3 100644 --- a/index.html +++ b/index.html @@ -17,7 +17,7 @@

Recipe Library

class="search-form">
-
Loading...
+
+ Loading... +

No results

+
diff --git a/script.js b/script.js index 7a7ee2154..2c661e05e 100644 --- a/script.js +++ b/script.js @@ -1,3 +1,5 @@ +const URL = "https://api.spoonacular.com/recipes/complexSearch?number=5&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=true&includeIngredients=true&addRecipeInstructions=true"; + const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") @@ -206,6 +208,18 @@ const recipes = [ }, ] +//=============================== +// fetch recipes +//=============================== + +// const fetchData = async () => { +// const response = await fetch(URL) +// const data = await response.json() +// console.log(data) +// } + +// fetchData() + //=============================== // display recipes //=============================== @@ -217,7 +231,7 @@ const displayRecipes = (recipeArray) => { container.innerHTML += `
- + picture of food

${recipe.title}

@@ -231,7 +245,7 @@ const displayRecipes = (recipeArray) => { ` }) - // attachLikeEvents(); + attachLikeEvents(); } displayRecipes(recipes); @@ -346,6 +360,15 @@ randomBtn.addEventListener("click", () => { // like button //=============================== +const likeButtons = document.querySelectorAll(".like-button"); + +// change the color of the button +likeButtons.forEach(button => { + button.addEventListener("click", () => { + button.classList.toggle("liked"); + }); +}); + // save favorite recipes let favorites = JSON.parse(localStorage.getItem("favorites")) || []; @@ -392,11 +415,39 @@ favoriteBtn.addEventListener("click", () => { }); - //=============================== -// fetch recipes +// search recipes //=============================== -const API_URL = "https://api.spoonacular.com/recipes/random?number=20&e1711b2ca9f84dec882725da3bd3acfd"; +const searchInput = document.getElementById("text-input"); +const searchTargets = document.querySelectorAll('.recipe-card'); +const noResultsMessage = document.getElementById("no-results"); + +// show and hide search results +const showSearchResult = (target) => target.style.display = ""; +const hideSearchResult = (target) => target.style.display = "none"; + +// filter search results by keyword +const filterSearchResults = () => { + const keyword = searchInput.value.trim().toLowerCase(); + let matchFound = false; + + searchTargets.forEach((target) => { + const text = target.textContent.toLowerCase(); + if (text.includes(keyword)) { + showSearchResult(target); + matchFound = true; + } else { + hideSearchResult(target); + } + }); + + // show no results message if no hits + if (!matchFound) { + noResultsMessage.style.display = "block"; + } else { + noResultsMessage.style.display = "none"; + } +}; -fetch("") \ No newline at end of file +searchInput.addEventListener("input", filterSearchResults); diff --git a/style.css b/style.css index c36c0a075..6c7bb27a9 100644 --- a/style.css +++ b/style.css @@ -11,11 +11,10 @@ body { h1 { color: #0018a4; - /* width: 495px; */ height: 85px; top: 64px; left: 64px; - font-size: 64px; + font-size: 3rem; margin: 50px 10px; } @@ -90,7 +89,7 @@ search form border: 2px solid #777777; } -.text-input { +#text-input { width: 100%; height: 45px; padding: 5px 15px; @@ -100,7 +99,7 @@ search form outline: none; } -.text-input::placeholder{ +#text-input::placeholder{ font-size: 1em; color: #777777; } @@ -228,7 +227,7 @@ style for recipe cards position: relative; } -#like-button { +.like-button { position: absolute; top: 10px; right: 10px; @@ -241,7 +240,7 @@ style for recipe cards margin: 0 0 0 auto;cursor: pointer; } -#like-button.liked { +.like-button.liked { color: red; } @@ -278,10 +277,6 @@ responsive design ======================================= */ @media (max-width: 1023px) { - h1 { - font-size: 6.3vw; - } - .button-container { display: flex; flex-direction: column ; From b54b8f4637dd9de13a9be3609e47e46e141f82dd Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Wed, 8 Oct 2025 17:39:36 +0200 Subject: [PATCH 11/22] add API --- backup.js | 5138 ++++++++++++++++++++++++++++++++++++++++++++++++++++ index.html | 2 +- script.js | 343 ++-- style.css | 28 +- 4 files changed, 5352 insertions(+), 159 deletions(-) create mode 100644 backup.js diff --git a/backup.js b/backup.js new file mode 100644 index 000000000..bb6c5f713 --- /dev/null +++ b/backup.js @@ -0,0 +1,5138 @@ +//backup recipe data +export const backupRecipes = { + "recipes": [ + { + "id": 663050, + "image": "https://img.spoonacular.com/recipes/663050-556x370.jpg", + "imageType": "jpg", + "title": "Tex-Mex Burger", + "readyInMinutes": 15, + "servings": 4, + "sourceUrl": "https://www.foodista.com/recipe/NSYCCHLT/tex-mex-burger", + "vegetarian": false, + "vegan": false, + "glutenFree": false, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 28, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 2, + "healthScore": 30, + "creditsText": "foodista.com", + "license": null, + "sourceName": "foodista.com", + "pricePerServing": 339.83, + "extendedIngredients": [ + { + "id": 9037, + "aisle": "Produce", + "image": "avocado.jpg", + "consistency": "SOLID", + "name": "avocado", + "nameClean": "avocado", + "original": "1 avocado, thinly sliced", + "originalName": "avocado, thinly sliced", + "amount": 1, + "unit": "", + "meta": [ + "thinly sliced" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 1, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 2009, + "aisle": "Spices and Seasonings", + "image": "chili-powder.jpg", + "consistency": "SOLID", + "name": "chili powder", + "nameClean": "chili powder", + "original": "1 tsp Chili Powder", + "originalName": "Chili Powder", + "amount": 1, + "unit": "tsp", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 11165, + "aisle": "Produce", + "image": "cilantro.png", + "consistency": "SOLID", + "name": "cilantro", + "nameClean": "cilantro", + "original": "¾ cup cilantro, chopped", + "originalName": "cilantro, chopped", + "amount": 0.75, + "unit": "cup", + "meta": [ + "chopped" + ], + "measures": { + "us": { + "amount": 0.75, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 12, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 1002014, + "aisle": "Spices and Seasonings", + "image": "ground-cumin.jpg", + "consistency": "SOLID", + "name": "cumin", + "nameClean": "cumin", + "original": "2 tsp Cumin", + "originalName": "Cumin", + "amount": 2, + "unit": "tsp", + "meta": [], + "measures": { + "us": { + "amount": 2, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 2, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 10023572, + "aisle": "Meat", + "image": "fresh-ground-beef.jpg", + "consistency": "SOLID", + "name": "ground beef", + "nameClean": "ground beef", + "original": "2 lb ground beef", + "originalName": "ground beef", + "amount": 2, + "unit": "lb", + "meta": [], + "measures": { + "us": { + "amount": 2, + "unitShort": "lb", + "unitLong": "pounds" + }, + "metric": { + "amount": 907.185, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 18350, + "aisle": "Bakery/Bread", + "image": "hamburger-bun.jpg", + "consistency": "SOLID", + "name": "hamburger buns", + "nameClean": "hamburger buns", + "original": "4 Hamburger Buns, Toasted", + "originalName": "Hamburger Buns, Toasted", + "amount": 4, + "unit": "", + "meta": [ + "toasted" + ], + "measures": { + "us": { + "amount": 4, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 4, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 2028, + "aisle": "Spices and Seasonings", + "image": "paprika.jpg", + "consistency": "SOLID", + "name": "paprika", + "nameClean": "paprika", + "original": "1 tsp Paprika", + "originalName": "Paprika", + "amount": 1, + "unit": "tsp", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 1002030, + "aisle": "Spices and Seasonings", + "image": "pepper.jpg", + "consistency": "SOLID", + "name": "pepper", + "nameClean": "pepper", + "original": "1 tsp Pepper", + "originalName": "Pepper", + "amount": 1, + "unit": "tsp", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 1025, + "aisle": "Cheese", + "image": "pepper-jack-cheese.jpg", + "consistency": "SOLID", + "name": "pepper jack cheese", + "nameClean": "pepper jack cheese", + "original": "4 Slices Pepper jack Cheese", + "originalName": "Pepper jack Cheese", + "amount": 4, + "unit": "Slices", + "meta": [], + "measures": { + "us": { + "amount": 4, + "unitShort": "slice", + "unitLong": "slices" + }, + "metric": { + "amount": 4, + "unitShort": "slice", + "unitLong": "slices" + } + } + }, + { + "id": 10011282, + "aisle": "Produce", + "image": "red-onion.png", + "consistency": "SOLID", + "name": "onion", + "nameClean": "onion", + "original": "8 thin slices red onion", + "originalName": "thin slices red onion", + "amount": 8, + "unit": "slices", + "meta": [ + "red", + "thin" + ], + "measures": { + "us": { + "amount": 8, + "unitShort": "slice", + "unitLong": "slices" + }, + "metric": { + "amount": 8, + "unitShort": "slice", + "unitLong": "slices" + } + } + }, + { + "id": 6164, + "aisle": "Ethnic Foods", + "image": "salsa.png", + "consistency": "SOLID", + "name": "salsa", + "nameClean": "salsa", + "original": "8 tablespoons salsa", + "originalName": "salsa", + "amount": 8, + "unit": "tablespoons", + "meta": [], + "measures": { + "us": { + "amount": 8, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 8, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 2047, + "aisle": "Spices and Seasonings", + "image": "salt.jpg", + "consistency": "SOLID", + "name": "salt", + "nameClean": "salt", + "original": "1 tsp Salt", + "originalName": "Salt", + "amount": 1, + "unit": "tsp", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + } + ], + "summary": "Tex-Mex Burger is an American recipe that serves 4. For $3.4 per serving, this recipe covers 36% of your daily requirements of vitamins and minerals. This main course has 884 calories, 51g of protein, and 61g of fat per serving. 2 people were glad they tried this recipe. From preparation to the plate, this recipe takes roughly 15 minutes. It is brought to you by Foodista. A mixture of pepper, chili powder, pepper jack cheese, and a handful of other ingredients are all it takes to make this recipe so delicious. Overall, this recipe earns a solid spoonacular score of 73%. If you like this recipe, take a look at these similar recipes:
Tex-Mex Burger, Tex-Mex burger, and Tex-Mex Turkey Burger.", + "cuisines": [ + "American" + ], + "dishTypes": [ + "lunch", + "main course", + "main dish", + "dinner" + ], + "diets": [], + "occasions": [], + "instructions": "
  1. Preheat broiler.
  2. Heat large frying pan to medium high heat.
  3. Make patties: Take the ground beef, add salsa and spices. Mix together till evenly distributed. Place patties on frying pan and cook for 3 minutes and 30 seconds.
  4. Flip over and place 1 slice of cheese on each patty. Cook for another 3 minutes and 30 seconds. Meanwhile, get out all toppings and toast buns.
  5. Once done, let burger rest for 5 minutes on a plate.
  6. Assemble burger: Place patty on bun. Top with 1 TBSP Salsa, then 2 slices of red onion. Place of the cilantro on red onion and then place avocado on top bun. Add bun to burger and serve.
", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Preheat broiler.", + "ingredients": [], + "equipment": [ + { + "id": 405914, + "name": "broiler", + "localizedName": "broiler", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ] + }, + { + "number": 2, + "step": "Heat large frying pan to medium high heat. Make patties: Take the ground beef, add salsa and spices.", + "ingredients": [ + { + "id": 10023572, + "name": "ground beef", + "localizedName": "ground beef", + "image": "fresh-ground-beef.jpg" + }, + { + "id": 2035, + "name": "spices", + "localizedName": "spices", + "image": "spices.png" + }, + { + "id": 6164, + "name": "salsa", + "localizedName": "salsa", + "image": "salsa.png" + } + ], + "equipment": [ + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ] + }, + { + "number": 3, + "step": "Mix together till evenly distributed.", + "ingredients": [], + "equipment": [] + } + ] + }, + { + "name": "Place patties on frying pan and cook for 3 minutes and 30 seconds.Flip over and place 1 slice of cheese on each patty. Cook for another 3 minutes and 30 seconds. Meanwhile, get out all toppings and toast buns. Once done, let burger rest for 5 minutes on a plate.Assemble burger", + "steps": [ + { + "number": 1, + "step": "Place patty on bun. Top with 1 TBSP Salsa, then 2 slices of red onion.", + "ingredients": [ + { + "id": 10011282, + "name": "red onion", + "localizedName": "red onion", + "image": "red-onion.png" + }, + { + "id": 6164, + "name": "salsa", + "localizedName": "salsa", + "image": "salsa.png" + }, + { + "id": 0, + "name": "roll", + "localizedName": "roll", + "image": "dinner-yeast-rolls.jpg" + } + ], + "equipment": [] + }, + { + "number": 2, + "step": "Place of the cilantro on red onion and then place avocado on top bun.", + "ingredients": [ + { + "id": 10011282, + "name": "red onion", + "localizedName": "red onion", + "image": "red-onion.png" + }, + { + "id": 11165, + "name": "cilantro", + "localizedName": "cilantro", + "image": "cilantro.png" + }, + { + "id": 9037, + "name": "avocado", + "localizedName": "avocado", + "image": "avocado.jpg" + }, + { + "id": 0, + "name": "roll", + "localizedName": "roll", + "image": "dinner-yeast-rolls.jpg" + } + ], + "equipment": [] + }, + { + "number": 3, + "step": "Add bun to burger and serve.", + "ingredients": [ + { + "id": 0, + "name": "roll", + "localizedName": "roll", + "image": "dinner-yeast-rolls.jpg" + } + ], + "equipment": [] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 77.95384216308594, + "spoonacularSourceUrl": "https://spoonacular.com/tex-mex-burger-663050" + }, + { + "id": 658680, + "image": "https://img.spoonacular.com/recipes/658680-556x370.jpg", + "imageType": "jpg", + "title": "Roasted Sweet Potato Salad", + "readyInMinutes": 45, + "servings": 8, + "sourceUrl": "https://www.foodista.com/recipe/675ZY245/roasted-sweet-potato-salad", + "vegetarian": true, + "vegan": true, + "glutenFree": true, + "dairyFree": true, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 3, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 5, + "healthScore": 19, + "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", + "license": "CC BY 3.0", + "sourceName": "Foodista", + "pricePerServing": 109.1, + "extendedIngredients": [ + { + "id": 11507, + "aisle": "Produce", + "image": "sweet-potato.png", + "consistency": "SOLID", + "name": "sweet potatoes", + "nameClean": "sweet potatoes", + "original": "3 pounds sweet potatoes", + "originalName": "sweet potatoes", + "amount": 3, + "unit": "pounds", + "meta": [], + "measures": { + "us": { + "amount": 3, + "unitShort": "lb", + "unitLong": "pounds" + }, + "metric": { + "amount": 1.361, + "unitShort": "kgs", + "unitLong": "kgs" + } + } + }, + { + "id": 1034053, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "olive-oil.jpg", + "consistency": "LIQUID", + "name": "extra virgin olive oil", + "nameClean": "extra virgin olive oil", + "original": "1/4 cup extra virgin olive oil", + "originalName": "extra virgin olive oil", + "amount": 0.25, + "unit": "cup", + "meta": [], + "measures": { + "us": { + "amount": 0.25, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 54, + "unitShort": "ml", + "unitLong": "milliliters" + } + } + }, + { + "id": 99223, + "aisle": "Canned and Jarred", + "image": "canned-chipotle.png", + "consistency": "SOLID", + "name": "chipotle pepper adobo sauce", + "nameClean": "chipotle pepper adobo sauce", + "original": "1 inch chipotle pepper adobo sauce, pureed", + "originalName": "chipotle pepper adobo sauce, pureed", + "amount": 1, + "unit": "inch", + "meta": [ + "pureed" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "inch", + "unitLong": "inch" + }, + "metric": { + "amount": 1, + "unitShort": "inch", + "unitLong": "inch" + } + } + }, + { + "id": 2069, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "balsamic-vinegar.jpg", + "consistency": "LIQUID", + "name": "balsamic vinegar", + "nameClean": "balsamic vinegar", + "original": "1 teaspoon balsamic vinegar", + "originalName": "balsamic vinegar", + "amount": 1, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 2047, + "aisle": "Spices and Seasonings", + "image": "salt.jpg", + "consistency": "SOLID", + "name": "salt", + "nameClean": "salt", + "original": "2 teaspoons salt", + "originalName": "salt", + "amount": 2, + "unit": "teaspoons", + "meta": [], + "measures": { + "us": { + "amount": 2, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 2, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 1002030, + "aisle": "Spices and Seasonings", + "image": "pepper.jpg", + "consistency": "SOLID", + "name": "pepper", + "nameClean": "pepper", + "original": "1/4 teaspoon pepper", + "originalName": "pepper", + "amount": 0.25, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.25, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.25, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 9079, + "aisle": "Produce", + "image": "dried-cranberries.jpg", + "consistency": "SOLID", + "name": "cranberries", + "nameClean": "cranberries", + "original": "cup dried cranberries", + "originalName": "dried cranberries", + "amount": 1, + "unit": "cup", + "meta": [ + "dried" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "cup", + "unitLong": "cup" + }, + "metric": { + "amount": 121.212, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 12142, + "aisle": "Baking", + "image": "pecans.jpg", + "consistency": "SOLID", + "name": "pecans", + "nameClean": "pecans", + "original": "1/2 cup pecans, chopped", + "originalName": "pecans, chopped", + "amount": 0.5, + "unit": "cup", + "meta": [ + "chopped" + ], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 49.5, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 11156, + "aisle": "Produce", + "image": "fresh-chives.jpg", + "consistency": "SOLID", + "name": "chives", + "nameClean": "chives", + "original": "2 tablespoons chopped fresh chives", + "originalName": "chopped fresh chives", + "amount": 2, + "unit": "tablespoons", + "meta": [ + "fresh", + "chopped" + ], + "measures": { + "us": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + } + ], + "summary": "Roasted Sweet Potato Salad is a gluten free, dairy free, paleolithic, and lacto ovo vegetarian recipe with 8 servings. One portion of this dish contains around 3g of protein, 11g of fat, and a total of 297 calories. For $1.09 per serving, this recipe covers 14% of your daily requirements of vitamins and minerals. 5 people were glad they tried this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It will be a hit at your The Fourth Of July event. Not a lot of people really liked this side dish. This recipe from Foodista requires pecans, extra virgin olive oil, chipotle pepper adobo sauce, and cranberries. All things considered, we decided this recipe deserves a spoonacular score of 66%. This score is good. Try Roasted Sweet Potato Salad, Roasted Sweet Potato Salad, and Roasted Sweet Potato Salad for similar recipes.", + "cuisines": [], + "dishTypes": [ + "side dish" + ], + "diets": [ + "gluten free", + "dairy free", + "paleolithic", + "lacto ovo vegetarian", + "primal", + "vegan" + ], + "occasions": [ + "father's day", + "4th of july", + "summer" + ], + "instructions": "Preheat oven to 400 degrees (convection works best). Peel and cut potatoes into 1 pieces. Toss to coat with 2 tablespoon of olive oil. Arrange in a single layer on two baking sheets Roast for 35 minutes Mix 2 tablespoons oil, pepper puree, vinegar, salt and pepper to make a dressing Combine cranberries, pecans, chives and cooked sweet potatoes in a medium bowl, drizzle with dressing, cover. Refrigerate until chilled.", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Preheat oven to 400 degrees (convection works best).", + "ingredients": [], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ] + }, + { + "number": 2, + "step": "Peel and cut potatoes into 1 pieces.", + "ingredients": [ + { + "id": 11352, + "name": "potato", + "localizedName": "potato", + "image": "potatoes-yukon-gold.png" + } + ], + "equipment": [] + }, + { + "number": 3, + "step": "Toss to coat with 2 tablespoon of olive oil.", + "ingredients": [ + { + "id": 4053, + "name": "olive oil", + "localizedName": "olive oil", + "image": "olive-oil.jpg" + } + ], + "equipment": [] + }, + { + "number": 4, + "step": "Arrange in a single layer on two baking sheets", + "ingredients": [], + "equipment": [ + { + "id": 404727, + "name": "baking sheet", + "localizedName": "baking sheet", + "image": "https://spoonacular.com/cdn/equipment_100x100/baking-sheet.jpg" + } + ] + }, + { + "number": 5, + "step": "Roast for 35 minutes", + "ingredients": [], + "equipment": [] + }, + { + "number": 6, + "step": "Mix 2 tablespoons oil, pepper puree, vinegar, salt and pepper to make a dressing", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 2053, + "name": "vinegar", + "localizedName": "vinegar", + "image": "vinegar-(white).jpg" + }, + { + "id": 1002030, + "name": "pepper", + "localizedName": "pepper", + "image": "pepper.jpg" + }, + { + "id": 4582, + "name": "cooking oil", + "localizedName": "cooking oil", + "image": "vegetable-oil.jpg" + } + ], + "equipment": [] + }, + { + "number": 7, + "step": "Combine cranberries, pecans, chives and cooked sweet potatoes in a medium bowl, drizzle with dressing, cover. Refrigerate until chilled.", + "ingredients": [ + { + "id": 11507, + "name": "sweet potato", + "localizedName": "sweet potato", + "image": "sweet-potato.png" + }, + { + "id": 9078, + "name": "cranberries", + "localizedName": "cranberries", + "image": "cranberries.jpg" + }, + { + "id": 11156, + "name": "chives", + "localizedName": "chives", + "image": "fresh-chives.jpg" + }, + { + "id": 12142, + "name": "pecans", + "localizedName": "pecans", + "image": "pecans.jpg" + } + ], + "equipment": [ + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 71.97892761230469, + "spoonacularSourceUrl": "https://spoonacular.com/roasted-sweet-potato-salad-658680" + }, + { + "id": 658024, + "image": "https://img.spoonacular.com/recipes/658024-556x370.jpg", + "imageType": "jpg", + "title": "Minestrone Soup", + "readyInMinutes": 45, + "servings": 8, + "sourceUrl": "https://www.foodista.com/recipe/55CQV2NL/recipe-for-minestrone-soup", + "vegetarian": false, + "vegan": false, + "glutenFree": false, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 10, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 14, + "healthScore": 17, + "creditsText": "foodista.com", + "license": null, + "sourceName": "foodista.com", + "pricePerServing": 203.05, + "extendedIngredients": [ + { + "id": 10123, + "aisle": "Meat", + "image": "raw-bacon.png", + "consistency": "SOLID", + "name": "into strips", + "nameClean": "into strips", + "original": "125gr / 4.5 oz. smoked bacon sliced finely or into thin strips", + "originalName": "4.5 oz. smoked bacon sliced finely or into thin strips", + "amount": 125, + "unit": "gr", + "meta": [ + "smoked", + "sliced", + "finely", + "thin" + ], + "measures": { + "us": { + "amount": 4.409, + "unitShort": "oz", + "unitLong": "ounces" + }, + "metric": { + "amount": 125, + "unitShort": "gr", + "unitLong": "grs" + } + } + }, + { + "id": 16034, + "aisle": "Canned and Jarred", + "image": "kidney-beans.jpg", + "consistency": "SOLID", + "name": "kidney beans", + "nameClean": "kidney beans", + "original": "1 can kidney beans (400gr / 14 oz.) drained and washed", + "originalName": "kidney beans (400gr / 14 oz.) drained and washed", + "amount": 1, + "unit": "can", + "meta": [ + "washed", + "drained", + "(400gr / 14 oz.)" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "can", + "unitLong": "can" + }, + "metric": { + "amount": 1, + "unitShort": "can", + "unitLong": "can" + } + } + }, + { + "id": 10011693, + "aisle": "Canned and Jarred", + "image": "tomatoes-canned.png", + "consistency": "SOLID", + "name": "canned tomatoes", + "nameClean": "canned tomatoes", + "original": "1 can chopped tomatoes (400gr / 14 oz.)", + "originalName": "chopped tomatoes (400gr / 14 oz.)", + "amount": 1, + "unit": "can", + "meta": [ + "chopped", + "(400gr / 14 oz.)" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "can", + "unitLong": "can" + }, + "metric": { + "amount": 1, + "unitShort": "can", + "unitLong": "can" + } + } + }, + { + "id": 11124, + "aisle": "Produce", + "image": "sliced-carrot.png", + "consistency": "SOLID", + "name": "carrots", + "nameClean": "carrots", + "original": "3 carrots, peeled and chopped finely", + "originalName": "carrots, peeled and chopped finely", + "amount": 3, + "unit": "", + "meta": [ + "peeled", + "chopped", + "finely" + ], + "measures": { + "us": { + "amount": 3, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 3, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 11143, + "aisle": "Produce", + "image": "celery.jpg", + "consistency": "SOLID", + "name": "celery", + "nameClean": "celery", + "original": "3 stalks of celery chopped finely", + "originalName": "celery chopped finely", + "amount": 3, + "unit": "stalks", + "meta": [ + "chopped", + "finely" + ], + "measures": { + "us": { + "amount": 3, + "unitShort": "stalks", + "unitLong": "stalks" + }, + "metric": { + "amount": 3, + "unitShort": "stalks", + "unitLong": "stalks" + } + } + }, + { + "id": 1012049, + "aisle": "Produce", + "image": "thyme.jpg", + "consistency": "SOLID", + "name": "thyme leaves", + "nameClean": "thyme leaves", + "original": "1 tbsp of fresh thyme leaves", + "originalName": "fresh thyme leaves", + "amount": 1, + "unit": "tbsp", + "meta": [ + "fresh" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + }, + "metric": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + } + } + }, + { + "id": 11215, + "aisle": "Produce", + "image": "garlic.png", + "consistency": "SOLID", + "name": "garlic", + "nameClean": "garlic", + "original": "3 large cloves of garlic, chopped finely", + "originalName": "garlic, chopped finely", + "amount": 3, + "unit": "large cloves", + "meta": [ + "chopped", + "finely" + ], + "measures": { + "us": { + "amount": 3, + "unitShort": "large cloves", + "unitLong": "large cloves" + }, + "metric": { + "amount": 3, + "unitShort": "large cloves", + "unitLong": "large cloves" + } + } + }, + { + "id": 20499, + "aisle": "Pasta and Rice", + "image": "elbow.jpg", + "consistency": "SOLID", + "name": ".5 oz. macaroni", + "nameClean": ".5 oz. macaroni", + "original": "100gr / 3.5 oz. macaroni", + "originalName": "3.5 oz. macaroni", + "amount": 100, + "unit": "gr", + "meta": [], + "measures": { + "us": { + "amount": 3.527, + "unitShort": "oz", + "unitLong": "ounces" + }, + "metric": { + "amount": 100, + "unitShort": "gr", + "unitLong": "grs" + } + } + }, + { + "id": 4053, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "olive-oil.jpg", + "consistency": "LIQUID", + "name": "olive oil", + "nameClean": "olive oil", + "original": "1 tbsp olive oil", + "originalName": "olive oil", + "amount": 1, + "unit": "tbsp", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + }, + "metric": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + } + } + }, + { + "id": 11282, + "aisle": "Produce", + "image": "brown-onion.png", + "consistency": "SOLID", + "name": "onion", + "nameClean": "onion", + "original": "1 large onion chopped finely", + "originalName": "onion chopped finely", + "amount": 1, + "unit": "large", + "meta": [ + "chopped", + "finely" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "large", + "unitLong": "large" + }, + "metric": { + "amount": 1, + "unitShort": "large", + "unitLong": "large" + } + } + }, + { + "id": 1033, + "aisle": "Cheese", + "image": "parmesan.jpg", + "consistency": "SOLID", + "name": "some parmesan to serve", + "nameClean": "some parmesan to serve", + "original": "Some finely grated parmesan to serve", + "originalName": "Some finely grated parmesan to serve", + "amount": 8, + "unit": "servings", + "meta": [ + "finely grated" + ], + "measures": { + "us": { + "amount": 8, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 8, + "unitShort": "servings", + "unitLong": "servings" + } + } + }, + { + "id": 1102047, + "aisle": "Spices and Seasonings", + "image": "salt-and-pepper.jpg", + "consistency": "SOLID", + "name": "salt and pepper", + "nameClean": "salt and pepper", + "original": "Salt and black pepper to taste", + "originalName": "Salt and black pepper to taste", + "amount": 8, + "unit": "servings", + "meta": [ + "black", + "to taste" + ], + "measures": { + "us": { + "amount": 8, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 8, + "unitShort": "servings", + "unitLong": "servings" + } + } + }, + { + "id": 11114, + "aisle": "Produce", + "image": "savoy-cabbage.jpg", + "consistency": "SOLID", + "name": "savoy cabbage", + "nameClean": "savoy cabbage", + "original": "1/3 of a savoy cabbage, shredded", + "originalName": "savoy cabbage, shredded", + "amount": 0.33333334, + "unit": "", + "meta": [ + "shredded" + ], + "measures": { + "us": { + "amount": 0.33333334, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 0.33333334, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 11547, + "aisle": "Canned and Jarred", + "image": "tomato-paste.jpg", + "consistency": "SOLID", + "name": "tomato purée", + "nameClean": "tomato purée", + "original": "2 tbsp tomato purée", + "originalName": "tomato purée", + "amount": 2, + "unit": "tbsp", + "meta": [], + "measures": { + "us": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 11529, + "aisle": "Produce", + "image": "tomato.png", + "consistency": "SOLID", + "name": "tomatoes into 8ths", + "nameClean": "tomatoes into 8ths", + "original": "2 large tomatoes chopped into 8ths", + "originalName": "tomatoes chopped into 8ths", + "amount": 2, + "unit": "large", + "meta": [ + "chopped" + ], + "measures": { + "us": { + "amount": 2, + "unitShort": "large", + "unitLong": "larges" + }, + "metric": { + "amount": 2, + "unitShort": "large", + "unitLong": "larges" + } + } + }, + { + "id": 6615, + "aisle": "Canned and Jarred", + "image": "chicken-broth.png", + "consistency": "LIQUID", + "name": "vegetable stock", + "nameClean": "vegetable stock", + "original": "1.2 liter / 2.5 pt. UK / 2.1 pt.US chicken or vegetable stock", + "originalName": "2.5 pt. UK / 2.1 pt.US chicken or vegetable stock", + "amount": 1.2, + "unit": "liter", + "meta": [], + "measures": { + "us": { + "amount": 1.255, + "unitShort": "qt", + "unitLong": "quarts" + }, + "metric": { + "amount": 1.2, + "unitShort": "l", + "unitLong": "liters" + } + } + } + ], + "summary": "You can never have too many main course recipes, so give Minestrone Soup a try. For $2.03 per serving, this recipe covers 23% of your daily requirements of vitamins and minerals. One serving contains 356 calories, 20g of protein, and 16g of fat. This recipe serves 8. It is perfect for Autumn. 14 people have made this recipe and would make it again. It is a reasonably priced recipe for fans of Mediterranean food. Head to the store and pick up vegetable stock, tomatoes into 8ths, salt and pepper, and a few other things to make it today. From preparation to the plate, this recipe takes roughly 45 minutes. It is brought to you by Foodista. Overall, this recipe earns a solid spoonacular score of 69%. Users who liked this recipe also liked Minestrone Soup, Minestrone Soup, and Minestrone Soup.", + "cuisines": [ + "Mediterranean", + "Italian", + "European" + ], + "dishTypes": [ + "soup", + "lunch", + "main course", + "main dish", + "dinner" + ], + "diets": [], + "occasions": [ + "fall", + "winter" + ], + "instructions": "
  1. Heat the oil in a very large pan that has a close fitting lid. Then add the celery, bacon, onion, carrot and garlic. Fry this off for about 5 to 7 minutes until it has softened a little. No colour is needed on the vegetables, so make sure the heat isnt too high that they become brown, but high enough the vegetables sweat and soften.
  2. Add the tomato pure and the thyme leaves, stir through and cook for about 30 seconds.
  3. 3.Add the stock, the tin of tomatoes, fresh tomatoes, and a little salt and pepper. Stir everything through, set the heat so that your soup is on a gentle simmer, cover and cook for about 25 minutes or until the vegetables are cooked al dente.
  4. Add the pasta and cook until the pasta is ready. Follow the timing instructions on the packet, but this is normally about 7 minutes.
  5. Add the cabbage and the beans and cook until the cabbage has wilted. This will take about 5 minutes.
  6. Check for seasoning and add some salt and pepper if needed before serving.
  7. Sprinkle a little parmesan over each bowl of soup.
", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Heat the oil in a very large pan that has a close fitting lid. Then add the celery, bacon, onion, carrot and garlic. Fry this off for about 5 to 7 minutes until it has softened a little. No colour is needed on the vegetables, so make sure the heat isnt too high that they become brown, but high enough the vegetables sweat and soften.", + "ingredients": [ + { + "id": 11583, + "name": "vegetable", + "localizedName": "vegetable", + "image": "https://spoonacular.com/cdn/ingredients_100x100/mixed-vegetables.png" + }, + { + "id": 11124, + "name": "carrot", + "localizedName": "carrot", + "image": "sliced-carrot.png" + }, + { + "id": 11143, + "name": "celery", + "localizedName": "celery", + "image": "celery.jpg" + }, + { + "id": 11215, + "name": "garlic", + "localizedName": "garlic", + "image": "garlic.png" + }, + { + "id": 10123, + "name": "bacon", + "localizedName": "bacon", + "image": "https://spoonacular.com/cdn/ingredients_100x100/raw-bacon.png" + }, + { + "id": 11282, + "name": "onion", + "localizedName": "onion", + "image": "brown-onion.png" + }, + { + "id": 4582, + "name": "cooking oil", + "localizedName": "cooking oil", + "image": "vegetable-oil.jpg" + } + ], + "equipment": [ + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ], + "length": { + "number": 5, + "unit": "minutes" + } + }, + { + "number": 2, + "step": "Add the tomato pure and the thyme leaves, stir through and cook for about 30 seconds.", + "ingredients": [ + { + "id": 2049, + "name": "thyme", + "localizedName": "thyme", + "image": "thyme.jpg" + }, + { + "id": 11529, + "name": "tomato", + "localizedName": "tomato", + "image": "tomato.png" + } + ], + "equipment": [] + }, + { + "number": 3, + "step": "Add the stock, the tin of tomatoes, fresh tomatoes, and a little salt and pepper. Stir everything through, set the heat so that your soup is on a gentle simmer, cover and cook for about 25 minutes or until the vegetables are cooked al dente.", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 11583, + "name": "vegetable", + "localizedName": "vegetable", + "image": "https://spoonacular.com/cdn/ingredients_100x100/mixed-vegetables.png" + }, + { + "id": 11529, + "name": "tomato", + "localizedName": "tomato", + "image": "tomato.png" + }, + { + "id": 1006615, + "name": "stock", + "localizedName": "stock", + "image": "chicken-broth.png" + }, + { + "id": 0, + "name": "soup", + "localizedName": "soup", + "image": "" + } + ], + "equipment": [], + "length": { + "number": 25, + "unit": "minutes" + } + }, + { + "number": 4, + "step": "Add the pasta and cook until the pasta is ready. Follow the timing instructions on the packet, but this is normally about 7 minutes.", + "ingredients": [ + { + "id": 20420, + "name": "pasta", + "localizedName": "pasta", + "image": "https://spoonacular.com/cdn/ingredients_100x100/fusilli.jpg" + } + ], + "equipment": [], + "length": { + "number": 7, + "unit": "minutes" + } + }, + { + "number": 5, + "step": "Add the cabbage and the beans and cook until the cabbage has wilted. This will take about 5 minutes.Check for seasoning and add some salt and pepper if needed before serving.", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 1042027, + "name": "seasoning", + "localizedName": "seasoning", + "image": "seasoning.png" + }, + { + "id": 11109, + "name": "cabbage", + "localizedName": "cabbage", + "image": "cabbage.jpg" + }, + { + "id": 0, + "name": "beans", + "localizedName": "beans", + "image": "kidney-beans.jpg" + } + ], + "equipment": [], + "length": { + "number": 5, + "unit": "minutes" + } + }, + { + "number": 6, + "step": "Sprinkle a little parmesan over each bowl of soup.", + "ingredients": [ + { + "id": 1033, + "name": "parmesan", + "localizedName": "parmesan", + "image": "parmesan.jpg" + }, + { + "id": 0, + "name": "soup", + "localizedName": "soup", + "image": "" + } + ], + "equipment": [ + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 72.9619140625, + "spoonacularSourceUrl": "https://spoonacular.com/minestrone-soup-658024" + }, + { + "id": 637591, + "image": "https://img.spoonacular.com/recipes/637591-556x370.jpg", + "imageType": "jpg", + "title": "Cheese Tortellini Alfredo", + "readyInMinutes": 45, + "servings": 4, + "sourceUrl": "https://www.foodista.com/recipe/V6PZJBZD/cheese-tortellini-alfredo", + "vegetarian": false, + "vegan": false, + "glutenFree": false, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 20, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 6, + "healthScore": 0, + "creditsText": "foodista.com", + "license": null, + "sourceName": "foodista.com", + "pricePerServing": 176.15, + "extendedIngredients": [ + { + "id": 10093727, + "aisle": "Refrigerated", + "image": "tortellini-isolated.jpg", + "consistency": "SOLID", + "name": "cheese tortellini by buitoni", + "nameClean": "cheese tortellini by buitoni", + "original": "1 package Cheese Tortellini by Buitoni", + "originalName": "Cheese Tortellini by Buitoni", + "amount": 1, + "unit": "package", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "pkg", + "unitLong": "package" + }, + "metric": { + "amount": 1, + "unitShort": "pkg", + "unitLong": "package" + } + } + }, + { + "id": 1002030, + "aisle": "Spices and Seasonings", + "image": "pepper.jpg", + "consistency": "SOLID", + "name": "ground pepper", + "nameClean": "ground pepper", + "original": "Fresh ground black pepper", + "originalName": "Fresh ground black pepper", + "amount": 4, + "unit": "servings", + "meta": [ + "fresh", + "black" + ], + "measures": { + "us": { + "amount": 4, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 4, + "unitShort": "servings", + "unitLong": "servings" + } + } + }, + { + "id": 2025, + "aisle": "Spices and Seasonings", + "image": "ground-nutmeg.jpg", + "consistency": "SOLID", + "name": "nutmeg", + "nameClean": "nutmeg", + "original": "Dash grated nutmeg", + "originalName": "grated nutmeg", + "amount": 1, + "unit": "Dash", + "meta": [ + "grated" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "Dash", + "unitLong": "Dash" + }, + "metric": { + "amount": 1, + "unitShort": "Dash", + "unitLong": "Dash" + } + } + }, + { + "id": 1033, + "aisle": "Cheese", + "image": "parmesan.jpg", + "consistency": "SOLID", + "name": "parmiggiano reggiano", + "nameClean": "parmiggiano reggiano", + "original": "½ freshly grated Parmiggiano Reggiano", + "originalName": "freshly grated Parmiggiano Reggiano", + "amount": 0.5, + "unit": "", + "meta": [ + "freshly grated" + ], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 0.5, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 1145, + "aisle": "Milk, Eggs, Other Dairy", + "image": "butter-sliced.jpg", + "consistency": "SOLID", + "name": "butter", + "nameClean": "butter", + "original": "2 tablespoon unsalted butter", + "originalName": "unsalted butter", + "amount": 2, + "unit": "tablespoon", + "meta": [ + "unsalted" + ], + "measures": { + "us": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 1001053, + "aisle": "Milk, Eggs, Other Dairy", + "image": "fluid-cream.jpg", + "consistency": "LIQUID", + "name": "whipping cream", + "nameClean": "whipping cream", + "original": "½ cup whipping cream", + "originalName": "whipping cream", + "amount": 0.5, + "unit": "cup", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 119, + "unitShort": "ml", + "unitLong": "milliliters" + } + } + } + ], + "summary": "Cheese Tortellini Alfredo might be a good recipe to expand your main course recipe box. This recipe serves 4. One portion of this dish contains approximately 22g of protein, 29g of fat, and a total of 593 calories. For $1.76 per serving, this recipe covers 6% of your daily requirements of vitamins and minerals. It is an affordable recipe for fans of Mediterranean food. 6 people have tried and liked this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It is brought to you by Foodista. If you have whipping cream, parmiggiano reggiano, nutmeg, and a few other ingredients on hand, you can make it. All things considered, we decided this recipe deserves a spoonacular score of 17%. This score is rather bad. Similar recipes are Chicken & Cheese Tortellini Alfredo, Chicken & Cheese Tortellini Alfredo, and Cheese Tortellini with Spinach Fetan Alfredo Sauce.", + "cuisines": [ + "Mediterranean", + "Italian", + "European" + ], + "dishTypes": [ + "side dish", + "lunch", + "main course", + "main dish", + "dinner" + ], + "diets": [], + "occasions": [], + "instructions": "
  1. In a large pot of salted water cook the tortellini according to the package directions.
  2. Drain the tortellini and return them to the pot. Fold in the butter until melted. Add the Parmiggiano and the heavy cream. Stir until the cream and the cream are absorbed. Add a dash of nutmeg and freshly ground black pepper.
  3. Serve hot.
", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "In a large pot of salted water cook the tortellini according to the package directions.", + "ingredients": [ + { + "id": 93727, + "name": "tortellini", + "localizedName": "tortellini", + "image": "tortellini-isolated.jpg" + }, + { + "id": 14412, + "name": "water", + "localizedName": "water", + "image": "water.png" + } + ], + "equipment": [ + { + "id": 404752, + "name": "pot", + "localizedName": "pot", + "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" + } + ] + }, + { + "number": 2, + "step": "Drain the tortellini and return them to the pot. Fold in the butter until melted.", + "ingredients": [ + { + "id": 93727, + "name": "tortellini", + "localizedName": "tortellini", + "image": "tortellini-isolated.jpg" + }, + { + "id": 1001, + "name": "butter", + "localizedName": "butter", + "image": "butter-sliced.jpg" + } + ], + "equipment": [ + { + "id": 404752, + "name": "pot", + "localizedName": "pot", + "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" + } + ] + }, + { + "number": 3, + "step": "Add the Parmiggiano and the heavy cream. Stir until the cream and the cream are absorbed.", + "ingredients": [ + { + "id": 1053, + "name": "heavy cream", + "localizedName": "heavy cream", + "image": "fluid-cream.jpg" + }, + { + "id": 1053, + "name": "cream", + "localizedName": "cream", + "image": "fluid-cream.jpg" + } + ], + "equipment": [] + }, + { + "number": 4, + "step": "Add a dash of nutmeg and freshly ground black pepper.", + "ingredients": [ + { + "id": 1002030, + "name": "ground black pepper", + "localizedName": "ground black pepper", + "image": "pepper.jpg" + }, + { + "id": 2025, + "name": "nutmeg", + "localizedName": "nutmeg", + "image": "ground-nutmeg.jpg" + } + ], + "equipment": [] + }, + { + "number": 5, + "step": "Serve hot.", + "ingredients": [], + "equipment": [] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 9.486737251281738, + "spoonacularSourceUrl": "https://spoonacular.com/cheese-tortellini-alfredo-637591" + }, + { + "id": 652819, + "image": "https://img.spoonacular.com/recipes/652819-556x370.jpg", + "imageType": "jpg", + "title": "My "Secret" Bolognese Sauce", + "readyInMinutes": 45, + "servings": 12, + "sourceUrl": "https://www.foodista.com/recipe/3V8MZXNN/my-secret-bolognese-sauce", + "vegetarian": false, + "vegan": false, + "glutenFree": true, + "dairyFree": true, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 14, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 27, + "healthScore": 19, + "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", + "license": "CC BY 3.0", + "sourceName": "Foodista", + "pricePerServing": 275.58, + "extendedIngredients": [ + { + "id": 4053, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "olive-oil.jpg", + "consistency": "LIQUID", + "name": "olive oil", + "nameClean": "olive oil", + "original": "2 tablespoons olive oil", + "originalName": "olive oil", + "amount": 2, + "unit": "tablespoons", + "meta": [], + "measures": { + "us": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 17142, + "aisle": "Meat", + "image": "meat-ground.jpg", + "consistency": "SOLID", + "name": "ground veal", + "nameClean": "ground veal", + "original": "1 lb ground veal", + "originalName": "ground veal", + "amount": 1, + "unit": "lb", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "lb", + "unitLong": "pound" + }, + "metric": { + "amount": 453.592, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 10023572, + "aisle": "Meat", + "image": "fresh-ground-beef.jpg", + "consistency": "SOLID", + "name": "ground beef", + "nameClean": "ground beef", + "original": "1 lb ground beef", + "originalName": "ground beef", + "amount": 1, + "unit": "lb", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "lb", + "unitLong": "pound" + }, + "metric": { + "amount": 453.592, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 10219, + "aisle": "Meat", + "image": "meat-ground.jpg", + "consistency": "SOLID", + "name": "ground pork", + "nameClean": "ground pork", + "original": "1 lb ground pork", + "originalName": "ground pork", + "amount": 1, + "unit": "lb", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "lb", + "unitLong": "pound" + }, + "metric": { + "amount": 453.592, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 1007036, + "aisle": "Meat", + "image": "raw-pork-sausage.png", + "consistency": "SOLID", + "name": "sausage", + "nameClean": "sausage", + "original": "1 lb sweet italian sausage, casing removed", + "originalName": "sweet italian sausage, casing removed", + "amount": 1, + "unit": "lb", + "meta": [ + "sweet", + "italian" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "lb", + "unitLong": "pound" + }, + "metric": { + "amount": 453.592, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 11294, + "aisle": "Produce", + "image": "sweet-onion.png", + "consistency": "SOLID", + "name": "vidalia onions", + "nameClean": "vidalia onions", + "original": "2 medium Vidalia onions or other sweet onion, diced", + "originalName": "Vidalia onions or other sweet onion, diced", + "amount": 2, + "unit": "medium", + "meta": [ + "diced", + "sweet" + ], + "measures": { + "us": { + "amount": 2, + "unitShort": "medium", + "unitLong": "mediums" + }, + "metric": { + "amount": 2, + "unitShort": "medium", + "unitLong": "mediums" + } + } + }, + { + "id": 11124, + "aisle": "Produce", + "image": "sliced-carrot.png", + "consistency": "SOLID", + "name": "carrots", + "nameClean": "carrots", + "original": "1 cup of finely diced carrots", + "originalName": "finely diced carrots", + "amount": 1, + "unit": "cup", + "meta": [ + "diced", + "finely" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "cup", + "unitLong": "cup" + }, + "metric": { + "amount": 128, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 10211215, + "aisle": "Produce", + "image": "garlic.jpg", + "consistency": "SOLID", + "name": "garlic cloves", + "nameClean": "garlic cloves", + "original": "5 garlic cloves, minced", + "originalName": "garlic cloves, minced", + "amount": 5, + "unit": "", + "meta": [ + "minced" + ], + "measures": { + "us": { + "amount": 5, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 5, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 2027, + "aisle": "Produce", + "image": "oregano.jpg", + "consistency": "SOLID", + "name": "oregano", + "nameClean": "oregano", + "original": "4 tablespoons chopped fresh oregano", + "originalName": "chopped fresh oregano", + "amount": 4, + "unit": "tablespoons", + "meta": [ + "fresh", + "chopped" + ], + "measures": { + "us": { + "amount": 4, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 4, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 14096, + "aisle": "Alcoholic Beverages", + "image": "red-wine.jpg", + "consistency": "LIQUID", + "name": "red wine", + "nameClean": "red wine", + "original": "1 cup red wine (I used DaVinci Chianti)", + "originalName": "red wine (I used DaVinci Chianti)", + "amount": 1, + "unit": "cup", + "meta": [ + "(I used DaVinci Chianti)" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "cup", + "unitLong": "cup" + }, + "metric": { + "amount": 240, + "unitShort": "ml", + "unitLong": "milliliters" + } + } + }, + { + "id": 98849, + "aisle": "Canned and Jarred", + "image": "tomatoes-canned.png", + "consistency": "SOLID", + "name": "canned tomatoes", + "nameClean": "canned tomatoes", + "original": "2 28 ounce cans fire roasted crushed tomatoes (You can use regular but try to use fire roasted if available)", + "originalName": "fire roasted crushed tomatoes (You can use regular but try to use fire roasted if available)", + "amount": 56, + "unit": "ounce", + "meta": [ + "fire roasted", + "crushed", + "canned", + "(You can use regular but try to use if available)" + ], + "measures": { + "us": { + "amount": 56, + "unitShort": "oz", + "unitLong": "ounces" + }, + "metric": { + "amount": 1.588, + "unitShort": "kgs", + "unitLong": "kgs" + } + } + }, + { + "id": 11529, + "aisle": "Produce", + "image": "tomato.png", + "consistency": "SOLID", + "name": "tomatoes", + "nameClean": "tomatoes", + "original": "2 28 ounce cans pureed tomatoes", + "originalName": "pureed tomatoes", + "amount": 56, + "unit": "ounce", + "meta": [ + "pureed", + "canned" + ], + "measures": { + "us": { + "amount": 56, + "unitShort": "oz", + "unitLong": "ounces" + }, + "metric": { + "amount": 1.588, + "unitShort": "kgs", + "unitLong": "kgs" + } + } + }, + { + "id": 10511297, + "aisle": "Produce", + "image": "parsley.jpg", + "consistency": "SOLID", + "name": "parsley", + "nameClean": "parsley", + "original": "3 tablespoons chopped fresh parsley", + "originalName": "chopped fresh parsley", + "amount": 3, + "unit": "tablespoons", + "meta": [ + "fresh", + "chopped" + ], + "measures": { + "us": { + "amount": 3, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 3, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 2044, + "aisle": "Produce", + "image": "fresh-basil.jpg", + "consistency": "SOLID", + "name": "basil", + "nameClean": "basil", + "original": "3 tablespoons chopped fresh basil", + "originalName": "chopped fresh basil", + "amount": 3, + "unit": "tablespoons", + "meta": [ + "fresh", + "chopped" + ], + "measures": { + "us": { + "amount": 3, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 3, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 10719335, + "aisle": "Baking", + "image": "sugar-in-bowl.png", + "consistency": "SOLID", + "name": "granulated sugar", + "nameClean": "granulated sugar", + "original": "3 teaspoons granulated sugar", + "originalName": "granulated sugar", + "amount": 3, + "unit": "teaspoons", + "meta": [], + "measures": { + "us": { + "amount": 3, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 3, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 1102047, + "aisle": "Spices and Seasonings", + "image": "salt-and-pepper.jpg", + "consistency": "SOLID", + "name": "salt and pepper", + "nameClean": "salt and pepper", + "original": "salt and pepper to taste", + "originalName": "salt and pepper to taste", + "amount": 12, + "unit": "servings", + "meta": [ + "to taste" + ], + "measures": { + "us": { + "amount": 12, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 12, + "unitShort": "servings", + "unitLong": "servings" + } + } + } + ], + "summary": "My "Secret" Bolognese Sauce is a gluten free and dairy free recipe with 12 servings. One serving contains 505 calories, 29g of protein, and 33g of fat. For $2.76 per serving, this recipe covers 26% of your daily requirements of vitamins and minerals. 27 people have tried and liked this recipe. A mixture of parsley, ground veal, ground pork, and a handful of other ingredients are all it takes to make this recipe so yummy. It works well as a budget friendly sauce. It is brought to you by Foodista. From preparation to the plate, this recipe takes around 45 minutes. Taking all factors into account, this recipe earns a spoonacular score of 72%, which is pretty good. Try The Secret to Authentic Italian Bolognese Sauce, Ragù alla bolognese (Bolognese Sauce), and Bolognese Sauce (ragu Bolognese) for similar recipes.", + "cuisines": [], + "dishTypes": [ + "sauce" + ], + "diets": [ + "gluten free", + "dairy free" + ], + "occasions": [], + "instructions": "In a large, heavy dutch oven or stock pot, heat olive oil over med/high heat. Add the ground veal being careful not to crowd the pot. Cook over med/high heat until browned and remove with a slotted spoon to a large bowl. Drain all but 2 tablespoons of the fat, add the beef to the pot and cook until browned. Remove with slotted spoon and add to the bowl with the veal. Drain all but 2 tablespoons of fat and repeat with the pork. Drain all the fat and brown the sausage. Remove the sausage with the spoon and add to the meat mixture. Do not drain the fat. Add the diced onions and carrots to the pot and cook until the onions are translucent and softened stirring occasionally. Add the garlic and oregano, continue to cook for about 1-2 minutes. Add the wine to the pot and scrape any brown bits left on the bottom, stir and let the wine cook down for approximately 2-3 minutes. Add the meat mixture to the onions and stir to combine. Add all four cans of tomatoes and stir thoroughly. Stir in the parsley, basil, sugar, salt and pepper. Turn the heat down to low and simmer for approximately 2-3 hours stirring occasionally. Before serving, taste the sauce for seasoning.since this is a large recipe you may need to adjust the sugar, salt and pepper to suit your tastes.", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "In a large, heavy dutch oven or stock pot, heat olive oil over med/high heat.", + "ingredients": [ + { + "id": 4053, + "name": "olive oil", + "localizedName": "olive oil", + "image": "olive-oil.jpg" + }, + { + "id": 1006615, + "name": "stock", + "localizedName": "stock", + "image": "chicken-broth.png" + } + ], + "equipment": [ + { + "id": 404667, + "name": "dutch oven", + "localizedName": "dutch oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/dutch-oven.jpg" + } + ] + }, + { + "number": 2, + "step": "Add the ground veal being careful not to crowd the pot. Cook over med/high heat until browned and remove with a slotted spoon to a large bowl.", + "ingredients": [ + { + "id": 17142, + "name": "ground veal", + "localizedName": "ground veal", + "image": "meat-ground.jpg" + } + ], + "equipment": [ + { + "id": 404636, + "name": "slotted spoon", + "localizedName": "slotted spoon", + "image": "https://spoonacular.com/cdn/equipment_100x100/slotted-spoon.jpg" + }, + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + }, + { + "id": 404752, + "name": "pot", + "localizedName": "pot", + "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" + } + ] + }, + { + "number": 3, + "step": "Drain all but 2 tablespoons of the fat, add the beef to the pot and cook until browned.", + "ingredients": [ + { + "id": 23572, + "name": "beef", + "localizedName": "beef", + "image": "beef-cubes-raw.png" + } + ], + "equipment": [ + { + "id": 404752, + "name": "pot", + "localizedName": "pot", + "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" + } + ] + }, + { + "number": 4, + "step": "Remove with slotted spoon and add to the bowl with the veal.", + "ingredients": [ + { + "id": 17142, + "name": "veal", + "localizedName": "veal", + "image": "veal.jpg" + } + ], + "equipment": [ + { + "id": 404636, + "name": "slotted spoon", + "localizedName": "slotted spoon", + "image": "https://spoonacular.com/cdn/equipment_100x100/slotted-spoon.jpg" + }, + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + }, + { + "number": 5, + "step": "Drain all but 2 tablespoons of fat and repeat with the pork.", + "ingredients": [ + { + "id": 10010219, + "name": "pork", + "localizedName": "pork", + "image": "pork-tenderloin-raw.png" + } + ], + "equipment": [] + }, + { + "number": 6, + "step": "Drain all the fat and brown the sausage.", + "ingredients": [ + { + "id": 1017063, + "name": "sausage", + "localizedName": "sausage", + "image": "raw-pork-sausage.png" + } + ], + "equipment": [] + }, + { + "number": 7, + "step": "Remove the sausage with the spoon and add to the meat mixture. Do not drain the fat.", + "ingredients": [ + { + "id": 1017063, + "name": "sausage", + "localizedName": "sausage", + "image": "raw-pork-sausage.png" + }, + { + "id": 1065062, + "name": "meat", + "localizedName": "meat", + "image": "whole-chicken.jpg" + } + ], + "equipment": [] + }, + { + "number": 8, + "step": "Add the diced onions and carrots to the pot and cook until the onions are translucent and softened stirring occasionally.", + "ingredients": [ + { + "id": 11124, + "name": "carrot", + "localizedName": "carrot", + "image": "sliced-carrot.png" + }, + { + "id": 11282, + "name": "onion", + "localizedName": "onion", + "image": "brown-onion.png" + } + ], + "equipment": [ + { + "id": 404752, + "name": "pot", + "localizedName": "pot", + "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" + } + ] + }, + { + "number": 9, + "step": "Add the garlic and oregano, continue to cook for about 1-2 minutes.", + "ingredients": [ + { + "id": 2027, + "name": "oregano", + "localizedName": "oregano", + "image": "oregano.jpg" + }, + { + "id": 11215, + "name": "garlic", + "localizedName": "garlic", + "image": "garlic.png" + } + ], + "equipment": [], + "length": { + "number": 2, + "unit": "minutes" + } + }, + { + "number": 10, + "step": "Add the wine to the pot and scrape any brown bits left on the bottom, stir and let the wine cook down for approximately 2-3 minutes.", + "ingredients": [ + { + "id": 14084, + "name": "wine", + "localizedName": "wine", + "image": "red-wine.jpg" + } + ], + "equipment": [ + { + "id": 404752, + "name": "pot", + "localizedName": "pot", + "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" + } + ], + "length": { + "number": 3, + "unit": "minutes" + } + }, + { + "number": 11, + "step": "Add the meat mixture to the onions and stir to combine.", + "ingredients": [ + { + "id": 11282, + "name": "onion", + "localizedName": "onion", + "image": "brown-onion.png" + }, + { + "id": 1065062, + "name": "meat", + "localizedName": "meat", + "image": "whole-chicken.jpg" + } + ], + "equipment": [] + }, + { + "number": 12, + "step": "Add all four cans of tomatoes and stir thoroughly. Stir in the parsley, basil, sugar, salt and pepper. Turn the heat down to low and simmer for approximately 2-3 hours stirring occasionally. Before serving, taste the sauce for seasoning.since this is a large recipe you may need to adjust the sugar, salt and pepper to suit your tastes.", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 1042027, + "name": "seasoning", + "localizedName": "seasoning", + "image": "seasoning.png" + }, + { + "id": 11529, + "name": "tomato", + "localizedName": "tomato", + "image": "tomato.png" + }, + { + "id": 11297, + "name": "parsley", + "localizedName": "parsley", + "image": "parsley.jpg" + }, + { + "id": 2044, + "name": "basil", + "localizedName": "basil", + "image": "basil.jpg" + }, + { + "id": 0, + "name": "sauce", + "localizedName": "sauce", + "image": "" + }, + { + "id": 19335, + "name": "sugar", + "localizedName": "sugar", + "image": "sugar-in-bowl.png" + } + ], + "equipment": [], + "length": { + "number": 180, + "unit": "minutes" + } + } + ] + } + ], + "originalId": null, + "spoonacularScore": 78.31867218017578, + "spoonacularSourceUrl": "https://spoonacular.com/my-secret-bolognese-sauce-652819" + }, + { + "id": 664327, + "image": "https://img.spoonacular.com/recipes/664327-556x370.jpg", + "imageType": "jpg", + "title": "Vanilla Panna Cotta with Chocolate Ganache", + "readyInMinutes": 45, + "servings": 8, + "sourceUrl": "https://www.foodista.com/recipe/RHHSKBJQ/vanilla-panna-cotta-with-chocolate-ganache", + "vegetarian": false, + "vegan": false, + "glutenFree": true, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 0, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 7, + "healthScore": 0, + "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", + "license": "CC BY 3.0", + "sourceName": "Foodista", + "pricePerServing": 71.06, + "extendedIngredients": [ + { + "id": 19177, + "aisle": "Baking", + "image": "gelatin-powder.jpg", + "consistency": "SOLID", + "name": "gelatin", + "nameClean": "gelatin", + "original": "3 sheets of gelatin", + "originalName": "gelatin", + "amount": 3, + "unit": "sheets", + "meta": [], + "measures": { + "us": { + "amount": 3, + "unitShort": "sheets", + "unitLong": "sheets" + }, + "metric": { + "amount": 3, + "unitShort": "sheets", + "unitLong": "sheets" + } + } + }, + { + "id": 1077, + "aisle": "Milk, Eggs, Other Dairy", + "image": "milk.png", + "consistency": "LIQUID", + "name": "milk", + "nameClean": "milk", + "original": "1/2 cup milk or 120 ml", + "originalName": "milk or 120 ml", + "amount": 0.5, + "unit": "cup", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 122, + "unitShort": "ml", + "unitLong": "milliliters" + } + } + }, + { + "id": 93622, + "aisle": "Baking", + "image": "vanilla.jpg", + "consistency": "SOLID", + "name": "vanilla bean", + "nameClean": "vanilla bean", + "original": "1 vanilla bean", + "originalName": "vanilla bean", + "amount": 1, + "unit": "", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 1, + "unitShort": "", + "unitLong": "" + } + } + } + ], + "summary": "Vanilla Panna Cotta with Chocolate Ganache could be just the gluten free and primal recipe you've been looking for. For 71 cents per serving, this recipe covers 1% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 1g of protein, 1g of fat, and a total of 13 calories. This recipe serves 8. Head to the store and pick up gelatin, milk, vanilla bean, and a few other things to make it today. It is brought to you by Foodista. It is a very budget friendly recipe for fans of Mediterranean food. 7 people were glad they tried this recipe. From preparation to the plate, this recipe takes around 45 minutes. All things considered, we decided this recipe deserves a spoonacular score of 19%. This score is rather bad. Similar recipes are Vanilla White Chocolate Panna Cotta With Strawberries, Chocolate panna cotta with vanillan ice cream and strawberry syrup, and Vanilla Panna Cotta.", + "cuisines": [ + "Mediterranean", + "Italian", + "European" + ], + "dishTypes": [], + "diets": [ + "gluten free", + "primal" + ], + "occasions": [], + "instructions": "
  1. Fill a bowl with water, add the gelatin and let is soak. Pour milk into a pan & bring to just below simmering, then remove the pan from the heat. Do NOT let it boil. Drain & squeeze out the gelatin & add it to the milk. Pour the cream into another pan, add the sugar and vanilla bean and bring to a boil over low heat, stirring constantly. Then remove the pan from the heat, remove the vanilla bean and stir in the milk mixture.
  2. You can put the mixture into any kind of ramekin, mold, cup, you like. Rinse your 'glass' in ice-cold water, shaking out any excess water & fill with the milk mixture. Chill in the refrigerator for several hours until set (at least 3-4 hours). Turn out onto a serving dish & serve with fruit sauce or chocolate sauce.
  3. In a double boiler melt chocolate bar. Once the chocolate is completely melted, slowly whisk in cream until the desired consistancy is reached.
  4. Drizzle over the top of the panna cotta once on the serving plate.
", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Fill a bowl with water, add the gelatin and let is soak.", + "ingredients": [ + { + "id": 19177, + "name": "gelatin", + "localizedName": "gelatin", + "image": "gelatin-powder.jpg" + }, + { + "id": 14412, + "name": "water", + "localizedName": "water", + "image": "water.png" + } + ], + "equipment": [ + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + }, + { + "number": 2, + "step": "Pour milk into a pan & bring to just below simmering, then remove the pan from the heat. Do NOT let it boil.", + "ingredients": [ + { + "id": 1077, + "name": "milk", + "localizedName": "milk", + "image": "milk.png" + } + ], + "equipment": [ + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ] + }, + { + "number": 3, + "step": "Drain & squeeze out the gelatin & add it to the milk.", + "ingredients": [ + { + "id": 19177, + "name": "gelatin", + "localizedName": "gelatin", + "image": "gelatin-powder.jpg" + }, + { + "id": 1077, + "name": "milk", + "localizedName": "milk", + "image": "milk.png" + } + ], + "equipment": [] + }, + { + "number": 4, + "step": "Pour the cream into another pan, add the sugar and vanilla bean and bring to a boil over low heat, stirring constantly. Then remove the pan from the heat, remove the vanilla bean and stir in the milk mixture.You can put the mixture into any kind of ramekin, mold, cup, you like. Rinse your 'glass' in ice-cold water, shaking out any excess water & fill with the milk mixture. Chill in the refrigerator for several hours until set (at least 3-4 hours). Turn out onto a serving dish & serve with fruit sauce or chocolate sauce.In a double boiler melt chocolate bar. Once the chocolate is completely melted, slowly whisk in cream until the desired consistancy is reached.", + "ingredients": [ + { + "id": 10019348, + "name": "hot fudge sauce", + "localizedName": "hot fudge sauce", + "image": "chocolate-glaze.png" + }, + { + "id": 0, + "name": "chocolate bar", + "localizedName": "chocolate bar", + "image": "" + }, + { + "id": 93622, + "name": "vanilla bean", + "localizedName": "vanilla bean", + "image": "vanilla.jpg" + }, + { + "id": 19081, + "name": "chocolate", + "localizedName": "chocolate", + "image": "milk-chocolate.jpg" + }, + { + "id": 1053, + "name": "cream", + "localizedName": "cream", + "image": "fluid-cream.jpg" + }, + { + "id": 9431, + "name": "fruit", + "localizedName": "fruit", + "image": "mixed-fresh-fruit.jpg" + }, + { + "id": 0, + "name": "sauce", + "localizedName": "sauce", + "image": "" + }, + { + "id": 19335, + "name": "sugar", + "localizedName": "sugar", + "image": "sugar-in-bowl.png" + }, + { + "id": 14412, + "name": "water", + "localizedName": "water", + "image": "water.png" + }, + { + "id": 1077, + "name": "milk", + "localizedName": "milk", + "image": "milk.png" + }, + { + "id": 10014412, + "name": "ice", + "localizedName": "ice", + "image": "ice-cubes.png" + } + ], + "equipment": [ + { + "id": 404699, + "name": "double boiler", + "localizedName": "double boiler", + "image": "https://spoonacular.com/cdn/equipment_100x100/double-boiler.jpg" + }, + { + "id": 404781, + "name": "ramekin", + "localizedName": "ramekin", + "image": "https://spoonacular.com/cdn/equipment_100x100/ramekin.jpg" + }, + { + "id": 404661, + "name": "whisk", + "localizedName": "whisk", + "image": "https://spoonacular.com/cdn/equipment_100x100/whisk.png" + }, + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ], + "length": { + "number": 240, + "unit": "minutes" + } + }, + { + "number": 5, + "step": "Drizzle over the top of the panna cotta once on the serving plate.", + "ingredients": [], + "equipment": [] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 4.623741149902344, + "spoonacularSourceUrl": "https://spoonacular.com/vanilla-panna-cotta-with-chocolate-ganache-664327" + }, + { + "id": 662581, + "image": "https://img.spoonacular.com/recipes/662581-556x370.jpg", + "imageType": "jpg", + "title": "Sweet Potato Hashbrown Breakfast Bake", + "readyInMinutes": 70, + "servings": 4, + "sourceUrl": "https://www.foodista.com/recipe/F54STY4M/sweet-potato-hashbrown-breakfast-bake", + "vegetarian": true, + "vegan": false, + "glutenFree": true, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 7, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 2, + "healthScore": 13, + "creditsText": "foodista.com", + "license": null, + "sourceName": "foodista.com", + "pricePerServing": 116.28, + "extendedIngredients": [ + { + "id": 1123, + "aisle": "Milk, Eggs, Other Dairy", + "image": "egg.png", + "consistency": "SOLID", + "name": "eggs", + "nameClean": "eggs", + "original": "4 eggs", + "originalName": "eggs", + "amount": 4, + "unit": "", + "meta": [], + "measures": { + "us": { + "amount": 4, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 4, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 11215, + "aisle": "Produce", + "image": "garlic.png", + "consistency": "SOLID", + "name": "garlic", + "nameClean": "garlic", + "original": "4 cloves garlic, minced", + "originalName": "garlic, minced", + "amount": 4, + "unit": "cloves", + "meta": [ + "minced" + ], + "measures": { + "us": { + "amount": 4, + "unitShort": "cloves", + "unitLong": "cloves" + }, + "metric": { + "amount": 4, + "unitShort": "cloves", + "unitLong": "cloves" + } + } + }, + { + "id": 11291, + "aisle": "Produce", + "image": "spring-onions.jpg", + "consistency": "SOLID", + "name": "green onions", + "nameClean": "green onions", + "original": "¼ Cup green onions, chopped", + "originalName": "green onions, chopped", + "amount": 0.25, + "unit": "Cup", + "meta": [ + "chopped" + ], + "measures": { + "us": { + "amount": 0.25, + "unitShort": "cups", + "unitLong": "Cups" + }, + "metric": { + "amount": 0.25, + "unitShort": "cups", + "unitLong": "cups" + } + } + }, + { + "id": 1082047, + "aisle": "Spices and Seasonings", + "image": "salt.jpg", + "consistency": "SOLID", + "name": "kosher salt and ground pepper", + "nameClean": "kosher salt and ground pepper", + "original": "Kosher salt and fresh ground pepper", + "originalName": "Kosher salt and fresh ground pepper", + "amount": 4, + "unit": "servings", + "meta": [ + "fresh" + ], + "measures": { + "us": { + "amount": 4, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 4, + "unitShort": "servings", + "unitLong": "servings" + } + } + }, + { + "id": 4053, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "olive-oil.jpg", + "consistency": "LIQUID", + "name": "olive oil", + "nameClean": "olive oil", + "original": "4 tablespoons of Olive Oil", + "originalName": "Olive Oil", + "amount": 4, + "unit": "tablespoons", + "meta": [], + "measures": { + "us": { + "amount": 4, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 4, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 11821, + "aisle": "Produce", + "image": "red-pepper.jpg", + "consistency": "SOLID", + "name": "bell pepper", + "nameClean": "bell pepper", + "original": "1 red bell pepper, chopped", + "originalName": "red bell pepper, chopped", + "amount": 1, + "unit": "", + "meta": [ + "red", + "chopped" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 1, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 10011282, + "aisle": "Produce", + "image": "red-onion.png", + "consistency": "SOLID", + "name": "onion", + "nameClean": "onion", + "original": "½ red onion, chopped", + "originalName": "red onion, chopped", + "amount": 0.5, + "unit": "", + "meta": [ + "red", + "chopped" + ], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 0.5, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 1031009, + "aisle": "Cheese", + "image": "cheddar-cheese.png", + "consistency": "SOLID", + "name": "sharp cheddar cheese", + "nameClean": "sharp cheddar cheese", + "original": "¼ Cup shredded sharp cheddar cheese (like an English Cheddar)", + "originalName": "shredded sharp cheddar cheese (like an English Cheddar)", + "amount": 0.25, + "unit": "Cup", + "meta": [ + "shredded", + "english", + "(like an Cheddar)" + ], + "measures": { + "us": { + "amount": 0.25, + "unitShort": "cups", + "unitLong": "Cups" + }, + "metric": { + "amount": 0.25, + "unitShort": "cups", + "unitLong": "cups" + } + } + }, + { + "id": 11507, + "aisle": "Produce", + "image": "sweet-potato.png", + "consistency": "SOLID", + "name": "sweet potatoes", + "nameClean": "sweet potatoes", + "original": "2 sweet potatoes, peeled and chopped into 1-inch cubes", + "originalName": "sweet potatoes, peeled and chopped into 1-inch cubes", + "amount": 2, + "unit": "", + "meta": [ + "peeled", + "chopped" + ], + "measures": { + "us": { + "amount": 2, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 2, + "unitShort": "", + "unitLong": "" + } + } + } + ], + "summary": "Sweet Potato Hashbrown Breakfast Bake could be just the gluten free, lacto ovo vegetarian, and primal recipe you've been looking for. This recipe serves 4. This hor d'oeuvre has 332 calories, 10g of protein, and 21g of fat per serving. For $1.16 per serving, this recipe covers 19% of your daily requirements of vitamins and minerals. It is brought to you by Foodista. If you have eggs, garlic, kosher salt and ground pepper, and a few other ingredients on hand, you can make it. 2 people found this recipe to be flavorful and satisfying. Christmas will be even more special with this recipe. From preparation to the plate, this recipe takes around 1 hour and 10 minutes. All things considered, we decided this recipe deserves a spoonacular score of 49%. This score is solid. Sweet Potato Hashbrown Breakfast Bake, Sweet Potato Breakfast Bake (Paleo), and Sweet Potato Breakfast Bake (Paleo) are very similar to this recipe.", + "cuisines": [], + "dishTypes": [ + "side dish", + "antipasti", + "morning meal", + "starter", + "brunch", + "snack", + "appetizer", + "breakfast", + "antipasto", + "hor d'oeuvre" + ], + "diets": [ + "gluten free", + "lacto ovo vegetarian", + "primal" + ], + "occasions": [ + "christmas" + ], + "instructions": "
  1. Preheat oven to 350.
  2. Peel and chop sweet potatoes into 1 inch cubes.
  3. Spread peeled/cubed sweet potatoes out over a half sheet rimmed baking sheet. Coat with 2 tbs of olive oil and sprinkle of salt and pepper.
  4. Bake for 30-35 minutes until fork tender and browned.
  5. Meanwhile, heat 2 tbs olive oil in a large skillet over medium-high heat. Add the red onions, bell peppers, green onions and garlic and saute until tender and lightly golden about 5-6 minutes. Season with salt and pepper to taste.
  6. Portion out sweet potato hashbrown cubes between ramekins. Make a nest indentation in the top of each ramekin filled with hashbrowns. Sprinkle grated sharp cheddar over the top of each ramekin. Crack an egg over each nested out spot.
  7. Bake at 425 for 5-6 minutes. If the hashbrowns have been refrigerated, bake until each yolk is set and white has turned white!
", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Preheat oven to 35", + "ingredients": [], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ] + }, + { + "number": 2, + "step": "Peel and chop sweet potatoes into 1 inch cubes.", + "ingredients": [ + { + "id": 11507, + "name": "sweet potato", + "localizedName": "sweet potato", + "image": "sweet-potato.png" + } + ], + "equipment": [] + }, + { + "number": 3, + "step": "Spread peeled/cubed sweet potatoes out over a half sheet rimmed baking sheet. Coat with 2 tbs of olive oil and sprinkle of salt and pepper.", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 11507, + "name": "sweet potato", + "localizedName": "sweet potato", + "image": "sweet-potato.png" + }, + { + "id": 4053, + "name": "olive oil", + "localizedName": "olive oil", + "image": "olive-oil.jpg" + }, + { + "id": 0, + "name": "spread", + "localizedName": "spread", + "image": "" + } + ], + "equipment": [ + { + "id": 404727, + "name": "baking sheet", + "localizedName": "baking sheet", + "image": "https://spoonacular.com/cdn/equipment_100x100/baking-sheet.jpg" + } + ] + }, + { + "number": 4, + "step": "Bake for 30-35 minutes until fork tender and browned.Meanwhile, heat 2 tbs olive oil in a large skillet over medium-high heat.", + "ingredients": [ + { + "id": 4053, + "name": "olive oil", + "localizedName": "olive oil", + "image": "olive-oil.jpg" + } + ], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + }, + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ], + "length": { + "number": 35, + "unit": "minutes" + } + }, + { + "number": 5, + "step": "Add the red onions, bell peppers, green onions and garlic and saute until tender and lightly golden about 5-6 minutes. Season with salt and pepper to taste.Portion out sweet potato hashbrown cubes between ramekins. Make a nest indentation in the top of each ramekin filled with hashbrowns.", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 10211821, + "name": "bell pepper", + "localizedName": "bell pepper", + "image": "bell-pepper-orange.png" + }, + { + "id": 11291, + "name": "green onions", + "localizedName": "green onions", + "image": "spring-onions.jpg" + }, + { + "id": 11507, + "name": "sweet potato", + "localizedName": "sweet potato", + "image": "sweet-potato.png" + }, + { + "id": 11390, + "name": "hash browns", + "localizedName": "hash browns", + "image": "hash-brown-potatoes.png" + }, + { + "id": 10011282, + "name": "red onion", + "localizedName": "red onion", + "image": "red-onion.png" + }, + { + "id": 11215, + "name": "garlic", + "localizedName": "garlic", + "image": "garlic.png" + } + ], + "equipment": [ + { + "id": 404781, + "name": "ramekin", + "localizedName": "ramekin", + "image": "https://spoonacular.com/cdn/equipment_100x100/ramekin.jpg" + } + ], + "length": { + "number": 6, + "unit": "minutes" + } + }, + { + "number": 6, + "step": "Sprinkle grated sharp cheddar over the top of each ramekin. Crack an egg over each nested out spot.", + "ingredients": [ + { + "id": 1031009, + "name": "sharp cheddar cheese", + "localizedName": "sharp cheddar cheese", + "image": "cheddar-cheese.png" + }, + { + "id": 1123, + "name": "egg", + "localizedName": "egg", + "image": "egg.png" + } + ], + "equipment": [ + { + "id": 404781, + "name": "ramekin", + "localizedName": "ramekin", + "image": "https://spoonacular.com/cdn/equipment_100x100/ramekin.jpg" + } + ] + }, + { + "number": 7, + "step": "Bake at 425 for 5-6 minutes. If the hashbrowns have been refrigerated, bake until each yolk is set and white has turned white!", + "ingredients": [ + { + "id": 11390, + "name": "hash browns", + "localizedName": "hash browns", + "image": "hash-brown-potatoes.png" + }, + { + "id": 1125, + "name": "egg yolk", + "localizedName": "egg yolk", + "image": "egg-yolk.jpg" + } + ], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ], + "length": { + "number": 6, + "unit": "minutes" + } + } + ] + } + ], + "originalId": null, + "spoonacularScore": 60.12598419189453, + "spoonacularSourceUrl": "https://spoonacular.com/sweet-potato-hashbrown-breakfast-bake-662581" + }, + { + "id": 716202, + "image": "https://img.spoonacular.com/recipes/716202-556x370.jpg", + "imageType": "jpg", + "title": "Fenugreek Roti", + "readyInMinutes": 45, + "servings": 10, + "sourceUrl": "https://www.foodandspice.com/2012/07/fenugreek-roti.html", + "vegetarian": true, + "vegan": false, + "glutenFree": false, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 2, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 98, + "healthScore": 9, + "creditsText": "foodandspice.com", + "license": null, + "sourceName": "foodandspice.com", + "pricePerServing": 524.19, + "extendedIngredients": [ + { + "id": 99017, + "aisle": "Spices and Seasonings", + "image": "ajwain.jpg", + "consistency": "SOLID", + "name": "ajwain seeds", + "nameClean": "ajwain seeds", + "original": "1/2 teaspoon ajwain seeds", + "originalName": "ajwain seeds", + "amount": 0.5, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 1032035, + "aisle": "Spices and Seasonings", + "image": "curry-powder.jpg", + "consistency": "SOLID", + "name": "asafetida", + "nameClean": "asafetida", + "original": "pinch of asafetida", + "originalName": "pinch of asafetida", + "amount": 1, + "unit": "pinch", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "pinch", + "unitLong": "pinch" + }, + "metric": { + "amount": 1, + "unitShort": "pinch", + "unitLong": "pinch" + } + } + }, + { + "id": 18372, + "aisle": "Baking", + "image": "white-powder.jpg", + "consistency": "SOLID", + "name": "baking soda", + "nameClean": "baking soda", + "original": "1/4 teaspoon baking soda", + "originalName": "baking soda", + "amount": 0.25, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.25, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.25, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 2031, + "aisle": "Spices and Seasonings", + "image": "chili-powder.jpg", + "consistency": "SOLID", + "name": "cayenne", + "nameClean": "cayenne", + "original": "1/2 teaspoon cayenne", + "originalName": "cayenne", + "amount": 0.5, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 16157, + "aisle": "Health Foods", + "image": "chickpea-flour-or-another-gluten-free-flour.jpg", + "consistency": "SOLID", + "name": "chickpea flour", + "nameClean": "chickpea flour", + "original": "1 cup chickpea flour (besan)", + "originalName": "chickpea flour (besan)", + "amount": 1, + "unit": "cup", + "meta": [ + "(besan)" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "cup", + "unitLong": "cup" + }, + "metric": { + "amount": 120, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 2009, + "aisle": "Spices and Seasonings", + "image": "chili-powder.jpg", + "consistency": "SOLID", + "name": "chili powder", + "nameClean": "chili powder", + "original": "1/2 teaspoon chili powder", + "originalName": "chili powder", + "amount": 0.5, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 98963, + "aisle": "Spices and Seasonings", + "image": "methi.png", + "consistency": "SOLID", + "name": "fenugreek leaves", + "nameClean": "fenugreek leaves", + "original": "1/2 cup dried fenugreek leaves", + "originalName": "dried fenugreek leaves", + "amount": 0.5, + "unit": "cup", + "meta": [ + "dried" + ], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 118.294, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 93632, + "aisle": "Ethnic Foods", + "image": "ghee.jpg", + "consistency": "SOLID", + "name": "ghee", + "nameClean": "ghee", + "original": "ghee or oil for frying", + "originalName": "ghee or oil for frying", + "amount": 10, + "unit": "servings", + "meta": [ + "for frying" + ], + "measures": { + "us": { + "amount": 10, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 10, + "unitShort": "servings", + "unitLong": "servings" + } + } + }, + { + "id": 1002013, + "aisle": "Spices and Seasonings", + "image": "ground-coriander.jpg", + "consistency": "SOLID", + "name": "ground coriander", + "nameClean": "ground coriander", + "original": "1/2 teaspoon ground coriander", + "originalName": "ground coriander", + "amount": 0.5, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 1012014, + "aisle": "Spices and Seasonings", + "image": "ground-cumin.jpg", + "consistency": "SOLID", + "name": "ground cumin", + "nameClean": "ground cumin", + "original": "1/2 teaspoon ground cumin", + "originalName": "ground cumin", + "amount": 0.5, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 1001116, + "aisle": "Milk, Eggs, Other Dairy", + "image": "plain-yogurt.jpg", + "consistency": "LIQUID", + "name": "yogurt", + "nameClean": "yogurt", + "original": "2 tablespoons plain yogurt", + "originalName": "plain yogurt", + "amount": 2, + "unit": "tablespoons", + "meta": [ + "plain" + ], + "measures": { + "us": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 1012047, + "aisle": "Spices and Seasonings", + "image": "salt.jpg", + "consistency": "SOLID", + "name": "sea salt", + "nameClean": "sea salt", + "original": "1 teaspoon sea salt", + "originalName": "sea salt", + "amount": 1, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 20080, + "aisle": "Baking", + "image": "flour.png", + "consistency": "SOLID", + "name": "flour", + "nameClean": "flour", + "original": "1/2 cup whole wheat flour", + "originalName": "whole wheat flour", + "amount": 0.5, + "unit": "cup", + "meta": [ + "whole wheat" + ], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 60, + "unitShort": "g", + "unitLong": "grams" + } + } + } + ], + "summary": "Fenugreek Roti requires roughly 45 minutes from start to finish. This bread has 80 calories, 4g of protein, and 2g of fat per serving. This recipe serves 10 and costs $5.24 per serving. If you have chili powder, chickpea flour, baking soda, and a few other ingredients on hand, you can make it. 98 people were glad they tried this recipe. This recipe is typical of Indian cuisine. It is brought to you by foodandspice.blogspot.com. It is a good option if you're following a lacto ovo vegetarian diet. All things considered, we decided this recipe deserves a spoonacular score of 65%. This score is good. If you like this recipe, take a look at these similar recipes: methi missi roti , how to make punjabi missi roti, Fenugreek Tea & Benefits, and Whole Roast Chicken with Fenugreek.", + "cuisines": [ + "Indian", + "Asian" + ], + "dishTypes": [ + "bread" + ], + "diets": [ + "lacto ovo vegetarian" + ], + "occasions": [], + "instructions": "Soak the dried fenugreek leaves in warm water for 5 to 10 minutes. Drain, making sure to squeeze out excess liquid.Sift the flours and baking soda in a small strainer into a medium bowl. Stir in the salt, chili powder, cayenne, cumin, coriander, ajwain seeds, asafetida, yogurt and fenugreek leaves. Mix in about 1/4 cup of water to make a semi-hard batter. Cover and let stand at room temperature for 1 hour. Dusting your hands with flour, divide the dough into 10 to 12 small balls. Roll out each ball into a roughly 3-inch circle. Brush a non-stick pan with a bit of ghee or oil and heat over medium heat. When hot, add a rolled out portion to the pan and cook for 4 minutes or until the bottom is browned. Sprinkle with a bit of oil, flip and fry for another 2 to 3 minutes or until both sides are browned. Transfer to a plate, keep heated in a 150 oven, and repeat for the rest of the pancakes.", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Soak the dried fenugreek leaves in warm water for 5 to 10 minutes.", + "ingredients": [ + { + "id": 98963, + "name": "dried fenugreek leaves", + "localizedName": "dried fenugreek leaves", + "image": "methi.png" + }, + { + "id": 14412, + "name": "water", + "localizedName": "water", + "image": "water.png" + } + ], + "equipment": [], + "length": { + "number": 5, + "unit": "minutes" + } + }, + { + "number": 2, + "step": "Drain, making sure to squeeze out excess liquid.Sift the flours and baking soda in a small strainer into a medium bowl. Stir in the salt, chili powder, cayenne, cumin, coriander, ajwain seeds, asafetida, yogurt and fenugreek leaves.", + "ingredients": [ + { + "id": 98963, + "name": "dried fenugreek leaves", + "localizedName": "dried fenugreek leaves", + "image": "methi.png" + }, + { + "id": 99017, + "name": "ajwain", + "localizedName": "ajwain", + "image": "ajwain.jpg" + }, + { + "id": 2009, + "name": "chili powder", + "localizedName": "chili powder", + "image": "chili-powder.jpg" + }, + { + "id": 18372, + "name": "baking soda", + "localizedName": "baking soda", + "image": "white-powder.jpg" + }, + { + "id": 1032035, + "name": "asafoetida", + "localizedName": "asafoetida", + "image": "curry-powder.jpg" + }, + { + "id": 1012013, + "name": "coriander", + "localizedName": "coriander", + "image": "ground-coriander.jpg" + }, + { + "id": 2031, + "name": "ground cayenne pepper", + "localizedName": "ground cayenne pepper", + "image": "chili-powder.jpg" + }, + { + "id": 1116, + "name": "yogurt", + "localizedName": "yogurt", + "image": "plain-yogurt.jpg" + }, + { + "id": 1002014, + "name": "cumin", + "localizedName": "cumin", + "image": "ground-cumin.jpg" + }, + { + "id": 2047, + "name": "salt", + "localizedName": "salt", + "image": "salt.jpg" + } + ], + "equipment": [ + { + "id": 405600, + "name": "sieve", + "localizedName": "sieve", + "image": "https://spoonacular.com/cdn/equipment_100x100/strainer.png" + }, + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + }, + { + "number": 3, + "step": "Mix in about 1/4 cup of water to make a semi-hard batter. Cover and let stand at room temperature for 1 hour. Dusting your hands with flour, divide the dough into 10 to 12 small balls.", + "ingredients": [ + { + "id": 0, + "name": "dough", + "localizedName": "dough", + "image": "pizza-dough" + }, + { + "id": 20081, + "name": "all purpose flour", + "localizedName": "all purpose flour", + "image": "flour.png" + }, + { + "id": 14412, + "name": "water", + "localizedName": "water", + "image": "water.png" + } + ], + "equipment": [], + "length": { + "number": 60, + "unit": "minutes" + } + }, + { + "number": 4, + "step": "Roll out each ball into a roughly 3-inch circle.", + "ingredients": [ + { + "id": 0, + "name": "roll", + "localizedName": "roll", + "image": "dinner-yeast-rolls.jpg" + } + ], + "equipment": [] + }, + { + "number": 5, + "step": "Brush a non-stick pan with a bit of ghee or oil and heat over medium heat. When hot, add a rolled out portion to the pan and cook for 4 minutes or until the bottom is browned.", + "ingredients": [ + { + "id": 93632, + "name": "ghee", + "localizedName": "ghee", + "image": "ghee.jpg" + }, + { + "id": 4582, + "name": "cooking oil", + "localizedName": "cooking oil", + "image": "vegetable-oil.jpg" + } + ], + "equipment": [ + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ], + "length": { + "number": 4, + "unit": "minutes" + } + }, + { + "number": 6, + "step": "Sprinkle with a bit of oil, flip and fry for another 2 to 3 minutes or until both sides are browned.", + "ingredients": [ + { + "id": 4582, + "name": "cooking oil", + "localizedName": "cooking oil", + "image": "vegetable-oil.jpg" + } + ], + "equipment": [], + "length": { + "number": 2, + "unit": "minutes" + } + }, + { + "number": 7, + "step": "Transfer to a plate, keep heated in a 150 oven, and repeat for the rest of the pancakes.", + "ingredients": [], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 64.02252960205078, + "spoonacularSourceUrl": "https://spoonacular.com/fenugreek-roti-716202" + }, + { + "id": 640062, + "image": "https://img.spoonacular.com/recipes/640062-556x370.jpg", + "imageType": "jpg", + "title": "Corn Avocado Salsa", + "readyInMinutes": 25, + "servings": 2, + "sourceUrl": "https://www.foodista.com/recipe/BDRS2JZG/corn-avocado-salsa", + "vegetarian": true, + "vegan": true, + "glutenFree": true, + "dairyFree": true, + "veryHealthy": true, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 7, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 44, + "healthScore": 71, + "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", + "license": "CC BY 3.0", + "sourceName": "Foodista", + "pricePerServing": 130.73, + "extendedIngredients": [ + { + "id": 9037, + "aisle": "Produce", + "image": "avocado.jpg", + "consistency": "SOLID", + "name": "avocado", + "nameClean": "avocado", + "original": "1 Avocado", + "originalName": "Avocado", + "amount": 1, + "unit": "", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 1, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 2069, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "balsamic-vinegar.jpg", + "consistency": "LIQUID", + "name": "balsamic vinegar", + "nameClean": "balsamic vinegar", + "original": "1 teaspoon Balsamic vinegar", + "originalName": "Balsamic vinegar", + "amount": 1, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 1002014, + "aisle": "Spices and Seasonings", + "image": "ground-cumin.jpg", + "consistency": "SOLID", + "name": "cumin", + "nameClean": "cumin", + "original": "1 teaspoon Cumin", + "originalName": "Cumin", + "amount": 1, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + }, + "metric": { + "amount": 1, + "unitShort": "tsp", + "unitLong": "teaspoon" + } + } + }, + { + "id": 11913, + "aisle": "Frozen", + "image": "corn.png", + "consistency": "SOLID", + "name": "corn", + "nameClean": "corn", + "original": "3/4 cup Corn, freshly hulled (You can also use frozen corn, thawed)", + "originalName": "Corn, freshly hulled (You can also use frozen corn, thawed)", + "amount": 0.75, + "unit": "cup", + "meta": [ + "frozen", + "hulled", + "thawed", + "canned", + "(You can also use corn, )" + ], + "measures": { + "us": { + "amount": 0.75, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 123.75, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 11215, + "aisle": "Produce", + "image": "garlic.png", + "consistency": "SOLID", + "name": "garlic", + "nameClean": "garlic", + "original": "1 clove garlic", + "originalName": "garlic", + "amount": 1, + "unit": "clove", + "meta": [], + "measures": { + "us": { + "amount": 1, + "unitShort": "clove", + "unitLong": "clove" + }, + "metric": { + "amount": 1, + "unitShort": "clove", + "unitLong": "clove" + } + } + }, + { + "id": 11821, + "aisle": "Produce", + "image": "red-pepper.jpg", + "consistency": "SOLID", + "name": "bell pepper", + "nameClean": "bell pepper", + "original": "1/2 medium Red Pepper", + "originalName": "Red Pepper", + "amount": 0.5, + "unit": "medium", + "meta": [ + "red" + ], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "medium", + "unitLong": "mediums" + }, + "metric": { + "amount": 0.5, + "unitShort": "medium", + "unitLong": "mediums" + } + } + } + ], + "summary": "Corn Avocado Salsa might be just the hor d'oeuvre you are searching for. For $1.31 per serving, this recipe covers 15% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 5g of protein, 16g of fat, and a total of 237 calories. This recipe serves 2. 44 people have made this recipe and would make it again. This recipe from Foodista requires avocado, balsamic vinegar, cumin, and garlic. A few people really liked this Mexican dish. It is a good option if you're following a gluten free, dairy free, lacto ovo vegetarian, and vegan diet. From preparation to the plate, this recipe takes around 25 minutes. With a spoonacular score of 97%, this dish is spectacular. If you like this recipe, take a look at these similar recipes: Avocado Corn Salsa, Avocado-Corn Salsa, and Avocado-Corn Salsa.", + "cuisines": [ + "Mexican" + ], + "dishTypes": [ + "antipasti", + "condiment", + "starter", + "snack", + "appetizer", + "dip", + "antipasto", + "hor d'oeuvre", + "spread" + ], + "diets": [ + "gluten free", + "dairy free", + "lacto ovo vegetarian", + "vegan" + ], + "occasions": [], + "instructions": "
  1. Preheat oven to 375 degrees.
  2. Spread corn flat on a baking sheet.
  3. Spray lightly with olive oil spray.
  4. Roast corn in the oven for about 8-10 minutes. (Be careful not to brown too much or burn.)
  5. Remove from heat and allow to cool.
  6. Finely chop red pepper and garlic and mix in a bowl.
  7. Peel and coarsely chop avocado and add to bowl.
  8. Add cooled corn.
  9. Mix in cumin and vinegar and blend well.
", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Preheat oven to 375 degrees.", + "ingredients": [], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ] + }, + { + "number": 2, + "step": "Spread corn flat on a baking sheet.Spray lightly with olive oil spray.Roast corn in the oven for about 8-10 minutes. (Be careful not to brown too much or burn.)", + "ingredients": [ + { + "id": 1004679, + "name": "olive oil spray", + "localizedName": "olive oil spray", + "image": "cooking-spray.png" + }, + { + "id": 0, + "name": "spread", + "localizedName": "spread", + "image": "" + }, + { + "id": 11168, + "name": "corn", + "localizedName": "corn", + "image": "corn.png" + } + ], + "equipment": [ + { + "id": 404727, + "name": "baking sheet", + "localizedName": "baking sheet", + "image": "https://spoonacular.com/cdn/equipment_100x100/baking-sheet.jpg" + }, + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ], + "length": { + "number": 10, + "unit": "minutes" + } + }, + { + "number": 3, + "step": "Remove from heat and allow to cool.Finely chop red pepper and garlic and mix in a bowl.Peel and coarsely chop avocado and add to bowl.", + "ingredients": [ + { + "id": 11821, + "name": "red pepper", + "localizedName": "red pepper", + "image": "red-pepper.jpg" + }, + { + "id": 9037, + "name": "avocado", + "localizedName": "avocado", + "image": "avocado.jpg" + }, + { + "id": 11215, + "name": "garlic", + "localizedName": "garlic", + "image": "garlic.png" + } + ], + "equipment": [ + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + }, + { + "number": 4, + "step": "Add cooled corn.", + "ingredients": [ + { + "id": 11168, + "name": "corn", + "localizedName": "corn", + "image": "corn.png" + } + ], + "equipment": [] + }, + { + "number": 5, + "step": "Mix in cumin and vinegar and blend well.", + "ingredients": [ + { + "id": 2053, + "name": "vinegar", + "localizedName": "vinegar", + "image": "vinegar-(white).jpg" + }, + { + "id": 1002014, + "name": "cumin", + "localizedName": "cumin", + "image": "ground-cumin.jpg" + } + ], + "equipment": [] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 97.75386047363281, + "spoonacularSourceUrl": "https://spoonacular.com/corn-avocado-salsa-640062" + }, + { + "id": 649403, + "image": "https://img.spoonacular.com/recipes/649403-556x370.jpg", + "imageType": "jpg", + "title": "Lebanese Kibbeh", + "readyInMinutes": 45, + "servings": 6, + "sourceUrl": "https://www.foodista.com/recipe/B6HG5RKG/lebanese-kibbeh", + "vegetarian": false, + "vegan": false, + "glutenFree": false, + "dairyFree": false, + "veryHealthy": false, + "cheap": false, + "veryPopular": false, + "sustainable": false, + "lowFodmap": false, + "weightWatcherSmartPoints": 19, + "gaps": "no", + "preparationMinutes": null, + "cookingMinutes": null, + "aggregateLikes": 3, + "healthScore": 19, + "creditsText": "foodista.com", + "license": null, + "sourceName": "foodista.com", + "pricePerServing": 298.81, + "extendedIngredients": [ + { + "id": 20012, + "aisle": "Health Foods", + "image": "bulgur-wheat.jpg", + "consistency": "SOLID", + "name": "bulgur wheat", + "nameClean": "bulgur wheat", + "original": "3/4 cup Bulgur wheat", + "originalName": "Bulgur wheat", + "amount": 0.75, + "unit": "cup", + "meta": [], + "measures": { + "us": { + "amount": 0.75, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 105, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 10017224, + "aisle": "Meat", + "image": "lamb-shanks.jpg", + "consistency": "SOLID", + "name": "lamb", + "nameClean": "lamb", + "original": "1 pound Finely minced lean lamb, (or beef)", + "originalName": "Finely minced lean lamb, (or beef)", + "amount": 1, + "unit": "pound", + "meta": [ + "lean", + "finely minced", + "(or beef)" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "lb", + "unitLong": "pound" + }, + "metric": { + "amount": 453.592, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 11282, + "aisle": "Produce", + "image": "brown-onion.png", + "consistency": "SOLID", + "name": "onion", + "nameClean": "onion", + "original": "1 large Onion, grated", + "originalName": "Onion, grated", + "amount": 1, + "unit": "large", + "meta": [ + "grated" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "large", + "unitLong": "large" + }, + "metric": { + "amount": 1, + "unitShort": "large", + "unitLong": "large" + } + } + }, + { + "id": 1001, + "aisle": "Milk, Eggs, Other Dairy", + "image": "butter-sliced.jpg", + "consistency": "SOLID", + "name": "butter", + "nameClean": "butter", + "original": "1 tablespoon Melted butter", + "originalName": "Melted butter", + "amount": 1, + "unit": "tablespoon", + "meta": [ + "melted" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + }, + "metric": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + } + } + }, + { + "id": 1002030, + "aisle": "Spices and Seasonings", + "image": "pepper.jpg", + "consistency": "SOLID", + "name": "salt & ground pepper", + "nameClean": "salt & ground pepper", + "original": "Salt & fresh ground black pepper, to taste", + "originalName": "Salt & fresh ground black pepper, to taste", + "amount": 6, + "unit": "servings", + "meta": [ + "fresh", + "black", + "to taste" + ], + "measures": { + "us": { + "amount": 6, + "unitShort": "servings", + "unitLong": "servings" + }, + "metric": { + "amount": 6, + "unitShort": "servings", + "unitLong": "servings" + } + } + }, + { + "id": 2064, + "aisle": "Produce", + "image": "mint.jpg", + "consistency": "SOLID", + "name": "sprg mint", + "nameClean": "sprg mint", + "original": "1 sprg mint, for garnish", + "originalName": "sprg mint, for garnish", + "amount": 1, + "unit": "", + "meta": [ + "for garnish" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 1, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 4582, + "aisle": "Oil, Vinegar, Salad Dressing", + "image": "vegetable-oil.jpg", + "consistency": "LIQUID", + "name": "oil", + "nameClean": "oil", + "original": "2 tablespoons Oil", + "originalName": "Oil", + "amount": 2, + "unit": "tablespoons", + "meta": [], + "measures": { + "us": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + }, + "metric": { + "amount": 2, + "unitShort": "Tbsps", + "unitLong": "Tbsps" + } + } + }, + { + "id": 11282, + "aisle": "Produce", + "image": "brown-onion.png", + "consistency": "SOLID", + "name": "onion", + "nameClean": "onion", + "original": "1 Onion, finely chopped", + "originalName": "Onion, finely chopped", + "amount": 1, + "unit": "", + "meta": [ + "finely chopped" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "", + "unitLong": "" + }, + "metric": { + "amount": 1, + "unitShort": "", + "unitLong": "" + } + } + }, + { + "id": 17224, + "aisle": "Meat", + "image": "meat-ground.jpg", + "consistency": "SOLID", + "name": "lamb", + "nameClean": "lamb", + "original": "8 ounces Minced lamb or veal", + "originalName": "Minced lamb or veal", + "amount": 8, + "unit": "ounces", + "meta": [ + "minced" + ], + "measures": { + "us": { + "amount": 8, + "unitShort": "oz", + "unitLong": "ounces" + }, + "metric": { + "amount": 226.796, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 12147, + "aisle": "Produce", + "image": "pine-nuts.png", + "consistency": "SOLID", + "name": "pine nuts", + "nameClean": "pine nuts", + "original": "1/2 cup Pine nuts", + "originalName": "Pine nuts", + "amount": 0.5, + "unit": "cup", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 67.5, + "unitShort": "g", + "unitLong": "grams" + } + } + }, + { + "id": 1022001, + "aisle": "Spices and Seasonings", + "image": "allspice-ground.jpg", + "consistency": "SOLID", + "name": "ground allspice", + "nameClean": "ground allspice", + "original": "1/2 teaspoon Ground allspice", + "originalName": "Ground allspice", + "amount": 0.5, + "unit": "teaspoon", + "meta": [], + "measures": { + "us": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + }, + "metric": { + "amount": 0.5, + "unitShort": "tsps", + "unitLong": "teaspoons" + } + } + }, + { + "id": 1256, + "aisle": "Milk, Eggs, Other Dairy", + "image": "plain-yogurt.jpg", + "consistency": "LIQUID", + "name": "greek yogurt", + "nameClean": "greek yogurt", + "original": "2 1/2 cups Greek yogurt", + "originalName": "Greek yogurt", + "amount": 2.5, + "unit": "cups", + "meta": [], + "measures": { + "us": { + "amount": 2.5, + "unitShort": "cups", + "unitLong": "cups" + }, + "metric": { + "amount": 500, + "unitShort": "ml", + "unitLong": "milliliters" + } + } + }, + { + "id": 11215, + "aisle": "Produce", + "image": "garlic.png", + "consistency": "SOLID", + "name": "garlic", + "nameClean": "garlic", + "original": "3 Cloves garlic, crushed", + "originalName": "garlic, crushed", + "amount": 3, + "unit": "Cloves", + "meta": [ + "crushed" + ], + "measures": { + "us": { + "amount": 3, + "unitShort": "Cloves", + "unitLong": "Cloves" + }, + "metric": { + "amount": 3, + "unitShort": "Cloves", + "unitLong": "Cloves" + } + } + }, + { + "id": 2064, + "aisle": "Produce", + "image": "mint.jpg", + "consistency": "SOLID", + "name": "mint", + "nameClean": "mint", + "original": "1 tablespoon Chopped fresh mint", + "originalName": "Chopped fresh mint", + "amount": 1, + "unit": "tablespoon", + "meta": [ + "fresh", + "chopped" + ], + "measures": { + "us": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + }, + "metric": { + "amount": 1, + "unitShort": "Tbsp", + "unitLong": "Tbsp" + } + } + } + ], + "summary": "You can never have too many main course recipes, so give Lebanese Kibbeh a try. This recipe serves 6. One portion of this dish contains roughly 32g of protein, 41g of fat, and a total of 585 calories. For $2.99 per serving, this recipe covers 24% of your daily requirements of vitamins and minerals. From preparation to the plate, this recipe takes roughly 45 minutes. This recipe is typical of middl eastern cuisine. It is brought to you by Foodista. 3 people have made this recipe and would make it again. If you have greek yogurt, lamb, mint, and a few other ingredients on hand, you can make it. With a spoonacular score of 61%, this dish is solid. If you like this recipe, take a look at these similar recipes: Lebanese Kibbeh With Lemon Tahini, Lebanese Kibbeh With Lemon Tahini, and Kibbeh.", + "cuisines": [ + "Middle Eastern" + ], + "dishTypes": [ + "lunch", + "main course", + "main dish", + "dinner" + ], + "diets": [], + "occasions": [], + "instructions": "1) Preheat the oven to 375F degrees. Rinse the bulgur wheat in a sieve and squeeze out the excess moisture. 2. Mix the lamb, onion and seasoning, kneading the mixture to make a thick paste. Add the bulgur wheat and blend together. 3. To make the filling, heat the oil in a frying pan and fry the onion until golden. Add the lamb or veal and cook, stirring, until evenly browned and then add the pine nuts, allspice and salt and pepper. 4. Oil a large baking dish and spread half of the meat and bulgur wheat mixture over the bottom. Spoon over the filling and top with a second layer of meat and bulgur wheat, pressing down firmly with the back of a spoon. 5. Pour the melted butter over the top and then bake on the oven for 40-45 minutes until browned on top. 6. Meanwhile make the yogurt dip: Blend together the yogurt and garlic, spoon into a serving bowl and sprinkle with the chopped mint. 7. Cut the cooked kibbeh into squares or rectangles and serve garnished with mint and accompanied by rice and the yogurt dip. NOTES The national dish of Syria and the Lebanon in Kibbeh, as kind of meatball made from minced lamp and bulgur wheat. Raw kibbeh is the most widely eaten type, but this version is very popular too.", + "analyzedInstructions": [ + { + "name": "", + "steps": [ + { + "number": 1, + "step": "Preheat the oven to 375F degrees. Rinse the bulgur wheat in a sieve and squeeze out the excess moisture.", + "ingredients": [ + { + "id": 20012, + "name": "bulgur", + "localizedName": "bulgur", + "image": "bulgur-wheat.jpg" + } + ], + "equipment": [ + { + "id": 405600, + "name": "sieve", + "localizedName": "sieve", + "image": "https://spoonacular.com/cdn/equipment_100x100/strainer.png" + }, + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg", + "temperature": { + "number": 375, + "unit": "Fahrenheit" + } + } + ] + }, + { + "number": 2, + "step": "Mix the lamb, onion and seasoning, kneading the mixture to make a thick paste.", + "ingredients": [ + { + "id": 1042027, + "name": "seasoning", + "localizedName": "seasoning", + "image": "seasoning.png" + }, + { + "id": 11282, + "name": "onion", + "localizedName": "onion", + "image": "brown-onion.png" + }, + { + "id": 10017224, + "name": "lamb", + "localizedName": "lamb", + "image": "lamb-shanks.jpg" + } + ], + "equipment": [] + }, + { + "number": 3, + "step": "Add the bulgur wheat and blend together.", + "ingredients": [ + { + "id": 20012, + "name": "bulgur", + "localizedName": "bulgur", + "image": "bulgur-wheat.jpg" + } + ], + "equipment": [] + }, + { + "number": 4, + "step": "To make the filling, heat the oil in a frying pan and fry the onion until golden.", + "ingredients": [ + { + "id": 11282, + "name": "onion", + "localizedName": "onion", + "image": "brown-onion.png" + }, + { + "id": 4582, + "name": "cooking oil", + "localizedName": "cooking oil", + "image": "vegetable-oil.jpg" + } + ], + "equipment": [ + { + "id": 404645, + "name": "frying pan", + "localizedName": "frying pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" + } + ] + }, + { + "number": 5, + "step": "Add the lamb or veal and cook, stirring, until evenly browned and then add the pine nuts, allspice and salt and pepper.", + "ingredients": [ + { + "id": 1102047, + "name": "salt and pepper", + "localizedName": "salt and pepper", + "image": "salt-and-pepper.jpg" + }, + { + "id": 12147, + "name": "pine nuts", + "localizedName": "pine nuts", + "image": "pine-nuts.png" + }, + { + "id": 2001, + "name": "allspice", + "localizedName": "allspice", + "image": "allspice-ground.jpg" + }, + { + "id": 10017224, + "name": "lamb", + "localizedName": "lamb", + "image": "lamb-shanks.jpg" + }, + { + "id": 17142, + "name": "veal", + "localizedName": "veal", + "image": "veal.jpg" + } + ], + "equipment": [] + }, + { + "number": 6, + "step": "Oil a large baking dish and spread half of the meat and bulgur wheat mixture over the bottom. Spoon over the filling and top with a second layer of meat and bulgur wheat, pressing down firmly with the back of a spoon.", + "ingredients": [ + { + "id": 20012, + "name": "bulgur", + "localizedName": "bulgur", + "image": "bulgur-wheat.jpg" + }, + { + "id": 0, + "name": "spread", + "localizedName": "spread", + "image": "" + }, + { + "id": 1065062, + "name": "meat", + "localizedName": "meat", + "image": "whole-chicken.jpg" + }, + { + "id": 4582, + "name": "cooking oil", + "localizedName": "cooking oil", + "image": "vegetable-oil.jpg" + } + ], + "equipment": [ + { + "id": 404646, + "name": "baking pan", + "localizedName": "baking pan", + "image": "https://spoonacular.com/cdn/equipment_100x100/roasting-pan.jpg" + } + ] + }, + { + "number": 7, + "step": "Pour the melted butter over the top and then bake on the oven for 40-45 minutes until browned on top.", + "ingredients": [ + { + "id": 1001, + "name": "butter", + "localizedName": "butter", + "image": "butter-sliced.jpg" + } + ], + "equipment": [ + { + "id": 404784, + "name": "oven", + "localizedName": "oven", + "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" + } + ], + "length": { + "number": 45, + "unit": "minutes" + } + }, + { + "number": 8, + "step": "Meanwhile make the yogurt dip: Blend together the yogurt and garlic, spoon into a serving bowl and sprinkle with the chopped mint.", + "ingredients": [ + { + "id": 0, + "name": "yogurt dip", + "localizedName": "yogurt dip", + "image": "" + }, + { + "id": 11215, + "name": "garlic", + "localizedName": "garlic", + "image": "garlic.png" + }, + { + "id": 1116, + "name": "yogurt", + "localizedName": "yogurt", + "image": "plain-yogurt.jpg" + }, + { + "id": 2064, + "name": "mint", + "localizedName": "mint", + "image": "mint.jpg" + } + ], + "equipment": [ + { + "id": 404783, + "name": "bowl", + "localizedName": "bowl", + "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" + } + ] + }, + { + "number": 9, + "step": "Cut the cooked kibbeh into squares or rectangles and serve garnished with mint and accompanied by rice and the yogurt dip. NOTES The national dish of Syria and the Lebanon in Kibbeh, as kind of meatball made from minced lamp and bulgur wheat. Raw kibbeh is the most widely eaten type, but this version is very popular too.", + "ingredients": [ + { + "id": 20012, + "name": "bulgur", + "localizedName": "bulgur", + "image": "bulgur-wheat.jpg" + }, + { + "id": 0, + "name": "yogurt dip", + "localizedName": "yogurt dip", + "image": "" + }, + { + "id": 10110219, + "name": "meatballs", + "localizedName": "meatballs", + "image": "https://spoonacular.com/cdn/ingredients_100x100/meatballs.png" + }, + { + "id": 2064, + "name": "mint", + "localizedName": "mint", + "image": "mint.jpg" + }, + { + "id": 20444, + "name": "rice", + "localizedName": "rice", + "image": "uncooked-white-rice.png" + } + ], + "equipment": [] + } + ] + } + ], + "originalId": null, + "spoonacularScore": 68.41266632080078, + "spoonacularSourceUrl": "https://spoonacular.com/lebanese-kibbeh-649403" + } + ] +} diff --git a/index.html b/index.html index 8ab6fb4d3..4293c1704 100644 --- a/index.html +++ b/index.html @@ -77,6 +77,6 @@

Try Random Recipe

No results

- + \ No newline at end of file diff --git a/script.js b/script.js index 2c661e05e..bd3e7712d 100644 --- a/script.js +++ b/script.js @@ -1,4 +1,10 @@ -const URL = "https://api.spoonacular.com/recipes/complexSearch?number=5&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=true&includeIngredients=true&addRecipeInstructions=true"; +const URL = "https://api.spoonacular.com/recipes/random?number=10&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=italian,american,chinese,european,mexican"; + +// // Global backup data variable +// import { backupRecipes } from "./backup.js" + +// // Global backup data variable +// console.log("backup data loaded", backupRecipes); const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") @@ -65,160 +71,171 @@ randomBtn.addEventListener("click", () => { // recipes //=============================== -const recipes = [ - { - id: 1, - title: "Cheat's cheesy Focaccia", - image: "image/focaccia.jpg", - readyInMinutes: 40, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "Italian", - ingredients: [ - "500 pack bread mix", - "2 tbsp. olive oil, plus a little extra for drizzling", - "25g parmesan (or vegetarian alternative), grated", - "75g dolcelatte cheese (or vegetarian alternative)", - ], - pricePerServing: 2.5, - popularity: 85 - }, - { - id: 2, - title: "Burnt-Scallion Fish", - image: "image/fish.jpg", - readyInMinutes: 70, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "Chinese", - ingredients: [ - "2 bunches scallions", - "8 tbsp. butter", - "2 8-oz. fish filets", - ], - pricePerServing: 2.5, - popularity: 85 - }, - { - id: 3, - title: "Backed Chicken", - image: "image/chicken.jpg", - readyInMinutes: 90, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "American", - ingredients: [ - "6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on", - "1/2 tsp. coarse salt", - "1/2 tsp. Mrs. Dash seasoning", - "1/4 tsp. freshly ground black pepper", - ], - pricePerServing: 2.5, - popularity: 85 - }, - { - id: 4, - title: "Deep Fried Fish Bones", - image: "image/deep fry.jpg", - readyInMinutes: 30, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "South-East Asia", - ingredients: [ - "8 small whiting fish or smelt", - "4 cups vegetable oil", - ], - pricePerServing: 2.5, - popularity: 85 - }, - { - id: 5, - title: "Vegetarian Pesto Pasta", - image: "image/fish.jpg", - readyInMinutes: 25, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "Italian", - ingredients: [ - "pasta", - "basil", - "parmesan cheese", - "garlic", - "pine nuts", - "olive oil", - "salt", - "black pepper", - ], - pricePerServing: 2.5, - popularity: 85 - }, - { - id: 6, - title: "Dairy-Free Tacos", - image: "image/chicken.jpg", - readyInMinutes: 15, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "Mexican", - ingredients: [ - "corn tortillas", - "ground beef", - "taco seasoning", - "lettuce", - "tomato", - "avocado", - ], - pricePerServing: 2.5, - popularity: 85 - }, - { - id: 7, - title: "Beef Stew", - image: "image/deep fry.jpg", - readyInMinutes: 90, - servings: 4, - sourceUrl: "https://example.com/vegan-lentil-soup", - diets: ["vegan"], - cuisine: "European", - ingredients: [ - "beef chunks", - "potatoes", - "carrots", - "onion", - "garlic", - "tomato paste", - "beef broth", - "red wine", - "bay leaves", - "thyme", - "salt", - "black pepper", - "flour", - "celery", - "mushrooms", - ], - pricePerServing: 2.5, - popularity: 85 - }, -] +// const recipes = [ +// { +// id: 1, +// title: "Cheat's cheesy Focaccia", +// image: "image/focaccia.jpg", +// readyInMinutes: 40, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "Italian", +// ingredients: [ +// "500 pack bread mix", +// "2 tbsp. olive oil, plus a little extra for drizzling", +// "25g parmesan (or vegetarian alternative), grated", +// "75g dolcelatte cheese (or vegetarian alternative)", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// { +// id: 2, +// title: "Burnt-Scallion Fish", +// image: "image/fish.jpg", +// readyInMinutes: 70, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "Chinese", +// ingredients: [ +// "2 bunches scallions", +// "8 tbsp. butter", +// "2 8-oz. fish filets", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// { +// id: 3, +// title: "Backed Chicken", +// image: "image/chicken.jpg", +// readyInMinutes: 90, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "American", +// ingredients: [ +// "6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on", +// "1/2 tsp. coarse salt", +// "1/2 tsp. Mrs. Dash seasoning", +// "1/4 tsp. freshly ground black pepper", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// { +// id: 4, +// title: "Deep Fried Fish Bones", +// image: "image/deep fry.jpg", +// readyInMinutes: 30, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "South-East Asia", +// ingredients: [ +// "8 small whiting fish or smelt", +// "4 cups vegetable oil", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// { +// id: 5, +// title: "Vegetarian Pesto Pasta", +// image: "image/fish.jpg", +// readyInMinutes: 25, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "Italian", +// ingredients: [ +// "pasta", +// "basil", +// "parmesan cheese", +// "garlic", +// "pine nuts", +// "olive oil", +// "salt", +// "black pepper", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// { +// id: 6, +// title: "Dairy-Free Tacos", +// image: "image/chicken.jpg", +// readyInMinutes: 15, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "Mexican", +// ingredients: [ +// "corn tortillas", +// "ground beef", +// "taco seasoning", +// "lettuce", +// "tomato", +// "avocado", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// { +// id: 7, +// title: "Beef Stew", +// image: "image/deep fry.jpg", +// readyInMinutes: 90, +// servings: 4, +// sourceUrl: "https://example.com/vegan-lentil-soup", +// diets: ["vegan"], +// cuisine: "European", +// ingredients: [ +// "beef chunks", +// "potatoes", +// "carrots", +// "onion", +// "garlic", +// "tomato paste", +// "beef broth", +// "red wine", +// "bay leaves", +// "thyme", +// "salt", +// "black pepper", +// "flour", +// "celery", +// "mushrooms", +// ], +// pricePerServing: 2.5, +// popularity: 85 +// }, +// ] //=============================== // fetch recipes //=============================== -// const fetchData = async () => { -// const response = await fetch(URL) -// const data = await response.json() -// console.log(data) -// } +const fetchData = async () => { + try { + const response = await fetch(URL); + const data = await response.json(); + console.log("API response:", data); + + if (data.recipes && Array.isArray(data.recipes)) { + displayRecipes(data.recipes); + } else { + container.innerHTML = "

No recipes found. Check your API key or quota.

"; + } + } catch (error) { + console.error("Error fetching data:", error); + container.innerHTML = "

Failed to load recipes. Please try again later.

"; + } +}; + -// fetchData() //=============================== // display recipes @@ -228,27 +245,43 @@ const displayRecipes = (recipeArray) => { container.innerHTML = "" //reset the container recipeArray.forEach(recipe => { + // ingredients + let ingredients = []; + if (recipe.extendedIngredients && Array.isArray(recipe.extendedIngredients)) { + ingredients = recipe.extendedIngredients.map(ing => ing.original); + } + container.innerHTML += `
- picture of food + picture of ${recipe.title}

${recipe.title}


-

Cuisine: ${recipe.cuisine}

+

Cuisine: ${recipe.cuisines && recipe.cuisines.length ? recipe.cuisines.join(", ") : "-"}

Time: ${recipe.readyInMinutes} minutes


Ingredients

-
    ${recipe.ingredients.join("
    ")}
+
    + ${ingredients.length + ? ingredients.map(ing => `
  • ${ing}
  • `).join("") + : "
  • No ingredient info
  • " + } +
+
- ` - }) + `; + }); attachLikeEvents(); } -displayRecipes(recipes); +// displayRecipes(results); + +fetchData() //=============================== // filter recipes diff --git a/style.css b/style.css index 6c7bb27a9..f35c3e8a3 100644 --- a/style.css +++ b/style.css @@ -250,10 +250,28 @@ style for recipe cards margin: 20px 0; } -.temporary-placeholder, +.view-recipe-button { + background-color: #ff6589; + border: none; + border-radius: 10px; + width: 100%; + padding: 10px; + cursor: pointer; + text-decoration: none; + margin-top: auto; + text-align: center; + align-items: flex-end; +} + +.view-recipe-button a { + color: white; +} + .recipe-card { + display: flex; + flex-direction: column; max-width: 300px; - height: auto; + height: 100%; border: 1px solid #e9e9e9; border-radius: 16px; margin: 10px; @@ -261,6 +279,11 @@ style for recipe cards background-color: #fff; } +/* to place view recipe button in the bottom of the card */ +.recipe-card > *:not(.recipe-image):not(.view-recipe-button) { + margin-top: 12px; +} + .recipe-card:hover { box-shadow: 0 0 10px 2px rgba(0, 0, 0, 0.1); } @@ -286,4 +309,3 @@ responsive design width: 90%; } } - From dc5ac839a19c4924e0a8e3394de7975b8b933772 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Wed, 8 Oct 2025 19:58:07 +0200 Subject: [PATCH 12/22] add backup recipes --- backup.js | 24 +++--- script.js | 248 ++++++++++++++++++++++++++++++++++++++---------------- 2 files changed, 189 insertions(+), 83 deletions(-) diff --git a/backup.js b/backup.js index bb6c5f713..8aa720e48 100644 --- a/backup.js +++ b/backup.js @@ -339,7 +339,7 @@ export const backupRecipes = { } } ], - "summary": "Tex-Mex Burger is an American recipe that serves 4. For $3.4 per serving, this recipe covers 36% of your daily requirements of vitamins and minerals. This main course has 884 calories, 51g of protein, and 61g of fat per serving. 2 people were glad they tried this recipe. From preparation to the plate, this recipe takes roughly 15 minutes. It is brought to you by Foodista. A mixture of pepper, chili powder, pepper jack cheese, and a handful of other ingredients are all it takes to make this recipe so delicious. Overall, this recipe earns a solid spoonacular score of 73%. If you like this recipe, take a look at these similar recipes: Tex-Mex Burger, Tex-Mex burger, and Tex-Mex Turkey Burger.", + "summary": 'Tex-Mex Burger is an American recipe that serves 4. For $3.4 per serving, this recipe covers 36% of your daily requirements of vitamins and minerals. This main course has 884 calories, 51g of protein, and 61g of fat per serving. 2 people were glad they tried this recipe. From preparation to the plate, this recipe takes roughly 15 minutes. It is brought to you by Foodista. A mixture of pepper, chili powder, pepper jack cheese, and a handful of other ingredients are all it takes to make this recipe so delicious. Overall, this recipe earns a solid spoonacular score of 73%. If you like this recipe, take a look at these similar recipes: Tex-Mex Burger, Tex-Mex burger, and Tex-Mex Turkey Burger.', "cuisines": [ "American" ], @@ -751,7 +751,7 @@ export const backupRecipes = { } } ], - "summary": "Roasted Sweet Potato Salad is a gluten free, dairy free, paleolithic, and lacto ovo vegetarian recipe with 8 servings. One portion of this dish contains around 3g of protein, 11g of fat, and a total of 297 calories. For $1.09 per serving, this recipe covers 14% of your daily requirements of vitamins and minerals. 5 people were glad they tried this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It will be a hit at your The Fourth Of July event. Not a lot of people really liked this side dish. This recipe from Foodista requires pecans, extra virgin olive oil, chipotle pepper adobo sauce, and cranberries. All things considered, we decided this recipe deserves a spoonacular score of 66%. This score is good. Try Roasted Sweet Potato Salad, Roasted Sweet Potato Salad, and Roasted Sweet Potato Salad for similar recipes.", + "summary": 'Roasted Sweet Potato Salad is a gluten free, dairy free, paleolithic, and lacto ovo vegetarian recipe with 8 servings. One portion of this dish contains around 3g of protein, 11g of fat, and a total of 297 calories. For $1.09 per serving, this recipe covers 14% of your daily requirements of vitamins and minerals. 5 people were glad they tried this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It will be a hit at your The Fourth Of July event. Not a lot of people really liked this side dish. This recipe from Foodista requires pecans, extra virgin olive oil, chipotle pepper adobo sauce, and cranberries. All things considered, we decided this recipe deserves a spoonacular score of 66%. This score is good. Try Roasted Sweet Potato Salad, Roasted Sweet Potato Salad, and Roasted Sweet Potato Salad for similar recipes.', "cuisines": [], "dishTypes": [ "side dish" @@ -834,7 +834,7 @@ export const backupRecipes = { }, { "number": 6, - "step": "Mix 2 tablespoons oil, pepper puree, vinegar, salt and pepper to make a dressing", + "step": 'Mix 2 tablespoons oil, pepper puree, vinegar, salt and pepper to make a dressing', "ingredients": [ { "id": 1102047, @@ -1373,7 +1373,7 @@ export const backupRecipes = { } } ], - "summary": "You can never have too many main course recipes, so give Minestrone Soup a try. For $2.03 per serving, this recipe covers 23% of your daily requirements of vitamins and minerals. One serving contains 356 calories, 20g of protein, and 16g of fat. This recipe serves 8. It is perfect for Autumn. 14 people have made this recipe and would make it again. It is a reasonably priced recipe for fans of Mediterranean food. Head to the store and pick up vegetable stock, tomatoes into 8ths, salt and pepper, and a few other things to make it today. From preparation to the plate, this recipe takes roughly 45 minutes. It is brought to you by Foodista. Overall, this recipe earns a solid spoonacular score of 69%. Users who liked this recipe also liked Minestrone Soup, Minestrone Soup, and Minestrone Soup.", + "summary": 'You can never have too many main course recipes, so give Minestrone Soup a try. For $2.03 per serving, this recipe covers 23% of your daily requirements of vitamins and minerals. One serving contains 356 calories, 20g of protein, and 16g of fat. This recipe serves 8. It is perfect for Autumn. 14 people have made this recipe and would make it again. It is a reasonably priced recipe for fans of Mediterranean food. Head to the store and pick up vegetable stock, tomatoes into 8ths, salt and pepper, and a few other things to make it today. From preparation to the plate, this recipe takes roughly 45 minutes. It is brought to you by Foodista. Overall, this recipe earns a solid spoonacular score of 69%. Users who liked this recipe also liked Minestrone Soup, Minestrone Soup, and Minestrone Soup.', "cuisines": [ "Mediterranean", "Italian", @@ -1789,7 +1789,7 @@ export const backupRecipes = { } } ], - "summary": "Cheese Tortellini Alfredo might be a good recipe to expand your main course recipe box. This recipe serves 4. One portion of this dish contains approximately 22g of protein, 29g of fat, and a total of 593 calories. For $1.76 per serving, this recipe covers 6% of your daily requirements of vitamins and minerals. It is an affordable recipe for fans of Mediterranean food. 6 people have tried and liked this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It is brought to you by Foodista. If you have whipping cream, parmiggiano reggiano, nutmeg, and a few other ingredients on hand, you can make it. All things considered, we decided this recipe deserves a spoonacular score of 17%. This score is rather bad. Similar recipes are Chicken & Cheese Tortellini Alfredo, Chicken & Cheese Tortellini Alfredo, and Cheese Tortellini with Spinach Fetan Alfredo Sauce.", + "summary": 'Cheese Tortellini Alfredo might be a good recipe to expand your main course recipe box. This recipe serves 4. One portion of this dish contains approximately 22g of protein, 29g of fat, and a total of 593 calories. For $1.76 per serving, this recipe covers 6% of your daily requirements of vitamins and minerals. It is an affordable recipe for fans of Mediterranean food. 6 people have tried and liked this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It is brought to you by Foodista. If you have whipping cream, parmiggiano reggiano, nutmeg, and a few other ingredients on hand, you can make it. All things considered, we decided this recipe deserves a spoonacular score of 17%. This score is rather bad. Similar recipes are Chicken & Cheese Tortellini Alfredo, Chicken & Cheese Tortellini Alfredo, and Cheese Tortellini with Spinach Fetan Alfredo Sauce.', "cuisines": [ "Mediterranean", "Italian", @@ -1916,7 +1916,7 @@ export const backupRecipes = { "id": 652819, "image": "https://img.spoonacular.com/recipes/652819-556x370.jpg", "imageType": "jpg", - "title": "My "Secret" Bolognese Sauce", + "title": "My Secret Bolognese Sauce", "readyInMinutes": 45, "servings": 12, "sourceUrl": "https://www.foodista.com/recipe/3V8MZXNN/my-secret-bolognese-sauce", @@ -2373,7 +2373,7 @@ export const backupRecipes = { } } ], - "summary": "My "Secret" Bolognese Sauce is a gluten free and dairy free recipe with 12 servings. One serving contains 505 calories, 29g of protein, and 33g of fat. For $2.76 per serving, this recipe covers 26% of your daily requirements of vitamins and minerals. 27 people have tried and liked this recipe. A mixture of parsley, ground veal, ground pork, and a handful of other ingredients are all it takes to make this recipe so yummy. It works well as a budget friendly sauce. It is brought to you by Foodista. From preparation to the plate, this recipe takes around 45 minutes. Taking all factors into account, this recipe earns a spoonacular score of 72%, which is pretty good. Try The Secret to Authentic Italian Bolognese Sauce, Ragù alla bolognese (Bolognese Sauce), and Bolognese Sauce (ragu Bolognese) for similar recipes.", + "summary": 'My Secret Bolognese Sauce is a gluten free and dairy free recipe with 12 servings. One serving contains 505 calories, 29g of protein, and 33g of fat. For $2.76 per serving, this recipe covers 26% of your daily requirements of vitamins and minerals. 27 people have tried and liked this recipe. A mixture of parsley, ground veal, ground pork, and a handful of other ingredients are all it takes to make this recipe so yummy. It works well as a budget friendly sauce. It is brought to you by Foodista. From preparation to the plate, this recipe takes around 45 minutes. Taking all factors into account, this recipe earns a spoonacular score of 72%, which is pretty good. Try The Secret to Authentic Italian Bolognese Sauce, Ragù alla bolognese (Bolognese Sauce), and Bolognese Sauce (ragu Bolognese) for similar recipes.', "cuisines": [], "dishTypes": [ "sauce" @@ -2793,7 +2793,7 @@ export const backupRecipes = { } } ], - "summary": "Vanilla Panna Cotta with Chocolate Ganache could be just the gluten free and primal recipe you've been looking for. For 71 cents per serving, this recipe covers 1% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 1g of protein, 1g of fat, and a total of 13 calories. This recipe serves 8. Head to the store and pick up gelatin, milk, vanilla bean, and a few other things to make it today. It is brought to you by Foodista. It is a very budget friendly recipe for fans of Mediterranean food. 7 people were glad they tried this recipe. From preparation to the plate, this recipe takes around 45 minutes. All things considered, we decided this recipe deserves a spoonacular score of 19%. This score is rather bad. Similar recipes are Vanilla White Chocolate Panna Cotta With Strawberries, Chocolate panna cotta with vanillan ice cream and strawberry syrup, and Vanilla Panna Cotta.", + "summary": 'Vanilla Panna Cotta with Chocolate Ganache could be just the gluten free and primal recipe you have been looking for. For 71 cents per serving, this recipe covers 1% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 1g of protein, 1g of fat, and a total of 13 calories. This recipe serves 8. Head to the store and pick up gelatin, milk, vanilla bean, and a few other things to make it today. It is brought to you by Foodista. It is a very budget friendly recipe for fans of Mediterranean food. 7 people were glad they tried this recipe. From preparation to the plate, this recipe takes around 45 minutes. All things considered, we decided this recipe deserves a spoonacular score of 19%. This score is rather bad. Similar recipes are Vanilla White Chocolate Panna Cotta With Strawberries, Chocolate panna cotta with vanillan ice cream and strawberry syrup, and Vanilla Panna Cotta.', "cuisines": [ "Mediterranean", "Italian", @@ -3263,7 +3263,7 @@ export const backupRecipes = { } } ], - "summary": "Sweet Potato Hashbrown Breakfast Bake could be just the gluten free, lacto ovo vegetarian, and primal recipe you've been looking for. This recipe serves 4. This hor d'oeuvre has 332 calories, 10g of protein, and 21g of fat per serving. For $1.16 per serving, this recipe covers 19% of your daily requirements of vitamins and minerals. It is brought to you by Foodista. If you have eggs, garlic, kosher salt and ground pepper, and a few other ingredients on hand, you can make it. 2 people found this recipe to be flavorful and satisfying. Christmas will be even more special with this recipe. From preparation to the plate, this recipe takes around 1 hour and 10 minutes. All things considered, we decided this recipe deserves a spoonacular score of 49%. This score is solid. Sweet Potato Hashbrown Breakfast Bake, Sweet Potato Breakfast Bake (Paleo), and Sweet Potato Breakfast Bake (Paleo) are very similar to this recipe.", + "summary": 'Sweet Potato Hashbrown Breakfast Bake could be just the gluten free, lacto ovo vegetarian, and primal recipe you have been looking for. This recipe serves 4. This hor doeuvre has 332 calories, 10g of protein, and 21g of fat per serving. For $1.16 per serving, this recipe covers 19% of your daily requirements of vitamins and minerals. It is brought to you by Foodista. If you have eggs, garlic, kosher salt and ground pepper, and a few other ingredients on hand, you can make it. 2 people found this recipe to be flavorful and satisfying. Christmas will be even more special with this recipe. From preparation to the plate, this recipe takes around 1 hour and 10 minutes. All things considered, we decided this recipe deserves a spoonacular score of 49%. This score is solid. Sweet Potato Hashbrown Breakfast Bake, Sweet Potato Breakfast Bake (Paleo), and Sweet Potato Breakfast Bake (Paleo) are very similar to this recipe.', "cuisines": [], "dishTypes": [ "side dish", @@ -3871,7 +3871,7 @@ export const backupRecipes = { } } ], - "summary": "Fenugreek Roti requires roughly 45 minutes from start to finish. This bread has 80 calories, 4g of protein, and 2g of fat per serving. This recipe serves 10 and costs $5.24 per serving. If you have chili powder, chickpea flour, baking soda, and a few other ingredients on hand, you can make it. 98 people were glad they tried this recipe. This recipe is typical of Indian cuisine. It is brought to you by foodandspice.blogspot.com. It is a good option if you're following a lacto ovo vegetarian diet. All things considered, we decided this recipe deserves a spoonacular score of 65%. This score is good. If you like this recipe, take a look at these similar recipes: methi missi roti , how to make punjabi missi roti, Fenugreek Tea & Benefits, and Whole Roast Chicken with Fenugreek.", + "summary": 'Fenugreek Roti requires roughly 45 minutes from start to finish. This bread has 80 calories, 4g of protein, and 2g of fat per serving. This recipe serves 10 and costs $5.24 per serving. If you have chili powder, chickpea flour, baking soda, and a few other ingredients on hand, you can make it. 98 people were glad they tried this recipe. This recipe is typical of Indian cuisine. It is brought to you by foodandspice.blogspot.com. It is a good option if you are following a lacto ovo vegetarian diet. All things considered, we decided this recipe deserves a spoonacular score of 65%. This score is good. If you like this recipe, take a look at these similar recipes: methi missi roti , how to make punjabi missi roti, Fenugreek Tea & Benefits, and Whole Roast Chicken with Fenugreek.', "cuisines": [ "Indian", "Asian" @@ -4287,7 +4287,7 @@ export const backupRecipes = { } } ], - "summary": "Corn Avocado Salsa might be just the hor d'oeuvre you are searching for. For $1.31 per serving, this recipe covers 15% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 5g of protein, 16g of fat, and a total of 237 calories. This recipe serves 2. 44 people have made this recipe and would make it again. This recipe from Foodista requires avocado, balsamic vinegar, cumin, and garlic. A few people really liked this Mexican dish. It is a good option if you're following a gluten free, dairy free, lacto ovo vegetarian, and vegan diet. From preparation to the plate, this recipe takes around 25 minutes. With a spoonacular score of 97%, this dish is spectacular. If you like this recipe, take a look at these similar recipes: Avocado Corn Salsa, Avocado-Corn Salsa, and Avocado-Corn Salsa.", + "summary": 'Corn Avocado Salsa might be just the hor doeuvre you are searching for. For $1.31 per serving, this recipe covers 15% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 5g of protein, 16g of fat, and a total of 237 calories. This recipe serves 2. 44 people have made this recipe and would make it again. This recipe from Foodista requires avocado, balsamic vinegar, cumin, and garlic. A few people really liked this Mexican dish. It is a good option if you are following a gluten free, dairy free, lacto ovo vegetarian, and vegan diet. From preparation to the plate, this recipe takes around 25 minutes. With a spoonacular score of 97%, this dish is spectacular. If you like this recipe, take a look at these similar recipes: Avocado Corn Salsa, Avocado-Corn Salsa, and Avocado-Corn Salsa.', "cuisines": [ "Mexican" ], @@ -4842,7 +4842,7 @@ export const backupRecipes = { } } ], - "summary": "You can never have too many main course recipes, so give Lebanese Kibbeh a try. This recipe serves 6. One portion of this dish contains roughly 32g of protein, 41g of fat, and a total of 585 calories. For $2.99 per serving, this recipe covers 24% of your daily requirements of vitamins and minerals. From preparation to the plate, this recipe takes roughly 45 minutes. This recipe is typical of middl eastern cuisine. It is brought to you by Foodista. 3 people have made this recipe and would make it again. If you have greek yogurt, lamb, mint, and a few other ingredients on hand, you can make it. With a spoonacular score of 61%, this dish is solid. If you like this recipe, take a look at these similar recipes: Lebanese Kibbeh With Lemon Tahini, Lebanese Kibbeh With Lemon Tahini, and Kibbeh.", + "summary": 'You can never have too many main course recipes, so give Lebanese Kibbeh a try. This recipe serves 6. One portion of this dish contains roughly 32g of protein, 41g of fat, and a total of 585 calories. For $2.99 per serving, this recipe covers 24% of your daily requirements of vitamins and minerals. From preparation to the plate, this recipe takes roughly 45 minutes. This recipe is typical of middl eastern cuisine. It is brought to you by Foodista. 3 people have made this recipe and would make it again. If you have greek yogurt, lamb, mint, and a few other ingredients on hand, you can make it. With a spoonacular score of 61%, this dish is solid. If you like this recipe, take a look at these similar recipes: Lebanese Kibbeh With Lemon Tahini, Lebanese Kibbeh With Lemon Tahini, and Kibbeh.', "cuisines": [ "Middle Eastern" ], diff --git a/script.js b/script.js index bd3e7712d..598e6fc38 100644 --- a/script.js +++ b/script.js @@ -1,10 +1,4 @@ -const URL = "https://api.spoonacular.com/recipes/random?number=10&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=italian,american,chinese,european,mexican"; - -// // Global backup data variable -// import { backupRecipes } from "./backup.js" - -// // Global backup data variable -// console.log("backup data loaded", backupRecipes); +// const URL = "https://api.spoonacular.com/recipes/random?number=10&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=italian,american,chinese,european,mexican"; const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") @@ -218,24 +212,46 @@ randomBtn.addEventListener("click", () => { // fetch recipes //=============================== +// let recipes = []; + +// const fetchData = async () => { +// try { +// const response = await fetch(URL); +// const data = await response.json(); +// console.log("API response:", data); + +// if (data.recipes && Array.isArray(data.recipes)) { +// recipes = data.recipes; +// displayRecipes(data.recipes); +// } else { +// container.innerHTML = "

No recipes found. Check your API key or quota.

"; +// } +// } catch (error) { +// console.error("Error fetching data:", error); +// container.innerHTML = "

Failed to load recipes. Please try again later.

"; +// } +// }; + +// ------------import backup data----------------------------------------- + +// Global backup data variable +import { backupRecipes } from "./backup.js" + +// Global backup data variable +console.log("backup data loaded", backupRecipes); + +let recipes = []; + const fetchData = async () => { try { - const response = await fetch(URL); - const data = await response.json(); - console.log("API response:", data); - - if (data.recipes && Array.isArray(data.recipes)) { - displayRecipes(data.recipes); - } else { - container.innerHTML = "

No recipes found. Check your API key or quota.

"; - } + recipes = backupRecipes.recipes; + displayRecipes(recipes); } catch (error) { console.error("Error fetching data:", error); - container.innerHTML = "

Failed to load recipes. Please try again later.

"; } }; - +fetchData(); //=============================== // display recipes @@ -279,98 +295,77 @@ const displayRecipes = (recipeArray) => { attachLikeEvents(); } -// displayRecipes(results); - fetchData() //=============================== -// filter recipes +// filter + sort recipes //=============================== -// save the selected filter here -let activeFilters = [] +// save the selected filters here +let activeFilters = []; +let currentSort = null; // asc or desc -// show all recipes when "all" button is clicked +// reset filters when "All" button is clicked allBtn.addEventListener("click", () => { - activeFilters = []; //reset filters - displayRecipes(recipes); + activeFilters = []; // reset filters + applyKitchenFilters(); }); -// +// each cuisine button filterBtn.forEach(button => { - if (button.id === "all")return; // ignore the rest of the functions is "all" is clicked + if (button.id === "all") + return; // skip the "all" button button.addEventListener("click", () => { - const cuisine = button.id; + const cuisine = button.id.toLowerCase(); if (activeFilters.includes(cuisine)) { - // remove recipes if they are already displayed - activeFilters = activeFilters.filter(country => country !== cuisine); + // remove if already selected + activeFilters = activeFilters.filter(c => c !== cuisine); } else { - // add the filtered recipes + // add filter activeFilters.push(cuisine); } - applyFilters(); + applyKitchenFilters(); }); }); -const applyFilters = () => { - // if there are no active filters, then show all recipes - if (activeFilters.length === 0) { - displayRecipes(recipes); - return; - } - - const filtered = recipes.filter(recipe => - activeFilters.includes(recipe.cuisine.toLowerCase()) - ); - - // if there are active recipes, show the recipes. otherwise show the text - if (filtered.length > 0) { - displayRecipes(filtered); - } else { - container.innerHTML = `

No results

`; - } -} - - -//=============================== -// sort recipes (sort by time) -//=============================== +// sort buttons descBtn.addEventListener("click", () => { currentSort = "desc"; applyKitchenFilters(); -}) +}); ascBtn.addEventListener("click", () => { currentSort = "asc"; applyKitchenFilters(); }) -// filter + sort function +// main function : filter + sort + const applyKitchenFilters = () => { - let filtered = []; // make an empty box + let filtered = [...recipes]; // make a copy of all recipes - if (activeFilters.length === 0) { - // if no active filter, make a copy of recipes list - filtered = [...recipes]; - } else { - // if filters are active, pick up the recipes - filtered = recipes.filter(recipe => - activeFilters.includes(recipe.cuisine.toLowerCase()) - ); + //apply filters + if (activeFilters.length > 0) { + filtered = filtered.filter(recipe => { + if (Array.isArray(recipe.cuisines) && recipe.cuisines.length > 0) { + return recipe.cuisines.some(c => activeFilters.includes(c.toLowerCase())); + } + return false; + }); } - // sort filtered recipes + // apply sorting if (currentSort === "desc") { filtered.sort((a,b) => b.readyInMinutes - a.readyInMinutes); - } else { + } else if (currentSort === "asc") { filtered.sort((a,b) => a.readyInMinutes - b.readyInMinutes); } - // display recipes + // show empty message if (filtered.length > 0) { displayRecipes(filtered); } else { @@ -378,7 +373,6 @@ const applyKitchenFilters = () => { } }; - //=============================== // pick a random recipe //=============================== @@ -484,3 +478,115 @@ const filterSearchResults = () => { }; searchInput.addEventListener("input", filterSearchResults); + + + + + + + + + + + + + + + + + +// //=============================== +// // filter recipes +// //=============================== + +// // save the selected filter here +// let activeFilters = [] + +// // show all recipes when "all" button is clicked +// allBtn.addEventListener("click", () => { +// activeFilters = []; //reset filters +// displayRecipes(recipes); +// }); + +// // +// filterBtn.forEach(button => { +// if (button.id === "all")return; // ignore the rest of the functions is "all" is clicked + +// button.addEventListener("click", () => { +// const cuisine = button.id; + +// if (activeFilters.includes(cuisine)) { +// // remove recipes if they are already displayed +// activeFilters = activeFilters.filter(country => country !== cuisine); +// } else { +// // add the filtered recipes +// activeFilters.push(cuisine); +// } + +// applyFilters(); +// }); +// }); + +// const applyFilters = () => { +// // if there are no active filters, then show all recipes +// if (activeFilters.length === 0) { +// displayRecipes(recipes); +// return; +// } + +// const filtered = recipe.filter(recipe => +// activeFilters.includes(recipe.cuisines.toLowerCase()) +// ); + +// // if there are active recipes, show the recipes. otherwise show the text +// if (filtered.length > 0) { +// displayRecipes(filtered); +// } else { +// container.innerHTML = `

No results

`; +// } +// } + + +// //=============================== +// // sort recipes (sort by time) +// //=============================== + +// descBtn.addEventListener("click", () => { +// currentSort = "desc"; +// applyKitchenFilters(); +// }) + +// ascBtn.addEventListener("click", () => { +// currentSort = "asc"; +// applyKitchenFilters(); +// }) + +// // filter + sort function +// const applyKitchenFilters = () => { +// let filtered = []; // make an empty box + +// if (activeFilters.length === 0) { +// // if no active filter, make a copy of recipes list +// filtered = [...recipes]; +// } else { +// // if filters are active, pick up the recipes +// filtered = recipes.filter(recipe => +// activeFilters.includes(recipe.cuisine.toLowerCase()) +// ); +// } + +// // sort filtered recipes +// if (currentSort === "desc") { +// filtered.sort((a,b) => b.readyInMinutes - a.readyInMinutes); +// } else { +// filtered.sort((a,b) => a.readyInMinutes - b.readyInMinutes); +// } + +// // display recipes +// if (filtered.length > 0) { +// displayRecipes(filtered); +// } else { +// container.innerHTML = `

No results

`; +// } +// }; + From 2f4662945794c43b51f90aaf896ddf769a24038c Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Wed, 8 Oct 2025 22:19:15 +0200 Subject: [PATCH 13/22] add like function --- script.js | 521 +++++++++++++----------------------------------------- 1 file changed, 118 insertions(+), 403 deletions(-) diff --git a/script.js b/script.js index 598e6fc38..f0c35a35f 100644 --- a/script.js +++ b/script.js @@ -14,199 +14,98 @@ const container = document.getElementById("recipe-container") allBtn.classList.add("active") //default select //=============================== -// filter buttons +// like button //=============================== -filterBtn.forEach((filterButton) => { - filterButton.addEventListener("click", () => { +// save favorite recipes +let favorites = JSON.parse(localStorage.getItem("favorites")) || []; - // only "all" button will be active when it is clicked - if (filterButton.id === "all") { - filterBtn.forEach(btn => btn.classList.remove("active")); - allBtn.classList.add("active") +const attachLikeEvents =() => { + const likeButtons = document.querySelectorAll(".like-button"); + + likeButtons.forEach(button => { + button.addEventListener("click", () => { + const card = button.closest(".recipe-card"); + const recipeId = String(card.dataset.id); + const recipe = recipes.find(r => String(r.id) === recipeId); + + if (!recipe) return; + + if (favorites.some(fav => String(fav.id) === recipeId)) { + // remove recipe if it is already liked + favorites = favorites.filter(fav => String(fav.id) !== recipeId); + button.classList.remove("liked"); } else { - // when other filter buttons are clicked - filterButton.classList.toggle("active"); - - const anyActive = [...filterBtn].some( - btn => btn !== allBtn && btn.classList.contains("active") - ); - if (anyActive) { - // when buttons other than all are active, remove "active" - allBtn.classList.remove("active"); - } else { - // put "active" back, when other buttons are not active - allBtn.classList.add("active") - } + // otherwise add recipe + favorites.push(recipe); + button.classList.add("liked"); } + + // save recipes + localStorage.setItem("favorites", JSON.stringify(favorites)); + }); }); -}); +}; //=============================== -// sort buttons - only one button can be selected +// show favorite recipes //=============================== -sortBtn.forEach(sortButton => { - sortButton.addEventListener("click", () => { - sortBtn.forEach(btn => btn.classList.remove("active")); - sortButton.classList.add("active"); - }); +const favoriteBtn = document.querySelector(".favorites") + +favoriteBtn.addEventListener("click", () => { + favorites = JSON.parse(localStorage.getItem("favorites")) || []; + + if (favorites.length > 0) { + displayRecipes(favorites); + } else { + container.innerHTML = `

No favorite recipes yet❤️

`; + } }); -//=============================== -// random buttons - change the color when clicked -//=============================== -randomBtn.addEventListener("click", () => { - randomBtn.classList.toggle("active"); -}) //=============================== -// recipes +// display recipes //=============================== -// const recipes = [ -// { -// id: 1, -// title: "Cheat's cheesy Focaccia", -// image: "image/focaccia.jpg", -// readyInMinutes: 40, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "Italian", -// ingredients: [ -// "500 pack bread mix", -// "2 tbsp. olive oil, plus a little extra for drizzling", -// "25g parmesan (or vegetarian alternative), grated", -// "75g dolcelatte cheese (or vegetarian alternative)", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// { -// id: 2, -// title: "Burnt-Scallion Fish", -// image: "image/fish.jpg", -// readyInMinutes: 70, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "Chinese", -// ingredients: [ -// "2 bunches scallions", -// "8 tbsp. butter", -// "2 8-oz. fish filets", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// { -// id: 3, -// title: "Backed Chicken", -// image: "image/chicken.jpg", -// readyInMinutes: 90, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "American", -// ingredients: [ -// "6 bone-in chicken breast halves, or 6 chicken thighs and wings, skin-on", -// "1/2 tsp. coarse salt", -// "1/2 tsp. Mrs. Dash seasoning", -// "1/4 tsp. freshly ground black pepper", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// { -// id: 4, -// title: "Deep Fried Fish Bones", -// image: "image/deep fry.jpg", -// readyInMinutes: 30, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "South-East Asia", -// ingredients: [ -// "8 small whiting fish or smelt", -// "4 cups vegetable oil", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// { -// id: 5, -// title: "Vegetarian Pesto Pasta", -// image: "image/fish.jpg", -// readyInMinutes: 25, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "Italian", -// ingredients: [ -// "pasta", -// "basil", -// "parmesan cheese", -// "garlic", -// "pine nuts", -// "olive oil", -// "salt", -// "black pepper", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// { -// id: 6, -// title: "Dairy-Free Tacos", -// image: "image/chicken.jpg", -// readyInMinutes: 15, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "Mexican", -// ingredients: [ -// "corn tortillas", -// "ground beef", -// "taco seasoning", -// "lettuce", -// "tomato", -// "avocado", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// { -// id: 7, -// title: "Beef Stew", -// image: "image/deep fry.jpg", -// readyInMinutes: 90, -// servings: 4, -// sourceUrl: "https://example.com/vegan-lentil-soup", -// diets: ["vegan"], -// cuisine: "European", -// ingredients: [ -// "beef chunks", -// "potatoes", -// "carrots", -// "onion", -// "garlic", -// "tomato paste", -// "beef broth", -// "red wine", -// "bay leaves", -// "thyme", -// "salt", -// "black pepper", -// "flour", -// "celery", -// "mushrooms", -// ], -// pricePerServing: 2.5, -// popularity: 85 -// }, -// ] +const displayRecipes = (recipeArray) => { + container.innerHTML = "" //reset the container + + recipeArray.forEach(recipe => { + // ingredients + let ingredients = []; + if (recipe.extendedIngredients && Array.isArray(recipe.extendedIngredients)) { + ingredients = recipe.extendedIngredients.map(ing => ing.original); + } + + container.innerHTML += ` +
+
+ + picture of ${recipe.title} +
+

${recipe.title}

+
+

Cuisine: ${recipe.cuisines && recipe.cuisines.length ? recipe.cuisines.join(", ") : "-"}

+

Time: ${recipe.readyInMinutes} minutes

+
+

Ingredients

+
    + ${ingredients.length + ? ingredients.map(ing => `
  • ${ing}
  • `).join("") + : "
  • No ingredient info
  • " + } +
+ +
+ `; + }); + + attachLikeEvents(); +} //=============================== // fetch recipes @@ -253,49 +152,6 @@ const fetchData = async () => { fetchData(); -//=============================== -// display recipes -//=============================== - -const displayRecipes = (recipeArray) => { - container.innerHTML = "" //reset the container - - recipeArray.forEach(recipe => { - // ingredients - let ingredients = []; - if (recipe.extendedIngredients && Array.isArray(recipe.extendedIngredients)) { - ingredients = recipe.extendedIngredients.map(ing => ing.original); - } - - container.innerHTML += ` -
-
- - picture of ${recipe.title} -
-

${recipe.title}

-
-

Cuisine: ${recipe.cuisines && recipe.cuisines.length ? recipe.cuisines.join(", ") : "-"}

-

Time: ${recipe.readyInMinutes} minutes

-
-

Ingredients

-
    - ${ingredients.length - ? ingredients.map(ing => `
  • ${ing}
  • `).join("") - : "
  • No ingredient info
  • " - } -
- -
- `; - }); - - attachLikeEvents(); -} - -fetchData() //=============================== // filter + sort recipes @@ -305,34 +161,49 @@ fetchData() let activeFilters = []; let currentSort = null; // asc or desc -// reset filters when "All" button is clicked -allBtn.addEventListener("click", () => { - activeFilters = []; // reset filters - applyKitchenFilters(); -}); - -// each cuisine button -filterBtn.forEach(button => { - if (button.id === "all") - return; // skip the "all" button +filterBtn.forEach((button) => { button.addEventListener("click", () => { const cuisine = button.id.toLowerCase(); - if (activeFilters.includes(cuisine)) { - // remove if already selected - activeFilters = activeFilters.filter(c => c !== cuisine); + // when all button is clicked + if (cuisine === "all") { + filterBtn.forEach(btn => btn.classList.remove("active")); + allBtn.classList.add("active"); + + activeFilters = []; // reset filters + + applyKitchenFilters(); // show all recipes + return; + } + + // other filter buttons + if (button.classList.contains("active")) { + button.classList.remove("active"); + activeFilters = activeFilters.filter(item => item !== cuisine); } else { - // add filter + button.classList.add("active"); activeFilters.push(cuisine); } + const anyActive = Array.from(filterBtn).some( + btn => btn.id !== "all" && btn.classList.contains("active") + ); + + // remove active from all if there are other active filter buttons + if (anyActive) { + allBtn.classList.remove("active"); + } else { + // all becomes active when no other active filters + allBtn.classList.add("active"); + activeFilters = []; //reset filters + } + applyKitchenFilters(); }); }); // sort buttons - descBtn.addEventListener("click", () => { currentSort = "desc"; applyKitchenFilters(); @@ -343,6 +214,14 @@ ascBtn.addEventListener("click", () => { applyKitchenFilters(); }) +// only one button can be selected +sortBtn.forEach(sortButton => { + sortButton.addEventListener("click", () => { + sortBtn.forEach(btn => btn.classList.remove("active")); + sortButton.classList.add("active"); + }); +}); + // main function : filter + sort const applyKitchenFilters = () => { @@ -377,70 +256,17 @@ const applyKitchenFilters = () => { // pick a random recipe //=============================== +// change the color when clicked +randomBtn.addEventListener("click", () => { + randomBtn.classList.toggle("active"); +}) + randomBtn.addEventListener("click", () => { const randomIndex = Math.floor(Math.random() * recipes.length); const randomRecipe = recipes[randomIndex]; displayRecipes([randomRecipe]) }) -//=============================== -// like button -//=============================== - -const likeButtons = document.querySelectorAll(".like-button"); - -// change the color of the button -likeButtons.forEach(button => { - button.addEventListener("click", () => { - button.classList.toggle("liked"); - }); -}); - -// save favorite recipes -let favorites = JSON.parse(localStorage.getItem("favorites")) || []; - -function attachLikeEvents() { - const likeButtons = document.querySelectorAll(".like-button"); - - likeButtons.forEach(button => { - button.addEventListener("click", () => { - const card = button.closest(".recipe-card"); - const recipeID = card.dataset.id; - - if (favorites.includes(recipeId)) { - // remove recipe if it is already liked - favorites = favorites.filter(id => id !== recipeId); - button.classList.remove("liked"); - } else { - // otherwise add recipe - favorites.push(recipeId); - button.classList.add("liked"); - } - - // save recipes - localStorage.setItem("favorites", JSON.stringify(favorites)); - }); - }); -} - -//=============================== -// show favorite recipes -//=============================== - -const favoriteBtn = document.querySelector(".favorites") - -favoriteBtn.addEventListener("click", () => { - const favRecipes = recipes.filter(recipe => - favorites.includes(recipe.id.toString()) - ); - - if (favRecipes.length >0) { - displayRecipes(favRecipes); - } else { - container.innerHTML = `

No favorite recipes yet

`; - } -}); - //=============================== // search recipes @@ -479,114 +305,3 @@ const filterSearchResults = () => { searchInput.addEventListener("input", filterSearchResults); - - - - - - - - - - - - - - - - -// //=============================== -// // filter recipes -// //=============================== - -// // save the selected filter here -// let activeFilters = [] - -// // show all recipes when "all" button is clicked -// allBtn.addEventListener("click", () => { -// activeFilters = []; //reset filters -// displayRecipes(recipes); -// }); - -// // -// filterBtn.forEach(button => { -// if (button.id === "all")return; // ignore the rest of the functions is "all" is clicked - -// button.addEventListener("click", () => { -// const cuisine = button.id; - -// if (activeFilters.includes(cuisine)) { -// // remove recipes if they are already displayed -// activeFilters = activeFilters.filter(country => country !== cuisine); -// } else { -// // add the filtered recipes -// activeFilters.push(cuisine); -// } - -// applyFilters(); -// }); -// }); - -// const applyFilters = () => { -// // if there are no active filters, then show all recipes -// if (activeFilters.length === 0) { -// displayRecipes(recipes); -// return; -// } - -// const filtered = recipe.filter(recipe => -// activeFilters.includes(recipe.cuisines.toLowerCase()) -// ); - -// // if there are active recipes, show the recipes. otherwise show the text -// if (filtered.length > 0) { -// displayRecipes(filtered); -// } else { -// container.innerHTML = `

No results

`; -// } -// } - - -// //=============================== -// // sort recipes (sort by time) -// //=============================== - -// descBtn.addEventListener("click", () => { -// currentSort = "desc"; -// applyKitchenFilters(); -// }) - -// ascBtn.addEventListener("click", () => { -// currentSort = "asc"; -// applyKitchenFilters(); -// }) - -// // filter + sort function -// const applyKitchenFilters = () => { -// let filtered = []; // make an empty box - -// if (activeFilters.length === 0) { -// // if no active filter, make a copy of recipes list -// filtered = [...recipes]; -// } else { -// // if filters are active, pick up the recipes -// filtered = recipes.filter(recipe => -// activeFilters.includes(recipe.cuisine.toLowerCase()) -// ); -// } - -// // sort filtered recipes -// if (currentSort === "desc") { -// filtered.sort((a,b) => b.readyInMinutes - a.readyInMinutes); -// } else { -// filtered.sort((a,b) => a.readyInMinutes - b.readyInMinutes); -// } - -// // display recipes -// if (filtered.length > 0) { -// displayRecipes(filtered); -// } else { -// container.innerHTML = `

No results

`; -// } -// }; - From 43d5cec9ae9309f0afab5395cce85f13aabc835d Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 9 Oct 2025 16:05:50 +0200 Subject: [PATCH 14/22] fix bug --- index.html | 1 - script.js | 105 ++++++++++++++++++++++++++++++++++++----------------- style.css | 6 +-- 3 files changed, 74 insertions(+), 38 deletions(-) diff --git a/index.html b/index.html index 4293c1704..97a8add1a 100644 --- a/index.html +++ b/index.html @@ -74,7 +74,6 @@

Try Random Recipe

Loading... -

No results

diff --git a/script.js b/script.js index f0c35a35f..11428df91 100644 --- a/script.js +++ b/script.js @@ -1,4 +1,4 @@ -// const URL = "https://api.spoonacular.com/recipes/random?number=10&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=italian,american,chinese,european,mexican"; +const URL = "https://api.spoonacular.com/recipes/random?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd"; const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") @@ -17,7 +17,7 @@ allBtn.classList.add("active") //default select // like button //=============================== -// save favorite recipes +// save favorite recipes in localStorage let favorites = JSON.parse(localStorage.getItem("favorites")) || []; const attachLikeEvents =() => { @@ -36,12 +36,12 @@ const attachLikeEvents =() => { favorites = favorites.filter(fav => String(fav.id) !== recipeId); button.classList.remove("liked"); } else { - // otherwise add recipe + // otherwise add recipe to my favorites favorites.push(recipe); button.classList.add("liked"); } - // save recipes + // save recipes in localStorage localStorage.setItem("favorites", JSON.stringify(favorites)); }); }); @@ -59,7 +59,7 @@ favoriteBtn.addEventListener("click", () => { if (favorites.length > 0) { displayRecipes(favorites); } else { - container.innerHTML = `

No favorite recipes yet❤️

`; + container.innerHTML = `

No favorite recipes yet ❤️

`; } }); @@ -111,45 +111,82 @@ const displayRecipes = (recipeArray) => { // fetch recipes //=============================== -// let recipes = []; +let recipes = []; -// const fetchData = async () => { -// try { -// const response = await fetch(URL); -// const data = await response.json(); -// console.log("API response:", data); - -// if (data.recipes && Array.isArray(data.recipes)) { -// recipes = data.recipes; -// displayRecipes(data.recipes); -// } else { -// container.innerHTML = "

No recipes found. Check your API key or quota.

"; -// } -// } catch (error) { -// console.error("Error fetching data:", error); -// container.innerHTML = "

Failed to load recipes. Please try again later.

"; -// } -// }; - -// ------------import backup data----------------------------------------- +const fetchData = async () => { + try { + // fetch the data + const response = await fetch(URL); + + // check the status + if (!response.ok) { + // show 402/403/429 when it hits the limit + if (response.status === 402 || response.status === 403 || response.status === 429) { + showApiLimitMessage(); + return; + } -// Global backup data variable -import { backupRecipes } from "./backup.js" + // other errors treated as normal errors + throw new Error(`HTTP error! Status: ${response.status}`); + } -// Global backup data variable -console.log("backup data loaded", backupRecipes); + // convert to JSON + const data = await response.json(); + console.log("API response:", data); -let recipes = []; + // check the data is entered correctly + if (data.recipes && Array.isArray(data.recipes)) { + recipes = data.recipes; + displayRecipes(data.recipes); + } else { + container.innerHTML = "

No recipes found. Check your API key or quota.

"; + } -const fetchData = async () => { - try { - recipes = backupRecipes.recipes; - displayRecipes(recipes); } catch (error) { console.error("Error fetching data:", error); + showErrorMessage(); } }; +// API error message +const showApiLimitMessage = () => { + container.innerHTML = ` +

+ ⚠️ API limit reached for today.
+ Please try again tomorrow. +

+ `; +}; + +// normal error message +const showErrorMessage = () => { + container.innerHTML = ` +

+ Something went wrong while fetching recipes.
+ Please try again later. +

+ `; +}; + +// ------------import backup data----------------------------------------- + +// // Global backup data variable +// import { backupRecipes } from "./backup.js" + +// // Global backup data variable +// console.log("backup data loaded", backupRecipes); + +// let recipes = []; + +// const fetchData = async () => { +// try { +// recipes = backupRecipes.recipes; +// displayRecipes(recipes); +// } catch (error) { +// console.error("Error fetching data:", error); +// } +// }; + fetchData(); diff --git a/style.css b/style.css index f35c3e8a3..01194d593 100644 --- a/style.css +++ b/style.css @@ -33,7 +33,6 @@ p { } img { - /* width: 268px; */ width: 100%; height: 200px; border-radius: 12px; @@ -54,7 +53,7 @@ a { } /* ====================================== -favorite recipes +favorite recipes button ======================================= */ .favorites { @@ -214,7 +213,7 @@ style for recipe cards #recipe-container { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); - gap: 20px; + gap: 10px; margin-bottom: 50px; } @@ -252,6 +251,7 @@ style for recipe cards .view-recipe-button { background-color: #ff6589; + font-size: large; border: none; border-radius: 10px; width: 100%; From 0087c9a256f90de247c873ab6618183dcdd0edd1 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 9 Oct 2025 17:29:02 +0200 Subject: [PATCH 15/22] fix search function --- index.html | 1 + script.js | 9 +++++---- style.css | 7 +++++++ 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index 97a8add1a..502096fc5 100644 --- a/index.html +++ b/index.html @@ -75,6 +75,7 @@

Try Random Recipe

Loading...
+ diff --git a/script.js b/script.js index 11428df91..e1d6e7558 100644 --- a/script.js +++ b/script.js @@ -186,6 +186,7 @@ const showErrorMessage = () => { // console.error("Error fetching data:", error); // } // }; +//------------------------------------------------------------------------ fetchData(); @@ -260,7 +261,6 @@ sortBtn.forEach(sortButton => { }); // main function : filter + sort - const applyKitchenFilters = () => { let filtered = [...recipes]; // make a copy of all recipes @@ -285,7 +285,7 @@ const applyKitchenFilters = () => { if (filtered.length > 0) { displayRecipes(filtered); } else { - container.innerHTML = `

No results

`; + container.innerHTML = `

No recipes found

`; } }; @@ -310,7 +310,7 @@ randomBtn.addEventListener("click", () => { //=============================== const searchInput = document.getElementById("text-input"); -const searchTargets = document.querySelectorAll('.recipe-card'); + const noResultsMessage = document.getElementById("no-results"); // show and hide search results @@ -320,6 +320,7 @@ const hideSearchResult = (target) => target.style.display = "none"; // filter search results by keyword const filterSearchResults = () => { const keyword = searchInput.value.trim().toLowerCase(); + const searchTargets = document.querySelectorAll('.recipe-card'); let matchFound = false; searchTargets.forEach((target) => { @@ -333,7 +334,7 @@ const filterSearchResults = () => { }); // show no results message if no hits - if (!matchFound) { + if (!matchFound && keyword.length > 0) { noResultsMessage.style.display = "block"; } else { noResultsMessage.style.display = "none"; diff --git a/style.css b/style.css index 01194d593..2ba5cd188 100644 --- a/style.css +++ b/style.css @@ -295,6 +295,13 @@ style for recipe cards color: #555; } +#no-results { + text-align: center; + margin-top: 100px; + font-size: 2rem; + color: #555; +} + /* ====================================== responsive design ======================================= */ From d1d11c71581ef18b833fd43819f24e9c08f4656b Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 9 Oct 2025 17:47:36 +0200 Subject: [PATCH 16/22] fix search function --- script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script.js b/script.js index e1d6e7558..39727365a 100644 --- a/script.js +++ b/script.js @@ -138,6 +138,7 @@ const fetchData = async () => { if (data.recipes && Array.isArray(data.recipes)) { recipes = data.recipes; displayRecipes(data.recipes); + searchInput.addEventListener("input", filterSearchResults); // enable search after data is loaded } else { container.innerHTML = "

No recipes found. Check your API key or quota.

"; } @@ -310,7 +311,6 @@ randomBtn.addEventListener("click", () => { //=============================== const searchInput = document.getElementById("text-input"); - const noResultsMessage = document.getElementById("no-results"); // show and hide search results From 55e46a677555b6847f0b6583905c3793a2484fe7 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 9 Oct 2025 17:52:44 +0200 Subject: [PATCH 17/22] add README --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 58f1a8a66..657c63242 100644 --- a/README.md +++ b/README.md @@ -1 +1,3 @@ # js-project-recipe-library + +https://asakos-recipe-library.netlify.app/ \ No newline at end of file From 0a96a17a93c2cf38b12ed5956c6da72e6f851690 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Fri, 10 Oct 2025 10:58:37 +0200 Subject: [PATCH 18/22] change api to complexSearch --- .DS_Store | Bin 6148 -> 6148 bytes image/chicken.jpg | Bin 57808 -> 0 bytes image/deep fry.jpg | Bin 66317 -> 0 bytes image/fish.jpg | Bin 47240 -> 0 bytes image/focaccia.jpg | Bin 59587 -> 0 bytes index.html | 7 ++----- script.js | 34 ++++++++++++++++------------------ 7 files changed, 18 insertions(+), 23 deletions(-) delete mode 100644 image/chicken.jpg delete mode 100644 image/deep fry.jpg delete mode 100644 image/fish.jpg delete mode 100644 image/focaccia.jpg diff --git a/.DS_Store b/.DS_Store index 98cd95593b2d4b9adae61e6bf8202d18653722b8..9ef2be26a6e9f7ab8917f84a41312c966da3058b 100644 GIT binary patch delta 14 VcmZoMXffFEg^7`2^H(N*Q2;3o1l|Au delta 14 VcmZoMXffFEg^7`I^H(N*Q2;3u1m6Gv diff --git a/image/chicken.jpg b/image/chicken.jpg deleted file mode 100644 index b62be9d36343807d8d5304b348224b2ec17006b2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 57808 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

t>)1s^0*=#ay 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 diff --git a/image/deep fry.jpg b/image/deep fry.jpg deleted file mode 100644 index f36b64a4cb4389dd70e9728cc710b9466cf3e55d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66317 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 N*!De!jnf>z|Jm4N7qtKY diff --git a/image/fish.jpg b/image/fish.jpg deleted file mode 100644 index 2265ea3f6aa1bc6e754bd04fc70e9c5df5a84652..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 47240 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≧p80L5RX;Pz<^2FGmv>YTMsY3`6Zt+#~dsP)SM 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%0Aao9&57{Oh^tUu90c>)j&PSJAW^oi^Xe zTGi)StOYw5LSS%AN{m1x<^ZXuqTw{p5xO8j=en;IXB4Of%z3!vxqiFjS5<44%X05t zxM?7HcJ@~5SW10XO!J=Ahr7OUZ=0LcyKv)&dX%-wjQgCL^&W-x8S1@C{R60-(X>$D zP+CRG*91fqr);Kk-}3L&^w0f2x*f|lm9F);E~Elh!T6db_V1mOlD{Dn)DxrA7?#(U3ItKwOcHO45&sugb#nty;0$3 z*+0S`4ibe}xV!s>{wJSMQCB&RAZELskD_S0N>JUMssd6u@7}7^)jD?&%mtxILD;Yv zM|pDp01Lba(z;QUDORaU#?Yk{iBw~n?Uouvm6{UUY@{V4;rM;2OuUV-l$loti4`F$ z*||Wc*YQ*=U~14OkWT=Hz$XzHoYSc&NdUxVbL~*ob!^&U>!!xwNF`!_y+^v$?3$2o zn85r#XvGnDV7fu2*jJ>WrWzn0PijJ+0~-h?N3B)0eQ34<+i^}#VF*&E@*dGg{-B_c zyL~q83D}g7Vpd?( zMCy#VnQh?kCq7Dde`x0A}g)=^atU(}?JAeInp}7r> z$sz>(epKyEo%cVR@B99Pn5|7!Q9+QzsJ4pQn*)MMKGWs)`3^r;{_Q#yKzV^0H!S z56?K<%*6m;LK1xC_M|6;u)QpM>YgS}9mOH+iupH@8?8bI{0|VZ>Z{HnKz0#@L1BP> zVGYo;TkuiSqd$~INm1Hr9rJyDA}-M=^~m{s`zJ@G>BGwtS0bwNn7Roi}cEvxB9|Db?iMRZqM?s$hWWxw_qo2bekGjdjp+>py3lhxCz`grMmOby@Lis)g5!dS2r{TDWA)YxQBA+OXhjEa+l#=4k zMjM50KLLk;Lb>mp-eUOkSU)WGHz~ITAxt9@4z1Z4{o&+=+ng-co5=Re{aK59@ja`e2H>Pwu*rJqY z*GW0yDRyObiFz_@pAEpk#<(a$M7??>sG9;bQ3#|gjRp@a7i#ceS*_FNvK&7*lVbl7 zyreUws~`MaYb&>c6a-7B{xj~UkPw!r0DyhLIhNNVInxK3Y()#Jr2rT3NAs}0bF=bY z{kGy+aja^_OIiXx;`eYiyEo+uC%3^*aU>H=vglu~R?(5Yj<)?0wlQ>3n z1BU7os!8se6@uuTuv;{7ED={V-@#uS-xpDMF~)_%q0<3jf`#v0W`I52 zhuXPMO+^(udN@RV{?aSAe=1y0Sr_xr?8h=G3`r>4<#z*d$}Il+(=UJLoG#wNL}Ibp zq1m*Xs?8-bWh|+YB`QL2VM@3@Me1Bq6^P9zj}`5BPl}cS)JHp=X2KJv`v!cdADcc* z_nT2JEnQ6!kK8i*l~2onkisz}gTvDR$e}?RLuC@-U_uc7aHI^>F7{Jfmp?Ii9UAgh zPeI*5Jc>>9-#AA)5j3Df*mY@gc0rzfJ)ubwmIR3fcNfu$qFsil7#ql;|Wn}95# z;|Z%&t<0=jD*2nFs~{z#;t-=Z{F`LOy`Cw0(=avdop0atb$rH zb~-_ZHLjuvY7xv6zV4B6Y$=qQO*C#tQ&$jy)E4Dye)}yNOrS`iEgVUpTun{1xCwef zO7KLg;(Ta<>(S`T4yfn-1+0|N_xJfG%Un7~j+M!7t%-(;QNpCkpFl&Ak_@Nb`42Nt zZXUdhOY6AwM6!S(;iZN5zQj|iwFh4nE&pi+h{m*PO?_$oqTf0S{#eF%$P4mUsSYvT zp*XoDy*KHNAKSY&Ul`9nZg!Nbyz2jmWjmSWS$XX-HTgiRR0vp}#JoJ!@Ej>|vvjlA zt{*GTM{e}{9b&dBi%NQqRf=XpYT8et{#hS;C!EI)y-5tXe3Q`t;gZE}4-}4uH*Da@ zBN_0AB2fwYx7|z2@GoEI=L!C3IkcWKv7So)cK6e7#nkF>5FJaH+lqdZ*M8R=hOO>y z8(VmwiCg|K5J$5&So`~^ffk33^#nkmLPCl;Zm(V@KI-ATe=R@MTCAPRfZk3A(?o9p z67`D|Q6iX3RezB=sebztZrM+s1W4QcuB5-O-ZCp3x?oeNHQB@AVGB&QvI*;0NTqUM zQ&rRw)&sAS@h8RhF8X_Ti*b?!^Ud!F)khqAm+>p!u+2#KzvXekO`uqB13=F+0TS59VodnMB5TTI?U= zY%o>{a;*ipB%H}PQ%>T4oDVRjH2KpFAL0A;vyNT>{Gw0VjwPH0w2_!k3lc%yEgFW!>foKM10Bz!kc>$1!<4`*kn@gW8o!Y z!dg&%x*h&@ZPnI*I%!&5x4|L1aKD;Ls7){|jIF&BK6ep(5Y6 z$C!b*#CU|A&>tTy7T=M0Cwtmq2*+Dx7EapK!s=VL(Xw&(^+W>(1ccFGte>kIX^E}M zN5QD~D?<4;SuSZ3RwZ1gV=YAZ(5yXFVvT0Qp+FQQ@+bLQ)ZuFqgNs~KJShJ~-7eHc zn~a;H1N3LToeE2(a43^2;{>Kf7FtS6r?Zsa1Fbr9&~)S1ZC9j2n<#BpZt@y1E0!PV zF_sCct=atQOv3^C0+wCrEi)9Z2PY3lo5p0J7P$-DR8{pemIqOo?6c5G(~J@d|5(55 zKIwxzaCg+!6A_qz<(vC?SYPUmbweR>hx?L)Vm zZ=CybG)2+YKniN1SlR%JeS(AF);Fo0$90#C8GLnt>2!sKS5Sqh>lGr=&nIT5J&w>eNmM`<2zJ0$FC}Kf&C9ldQY%E%l3n{gL^xRCz$E0T3 z6?6yH1?C<`hridTQB=jY^%<&MHKt2P%oK1^wPzei<_QLrN?N;FrW!V5;p&``VI!Q& z{5L-xU#oLiaLt!o-d&*9MRw8~K0JD`@`)vU^t<5kzu{~7cJq3Usp54dVD^QtV?Bmu z7MB^D-ezIZwGTXnMSFLUzf{B)3uG=o9Su?E=8I~y!UF~18aHCt3_S;Ta{eU8KX#F9 z-xvJ(Gmxm@?63)*C)LYF{JVWTbYpqZ$hQYdHvEXd@uofeG|^cnxZod?m(iaqR~~R` zym$7^r(Gz8Ws8C*;{HZmO^)^41aouN)T7g8>3>Ay?9=9gJdNZ3(yzZjl>u7>Xj3j~IJ?rw5S~Fy!=7kXjUy(DM7XvapDiibiT;s0!t>HF8j zUcYvSQESsoWu33LUmI6(^Ln)9!6lGIb68@dfuC#g3>zE5OC+he3Zzp?-Qblf2ZTa7o zNk!(_$BuyYmb`;jMfwpr+0a@zYX50RWr9i@faW~D}^6TGqEftGPEI^Cb zZZ3e5y(UQ?rSfNXlAKCI;xQamhNt`krO0LV_}lAGOQ|Us;MTXpEv_b!)+||SbMPG; zv~iLKqo#7Qb1ZGR>syz?{q@b{>RY&n_=P5pMl+8*701^Gj&3Hzl{9i11A`Egf+y_rcj zTUyJ3vP7*9v^x3tgKRqOxQ>Y7VLMyCIz0D{KQ-o*`av4Dj@CC%3-qBRKB@rdYcv&M zKc`X|5EF$(oLy8j9#*tEbrbuJMc7bM3`OCXUhO8oIH~;TW^}r!LtL~|o?*@=lzve; z+Hkm~7WMRWG+#Lux(JW0=8mpYF+8+Rt@^mABs8%jUnzl}WzdXdbJW}zFFqygIW6{e z*l@>?Y^HBJK6}Tf6zDhhA##vK7oE1GyBs0uUU-}tmm{j(Sn69fFNbIDN`JBYQ;+C4n5=0(U;QjPZVPlT$FlydZk&B<`t;|(M0nx8us>!-Q^Ien@*0|Znq)>JS_ zTfTW?RRvbr9LxA{@56^9s$H}3%ZQ!V6VLpbt7QFtLsH??l3n=5p^lj{*?`FpCFlp;I$q1-?W2J>ShS!Y7eCK--YDXBstEa|NJ4 zZew}9U8%Vi^l<12zx>Zjjc;KlQ-;vRV9S;k*h2=3sH3V&CU^V7SH@)6nrHN7u$bVp z^PIw6#rblubAb!~0P?H(%w);{;$Xn4^y?+0J4G6&sU-ou3)U@b9EIujhO!&;I*`Cw za>>4`8&NTK_(Vdrz&o-nFX(9{kH|boWJkc$LHO|@+lN?N8FdP!nF>S}FitJ3q8ZoND7Xbynu$;iL3%P^()XzurciJ#i!%R(dpETQ@b zVG!3%Jr4;np#jUFV*BeS$!?j>!3~c$n_g$ka;urb&+XqoT9%|e>~SZ%tnMVQ_kHeB zK7Nr@MM}(?f6;JX`A{%cu3dGuOaiu`oD#zZiuz^vjMMZW;M0Hw=?PcUOEZa+gquZL zTUUY&RLjwQhRr7`gz{11Y^H1 z{MW_C_TBnV!Y&Tl2TCHg*opPVr=-D%9YL`ommlX*F5i?Nf9KV3zC4gpMv1L2UjI5| z5&?+3VD>pSo$n(DZ;Xa@gHF3Xk-T&p$$ke+cPTuH4%BG5@M7_if^IlbONCq)s={ z1H$Fqlht2J=+j*@{->@&%ZJv;(b9im?rUz|wd{YrtjS4(oXXQJ74;G2&wu>~*wKH= z-U3h4cysK;MIHm)x%+dsrDG-7z2us;DkRaWS*D9#nv`Q=z6z@=mmXB@R-cf5Nq|1J|>Hh#FQ*9xt2lSt;BRyHk>sM2Ivh}MG z-ALW$%1(l`0>cCQ}j3XJnycj$Q&plb&+79FjZ1juq8BpPJGdNf$01GvWSf5@%kyp|PWO@*^wQANTqusl9(TT&qGx&E4lJrzGXjXhR4a(>Ps% zQ4b{mkE4tk3r{1cAm9QClxZ1*pBN>s6P*{(A_E<*-kuT?={|RPCo4lu7mOG%WPz1a zz|`Fv3b!IxSaCwBe<_m^=ImQXQ6j?RObZ4V)}c=`9|>dQl;rf;lCi~H;GD#OQ~zSfj2`_Yf48P)mu_;YkP zW_-tV&e-epQb^$jJK$ts&$xy}BBfi;%M|J6e=KMz|Lx@&c+J=29D{z*fCfd~g(}{{ zJ6yk&b@!jxvaD`Ef9OK8(K6w2lTB&K;y#NoLkb8^V_;!Hs7~>~=sn&MAzS^wo>sm# zE|W}ms!R;~LXTWC6mDTr3Uim4%3o|zMK{WVsT8{p!fh@$=cNP1n;+8Yvl%OQ+Y&94 zY(C@<&<8>QFpwmGKmV?Kpbr^uymXE3Ay5_7cl%iULoVqC@3rqqU`?IrxO?kAz3j@- z(N=+I%5Y!JajF1p_KxsePDDOurML8otHBZ?Esv6uMu}7D3Il6jD~xU18Stf)Ey{ZQ zQS`5i$)nGv{=cdiUN+HgwFm%1M-gQT2w%f$-0O}Pz~vlcA7SWvo79pSrKP&lJ=GG> zL@Zb>K^T0vtrakBFnWe=#D)TuwM8o(*2Vh-PJI2Z%@s>L<@f4hw) z`8Ekh-dS{b90$bcFaa)DtdYQhQ;%hkqF=`8ehi4XtIe+XLXR;emca~(qbQww0`03- zo+>tH$m1W(*J_PASVD#@M}7d>-@~Xttvi#`si&Ba?;=0%X2 zOfVrihNpz%pDy;lGt#l6+<@kPJ+%5#lOU9P(-1Lw^IdBVzws7|-XZ+A?{o<3h zEXqcEQsJi$ud|dgewo-}mdM3}#-_6|T@Om$Gn92gZ(+((nyI}++pR#d#1hlAGWb0d z+ueg>e8ZpSO1-qGebu{P`NvCk2AUO!?PDd~9zh7Nfl7R>Ei4es`Ql*Xs7!c$260PF zKuf5AAtJ@7AZUH;$zU4m>yAjS!f#hF%LMPwjymq~`iyU7lApzXr<{00NKXcq(e$2m1mx1*T!w$Ie?3Hjbl+pDV)}d+d4t9!a6Tt1AOnu9LZv* z;$T$leuHF=g^y((GlFN@py*Jei7>R}o+ZSJhmX-_jGFnrw zg?K~SDO5%7IfEk-id)?GBuaKNv`2$)s<56&i|>B+U+&MB)2H%ZlMO(pl9Sm8*d70AEypnZVto7;%ZzC#e_jj4Tgqc)WSh89%xxk>kq# z>UmyMbkwrn-6pS7g7|Cv)w5CtK+F%KTqAjH+Tsy$9Y8{wAe_FrJyjPrzi>XQCjfCY8!q4|Cnon+4 zqpg}IEyT=)yG3Iz+NNw4OU6Z=rauxbOZ1l5eGfl$q!VMC?X=H*zSuI-ne#f(RsH3s$ajXYvt@pE8Vj^ zV_5V9_F$-V+AHG`a;h8~YHS7be@*P+(iIckzvV0AQ)dz*2I^JDD3!f53UbJUT^98K zOMN?}!Yamhr>^fn;c)|0Inwj5jM`r=i%Kii3I1xMrE)ZXYnqk9FK^yx!SkuX;=TJu zxdUQ?H;#7OP;kmcP2=_Nv!v1N>R2Jy_z_|Ap&H5<-ZxHVm;J3eNBtoBuO_+Tb%Uwx z_tKfjamgAd8&8extnKd$ZI~5V!nEp!}e-YVx)ptZpvi9)Q zFD?dqrqc_p8DyH|ucmV@gOWG?mXofbFL_aNomdVg{r(xjwm+*`)D4k z3tE0H0gP3S&ae1e#1z&JonA2b{N$N{y2JB-SE>4$3yo+E7pS^nFV6NE8-%7bM)Pj_ zE_@m@&y26oko*acp9?d9A7pgJdo49b6E&H7m0I@nUy)&UdBx*!tcuX4QSS4`0~XVu z!-op4RW@mML&*%oJMTTB2s4Fu>q|J$awmOmMlEg!qaTVWn^}Ax@X01NI=bpb^`;T# zt|u2=`J2=(@Mv+CUS+3{$~k!iB|8^9Fv;2PHc}P>_R;1GY9D_Q7aHbJB`g#^Z zldE+n$TbsooN_i0ZX9<6Mzz0MUQgxESN!CVF(`?ZWaF6VH%F-=*?h6EAG%GS+FI0q zW6LE?H9c+?fS8TVrfq~hgJQOCy*`u)db}H^Ge<`bNQ4mDExxsj70;Av|GFlfTPL`D z)&Uo7?3CL(o06QFygkh7e{|c?%AZI7!LWyNdA|ft&K{r#Raw2wjN%i^!Qzg`{N2R#WxhGEuo)#vpF5RM2a zim;Zka|doM!NB_GoHso6Y%8Q#Vqz zNtgouuX-e_Yuo}|^djkeGL!NV0{72O$N4kIXK|?C+-TWtZH0-GGLa<<>fwRdI}gN? zmF={9ty;C2cPq19O}8Wk5s}LwoDUf*Hpw+ptbn$$V)R2B?b#3P6QajTf zLRFD2Yh9$ma`yPvt!S6cB(Kpmv`3z&USo*VyTAVT;q{G%`Kya`>h+vvl67U`)B+$n zVKhDeqoXlBS$*P-9)&sXvoZR3{;weE&e|qJf{|Hy1~2p)#WjWK(m$7O^*j-Afk_C&jn1?YAiH6cS6b1#wdhn9(HGwf^&Y`z5cak=vyaNVf~uvk zq9BTd*W;Y`L4ZVpTcaLaLOG>ABxwTb`o*ef#o$7en+hQm+EX7I87YVNe zMsO!b&AQ6v+{H|jzf1i!Ea{H*5G7%s_$HgVSwIG|5u7HH~&}1y(+l_&s z8FmUd8=aiU)3Zs#cCoLF0INV=*89ruRhKqzsXo+MjQ`nfr~h%n^vnA4tdM;j9(=O# z52JP|i*D=yWrO?*3)d{g+>ak^ez)l|+K|Dewg|1MjO?2P%_$8|mv?ob)9HcT1HWN1 z2vtFS3*EnJJ^}Vi8v{JkE@-MDPKo!!e$0x`?6Ztxu^C?X#`j^SI)^7j`WC+-y{15N z0o-;;`uroP83=*esqBg<>}z%*`Rb8%e2Wt*&kQO?H!>)dS)9$e`cIdPqjEq%rp+TTfl<#!f zj9r8<9H;zvc#>_#k#c4EV1SZ+Vce@aHH1rC9DJ&B$ECEV=fr4n4$gzm4Xh(ojCIv> z1Z54~%5z)OLMpr)i?*jIbKQ$+wuI>#@fiA_Utvn-Zfs4q|GKa6_byuEo$Yz^I5*4w#=h!Umc*r~}{>q5oK**W`#;liRSF)pt+w+?Ih==IF$ zA1;XAC#%_CJ72WE=aBq}KQ1)*v331bwfRCOcozy}HnwE@VG!^rtLXuwCZj4INF(5= zqS(=qq;KlG$FX}1-8 zP3cWA*KOPKx^k`vpq^0bI6ba@`qRT;ywmnwp;%cEk#X>8h;UDIk^kTHhi53l8<^qqX8;#W4ogs! zdyNFjTx+WSMtbEX-bcw5x3ji|vZVd$O~a%gbO}W+ls&R!Q3D`M{u!T#xH6p$3qPhu zL5~YmMh@I1*Q#5r?4mVnji=YRtTb{pB0Jwq?(Dp-;FxHvVQXOQ`x!UF$+m{CJ~(cR z6?QVsCVCdrOpMT@#84v-_fWhnOD4s^(xjLp!Aopx6Y~`)q_5~4fgf~ePF9iO?CrO31LSvb?8X4;!AE?-#29ryrMSZpG@wCG-YhL z3jX4&5us1YF=_nwGT~wsmjd)kJ>u|a&K$v>S*LQd3Sw0*^g37h`c299_D!8!R|UfF z(WR5$!G}nQ1YY>4+-+oq6_D@%dPgP`8|(F=2P(@$FUBCC;i__yqhb4Y#U6p;5Oj)p zO60SvxBK;slT>DKVLc#vM(&5|4Ka2Kx!xR+?wPBRkYwjB(0QUN46(GKRs&zC+A^dX z^jskTmy$w-(q2@}zs=Rl0da--fP;L1VhJBBYv+1?fDDdzzM1>$dUp7vZeSmWnhJgL z-Z|RyT|hp;BaZ@QX^u%Yl5S#q+$33~KGsQfS98*r1gzqHvobpRIM-#_S{*UBI;_R4 zC?w}OJm5{dBb8r4#ck%}{2|AqboD0btC#8t#tsBTtPe?z%@{e>`nBBO3EIU?C zMdcaxWkUK!eejEW6c?WgCc&G7QV;S41Ts-kr_KXtq^y28X6pEzMw_=EIY6{}bI2k3m3GrE}}{g#pQya{j1&30)c ze}eLSM+K&%-|SrllDKue-PHB-CG~r&pqKL<332X3kWP~cR2=`Y{aoVl)xl;vP3JtL z%vT#5@w8WyjzX(K$5l#usK?gLE8mcr93LkzSH6o;`>bpR(ktEe!LaJj8oUnq1M4Q- ze`9cwcWfU54}MrB9^O7@0R2SAp}Mu9X;5v`jcqk=%^3U8sUgMa(%K5_jf|xzetB0j zn264Un^lDIV0%C*>#_PKyaP$p(#F(5jM1T^rQ^k|(`n5yk$F*@ox}_`3tyH{w}=Yi6joBJv_snWLFKkVG;+FWscJ-b>a;qKZ~jdEB`r=b0| zW_n$2mLBNo>2TORq2?(+gRqmtfq7F6hC|RS(d9F$AVirud%*_cyybK!pII{;1cgo3Nf7 zKxnYOn<<^pp03ogZq`wmrQDa30VWt6%faN}++b0E+&)yF4TW0V(;Sdf`cw!j4-_(N zMnUFgS%to}l)mm+QCslH(WV=5`w_FZp3_DZe1xKmj5pfgU(fdT%Z0(E3PLBRfRD<* zbebc_$Ssuh5)W}m69^fmaB@VP@e&Wlta@d-@o=!!9fq=`-fw*(k{kUK70A!!ayOeu z&?7wOkYVcFFF&|CGNf6|yl786`hEQ{$7h>YB=muIYvhs`+#7~ARA~F(!b;EY7Dh>& z(+P%uDtqWtMq0L3g%w zGFojFXWT2B`o+jbjiGd3<-YF)&8-F#aFl|zYF;lH{V&PXJLqZP?-6`CSuOhHj^yx~ zfQt`Dtj^EV`x|u=8y=Y36zD0RuIZ!gK)xBRH_Qc2WmI~fD%7!@ z-y;*~B`3&)XH$aw{VLCqgKDFe+FMLyQxJ^fZeZD>FgX7WB>v_eVp7~Z1Y(KC&~>oL z@h(?g{Z9O(fNXvAjZM2t6Ngl>Gs^Z1+O$H(LO{C|Mi8^{z6iomVdviL+itEW#DFb>L! z&C9beE*%X1M5FRdSFfsB%?Qlf(aDOOYn{h8t~y^9{Zame2(mN|M@O&QJB98eR{4Y# zEP1J-bRYG0F%5SR{FvPCpTt`ZeG$A5)a4B-$6Z6vOT^N5l3#qv<))pOuVe2d0OSSq zg_k1-zK?<48I803a}f3V+2v1WaS2EA&Z+4?*VrCXq;G6FWN{Q^GHfCe-*8xWTIz}b zK-v)nixmcz{sU@wm9Q??M4~#jN+j%QnVd#6FOLxKtt3mG9PJh8YOwNp;T?fq%q&JO zrt|g(R7;~QgSKL``P&<1P5VS0mzz|I2JGHvZjz0JR2UmMZ{Ti%ZFL_a3mpf(P6tyMAQaaA)Bu9%kHtwKfS{W6P+d-9j~W?Co|Ln%H&Ik(wYN9Ty9b# z1=IQnnCZAa1wv2T(VSyg7)IpsG=4peI zdw{g~*P7P*oOH$F7X}+aw)%B?-Hldw!qM|fGWwtcOXLYvTl)5Z)t}cgNQ{&vqfPs| zck}u@&8Lc(!ITCU-e*^VAnnJBU#E($W~X~=G)-cgK!JQpJa zAr2cfP%BsF`)Felmqi<=S+LVNonEM64>;B#Dmy{MLXuMR725G}qnp)l<WbGJF`N`J337^49;UO3 zkvg@9-{X%ezW?N+&$7giJ-WwZ{uFV2kUS6JqS~Sv5|grUE0_P~tl3bKvv0lYG0~gz z0|2$Uvy9#AozZX;ab~}Hr3J-v_4Z(6seX)SGR8m+2JT1Np7Mr4`U2Ixe&?qJRDStO ze-AD?`fMULrb11XFDiRa&lloLj|NCN2aTofog2p*R5O^tcqzVyq9xZkl9I0TYq8Ed zdZ*DT>hfm};^)eaJO$Jw!Cr{y61x8Y3238r84LClp_3uSmzZ(&8$~k7J#i|QT=L63 zB2u*0P`Ga}jAF{ehqXZmcu4M^3vSKcdLcRx@M<>Fq2H|e0b`TmbPA<4(jn+PLJt2b z?G-tZmbr)wI@V*{z3b?2-tb1v0MtA-hmXYbf6gKg;ih|3HegeL+{pW!4sB*$7=BlE z)xSl$aqD;m`#B5d`r;38O9L)1o&pyI$_u^>myjfRrg4r`VCeZsxB`Z3J!#Aw59Y`c zVWQnLl|A<^^gMlu;?Sl?-Y;-_JG*9;PC9fbvlmLPQ8tmoBIaLr)z01u-VEx|6QKSS znatzuRwqMc9p4I|52S#Tf!T&POI=Ay42~_}bN)HJYaL4A18Vk@3)&DM zpq}04s0*U$$DHit7%PC3dif2T30sw zhdE)6ngwp%ca@Doq~!fEZ}U?MH&>5WtG(pkY_6xxhgx}R@)0{Kaudmj(72^@GUeXU zPO&Jp`=2oax$H0Wy;kQMcb&!fh|rZ#z^gnX5&a1UCXV=y9V7$3;A^gRYVl zKU~^Q4_kU12Zus%NrF`Lri$Wdd>L?M{DX3H``OVM@%7a}djzh7sljZa48~2a0AV67gs|(K+0O{@O4tEPKG^3(AjW!vPbu*6UI$X%erUsX2C0Xz{*xVi28QlTr2~G@lU#jHg_Ep z!H?N)6W-uq&F;2s3swE!Pw`MamhTTnl~Fa&@PSL)gGA?f-;QEM|1*q2uG3rya$bgj z`dh5XzyU1{0pG6B=^Y)H_sE8M>c(~!Fq)<%Dnw4^m#31sYZ!>huV9JQ_Z4+iXQk$^ zG=8$h-xU>Y2RNL?!=bu=vG+t`8L%Ej^|+o^8@6;79EHNG2sg(Q#aP-bHaZGb!-vJ{ zrAz`R=o_ze0ve++kq4SJ;ouQb>83%iTQD!9wWNQAJ3H#J4{v~vR3}1ZE0VrtEzV`& zeE^`ZCOPwlX}soLk-)y&X%J(0CN)@a2-@bC3o?zBkf^MGL$@w;K&<|tw;3F%S-~WF zFYz!E7H)70~WNV{+pUp@2g0-FI-rY{jPefp*zeA zjE8_jjh)OC)Or{=A#+>ctOVcd)x!|fTi?1?11^~QO+7d`ML7ngciWD^NJ;@!jLPJ( zF?XksLE|#4Zo(fI(EzV5iIuOe1JsNjQZ+DeWJ#j2Gj>{%?2!-;&;W3>7@Y?JwE9?8 W;Y`)TN?cIIMq98)U+?@k`~Luz2jnsU diff --git a/image/focaccia.jpg b/image/focaccia.jpg deleted file mode 100644 index 0a05c1819cd38da134ac40707ee0f4cc6ae15062..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59587 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 diff --git a/index.html b/index.html index 502096fc5..6a7477fba 100644 --- a/index.html +++ b/index.html @@ -35,13 +35,10 @@

Filter on kitchen

  • -
  • -
  • +
  • -
  • -
@@ -75,7 +72,7 @@

Try Random Recipe

Loading...
- + diff --git a/script.js b/script.js index 39727365a..2988e8a2a 100644 --- a/script.js +++ b/script.js @@ -1,14 +1,11 @@ -const URL = "https://api.spoonacular.com/recipes/random?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd"; +const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") - const sortBtn = document.querySelectorAll(".sort-btn") const descBtn = document.getElementById("desc") const ascBtn = document.getElementById("asc") - const randomBtn = document.querySelector(".random-btn") - const container = document.getElementById("recipe-container") allBtn.classList.add("active") //default select @@ -27,7 +24,7 @@ const attachLikeEvents =() => { button.addEventListener("click", () => { const card = button.closest(".recipe-card"); const recipeId = String(card.dataset.id); - const recipe = recipes.find(r => String(r.id) === recipeId); + const recipe = results.find(r => String(r.id) === recipeId); if (!recipe) return; @@ -111,7 +108,8 @@ const displayRecipes = (recipeArray) => { // fetch recipes //=============================== -let recipes = []; +// global variable to store all recipes +let results = []; const fetchData = async () => { try { @@ -135,12 +133,12 @@ const fetchData = async () => { console.log("API response:", data); // check the data is entered correctly - if (data.recipes && Array.isArray(data.recipes)) { - recipes = data.recipes; - displayRecipes(data.recipes); + if (data.results && Array.isArray(data.results)) { + results = data.results; + displayRecipes(data.results); searchInput.addEventListener("input", filterSearchResults); // enable search after data is loaded } else { - container.innerHTML = "

No recipes found. Check your API key or quota.

"; + container.innerHTML = `

No recipes found 🥲 Check your API key or quota.

`; } } catch (error) { @@ -152,8 +150,8 @@ const fetchData = async () => { // API error message const showApiLimitMessage = () => { container.innerHTML = ` -

- ⚠️ API limit reached for today.
+

+ ⚠️ API limit reached for today ⚠️
Please try again tomorrow.

`; @@ -162,8 +160,8 @@ const showApiLimitMessage = () => { // normal error message const showErrorMessage = () => { container.innerHTML = ` -

- Something went wrong while fetching recipes.
+

+ Something went wrong while fetching recipes 🥲
Please try again later.

`; @@ -263,7 +261,7 @@ sortBtn.forEach(sortButton => { // main function : filter + sort const applyKitchenFilters = () => { - let filtered = [...recipes]; // make a copy of all recipes + let filtered = [...results]; // make a copy of all recipes //apply filters if (activeFilters.length > 0) { @@ -294,14 +292,14 @@ const applyKitchenFilters = () => { // pick a random recipe //=============================== -// change the color when clicked +// change the color of the button when clicked randomBtn.addEventListener("click", () => { randomBtn.classList.toggle("active"); }) randomBtn.addEventListener("click", () => { - const randomIndex = Math.floor(Math.random() * recipes.length); - const randomRecipe = recipes[randomIndex]; + const randomIndex = Math.floor(Math.random() * results.length); + const randomRecipe = results[randomIndex]; displayRecipes([randomRecipe]) }) From 0da1123f008cb420d8991c18f2eb5e645c535fed Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Fri, 10 Oct 2025 15:23:47 +0200 Subject: [PATCH 19/22] fix bug --- backup.js | 5138 ---------------------------------------------------- index.html | 2 +- script.js | 38 +- 3 files changed, 13 insertions(+), 5165 deletions(-) delete mode 100644 backup.js diff --git a/backup.js b/backup.js deleted file mode 100644 index 8aa720e48..000000000 --- a/backup.js +++ /dev/null @@ -1,5138 +0,0 @@ -//backup recipe data -export const backupRecipes = { - "recipes": [ - { - "id": 663050, - "image": "https://img.spoonacular.com/recipes/663050-556x370.jpg", - "imageType": "jpg", - "title": "Tex-Mex Burger", - "readyInMinutes": 15, - "servings": 4, - "sourceUrl": "https://www.foodista.com/recipe/NSYCCHLT/tex-mex-burger", - "vegetarian": false, - "vegan": false, - "glutenFree": false, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 28, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 2, - "healthScore": 30, - "creditsText": "foodista.com", - "license": null, - "sourceName": "foodista.com", - "pricePerServing": 339.83, - "extendedIngredients": [ - { - "id": 9037, - "aisle": "Produce", - "image": "avocado.jpg", - "consistency": "SOLID", - "name": "avocado", - "nameClean": "avocado", - "original": "1 avocado, thinly sliced", - "originalName": "avocado, thinly sliced", - "amount": 1, - "unit": "", - "meta": [ - "thinly sliced" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 1, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 2009, - "aisle": "Spices and Seasonings", - "image": "chili-powder.jpg", - "consistency": "SOLID", - "name": "chili powder", - "nameClean": "chili powder", - "original": "1 tsp Chili Powder", - "originalName": "Chili Powder", - "amount": 1, - "unit": "tsp", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 11165, - "aisle": "Produce", - "image": "cilantro.png", - "consistency": "SOLID", - "name": "cilantro", - "nameClean": "cilantro", - "original": "¾ cup cilantro, chopped", - "originalName": "cilantro, chopped", - "amount": 0.75, - "unit": "cup", - "meta": [ - "chopped" - ], - "measures": { - "us": { - "amount": 0.75, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 12, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 1002014, - "aisle": "Spices and Seasonings", - "image": "ground-cumin.jpg", - "consistency": "SOLID", - "name": "cumin", - "nameClean": "cumin", - "original": "2 tsp Cumin", - "originalName": "Cumin", - "amount": 2, - "unit": "tsp", - "meta": [], - "measures": { - "us": { - "amount": 2, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 2, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 10023572, - "aisle": "Meat", - "image": "fresh-ground-beef.jpg", - "consistency": "SOLID", - "name": "ground beef", - "nameClean": "ground beef", - "original": "2 lb ground beef", - "originalName": "ground beef", - "amount": 2, - "unit": "lb", - "meta": [], - "measures": { - "us": { - "amount": 2, - "unitShort": "lb", - "unitLong": "pounds" - }, - "metric": { - "amount": 907.185, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 18350, - "aisle": "Bakery/Bread", - "image": "hamburger-bun.jpg", - "consistency": "SOLID", - "name": "hamburger buns", - "nameClean": "hamburger buns", - "original": "4 Hamburger Buns, Toasted", - "originalName": "Hamburger Buns, Toasted", - "amount": 4, - "unit": "", - "meta": [ - "toasted" - ], - "measures": { - "us": { - "amount": 4, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 4, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 2028, - "aisle": "Spices and Seasonings", - "image": "paprika.jpg", - "consistency": "SOLID", - "name": "paprika", - "nameClean": "paprika", - "original": "1 tsp Paprika", - "originalName": "Paprika", - "amount": 1, - "unit": "tsp", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 1002030, - "aisle": "Spices and Seasonings", - "image": "pepper.jpg", - "consistency": "SOLID", - "name": "pepper", - "nameClean": "pepper", - "original": "1 tsp Pepper", - "originalName": "Pepper", - "amount": 1, - "unit": "tsp", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 1025, - "aisle": "Cheese", - "image": "pepper-jack-cheese.jpg", - "consistency": "SOLID", - "name": "pepper jack cheese", - "nameClean": "pepper jack cheese", - "original": "4 Slices Pepper jack Cheese", - "originalName": "Pepper jack Cheese", - "amount": 4, - "unit": "Slices", - "meta": [], - "measures": { - "us": { - "amount": 4, - "unitShort": "slice", - "unitLong": "slices" - }, - "metric": { - "amount": 4, - "unitShort": "slice", - "unitLong": "slices" - } - } - }, - { - "id": 10011282, - "aisle": "Produce", - "image": "red-onion.png", - "consistency": "SOLID", - "name": "onion", - "nameClean": "onion", - "original": "8 thin slices red onion", - "originalName": "thin slices red onion", - "amount": 8, - "unit": "slices", - "meta": [ - "red", - "thin" - ], - "measures": { - "us": { - "amount": 8, - "unitShort": "slice", - "unitLong": "slices" - }, - "metric": { - "amount": 8, - "unitShort": "slice", - "unitLong": "slices" - } - } - }, - { - "id": 6164, - "aisle": "Ethnic Foods", - "image": "salsa.png", - "consistency": "SOLID", - "name": "salsa", - "nameClean": "salsa", - "original": "8 tablespoons salsa", - "originalName": "salsa", - "amount": 8, - "unit": "tablespoons", - "meta": [], - "measures": { - "us": { - "amount": 8, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 8, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 2047, - "aisle": "Spices and Seasonings", - "image": "salt.jpg", - "consistency": "SOLID", - "name": "salt", - "nameClean": "salt", - "original": "1 tsp Salt", - "originalName": "Salt", - "amount": 1, - "unit": "tsp", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - } - ], - "summary": 'Tex-Mex Burger is an American recipe that serves 4. For $3.4 per serving, this recipe covers 36% of your daily requirements of vitamins and minerals. This main course has 884 calories, 51g of protein, and 61g of fat per serving. 2 people were glad they tried this recipe. From preparation to the plate, this recipe takes roughly 15 minutes. It is brought to you by Foodista. A mixture of pepper, chili powder, pepper jack cheese, and a handful of other ingredients are all it takes to make this recipe so delicious. Overall, this recipe earns a solid spoonacular score of 73%. If you like this recipe, take a look at these similar recipes:
Tex-Mex Burger, Tex-Mex burger, and Tex-Mex Turkey Burger.', - "cuisines": [ - "American" - ], - "dishTypes": [ - "lunch", - "main course", - "main dish", - "dinner" - ], - "diets": [], - "occasions": [], - "instructions": "
  1. Preheat broiler.
  2. Heat large frying pan to medium high heat.
  3. Make patties: Take the ground beef, add salsa and spices. Mix together till evenly distributed. Place patties on frying pan and cook for 3 minutes and 30 seconds.
  4. Flip over and place 1 slice of cheese on each patty. Cook for another 3 minutes and 30 seconds. Meanwhile, get out all toppings and toast buns.
  5. Once done, let burger rest for 5 minutes on a plate.
  6. Assemble burger: Place patty on bun. Top with 1 TBSP Salsa, then 2 slices of red onion. Place of the cilantro on red onion and then place avocado on top bun. Add bun to burger and serve.
", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Preheat broiler.", - "ingredients": [], - "equipment": [ - { - "id": 405914, - "name": "broiler", - "localizedName": "broiler", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ] - }, - { - "number": 2, - "step": "Heat large frying pan to medium high heat. Make patties: Take the ground beef, add salsa and spices.", - "ingredients": [ - { - "id": 10023572, - "name": "ground beef", - "localizedName": "ground beef", - "image": "fresh-ground-beef.jpg" - }, - { - "id": 2035, - "name": "spices", - "localizedName": "spices", - "image": "spices.png" - }, - { - "id": 6164, - "name": "salsa", - "localizedName": "salsa", - "image": "salsa.png" - } - ], - "equipment": [ - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ] - }, - { - "number": 3, - "step": "Mix together till evenly distributed.", - "ingredients": [], - "equipment": [] - } - ] - }, - { - "name": "Place patties on frying pan and cook for 3 minutes and 30 seconds.Flip over and place 1 slice of cheese on each patty. Cook for another 3 minutes and 30 seconds. Meanwhile, get out all toppings and toast buns. Once done, let burger rest for 5 minutes on a plate.Assemble burger", - "steps": [ - { - "number": 1, - "step": "Place patty on bun. Top with 1 TBSP Salsa, then 2 slices of red onion.", - "ingredients": [ - { - "id": 10011282, - "name": "red onion", - "localizedName": "red onion", - "image": "red-onion.png" - }, - { - "id": 6164, - "name": "salsa", - "localizedName": "salsa", - "image": "salsa.png" - }, - { - "id": 0, - "name": "roll", - "localizedName": "roll", - "image": "dinner-yeast-rolls.jpg" - } - ], - "equipment": [] - }, - { - "number": 2, - "step": "Place of the cilantro on red onion and then place avocado on top bun.", - "ingredients": [ - { - "id": 10011282, - "name": "red onion", - "localizedName": "red onion", - "image": "red-onion.png" - }, - { - "id": 11165, - "name": "cilantro", - "localizedName": "cilantro", - "image": "cilantro.png" - }, - { - "id": 9037, - "name": "avocado", - "localizedName": "avocado", - "image": "avocado.jpg" - }, - { - "id": 0, - "name": "roll", - "localizedName": "roll", - "image": "dinner-yeast-rolls.jpg" - } - ], - "equipment": [] - }, - { - "number": 3, - "step": "Add bun to burger and serve.", - "ingredients": [ - { - "id": 0, - "name": "roll", - "localizedName": "roll", - "image": "dinner-yeast-rolls.jpg" - } - ], - "equipment": [] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 77.95384216308594, - "spoonacularSourceUrl": "https://spoonacular.com/tex-mex-burger-663050" - }, - { - "id": 658680, - "image": "https://img.spoonacular.com/recipes/658680-556x370.jpg", - "imageType": "jpg", - "title": "Roasted Sweet Potato Salad", - "readyInMinutes": 45, - "servings": 8, - "sourceUrl": "https://www.foodista.com/recipe/675ZY245/roasted-sweet-potato-salad", - "vegetarian": true, - "vegan": true, - "glutenFree": true, - "dairyFree": true, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 3, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 5, - "healthScore": 19, - "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", - "license": "CC BY 3.0", - "sourceName": "Foodista", - "pricePerServing": 109.1, - "extendedIngredients": [ - { - "id": 11507, - "aisle": "Produce", - "image": "sweet-potato.png", - "consistency": "SOLID", - "name": "sweet potatoes", - "nameClean": "sweet potatoes", - "original": "3 pounds sweet potatoes", - "originalName": "sweet potatoes", - "amount": 3, - "unit": "pounds", - "meta": [], - "measures": { - "us": { - "amount": 3, - "unitShort": "lb", - "unitLong": "pounds" - }, - "metric": { - "amount": 1.361, - "unitShort": "kgs", - "unitLong": "kgs" - } - } - }, - { - "id": 1034053, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "olive-oil.jpg", - "consistency": "LIQUID", - "name": "extra virgin olive oil", - "nameClean": "extra virgin olive oil", - "original": "1/4 cup extra virgin olive oil", - "originalName": "extra virgin olive oil", - "amount": 0.25, - "unit": "cup", - "meta": [], - "measures": { - "us": { - "amount": 0.25, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 54, - "unitShort": "ml", - "unitLong": "milliliters" - } - } - }, - { - "id": 99223, - "aisle": "Canned and Jarred", - "image": "canned-chipotle.png", - "consistency": "SOLID", - "name": "chipotle pepper adobo sauce", - "nameClean": "chipotle pepper adobo sauce", - "original": "1 inch chipotle pepper adobo sauce, pureed", - "originalName": "chipotle pepper adobo sauce, pureed", - "amount": 1, - "unit": "inch", - "meta": [ - "pureed" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "inch", - "unitLong": "inch" - }, - "metric": { - "amount": 1, - "unitShort": "inch", - "unitLong": "inch" - } - } - }, - { - "id": 2069, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "balsamic-vinegar.jpg", - "consistency": "LIQUID", - "name": "balsamic vinegar", - "nameClean": "balsamic vinegar", - "original": "1 teaspoon balsamic vinegar", - "originalName": "balsamic vinegar", - "amount": 1, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 2047, - "aisle": "Spices and Seasonings", - "image": "salt.jpg", - "consistency": "SOLID", - "name": "salt", - "nameClean": "salt", - "original": "2 teaspoons salt", - "originalName": "salt", - "amount": 2, - "unit": "teaspoons", - "meta": [], - "measures": { - "us": { - "amount": 2, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 2, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 1002030, - "aisle": "Spices and Seasonings", - "image": "pepper.jpg", - "consistency": "SOLID", - "name": "pepper", - "nameClean": "pepper", - "original": "1/4 teaspoon pepper", - "originalName": "pepper", - "amount": 0.25, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.25, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.25, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 9079, - "aisle": "Produce", - "image": "dried-cranberries.jpg", - "consistency": "SOLID", - "name": "cranberries", - "nameClean": "cranberries", - "original": "cup dried cranberries", - "originalName": "dried cranberries", - "amount": 1, - "unit": "cup", - "meta": [ - "dried" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "cup", - "unitLong": "cup" - }, - "metric": { - "amount": 121.212, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 12142, - "aisle": "Baking", - "image": "pecans.jpg", - "consistency": "SOLID", - "name": "pecans", - "nameClean": "pecans", - "original": "1/2 cup pecans, chopped", - "originalName": "pecans, chopped", - "amount": 0.5, - "unit": "cup", - "meta": [ - "chopped" - ], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 49.5, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 11156, - "aisle": "Produce", - "image": "fresh-chives.jpg", - "consistency": "SOLID", - "name": "chives", - "nameClean": "chives", - "original": "2 tablespoons chopped fresh chives", - "originalName": "chopped fresh chives", - "amount": 2, - "unit": "tablespoons", - "meta": [ - "fresh", - "chopped" - ], - "measures": { - "us": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - } - ], - "summary": 'Roasted Sweet Potato Salad is a gluten free, dairy free, paleolithic, and lacto ovo vegetarian recipe with 8 servings. One portion of this dish contains around 3g of protein, 11g of fat, and a total of 297 calories. For $1.09 per serving, this recipe covers 14% of your daily requirements of vitamins and minerals. 5 people were glad they tried this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It will be a hit at your The Fourth Of July event. Not a lot of people really liked this side dish. This recipe from Foodista requires pecans, extra virgin olive oil, chipotle pepper adobo sauce, and cranberries. All things considered, we decided this recipe deserves a spoonacular score of 66%. This score is good. Try Roasted Sweet Potato Salad, Roasted Sweet Potato Salad, and Roasted Sweet Potato Salad for similar recipes.', - "cuisines": [], - "dishTypes": [ - "side dish" - ], - "diets": [ - "gluten free", - "dairy free", - "paleolithic", - "lacto ovo vegetarian", - "primal", - "vegan" - ], - "occasions": [ - "father's day", - "4th of july", - "summer" - ], - "instructions": "Preheat oven to 400 degrees (convection works best). Peel and cut potatoes into 1 pieces. Toss to coat with 2 tablespoon of olive oil. Arrange in a single layer on two baking sheets Roast for 35 minutes Mix 2 tablespoons oil, pepper puree, vinegar, salt and pepper to make a dressing Combine cranberries, pecans, chives and cooked sweet potatoes in a medium bowl, drizzle with dressing, cover. Refrigerate until chilled.", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Preheat oven to 400 degrees (convection works best).", - "ingredients": [], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ] - }, - { - "number": 2, - "step": "Peel and cut potatoes into 1 pieces.", - "ingredients": [ - { - "id": 11352, - "name": "potato", - "localizedName": "potato", - "image": "potatoes-yukon-gold.png" - } - ], - "equipment": [] - }, - { - "number": 3, - "step": "Toss to coat with 2 tablespoon of olive oil.", - "ingredients": [ - { - "id": 4053, - "name": "olive oil", - "localizedName": "olive oil", - "image": "olive-oil.jpg" - } - ], - "equipment": [] - }, - { - "number": 4, - "step": "Arrange in a single layer on two baking sheets", - "ingredients": [], - "equipment": [ - { - "id": 404727, - "name": "baking sheet", - "localizedName": "baking sheet", - "image": "https://spoonacular.com/cdn/equipment_100x100/baking-sheet.jpg" - } - ] - }, - { - "number": 5, - "step": "Roast for 35 minutes", - "ingredients": [], - "equipment": [] - }, - { - "number": 6, - "step": 'Mix 2 tablespoons oil, pepper puree, vinegar, salt and pepper to make a dressing', - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 2053, - "name": "vinegar", - "localizedName": "vinegar", - "image": "vinegar-(white).jpg" - }, - { - "id": 1002030, - "name": "pepper", - "localizedName": "pepper", - "image": "pepper.jpg" - }, - { - "id": 4582, - "name": "cooking oil", - "localizedName": "cooking oil", - "image": "vegetable-oil.jpg" - } - ], - "equipment": [] - }, - { - "number": 7, - "step": "Combine cranberries, pecans, chives and cooked sweet potatoes in a medium bowl, drizzle with dressing, cover. Refrigerate until chilled.", - "ingredients": [ - { - "id": 11507, - "name": "sweet potato", - "localizedName": "sweet potato", - "image": "sweet-potato.png" - }, - { - "id": 9078, - "name": "cranberries", - "localizedName": "cranberries", - "image": "cranberries.jpg" - }, - { - "id": 11156, - "name": "chives", - "localizedName": "chives", - "image": "fresh-chives.jpg" - }, - { - "id": 12142, - "name": "pecans", - "localizedName": "pecans", - "image": "pecans.jpg" - } - ], - "equipment": [ - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 71.97892761230469, - "spoonacularSourceUrl": "https://spoonacular.com/roasted-sweet-potato-salad-658680" - }, - { - "id": 658024, - "image": "https://img.spoonacular.com/recipes/658024-556x370.jpg", - "imageType": "jpg", - "title": "Minestrone Soup", - "readyInMinutes": 45, - "servings": 8, - "sourceUrl": "https://www.foodista.com/recipe/55CQV2NL/recipe-for-minestrone-soup", - "vegetarian": false, - "vegan": false, - "glutenFree": false, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 10, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 14, - "healthScore": 17, - "creditsText": "foodista.com", - "license": null, - "sourceName": "foodista.com", - "pricePerServing": 203.05, - "extendedIngredients": [ - { - "id": 10123, - "aisle": "Meat", - "image": "raw-bacon.png", - "consistency": "SOLID", - "name": "into strips", - "nameClean": "into strips", - "original": "125gr / 4.5 oz. smoked bacon sliced finely or into thin strips", - "originalName": "4.5 oz. smoked bacon sliced finely or into thin strips", - "amount": 125, - "unit": "gr", - "meta": [ - "smoked", - "sliced", - "finely", - "thin" - ], - "measures": { - "us": { - "amount": 4.409, - "unitShort": "oz", - "unitLong": "ounces" - }, - "metric": { - "amount": 125, - "unitShort": "gr", - "unitLong": "grs" - } - } - }, - { - "id": 16034, - "aisle": "Canned and Jarred", - "image": "kidney-beans.jpg", - "consistency": "SOLID", - "name": "kidney beans", - "nameClean": "kidney beans", - "original": "1 can kidney beans (400gr / 14 oz.) drained and washed", - "originalName": "kidney beans (400gr / 14 oz.) drained and washed", - "amount": 1, - "unit": "can", - "meta": [ - "washed", - "drained", - "(400gr / 14 oz.)" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "can", - "unitLong": "can" - }, - "metric": { - "amount": 1, - "unitShort": "can", - "unitLong": "can" - } - } - }, - { - "id": 10011693, - "aisle": "Canned and Jarred", - "image": "tomatoes-canned.png", - "consistency": "SOLID", - "name": "canned tomatoes", - "nameClean": "canned tomatoes", - "original": "1 can chopped tomatoes (400gr / 14 oz.)", - "originalName": "chopped tomatoes (400gr / 14 oz.)", - "amount": 1, - "unit": "can", - "meta": [ - "chopped", - "(400gr / 14 oz.)" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "can", - "unitLong": "can" - }, - "metric": { - "amount": 1, - "unitShort": "can", - "unitLong": "can" - } - } - }, - { - "id": 11124, - "aisle": "Produce", - "image": "sliced-carrot.png", - "consistency": "SOLID", - "name": "carrots", - "nameClean": "carrots", - "original": "3 carrots, peeled and chopped finely", - "originalName": "carrots, peeled and chopped finely", - "amount": 3, - "unit": "", - "meta": [ - "peeled", - "chopped", - "finely" - ], - "measures": { - "us": { - "amount": 3, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 3, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 11143, - "aisle": "Produce", - "image": "celery.jpg", - "consistency": "SOLID", - "name": "celery", - "nameClean": "celery", - "original": "3 stalks of celery chopped finely", - "originalName": "celery chopped finely", - "amount": 3, - "unit": "stalks", - "meta": [ - "chopped", - "finely" - ], - "measures": { - "us": { - "amount": 3, - "unitShort": "stalks", - "unitLong": "stalks" - }, - "metric": { - "amount": 3, - "unitShort": "stalks", - "unitLong": "stalks" - } - } - }, - { - "id": 1012049, - "aisle": "Produce", - "image": "thyme.jpg", - "consistency": "SOLID", - "name": "thyme leaves", - "nameClean": "thyme leaves", - "original": "1 tbsp of fresh thyme leaves", - "originalName": "fresh thyme leaves", - "amount": 1, - "unit": "tbsp", - "meta": [ - "fresh" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - }, - "metric": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - } - } - }, - { - "id": 11215, - "aisle": "Produce", - "image": "garlic.png", - "consistency": "SOLID", - "name": "garlic", - "nameClean": "garlic", - "original": "3 large cloves of garlic, chopped finely", - "originalName": "garlic, chopped finely", - "amount": 3, - "unit": "large cloves", - "meta": [ - "chopped", - "finely" - ], - "measures": { - "us": { - "amount": 3, - "unitShort": "large cloves", - "unitLong": "large cloves" - }, - "metric": { - "amount": 3, - "unitShort": "large cloves", - "unitLong": "large cloves" - } - } - }, - { - "id": 20499, - "aisle": "Pasta and Rice", - "image": "elbow.jpg", - "consistency": "SOLID", - "name": ".5 oz. macaroni", - "nameClean": ".5 oz. macaroni", - "original": "100gr / 3.5 oz. macaroni", - "originalName": "3.5 oz. macaroni", - "amount": 100, - "unit": "gr", - "meta": [], - "measures": { - "us": { - "amount": 3.527, - "unitShort": "oz", - "unitLong": "ounces" - }, - "metric": { - "amount": 100, - "unitShort": "gr", - "unitLong": "grs" - } - } - }, - { - "id": 4053, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "olive-oil.jpg", - "consistency": "LIQUID", - "name": "olive oil", - "nameClean": "olive oil", - "original": "1 tbsp olive oil", - "originalName": "olive oil", - "amount": 1, - "unit": "tbsp", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - }, - "metric": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - } - } - }, - { - "id": 11282, - "aisle": "Produce", - "image": "brown-onion.png", - "consistency": "SOLID", - "name": "onion", - "nameClean": "onion", - "original": "1 large onion chopped finely", - "originalName": "onion chopped finely", - "amount": 1, - "unit": "large", - "meta": [ - "chopped", - "finely" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "large", - "unitLong": "large" - }, - "metric": { - "amount": 1, - "unitShort": "large", - "unitLong": "large" - } - } - }, - { - "id": 1033, - "aisle": "Cheese", - "image": "parmesan.jpg", - "consistency": "SOLID", - "name": "some parmesan to serve", - "nameClean": "some parmesan to serve", - "original": "Some finely grated parmesan to serve", - "originalName": "Some finely grated parmesan to serve", - "amount": 8, - "unit": "servings", - "meta": [ - "finely grated" - ], - "measures": { - "us": { - "amount": 8, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 8, - "unitShort": "servings", - "unitLong": "servings" - } - } - }, - { - "id": 1102047, - "aisle": "Spices and Seasonings", - "image": "salt-and-pepper.jpg", - "consistency": "SOLID", - "name": "salt and pepper", - "nameClean": "salt and pepper", - "original": "Salt and black pepper to taste", - "originalName": "Salt and black pepper to taste", - "amount": 8, - "unit": "servings", - "meta": [ - "black", - "to taste" - ], - "measures": { - "us": { - "amount": 8, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 8, - "unitShort": "servings", - "unitLong": "servings" - } - } - }, - { - "id": 11114, - "aisle": "Produce", - "image": "savoy-cabbage.jpg", - "consistency": "SOLID", - "name": "savoy cabbage", - "nameClean": "savoy cabbage", - "original": "1/3 of a savoy cabbage, shredded", - "originalName": "savoy cabbage, shredded", - "amount": 0.33333334, - "unit": "", - "meta": [ - "shredded" - ], - "measures": { - "us": { - "amount": 0.33333334, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 0.33333334, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 11547, - "aisle": "Canned and Jarred", - "image": "tomato-paste.jpg", - "consistency": "SOLID", - "name": "tomato purée", - "nameClean": "tomato purée", - "original": "2 tbsp tomato purée", - "originalName": "tomato purée", - "amount": 2, - "unit": "tbsp", - "meta": [], - "measures": { - "us": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 11529, - "aisle": "Produce", - "image": "tomato.png", - "consistency": "SOLID", - "name": "tomatoes into 8ths", - "nameClean": "tomatoes into 8ths", - "original": "2 large tomatoes chopped into 8ths", - "originalName": "tomatoes chopped into 8ths", - "amount": 2, - "unit": "large", - "meta": [ - "chopped" - ], - "measures": { - "us": { - "amount": 2, - "unitShort": "large", - "unitLong": "larges" - }, - "metric": { - "amount": 2, - "unitShort": "large", - "unitLong": "larges" - } - } - }, - { - "id": 6615, - "aisle": "Canned and Jarred", - "image": "chicken-broth.png", - "consistency": "LIQUID", - "name": "vegetable stock", - "nameClean": "vegetable stock", - "original": "1.2 liter / 2.5 pt. UK / 2.1 pt.US chicken or vegetable stock", - "originalName": "2.5 pt. UK / 2.1 pt.US chicken or vegetable stock", - "amount": 1.2, - "unit": "liter", - "meta": [], - "measures": { - "us": { - "amount": 1.255, - "unitShort": "qt", - "unitLong": "quarts" - }, - "metric": { - "amount": 1.2, - "unitShort": "l", - "unitLong": "liters" - } - } - } - ], - "summary": 'You can never have too many main course recipes, so give Minestrone Soup a try. For $2.03 per serving, this recipe covers 23% of your daily requirements of vitamins and minerals. One serving contains 356 calories, 20g of protein, and 16g of fat. This recipe serves 8. It is perfect for Autumn. 14 people have made this recipe and would make it again. It is a reasonably priced recipe for fans of Mediterranean food. Head to the store and pick up vegetable stock, tomatoes into 8ths, salt and pepper, and a few other things to make it today. From preparation to the plate, this recipe takes roughly 45 minutes. It is brought to you by Foodista. Overall, this recipe earns a solid spoonacular score of 69%. Users who liked this recipe also liked Minestrone Soup, Minestrone Soup, and Minestrone Soup.', - "cuisines": [ - "Mediterranean", - "Italian", - "European" - ], - "dishTypes": [ - "soup", - "lunch", - "main course", - "main dish", - "dinner" - ], - "diets": [], - "occasions": [ - "fall", - "winter" - ], - "instructions": "
  1. Heat the oil in a very large pan that has a close fitting lid. Then add the celery, bacon, onion, carrot and garlic. Fry this off for about 5 to 7 minutes until it has softened a little. No colour is needed on the vegetables, so make sure the heat isnt too high that they become brown, but high enough the vegetables sweat and soften.
  2. Add the tomato pure and the thyme leaves, stir through and cook for about 30 seconds.
  3. 3.Add the stock, the tin of tomatoes, fresh tomatoes, and a little salt and pepper. Stir everything through, set the heat so that your soup is on a gentle simmer, cover and cook for about 25 minutes or until the vegetables are cooked al dente.
  4. Add the pasta and cook until the pasta is ready. Follow the timing instructions on the packet, but this is normally about 7 minutes.
  5. Add the cabbage and the beans and cook until the cabbage has wilted. This will take about 5 minutes.
  6. Check for seasoning and add some salt and pepper if needed before serving.
  7. Sprinkle a little parmesan over each bowl of soup.
", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Heat the oil in a very large pan that has a close fitting lid. Then add the celery, bacon, onion, carrot and garlic. Fry this off for about 5 to 7 minutes until it has softened a little. No colour is needed on the vegetables, so make sure the heat isnt too high that they become brown, but high enough the vegetables sweat and soften.", - "ingredients": [ - { - "id": 11583, - "name": "vegetable", - "localizedName": "vegetable", - "image": "https://spoonacular.com/cdn/ingredients_100x100/mixed-vegetables.png" - }, - { - "id": 11124, - "name": "carrot", - "localizedName": "carrot", - "image": "sliced-carrot.png" - }, - { - "id": 11143, - "name": "celery", - "localizedName": "celery", - "image": "celery.jpg" - }, - { - "id": 11215, - "name": "garlic", - "localizedName": "garlic", - "image": "garlic.png" - }, - { - "id": 10123, - "name": "bacon", - "localizedName": "bacon", - "image": "https://spoonacular.com/cdn/ingredients_100x100/raw-bacon.png" - }, - { - "id": 11282, - "name": "onion", - "localizedName": "onion", - "image": "brown-onion.png" - }, - { - "id": 4582, - "name": "cooking oil", - "localizedName": "cooking oil", - "image": "vegetable-oil.jpg" - } - ], - "equipment": [ - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ], - "length": { - "number": 5, - "unit": "minutes" - } - }, - { - "number": 2, - "step": "Add the tomato pure and the thyme leaves, stir through and cook for about 30 seconds.", - "ingredients": [ - { - "id": 2049, - "name": "thyme", - "localizedName": "thyme", - "image": "thyme.jpg" - }, - { - "id": 11529, - "name": "tomato", - "localizedName": "tomato", - "image": "tomato.png" - } - ], - "equipment": [] - }, - { - "number": 3, - "step": "Add the stock, the tin of tomatoes, fresh tomatoes, and a little salt and pepper. Stir everything through, set the heat so that your soup is on a gentle simmer, cover and cook for about 25 minutes or until the vegetables are cooked al dente.", - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 11583, - "name": "vegetable", - "localizedName": "vegetable", - "image": "https://spoonacular.com/cdn/ingredients_100x100/mixed-vegetables.png" - }, - { - "id": 11529, - "name": "tomato", - "localizedName": "tomato", - "image": "tomato.png" - }, - { - "id": 1006615, - "name": "stock", - "localizedName": "stock", - "image": "chicken-broth.png" - }, - { - "id": 0, - "name": "soup", - "localizedName": "soup", - "image": "" - } - ], - "equipment": [], - "length": { - "number": 25, - "unit": "minutes" - } - }, - { - "number": 4, - "step": "Add the pasta and cook until the pasta is ready. Follow the timing instructions on the packet, but this is normally about 7 minutes.", - "ingredients": [ - { - "id": 20420, - "name": "pasta", - "localizedName": "pasta", - "image": "https://spoonacular.com/cdn/ingredients_100x100/fusilli.jpg" - } - ], - "equipment": [], - "length": { - "number": 7, - "unit": "minutes" - } - }, - { - "number": 5, - "step": "Add the cabbage and the beans and cook until the cabbage has wilted. This will take about 5 minutes.Check for seasoning and add some salt and pepper if needed before serving.", - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 1042027, - "name": "seasoning", - "localizedName": "seasoning", - "image": "seasoning.png" - }, - { - "id": 11109, - "name": "cabbage", - "localizedName": "cabbage", - "image": "cabbage.jpg" - }, - { - "id": 0, - "name": "beans", - "localizedName": "beans", - "image": "kidney-beans.jpg" - } - ], - "equipment": [], - "length": { - "number": 5, - "unit": "minutes" - } - }, - { - "number": 6, - "step": "Sprinkle a little parmesan over each bowl of soup.", - "ingredients": [ - { - "id": 1033, - "name": "parmesan", - "localizedName": "parmesan", - "image": "parmesan.jpg" - }, - { - "id": 0, - "name": "soup", - "localizedName": "soup", - "image": "" - } - ], - "equipment": [ - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 72.9619140625, - "spoonacularSourceUrl": "https://spoonacular.com/minestrone-soup-658024" - }, - { - "id": 637591, - "image": "https://img.spoonacular.com/recipes/637591-556x370.jpg", - "imageType": "jpg", - "title": "Cheese Tortellini Alfredo", - "readyInMinutes": 45, - "servings": 4, - "sourceUrl": "https://www.foodista.com/recipe/V6PZJBZD/cheese-tortellini-alfredo", - "vegetarian": false, - "vegan": false, - "glutenFree": false, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 20, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 6, - "healthScore": 0, - "creditsText": "foodista.com", - "license": null, - "sourceName": "foodista.com", - "pricePerServing": 176.15, - "extendedIngredients": [ - { - "id": 10093727, - "aisle": "Refrigerated", - "image": "tortellini-isolated.jpg", - "consistency": "SOLID", - "name": "cheese tortellini by buitoni", - "nameClean": "cheese tortellini by buitoni", - "original": "1 package Cheese Tortellini by Buitoni", - "originalName": "Cheese Tortellini by Buitoni", - "amount": 1, - "unit": "package", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "pkg", - "unitLong": "package" - }, - "metric": { - "amount": 1, - "unitShort": "pkg", - "unitLong": "package" - } - } - }, - { - "id": 1002030, - "aisle": "Spices and Seasonings", - "image": "pepper.jpg", - "consistency": "SOLID", - "name": "ground pepper", - "nameClean": "ground pepper", - "original": "Fresh ground black pepper", - "originalName": "Fresh ground black pepper", - "amount": 4, - "unit": "servings", - "meta": [ - "fresh", - "black" - ], - "measures": { - "us": { - "amount": 4, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 4, - "unitShort": "servings", - "unitLong": "servings" - } - } - }, - { - "id": 2025, - "aisle": "Spices and Seasonings", - "image": "ground-nutmeg.jpg", - "consistency": "SOLID", - "name": "nutmeg", - "nameClean": "nutmeg", - "original": "Dash grated nutmeg", - "originalName": "grated nutmeg", - "amount": 1, - "unit": "Dash", - "meta": [ - "grated" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "Dash", - "unitLong": "Dash" - }, - "metric": { - "amount": 1, - "unitShort": "Dash", - "unitLong": "Dash" - } - } - }, - { - "id": 1033, - "aisle": "Cheese", - "image": "parmesan.jpg", - "consistency": "SOLID", - "name": "parmiggiano reggiano", - "nameClean": "parmiggiano reggiano", - "original": "½ freshly grated Parmiggiano Reggiano", - "originalName": "freshly grated Parmiggiano Reggiano", - "amount": 0.5, - "unit": "", - "meta": [ - "freshly grated" - ], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 0.5, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 1145, - "aisle": "Milk, Eggs, Other Dairy", - "image": "butter-sliced.jpg", - "consistency": "SOLID", - "name": "butter", - "nameClean": "butter", - "original": "2 tablespoon unsalted butter", - "originalName": "unsalted butter", - "amount": 2, - "unit": "tablespoon", - "meta": [ - "unsalted" - ], - "measures": { - "us": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 1001053, - "aisle": "Milk, Eggs, Other Dairy", - "image": "fluid-cream.jpg", - "consistency": "LIQUID", - "name": "whipping cream", - "nameClean": "whipping cream", - "original": "½ cup whipping cream", - "originalName": "whipping cream", - "amount": 0.5, - "unit": "cup", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 119, - "unitShort": "ml", - "unitLong": "milliliters" - } - } - } - ], - "summary": 'Cheese Tortellini Alfredo might be a good recipe to expand your main course recipe box. This recipe serves 4. One portion of this dish contains approximately 22g of protein, 29g of fat, and a total of 593 calories. For $1.76 per serving, this recipe covers 6% of your daily requirements of vitamins and minerals. It is an affordable recipe for fans of Mediterranean food. 6 people have tried and liked this recipe. From preparation to the plate, this recipe takes approximately 45 minutes. It is brought to you by Foodista. If you have whipping cream, parmiggiano reggiano, nutmeg, and a few other ingredients on hand, you can make it. All things considered, we decided this recipe deserves a spoonacular score of 17%. This score is rather bad. Similar recipes are Chicken & Cheese Tortellini Alfredo, Chicken & Cheese Tortellini Alfredo, and Cheese Tortellini with Spinach Fetan Alfredo Sauce.', - "cuisines": [ - "Mediterranean", - "Italian", - "European" - ], - "dishTypes": [ - "side dish", - "lunch", - "main course", - "main dish", - "dinner" - ], - "diets": [], - "occasions": [], - "instructions": "
  1. In a large pot of salted water cook the tortellini according to the package directions.
  2. Drain the tortellini and return them to the pot. Fold in the butter until melted. Add the Parmiggiano and the heavy cream. Stir until the cream and the cream are absorbed. Add a dash of nutmeg and freshly ground black pepper.
  3. Serve hot.
", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "In a large pot of salted water cook the tortellini according to the package directions.", - "ingredients": [ - { - "id": 93727, - "name": "tortellini", - "localizedName": "tortellini", - "image": "tortellini-isolated.jpg" - }, - { - "id": 14412, - "name": "water", - "localizedName": "water", - "image": "water.png" - } - ], - "equipment": [ - { - "id": 404752, - "name": "pot", - "localizedName": "pot", - "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" - } - ] - }, - { - "number": 2, - "step": "Drain the tortellini and return them to the pot. Fold in the butter until melted.", - "ingredients": [ - { - "id": 93727, - "name": "tortellini", - "localizedName": "tortellini", - "image": "tortellini-isolated.jpg" - }, - { - "id": 1001, - "name": "butter", - "localizedName": "butter", - "image": "butter-sliced.jpg" - } - ], - "equipment": [ - { - "id": 404752, - "name": "pot", - "localizedName": "pot", - "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" - } - ] - }, - { - "number": 3, - "step": "Add the Parmiggiano and the heavy cream. Stir until the cream and the cream are absorbed.", - "ingredients": [ - { - "id": 1053, - "name": "heavy cream", - "localizedName": "heavy cream", - "image": "fluid-cream.jpg" - }, - { - "id": 1053, - "name": "cream", - "localizedName": "cream", - "image": "fluid-cream.jpg" - } - ], - "equipment": [] - }, - { - "number": 4, - "step": "Add a dash of nutmeg and freshly ground black pepper.", - "ingredients": [ - { - "id": 1002030, - "name": "ground black pepper", - "localizedName": "ground black pepper", - "image": "pepper.jpg" - }, - { - "id": 2025, - "name": "nutmeg", - "localizedName": "nutmeg", - "image": "ground-nutmeg.jpg" - } - ], - "equipment": [] - }, - { - "number": 5, - "step": "Serve hot.", - "ingredients": [], - "equipment": [] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 9.486737251281738, - "spoonacularSourceUrl": "https://spoonacular.com/cheese-tortellini-alfredo-637591" - }, - { - "id": 652819, - "image": "https://img.spoonacular.com/recipes/652819-556x370.jpg", - "imageType": "jpg", - "title": "My Secret Bolognese Sauce", - "readyInMinutes": 45, - "servings": 12, - "sourceUrl": "https://www.foodista.com/recipe/3V8MZXNN/my-secret-bolognese-sauce", - "vegetarian": false, - "vegan": false, - "glutenFree": true, - "dairyFree": true, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 14, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 27, - "healthScore": 19, - "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", - "license": "CC BY 3.0", - "sourceName": "Foodista", - "pricePerServing": 275.58, - "extendedIngredients": [ - { - "id": 4053, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "olive-oil.jpg", - "consistency": "LIQUID", - "name": "olive oil", - "nameClean": "olive oil", - "original": "2 tablespoons olive oil", - "originalName": "olive oil", - "amount": 2, - "unit": "tablespoons", - "meta": [], - "measures": { - "us": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 17142, - "aisle": "Meat", - "image": "meat-ground.jpg", - "consistency": "SOLID", - "name": "ground veal", - "nameClean": "ground veal", - "original": "1 lb ground veal", - "originalName": "ground veal", - "amount": 1, - "unit": "lb", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "lb", - "unitLong": "pound" - }, - "metric": { - "amount": 453.592, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 10023572, - "aisle": "Meat", - "image": "fresh-ground-beef.jpg", - "consistency": "SOLID", - "name": "ground beef", - "nameClean": "ground beef", - "original": "1 lb ground beef", - "originalName": "ground beef", - "amount": 1, - "unit": "lb", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "lb", - "unitLong": "pound" - }, - "metric": { - "amount": 453.592, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 10219, - "aisle": "Meat", - "image": "meat-ground.jpg", - "consistency": "SOLID", - "name": "ground pork", - "nameClean": "ground pork", - "original": "1 lb ground pork", - "originalName": "ground pork", - "amount": 1, - "unit": "lb", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "lb", - "unitLong": "pound" - }, - "metric": { - "amount": 453.592, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 1007036, - "aisle": "Meat", - "image": "raw-pork-sausage.png", - "consistency": "SOLID", - "name": "sausage", - "nameClean": "sausage", - "original": "1 lb sweet italian sausage, casing removed", - "originalName": "sweet italian sausage, casing removed", - "amount": 1, - "unit": "lb", - "meta": [ - "sweet", - "italian" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "lb", - "unitLong": "pound" - }, - "metric": { - "amount": 453.592, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 11294, - "aisle": "Produce", - "image": "sweet-onion.png", - "consistency": "SOLID", - "name": "vidalia onions", - "nameClean": "vidalia onions", - "original": "2 medium Vidalia onions or other sweet onion, diced", - "originalName": "Vidalia onions or other sweet onion, diced", - "amount": 2, - "unit": "medium", - "meta": [ - "diced", - "sweet" - ], - "measures": { - "us": { - "amount": 2, - "unitShort": "medium", - "unitLong": "mediums" - }, - "metric": { - "amount": 2, - "unitShort": "medium", - "unitLong": "mediums" - } - } - }, - { - "id": 11124, - "aisle": "Produce", - "image": "sliced-carrot.png", - "consistency": "SOLID", - "name": "carrots", - "nameClean": "carrots", - "original": "1 cup of finely diced carrots", - "originalName": "finely diced carrots", - "amount": 1, - "unit": "cup", - "meta": [ - "diced", - "finely" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "cup", - "unitLong": "cup" - }, - "metric": { - "amount": 128, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 10211215, - "aisle": "Produce", - "image": "garlic.jpg", - "consistency": "SOLID", - "name": "garlic cloves", - "nameClean": "garlic cloves", - "original": "5 garlic cloves, minced", - "originalName": "garlic cloves, minced", - "amount": 5, - "unit": "", - "meta": [ - "minced" - ], - "measures": { - "us": { - "amount": 5, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 5, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 2027, - "aisle": "Produce", - "image": "oregano.jpg", - "consistency": "SOLID", - "name": "oregano", - "nameClean": "oregano", - "original": "4 tablespoons chopped fresh oregano", - "originalName": "chopped fresh oregano", - "amount": 4, - "unit": "tablespoons", - "meta": [ - "fresh", - "chopped" - ], - "measures": { - "us": { - "amount": 4, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 4, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 14096, - "aisle": "Alcoholic Beverages", - "image": "red-wine.jpg", - "consistency": "LIQUID", - "name": "red wine", - "nameClean": "red wine", - "original": "1 cup red wine (I used DaVinci Chianti)", - "originalName": "red wine (I used DaVinci Chianti)", - "amount": 1, - "unit": "cup", - "meta": [ - "(I used DaVinci Chianti)" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "cup", - "unitLong": "cup" - }, - "metric": { - "amount": 240, - "unitShort": "ml", - "unitLong": "milliliters" - } - } - }, - { - "id": 98849, - "aisle": "Canned and Jarred", - "image": "tomatoes-canned.png", - "consistency": "SOLID", - "name": "canned tomatoes", - "nameClean": "canned tomatoes", - "original": "2 28 ounce cans fire roasted crushed tomatoes (You can use regular but try to use fire roasted if available)", - "originalName": "fire roasted crushed tomatoes (You can use regular but try to use fire roasted if available)", - "amount": 56, - "unit": "ounce", - "meta": [ - "fire roasted", - "crushed", - "canned", - "(You can use regular but try to use if available)" - ], - "measures": { - "us": { - "amount": 56, - "unitShort": "oz", - "unitLong": "ounces" - }, - "metric": { - "amount": 1.588, - "unitShort": "kgs", - "unitLong": "kgs" - } - } - }, - { - "id": 11529, - "aisle": "Produce", - "image": "tomato.png", - "consistency": "SOLID", - "name": "tomatoes", - "nameClean": "tomatoes", - "original": "2 28 ounce cans pureed tomatoes", - "originalName": "pureed tomatoes", - "amount": 56, - "unit": "ounce", - "meta": [ - "pureed", - "canned" - ], - "measures": { - "us": { - "amount": 56, - "unitShort": "oz", - "unitLong": "ounces" - }, - "metric": { - "amount": 1.588, - "unitShort": "kgs", - "unitLong": "kgs" - } - } - }, - { - "id": 10511297, - "aisle": "Produce", - "image": "parsley.jpg", - "consistency": "SOLID", - "name": "parsley", - "nameClean": "parsley", - "original": "3 tablespoons chopped fresh parsley", - "originalName": "chopped fresh parsley", - "amount": 3, - "unit": "tablespoons", - "meta": [ - "fresh", - "chopped" - ], - "measures": { - "us": { - "amount": 3, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 3, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 2044, - "aisle": "Produce", - "image": "fresh-basil.jpg", - "consistency": "SOLID", - "name": "basil", - "nameClean": "basil", - "original": "3 tablespoons chopped fresh basil", - "originalName": "chopped fresh basil", - "amount": 3, - "unit": "tablespoons", - "meta": [ - "fresh", - "chopped" - ], - "measures": { - "us": { - "amount": 3, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 3, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 10719335, - "aisle": "Baking", - "image": "sugar-in-bowl.png", - "consistency": "SOLID", - "name": "granulated sugar", - "nameClean": "granulated sugar", - "original": "3 teaspoons granulated sugar", - "originalName": "granulated sugar", - "amount": 3, - "unit": "teaspoons", - "meta": [], - "measures": { - "us": { - "amount": 3, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 3, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 1102047, - "aisle": "Spices and Seasonings", - "image": "salt-and-pepper.jpg", - "consistency": "SOLID", - "name": "salt and pepper", - "nameClean": "salt and pepper", - "original": "salt and pepper to taste", - "originalName": "salt and pepper to taste", - "amount": 12, - "unit": "servings", - "meta": [ - "to taste" - ], - "measures": { - "us": { - "amount": 12, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 12, - "unitShort": "servings", - "unitLong": "servings" - } - } - } - ], - "summary": 'My Secret Bolognese Sauce is a gluten free and dairy free recipe with 12 servings. One serving contains 505 calories, 29g of protein, and 33g of fat. For $2.76 per serving, this recipe covers 26% of your daily requirements of vitamins and minerals. 27 people have tried and liked this recipe. A mixture of parsley, ground veal, ground pork, and a handful of other ingredients are all it takes to make this recipe so yummy. It works well as a budget friendly sauce. It is brought to you by Foodista. From preparation to the plate, this recipe takes around 45 minutes. Taking all factors into account, this recipe earns a spoonacular score of 72%, which is pretty good. Try The Secret to Authentic Italian Bolognese Sauce, Ragù alla bolognese (Bolognese Sauce), and Bolognese Sauce (ragu Bolognese) for similar recipes.', - "cuisines": [], - "dishTypes": [ - "sauce" - ], - "diets": [ - "gluten free", - "dairy free" - ], - "occasions": [], - "instructions": "In a large, heavy dutch oven or stock pot, heat olive oil over med/high heat. Add the ground veal being careful not to crowd the pot. Cook over med/high heat until browned and remove with a slotted spoon to a large bowl. Drain all but 2 tablespoons of the fat, add the beef to the pot and cook until browned. Remove with slotted spoon and add to the bowl with the veal. Drain all but 2 tablespoons of fat and repeat with the pork. Drain all the fat and brown the sausage. Remove the sausage with the spoon and add to the meat mixture. Do not drain the fat. Add the diced onions and carrots to the pot and cook until the onions are translucent and softened stirring occasionally. Add the garlic and oregano, continue to cook for about 1-2 minutes. Add the wine to the pot and scrape any brown bits left on the bottom, stir and let the wine cook down for approximately 2-3 minutes. Add the meat mixture to the onions and stir to combine. Add all four cans of tomatoes and stir thoroughly. Stir in the parsley, basil, sugar, salt and pepper. Turn the heat down to low and simmer for approximately 2-3 hours stirring occasionally. Before serving, taste the sauce for seasoning.since this is a large recipe you may need to adjust the sugar, salt and pepper to suit your tastes.", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "In a large, heavy dutch oven or stock pot, heat olive oil over med/high heat.", - "ingredients": [ - { - "id": 4053, - "name": "olive oil", - "localizedName": "olive oil", - "image": "olive-oil.jpg" - }, - { - "id": 1006615, - "name": "stock", - "localizedName": "stock", - "image": "chicken-broth.png" - } - ], - "equipment": [ - { - "id": 404667, - "name": "dutch oven", - "localizedName": "dutch oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/dutch-oven.jpg" - } - ] - }, - { - "number": 2, - "step": "Add the ground veal being careful not to crowd the pot. Cook over med/high heat until browned and remove with a slotted spoon to a large bowl.", - "ingredients": [ - { - "id": 17142, - "name": "ground veal", - "localizedName": "ground veal", - "image": "meat-ground.jpg" - } - ], - "equipment": [ - { - "id": 404636, - "name": "slotted spoon", - "localizedName": "slotted spoon", - "image": "https://spoonacular.com/cdn/equipment_100x100/slotted-spoon.jpg" - }, - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - }, - { - "id": 404752, - "name": "pot", - "localizedName": "pot", - "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" - } - ] - }, - { - "number": 3, - "step": "Drain all but 2 tablespoons of the fat, add the beef to the pot and cook until browned.", - "ingredients": [ - { - "id": 23572, - "name": "beef", - "localizedName": "beef", - "image": "beef-cubes-raw.png" - } - ], - "equipment": [ - { - "id": 404752, - "name": "pot", - "localizedName": "pot", - "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" - } - ] - }, - { - "number": 4, - "step": "Remove with slotted spoon and add to the bowl with the veal.", - "ingredients": [ - { - "id": 17142, - "name": "veal", - "localizedName": "veal", - "image": "veal.jpg" - } - ], - "equipment": [ - { - "id": 404636, - "name": "slotted spoon", - "localizedName": "slotted spoon", - "image": "https://spoonacular.com/cdn/equipment_100x100/slotted-spoon.jpg" - }, - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - }, - { - "number": 5, - "step": "Drain all but 2 tablespoons of fat and repeat with the pork.", - "ingredients": [ - { - "id": 10010219, - "name": "pork", - "localizedName": "pork", - "image": "pork-tenderloin-raw.png" - } - ], - "equipment": [] - }, - { - "number": 6, - "step": "Drain all the fat and brown the sausage.", - "ingredients": [ - { - "id": 1017063, - "name": "sausage", - "localizedName": "sausage", - "image": "raw-pork-sausage.png" - } - ], - "equipment": [] - }, - { - "number": 7, - "step": "Remove the sausage with the spoon and add to the meat mixture. Do not drain the fat.", - "ingredients": [ - { - "id": 1017063, - "name": "sausage", - "localizedName": "sausage", - "image": "raw-pork-sausage.png" - }, - { - "id": 1065062, - "name": "meat", - "localizedName": "meat", - "image": "whole-chicken.jpg" - } - ], - "equipment": [] - }, - { - "number": 8, - "step": "Add the diced onions and carrots to the pot and cook until the onions are translucent and softened stirring occasionally.", - "ingredients": [ - { - "id": 11124, - "name": "carrot", - "localizedName": "carrot", - "image": "sliced-carrot.png" - }, - { - "id": 11282, - "name": "onion", - "localizedName": "onion", - "image": "brown-onion.png" - } - ], - "equipment": [ - { - "id": 404752, - "name": "pot", - "localizedName": "pot", - "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" - } - ] - }, - { - "number": 9, - "step": "Add the garlic and oregano, continue to cook for about 1-2 minutes.", - "ingredients": [ - { - "id": 2027, - "name": "oregano", - "localizedName": "oregano", - "image": "oregano.jpg" - }, - { - "id": 11215, - "name": "garlic", - "localizedName": "garlic", - "image": "garlic.png" - } - ], - "equipment": [], - "length": { - "number": 2, - "unit": "minutes" - } - }, - { - "number": 10, - "step": "Add the wine to the pot and scrape any brown bits left on the bottom, stir and let the wine cook down for approximately 2-3 minutes.", - "ingredients": [ - { - "id": 14084, - "name": "wine", - "localizedName": "wine", - "image": "red-wine.jpg" - } - ], - "equipment": [ - { - "id": 404752, - "name": "pot", - "localizedName": "pot", - "image": "https://spoonacular.com/cdn/equipment_100x100/stock-pot.jpg" - } - ], - "length": { - "number": 3, - "unit": "minutes" - } - }, - { - "number": 11, - "step": "Add the meat mixture to the onions and stir to combine.", - "ingredients": [ - { - "id": 11282, - "name": "onion", - "localizedName": "onion", - "image": "brown-onion.png" - }, - { - "id": 1065062, - "name": "meat", - "localizedName": "meat", - "image": "whole-chicken.jpg" - } - ], - "equipment": [] - }, - { - "number": 12, - "step": "Add all four cans of tomatoes and stir thoroughly. Stir in the parsley, basil, sugar, salt and pepper. Turn the heat down to low and simmer for approximately 2-3 hours stirring occasionally. Before serving, taste the sauce for seasoning.since this is a large recipe you may need to adjust the sugar, salt and pepper to suit your tastes.", - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 1042027, - "name": "seasoning", - "localizedName": "seasoning", - "image": "seasoning.png" - }, - { - "id": 11529, - "name": "tomato", - "localizedName": "tomato", - "image": "tomato.png" - }, - { - "id": 11297, - "name": "parsley", - "localizedName": "parsley", - "image": "parsley.jpg" - }, - { - "id": 2044, - "name": "basil", - "localizedName": "basil", - "image": "basil.jpg" - }, - { - "id": 0, - "name": "sauce", - "localizedName": "sauce", - "image": "" - }, - { - "id": 19335, - "name": "sugar", - "localizedName": "sugar", - "image": "sugar-in-bowl.png" - } - ], - "equipment": [], - "length": { - "number": 180, - "unit": "minutes" - } - } - ] - } - ], - "originalId": null, - "spoonacularScore": 78.31867218017578, - "spoonacularSourceUrl": "https://spoonacular.com/my-secret-bolognese-sauce-652819" - }, - { - "id": 664327, - "image": "https://img.spoonacular.com/recipes/664327-556x370.jpg", - "imageType": "jpg", - "title": "Vanilla Panna Cotta with Chocolate Ganache", - "readyInMinutes": 45, - "servings": 8, - "sourceUrl": "https://www.foodista.com/recipe/RHHSKBJQ/vanilla-panna-cotta-with-chocolate-ganache", - "vegetarian": false, - "vegan": false, - "glutenFree": true, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 0, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 7, - "healthScore": 0, - "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", - "license": "CC BY 3.0", - "sourceName": "Foodista", - "pricePerServing": 71.06, - "extendedIngredients": [ - { - "id": 19177, - "aisle": "Baking", - "image": "gelatin-powder.jpg", - "consistency": "SOLID", - "name": "gelatin", - "nameClean": "gelatin", - "original": "3 sheets of gelatin", - "originalName": "gelatin", - "amount": 3, - "unit": "sheets", - "meta": [], - "measures": { - "us": { - "amount": 3, - "unitShort": "sheets", - "unitLong": "sheets" - }, - "metric": { - "amount": 3, - "unitShort": "sheets", - "unitLong": "sheets" - } - } - }, - { - "id": 1077, - "aisle": "Milk, Eggs, Other Dairy", - "image": "milk.png", - "consistency": "LIQUID", - "name": "milk", - "nameClean": "milk", - "original": "1/2 cup milk or 120 ml", - "originalName": "milk or 120 ml", - "amount": 0.5, - "unit": "cup", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 122, - "unitShort": "ml", - "unitLong": "milliliters" - } - } - }, - { - "id": 93622, - "aisle": "Baking", - "image": "vanilla.jpg", - "consistency": "SOLID", - "name": "vanilla bean", - "nameClean": "vanilla bean", - "original": "1 vanilla bean", - "originalName": "vanilla bean", - "amount": 1, - "unit": "", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 1, - "unitShort": "", - "unitLong": "" - } - } - } - ], - "summary": 'Vanilla Panna Cotta with Chocolate Ganache could be just the gluten free and primal recipe you have been looking for. For 71 cents per serving, this recipe covers 1% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 1g of protein, 1g of fat, and a total of 13 calories. This recipe serves 8. Head to the store and pick up gelatin, milk, vanilla bean, and a few other things to make it today. It is brought to you by Foodista. It is a very budget friendly recipe for fans of Mediterranean food. 7 people were glad they tried this recipe. From preparation to the plate, this recipe takes around 45 minutes. All things considered, we decided this recipe deserves a spoonacular score of 19%. This score is rather bad. Similar recipes are Vanilla White Chocolate Panna Cotta With Strawberries, Chocolate panna cotta with vanillan ice cream and strawberry syrup, and Vanilla Panna Cotta.', - "cuisines": [ - "Mediterranean", - "Italian", - "European" - ], - "dishTypes": [], - "diets": [ - "gluten free", - "primal" - ], - "occasions": [], - "instructions": "
  1. Fill a bowl with water, add the gelatin and let is soak. Pour milk into a pan & bring to just below simmering, then remove the pan from the heat. Do NOT let it boil. Drain & squeeze out the gelatin & add it to the milk. Pour the cream into another pan, add the sugar and vanilla bean and bring to a boil over low heat, stirring constantly. Then remove the pan from the heat, remove the vanilla bean and stir in the milk mixture.
  2. You can put the mixture into any kind of ramekin, mold, cup, you like. Rinse your 'glass' in ice-cold water, shaking out any excess water & fill with the milk mixture. Chill in the refrigerator for several hours until set (at least 3-4 hours). Turn out onto a serving dish & serve with fruit sauce or chocolate sauce.
  3. In a double boiler melt chocolate bar. Once the chocolate is completely melted, slowly whisk in cream until the desired consistancy is reached.
  4. Drizzle over the top of the panna cotta once on the serving plate.
", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Fill a bowl with water, add the gelatin and let is soak.", - "ingredients": [ - { - "id": 19177, - "name": "gelatin", - "localizedName": "gelatin", - "image": "gelatin-powder.jpg" - }, - { - "id": 14412, - "name": "water", - "localizedName": "water", - "image": "water.png" - } - ], - "equipment": [ - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - }, - { - "number": 2, - "step": "Pour milk into a pan & bring to just below simmering, then remove the pan from the heat. Do NOT let it boil.", - "ingredients": [ - { - "id": 1077, - "name": "milk", - "localizedName": "milk", - "image": "milk.png" - } - ], - "equipment": [ - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ] - }, - { - "number": 3, - "step": "Drain & squeeze out the gelatin & add it to the milk.", - "ingredients": [ - { - "id": 19177, - "name": "gelatin", - "localizedName": "gelatin", - "image": "gelatin-powder.jpg" - }, - { - "id": 1077, - "name": "milk", - "localizedName": "milk", - "image": "milk.png" - } - ], - "equipment": [] - }, - { - "number": 4, - "step": "Pour the cream into another pan, add the sugar and vanilla bean and bring to a boil over low heat, stirring constantly. Then remove the pan from the heat, remove the vanilla bean and stir in the milk mixture.You can put the mixture into any kind of ramekin, mold, cup, you like. Rinse your 'glass' in ice-cold water, shaking out any excess water & fill with the milk mixture. Chill in the refrigerator for several hours until set (at least 3-4 hours). Turn out onto a serving dish & serve with fruit sauce or chocolate sauce.In a double boiler melt chocolate bar. Once the chocolate is completely melted, slowly whisk in cream until the desired consistancy is reached.", - "ingredients": [ - { - "id": 10019348, - "name": "hot fudge sauce", - "localizedName": "hot fudge sauce", - "image": "chocolate-glaze.png" - }, - { - "id": 0, - "name": "chocolate bar", - "localizedName": "chocolate bar", - "image": "" - }, - { - "id": 93622, - "name": "vanilla bean", - "localizedName": "vanilla bean", - "image": "vanilla.jpg" - }, - { - "id": 19081, - "name": "chocolate", - "localizedName": "chocolate", - "image": "milk-chocolate.jpg" - }, - { - "id": 1053, - "name": "cream", - "localizedName": "cream", - "image": "fluid-cream.jpg" - }, - { - "id": 9431, - "name": "fruit", - "localizedName": "fruit", - "image": "mixed-fresh-fruit.jpg" - }, - { - "id": 0, - "name": "sauce", - "localizedName": "sauce", - "image": "" - }, - { - "id": 19335, - "name": "sugar", - "localizedName": "sugar", - "image": "sugar-in-bowl.png" - }, - { - "id": 14412, - "name": "water", - "localizedName": "water", - "image": "water.png" - }, - { - "id": 1077, - "name": "milk", - "localizedName": "milk", - "image": "milk.png" - }, - { - "id": 10014412, - "name": "ice", - "localizedName": "ice", - "image": "ice-cubes.png" - } - ], - "equipment": [ - { - "id": 404699, - "name": "double boiler", - "localizedName": "double boiler", - "image": "https://spoonacular.com/cdn/equipment_100x100/double-boiler.jpg" - }, - { - "id": 404781, - "name": "ramekin", - "localizedName": "ramekin", - "image": "https://spoonacular.com/cdn/equipment_100x100/ramekin.jpg" - }, - { - "id": 404661, - "name": "whisk", - "localizedName": "whisk", - "image": "https://spoonacular.com/cdn/equipment_100x100/whisk.png" - }, - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ], - "length": { - "number": 240, - "unit": "minutes" - } - }, - { - "number": 5, - "step": "Drizzle over the top of the panna cotta once on the serving plate.", - "ingredients": [], - "equipment": [] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 4.623741149902344, - "spoonacularSourceUrl": "https://spoonacular.com/vanilla-panna-cotta-with-chocolate-ganache-664327" - }, - { - "id": 662581, - "image": "https://img.spoonacular.com/recipes/662581-556x370.jpg", - "imageType": "jpg", - "title": "Sweet Potato Hashbrown Breakfast Bake", - "readyInMinutes": 70, - "servings": 4, - "sourceUrl": "https://www.foodista.com/recipe/F54STY4M/sweet-potato-hashbrown-breakfast-bake", - "vegetarian": true, - "vegan": false, - "glutenFree": true, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 7, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 2, - "healthScore": 13, - "creditsText": "foodista.com", - "license": null, - "sourceName": "foodista.com", - "pricePerServing": 116.28, - "extendedIngredients": [ - { - "id": 1123, - "aisle": "Milk, Eggs, Other Dairy", - "image": "egg.png", - "consistency": "SOLID", - "name": "eggs", - "nameClean": "eggs", - "original": "4 eggs", - "originalName": "eggs", - "amount": 4, - "unit": "", - "meta": [], - "measures": { - "us": { - "amount": 4, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 4, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 11215, - "aisle": "Produce", - "image": "garlic.png", - "consistency": "SOLID", - "name": "garlic", - "nameClean": "garlic", - "original": "4 cloves garlic, minced", - "originalName": "garlic, minced", - "amount": 4, - "unit": "cloves", - "meta": [ - "minced" - ], - "measures": { - "us": { - "amount": 4, - "unitShort": "cloves", - "unitLong": "cloves" - }, - "metric": { - "amount": 4, - "unitShort": "cloves", - "unitLong": "cloves" - } - } - }, - { - "id": 11291, - "aisle": "Produce", - "image": "spring-onions.jpg", - "consistency": "SOLID", - "name": "green onions", - "nameClean": "green onions", - "original": "¼ Cup green onions, chopped", - "originalName": "green onions, chopped", - "amount": 0.25, - "unit": "Cup", - "meta": [ - "chopped" - ], - "measures": { - "us": { - "amount": 0.25, - "unitShort": "cups", - "unitLong": "Cups" - }, - "metric": { - "amount": 0.25, - "unitShort": "cups", - "unitLong": "cups" - } - } - }, - { - "id": 1082047, - "aisle": "Spices and Seasonings", - "image": "salt.jpg", - "consistency": "SOLID", - "name": "kosher salt and ground pepper", - "nameClean": "kosher salt and ground pepper", - "original": "Kosher salt and fresh ground pepper", - "originalName": "Kosher salt and fresh ground pepper", - "amount": 4, - "unit": "servings", - "meta": [ - "fresh" - ], - "measures": { - "us": { - "amount": 4, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 4, - "unitShort": "servings", - "unitLong": "servings" - } - } - }, - { - "id": 4053, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "olive-oil.jpg", - "consistency": "LIQUID", - "name": "olive oil", - "nameClean": "olive oil", - "original": "4 tablespoons of Olive Oil", - "originalName": "Olive Oil", - "amount": 4, - "unit": "tablespoons", - "meta": [], - "measures": { - "us": { - "amount": 4, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 4, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 11821, - "aisle": "Produce", - "image": "red-pepper.jpg", - "consistency": "SOLID", - "name": "bell pepper", - "nameClean": "bell pepper", - "original": "1 red bell pepper, chopped", - "originalName": "red bell pepper, chopped", - "amount": 1, - "unit": "", - "meta": [ - "red", - "chopped" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 1, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 10011282, - "aisle": "Produce", - "image": "red-onion.png", - "consistency": "SOLID", - "name": "onion", - "nameClean": "onion", - "original": "½ red onion, chopped", - "originalName": "red onion, chopped", - "amount": 0.5, - "unit": "", - "meta": [ - "red", - "chopped" - ], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 0.5, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 1031009, - "aisle": "Cheese", - "image": "cheddar-cheese.png", - "consistency": "SOLID", - "name": "sharp cheddar cheese", - "nameClean": "sharp cheddar cheese", - "original": "¼ Cup shredded sharp cheddar cheese (like an English Cheddar)", - "originalName": "shredded sharp cheddar cheese (like an English Cheddar)", - "amount": 0.25, - "unit": "Cup", - "meta": [ - "shredded", - "english", - "(like an Cheddar)" - ], - "measures": { - "us": { - "amount": 0.25, - "unitShort": "cups", - "unitLong": "Cups" - }, - "metric": { - "amount": 0.25, - "unitShort": "cups", - "unitLong": "cups" - } - } - }, - { - "id": 11507, - "aisle": "Produce", - "image": "sweet-potato.png", - "consistency": "SOLID", - "name": "sweet potatoes", - "nameClean": "sweet potatoes", - "original": "2 sweet potatoes, peeled and chopped into 1-inch cubes", - "originalName": "sweet potatoes, peeled and chopped into 1-inch cubes", - "amount": 2, - "unit": "", - "meta": [ - "peeled", - "chopped" - ], - "measures": { - "us": { - "amount": 2, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 2, - "unitShort": "", - "unitLong": "" - } - } - } - ], - "summary": 'Sweet Potato Hashbrown Breakfast Bake could be just the gluten free, lacto ovo vegetarian, and primal recipe you have been looking for. This recipe serves 4. This hor doeuvre has 332 calories, 10g of protein, and 21g of fat per serving. For $1.16 per serving, this recipe covers 19% of your daily requirements of vitamins and minerals. It is brought to you by Foodista. If you have eggs, garlic, kosher salt and ground pepper, and a few other ingredients on hand, you can make it. 2 people found this recipe to be flavorful and satisfying. Christmas will be even more special with this recipe. From preparation to the plate, this recipe takes around 1 hour and 10 minutes. All things considered, we decided this recipe deserves a spoonacular score of 49%. This score is solid. Sweet Potato Hashbrown Breakfast Bake, Sweet Potato Breakfast Bake (Paleo), and Sweet Potato Breakfast Bake (Paleo) are very similar to this recipe.', - "cuisines": [], - "dishTypes": [ - "side dish", - "antipasti", - "morning meal", - "starter", - "brunch", - "snack", - "appetizer", - "breakfast", - "antipasto", - "hor d'oeuvre" - ], - "diets": [ - "gluten free", - "lacto ovo vegetarian", - "primal" - ], - "occasions": [ - "christmas" - ], - "instructions": "
  1. Preheat oven to 350.
  2. Peel and chop sweet potatoes into 1 inch cubes.
  3. Spread peeled/cubed sweet potatoes out over a half sheet rimmed baking sheet. Coat with 2 tbs of olive oil and sprinkle of salt and pepper.
  4. Bake for 30-35 minutes until fork tender and browned.
  5. Meanwhile, heat 2 tbs olive oil in a large skillet over medium-high heat. Add the red onions, bell peppers, green onions and garlic and saute until tender and lightly golden about 5-6 minutes. Season with salt and pepper to taste.
  6. Portion out sweet potato hashbrown cubes between ramekins. Make a nest indentation in the top of each ramekin filled with hashbrowns. Sprinkle grated sharp cheddar over the top of each ramekin. Crack an egg over each nested out spot.
  7. Bake at 425 for 5-6 minutes. If the hashbrowns have been refrigerated, bake until each yolk is set and white has turned white!
", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Preheat oven to 35", - "ingredients": [], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ] - }, - { - "number": 2, - "step": "Peel and chop sweet potatoes into 1 inch cubes.", - "ingredients": [ - { - "id": 11507, - "name": "sweet potato", - "localizedName": "sweet potato", - "image": "sweet-potato.png" - } - ], - "equipment": [] - }, - { - "number": 3, - "step": "Spread peeled/cubed sweet potatoes out over a half sheet rimmed baking sheet. Coat with 2 tbs of olive oil and sprinkle of salt and pepper.", - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 11507, - "name": "sweet potato", - "localizedName": "sweet potato", - "image": "sweet-potato.png" - }, - { - "id": 4053, - "name": "olive oil", - "localizedName": "olive oil", - "image": "olive-oil.jpg" - }, - { - "id": 0, - "name": "spread", - "localizedName": "spread", - "image": "" - } - ], - "equipment": [ - { - "id": 404727, - "name": "baking sheet", - "localizedName": "baking sheet", - "image": "https://spoonacular.com/cdn/equipment_100x100/baking-sheet.jpg" - } - ] - }, - { - "number": 4, - "step": "Bake for 30-35 minutes until fork tender and browned.Meanwhile, heat 2 tbs olive oil in a large skillet over medium-high heat.", - "ingredients": [ - { - "id": 4053, - "name": "olive oil", - "localizedName": "olive oil", - "image": "olive-oil.jpg" - } - ], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - }, - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ], - "length": { - "number": 35, - "unit": "minutes" - } - }, - { - "number": 5, - "step": "Add the red onions, bell peppers, green onions and garlic and saute until tender and lightly golden about 5-6 minutes. Season with salt and pepper to taste.Portion out sweet potato hashbrown cubes between ramekins. Make a nest indentation in the top of each ramekin filled with hashbrowns.", - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 10211821, - "name": "bell pepper", - "localizedName": "bell pepper", - "image": "bell-pepper-orange.png" - }, - { - "id": 11291, - "name": "green onions", - "localizedName": "green onions", - "image": "spring-onions.jpg" - }, - { - "id": 11507, - "name": "sweet potato", - "localizedName": "sweet potato", - "image": "sweet-potato.png" - }, - { - "id": 11390, - "name": "hash browns", - "localizedName": "hash browns", - "image": "hash-brown-potatoes.png" - }, - { - "id": 10011282, - "name": "red onion", - "localizedName": "red onion", - "image": "red-onion.png" - }, - { - "id": 11215, - "name": "garlic", - "localizedName": "garlic", - "image": "garlic.png" - } - ], - "equipment": [ - { - "id": 404781, - "name": "ramekin", - "localizedName": "ramekin", - "image": "https://spoonacular.com/cdn/equipment_100x100/ramekin.jpg" - } - ], - "length": { - "number": 6, - "unit": "minutes" - } - }, - { - "number": 6, - "step": "Sprinkle grated sharp cheddar over the top of each ramekin. Crack an egg over each nested out spot.", - "ingredients": [ - { - "id": 1031009, - "name": "sharp cheddar cheese", - "localizedName": "sharp cheddar cheese", - "image": "cheddar-cheese.png" - }, - { - "id": 1123, - "name": "egg", - "localizedName": "egg", - "image": "egg.png" - } - ], - "equipment": [ - { - "id": 404781, - "name": "ramekin", - "localizedName": "ramekin", - "image": "https://spoonacular.com/cdn/equipment_100x100/ramekin.jpg" - } - ] - }, - { - "number": 7, - "step": "Bake at 425 for 5-6 minutes. If the hashbrowns have been refrigerated, bake until each yolk is set and white has turned white!", - "ingredients": [ - { - "id": 11390, - "name": "hash browns", - "localizedName": "hash browns", - "image": "hash-brown-potatoes.png" - }, - { - "id": 1125, - "name": "egg yolk", - "localizedName": "egg yolk", - "image": "egg-yolk.jpg" - } - ], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ], - "length": { - "number": 6, - "unit": "minutes" - } - } - ] - } - ], - "originalId": null, - "spoonacularScore": 60.12598419189453, - "spoonacularSourceUrl": "https://spoonacular.com/sweet-potato-hashbrown-breakfast-bake-662581" - }, - { - "id": 716202, - "image": "https://img.spoonacular.com/recipes/716202-556x370.jpg", - "imageType": "jpg", - "title": "Fenugreek Roti", - "readyInMinutes": 45, - "servings": 10, - "sourceUrl": "https://www.foodandspice.com/2012/07/fenugreek-roti.html", - "vegetarian": true, - "vegan": false, - "glutenFree": false, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 2, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 98, - "healthScore": 9, - "creditsText": "foodandspice.com", - "license": null, - "sourceName": "foodandspice.com", - "pricePerServing": 524.19, - "extendedIngredients": [ - { - "id": 99017, - "aisle": "Spices and Seasonings", - "image": "ajwain.jpg", - "consistency": "SOLID", - "name": "ajwain seeds", - "nameClean": "ajwain seeds", - "original": "1/2 teaspoon ajwain seeds", - "originalName": "ajwain seeds", - "amount": 0.5, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 1032035, - "aisle": "Spices and Seasonings", - "image": "curry-powder.jpg", - "consistency": "SOLID", - "name": "asafetida", - "nameClean": "asafetida", - "original": "pinch of asafetida", - "originalName": "pinch of asafetida", - "amount": 1, - "unit": "pinch", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "pinch", - "unitLong": "pinch" - }, - "metric": { - "amount": 1, - "unitShort": "pinch", - "unitLong": "pinch" - } - } - }, - { - "id": 18372, - "aisle": "Baking", - "image": "white-powder.jpg", - "consistency": "SOLID", - "name": "baking soda", - "nameClean": "baking soda", - "original": "1/4 teaspoon baking soda", - "originalName": "baking soda", - "amount": 0.25, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.25, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.25, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 2031, - "aisle": "Spices and Seasonings", - "image": "chili-powder.jpg", - "consistency": "SOLID", - "name": "cayenne", - "nameClean": "cayenne", - "original": "1/2 teaspoon cayenne", - "originalName": "cayenne", - "amount": 0.5, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 16157, - "aisle": "Health Foods", - "image": "chickpea-flour-or-another-gluten-free-flour.jpg", - "consistency": "SOLID", - "name": "chickpea flour", - "nameClean": "chickpea flour", - "original": "1 cup chickpea flour (besan)", - "originalName": "chickpea flour (besan)", - "amount": 1, - "unit": "cup", - "meta": [ - "(besan)" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "cup", - "unitLong": "cup" - }, - "metric": { - "amount": 120, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 2009, - "aisle": "Spices and Seasonings", - "image": "chili-powder.jpg", - "consistency": "SOLID", - "name": "chili powder", - "nameClean": "chili powder", - "original": "1/2 teaspoon chili powder", - "originalName": "chili powder", - "amount": 0.5, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 98963, - "aisle": "Spices and Seasonings", - "image": "methi.png", - "consistency": "SOLID", - "name": "fenugreek leaves", - "nameClean": "fenugreek leaves", - "original": "1/2 cup dried fenugreek leaves", - "originalName": "dried fenugreek leaves", - "amount": 0.5, - "unit": "cup", - "meta": [ - "dried" - ], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 118.294, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 93632, - "aisle": "Ethnic Foods", - "image": "ghee.jpg", - "consistency": "SOLID", - "name": "ghee", - "nameClean": "ghee", - "original": "ghee or oil for frying", - "originalName": "ghee or oil for frying", - "amount": 10, - "unit": "servings", - "meta": [ - "for frying" - ], - "measures": { - "us": { - "amount": 10, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 10, - "unitShort": "servings", - "unitLong": "servings" - } - } - }, - { - "id": 1002013, - "aisle": "Spices and Seasonings", - "image": "ground-coriander.jpg", - "consistency": "SOLID", - "name": "ground coriander", - "nameClean": "ground coriander", - "original": "1/2 teaspoon ground coriander", - "originalName": "ground coriander", - "amount": 0.5, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 1012014, - "aisle": "Spices and Seasonings", - "image": "ground-cumin.jpg", - "consistency": "SOLID", - "name": "ground cumin", - "nameClean": "ground cumin", - "original": "1/2 teaspoon ground cumin", - "originalName": "ground cumin", - "amount": 0.5, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 1001116, - "aisle": "Milk, Eggs, Other Dairy", - "image": "plain-yogurt.jpg", - "consistency": "LIQUID", - "name": "yogurt", - "nameClean": "yogurt", - "original": "2 tablespoons plain yogurt", - "originalName": "plain yogurt", - "amount": 2, - "unit": "tablespoons", - "meta": [ - "plain" - ], - "measures": { - "us": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 1012047, - "aisle": "Spices and Seasonings", - "image": "salt.jpg", - "consistency": "SOLID", - "name": "sea salt", - "nameClean": "sea salt", - "original": "1 teaspoon sea salt", - "originalName": "sea salt", - "amount": 1, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 20080, - "aisle": "Baking", - "image": "flour.png", - "consistency": "SOLID", - "name": "flour", - "nameClean": "flour", - "original": "1/2 cup whole wheat flour", - "originalName": "whole wheat flour", - "amount": 0.5, - "unit": "cup", - "meta": [ - "whole wheat" - ], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 60, - "unitShort": "g", - "unitLong": "grams" - } - } - } - ], - "summary": 'Fenugreek Roti requires roughly 45 minutes from start to finish. This bread has 80 calories, 4g of protein, and 2g of fat per serving. This recipe serves 10 and costs $5.24 per serving. If you have chili powder, chickpea flour, baking soda, and a few other ingredients on hand, you can make it. 98 people were glad they tried this recipe. This recipe is typical of Indian cuisine. It is brought to you by foodandspice.blogspot.com. It is a good option if you are following a lacto ovo vegetarian diet. All things considered, we decided this recipe deserves a spoonacular score of 65%. This score is good. If you like this recipe, take a look at these similar recipes: methi missi roti , how to make punjabi missi roti, Fenugreek Tea & Benefits, and Whole Roast Chicken with Fenugreek.', - "cuisines": [ - "Indian", - "Asian" - ], - "dishTypes": [ - "bread" - ], - "diets": [ - "lacto ovo vegetarian" - ], - "occasions": [], - "instructions": "Soak the dried fenugreek leaves in warm water for 5 to 10 minutes. Drain, making sure to squeeze out excess liquid.Sift the flours and baking soda in a small strainer into a medium bowl. Stir in the salt, chili powder, cayenne, cumin, coriander, ajwain seeds, asafetida, yogurt and fenugreek leaves. Mix in about 1/4 cup of water to make a semi-hard batter. Cover and let stand at room temperature for 1 hour. Dusting your hands with flour, divide the dough into 10 to 12 small balls. Roll out each ball into a roughly 3-inch circle. Brush a non-stick pan with a bit of ghee or oil and heat over medium heat. When hot, add a rolled out portion to the pan and cook for 4 minutes or until the bottom is browned. Sprinkle with a bit of oil, flip and fry for another 2 to 3 minutes or until both sides are browned. Transfer to a plate, keep heated in a 150 oven, and repeat for the rest of the pancakes.", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Soak the dried fenugreek leaves in warm water for 5 to 10 minutes.", - "ingredients": [ - { - "id": 98963, - "name": "dried fenugreek leaves", - "localizedName": "dried fenugreek leaves", - "image": "methi.png" - }, - { - "id": 14412, - "name": "water", - "localizedName": "water", - "image": "water.png" - } - ], - "equipment": [], - "length": { - "number": 5, - "unit": "minutes" - } - }, - { - "number": 2, - "step": "Drain, making sure to squeeze out excess liquid.Sift the flours and baking soda in a small strainer into a medium bowl. Stir in the salt, chili powder, cayenne, cumin, coriander, ajwain seeds, asafetida, yogurt and fenugreek leaves.", - "ingredients": [ - { - "id": 98963, - "name": "dried fenugreek leaves", - "localizedName": "dried fenugreek leaves", - "image": "methi.png" - }, - { - "id": 99017, - "name": "ajwain", - "localizedName": "ajwain", - "image": "ajwain.jpg" - }, - { - "id": 2009, - "name": "chili powder", - "localizedName": "chili powder", - "image": "chili-powder.jpg" - }, - { - "id": 18372, - "name": "baking soda", - "localizedName": "baking soda", - "image": "white-powder.jpg" - }, - { - "id": 1032035, - "name": "asafoetida", - "localizedName": "asafoetida", - "image": "curry-powder.jpg" - }, - { - "id": 1012013, - "name": "coriander", - "localizedName": "coriander", - "image": "ground-coriander.jpg" - }, - { - "id": 2031, - "name": "ground cayenne pepper", - "localizedName": "ground cayenne pepper", - "image": "chili-powder.jpg" - }, - { - "id": 1116, - "name": "yogurt", - "localizedName": "yogurt", - "image": "plain-yogurt.jpg" - }, - { - "id": 1002014, - "name": "cumin", - "localizedName": "cumin", - "image": "ground-cumin.jpg" - }, - { - "id": 2047, - "name": "salt", - "localizedName": "salt", - "image": "salt.jpg" - } - ], - "equipment": [ - { - "id": 405600, - "name": "sieve", - "localizedName": "sieve", - "image": "https://spoonacular.com/cdn/equipment_100x100/strainer.png" - }, - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - }, - { - "number": 3, - "step": "Mix in about 1/4 cup of water to make a semi-hard batter. Cover and let stand at room temperature for 1 hour. Dusting your hands with flour, divide the dough into 10 to 12 small balls.", - "ingredients": [ - { - "id": 0, - "name": "dough", - "localizedName": "dough", - "image": "pizza-dough" - }, - { - "id": 20081, - "name": "all purpose flour", - "localizedName": "all purpose flour", - "image": "flour.png" - }, - { - "id": 14412, - "name": "water", - "localizedName": "water", - "image": "water.png" - } - ], - "equipment": [], - "length": { - "number": 60, - "unit": "minutes" - } - }, - { - "number": 4, - "step": "Roll out each ball into a roughly 3-inch circle.", - "ingredients": [ - { - "id": 0, - "name": "roll", - "localizedName": "roll", - "image": "dinner-yeast-rolls.jpg" - } - ], - "equipment": [] - }, - { - "number": 5, - "step": "Brush a non-stick pan with a bit of ghee or oil and heat over medium heat. When hot, add a rolled out portion to the pan and cook for 4 minutes or until the bottom is browned.", - "ingredients": [ - { - "id": 93632, - "name": "ghee", - "localizedName": "ghee", - "image": "ghee.jpg" - }, - { - "id": 4582, - "name": "cooking oil", - "localizedName": "cooking oil", - "image": "vegetable-oil.jpg" - } - ], - "equipment": [ - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ], - "length": { - "number": 4, - "unit": "minutes" - } - }, - { - "number": 6, - "step": "Sprinkle with a bit of oil, flip and fry for another 2 to 3 minutes or until both sides are browned.", - "ingredients": [ - { - "id": 4582, - "name": "cooking oil", - "localizedName": "cooking oil", - "image": "vegetable-oil.jpg" - } - ], - "equipment": [], - "length": { - "number": 2, - "unit": "minutes" - } - }, - { - "number": 7, - "step": "Transfer to a plate, keep heated in a 150 oven, and repeat for the rest of the pancakes.", - "ingredients": [], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 64.02252960205078, - "spoonacularSourceUrl": "https://spoonacular.com/fenugreek-roti-716202" - }, - { - "id": 640062, - "image": "https://img.spoonacular.com/recipes/640062-556x370.jpg", - "imageType": "jpg", - "title": "Corn Avocado Salsa", - "readyInMinutes": 25, - "servings": 2, - "sourceUrl": "https://www.foodista.com/recipe/BDRS2JZG/corn-avocado-salsa", - "vegetarian": true, - "vegan": true, - "glutenFree": true, - "dairyFree": true, - "veryHealthy": true, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 7, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 44, - "healthScore": 71, - "creditsText": "Foodista.com – The Cooking Encyclopedia Everyone Can Edit", - "license": "CC BY 3.0", - "sourceName": "Foodista", - "pricePerServing": 130.73, - "extendedIngredients": [ - { - "id": 9037, - "aisle": "Produce", - "image": "avocado.jpg", - "consistency": "SOLID", - "name": "avocado", - "nameClean": "avocado", - "original": "1 Avocado", - "originalName": "Avocado", - "amount": 1, - "unit": "", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 1, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 2069, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "balsamic-vinegar.jpg", - "consistency": "LIQUID", - "name": "balsamic vinegar", - "nameClean": "balsamic vinegar", - "original": "1 teaspoon Balsamic vinegar", - "originalName": "Balsamic vinegar", - "amount": 1, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 1002014, - "aisle": "Spices and Seasonings", - "image": "ground-cumin.jpg", - "consistency": "SOLID", - "name": "cumin", - "nameClean": "cumin", - "original": "1 teaspoon Cumin", - "originalName": "Cumin", - "amount": 1, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - }, - "metric": { - "amount": 1, - "unitShort": "tsp", - "unitLong": "teaspoon" - } - } - }, - { - "id": 11913, - "aisle": "Frozen", - "image": "corn.png", - "consistency": "SOLID", - "name": "corn", - "nameClean": "corn", - "original": "3/4 cup Corn, freshly hulled (You can also use frozen corn, thawed)", - "originalName": "Corn, freshly hulled (You can also use frozen corn, thawed)", - "amount": 0.75, - "unit": "cup", - "meta": [ - "frozen", - "hulled", - "thawed", - "canned", - "(You can also use corn, )" - ], - "measures": { - "us": { - "amount": 0.75, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 123.75, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 11215, - "aisle": "Produce", - "image": "garlic.png", - "consistency": "SOLID", - "name": "garlic", - "nameClean": "garlic", - "original": "1 clove garlic", - "originalName": "garlic", - "amount": 1, - "unit": "clove", - "meta": [], - "measures": { - "us": { - "amount": 1, - "unitShort": "clove", - "unitLong": "clove" - }, - "metric": { - "amount": 1, - "unitShort": "clove", - "unitLong": "clove" - } - } - }, - { - "id": 11821, - "aisle": "Produce", - "image": "red-pepper.jpg", - "consistency": "SOLID", - "name": "bell pepper", - "nameClean": "bell pepper", - "original": "1/2 medium Red Pepper", - "originalName": "Red Pepper", - "amount": 0.5, - "unit": "medium", - "meta": [ - "red" - ], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "medium", - "unitLong": "mediums" - }, - "metric": { - "amount": 0.5, - "unitShort": "medium", - "unitLong": "mediums" - } - } - } - ], - "summary": 'Corn Avocado Salsa might be just the hor doeuvre you are searching for. For $1.31 per serving, this recipe covers 15% of your daily requirements of vitamins and minerals. One portion of this dish contains roughly 5g of protein, 16g of fat, and a total of 237 calories. This recipe serves 2. 44 people have made this recipe and would make it again. This recipe from Foodista requires avocado, balsamic vinegar, cumin, and garlic. A few people really liked this Mexican dish. It is a good option if you are following a gluten free, dairy free, lacto ovo vegetarian, and vegan diet. From preparation to the plate, this recipe takes around 25 minutes. With a spoonacular score of 97%, this dish is spectacular. If you like this recipe, take a look at these similar recipes: Avocado Corn Salsa, Avocado-Corn Salsa, and Avocado-Corn Salsa.', - "cuisines": [ - "Mexican" - ], - "dishTypes": [ - "antipasti", - "condiment", - "starter", - "snack", - "appetizer", - "dip", - "antipasto", - "hor d'oeuvre", - "spread" - ], - "diets": [ - "gluten free", - "dairy free", - "lacto ovo vegetarian", - "vegan" - ], - "occasions": [], - "instructions": "
  1. Preheat oven to 375 degrees.
  2. Spread corn flat on a baking sheet.
  3. Spray lightly with olive oil spray.
  4. Roast corn in the oven for about 8-10 minutes. (Be careful not to brown too much or burn.)
  5. Remove from heat and allow to cool.
  6. Finely chop red pepper and garlic and mix in a bowl.
  7. Peel and coarsely chop avocado and add to bowl.
  8. Add cooled corn.
  9. Mix in cumin and vinegar and blend well.
", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Preheat oven to 375 degrees.", - "ingredients": [], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ] - }, - { - "number": 2, - "step": "Spread corn flat on a baking sheet.Spray lightly with olive oil spray.Roast corn in the oven for about 8-10 minutes. (Be careful not to brown too much or burn.)", - "ingredients": [ - { - "id": 1004679, - "name": "olive oil spray", - "localizedName": "olive oil spray", - "image": "cooking-spray.png" - }, - { - "id": 0, - "name": "spread", - "localizedName": "spread", - "image": "" - }, - { - "id": 11168, - "name": "corn", - "localizedName": "corn", - "image": "corn.png" - } - ], - "equipment": [ - { - "id": 404727, - "name": "baking sheet", - "localizedName": "baking sheet", - "image": "https://spoonacular.com/cdn/equipment_100x100/baking-sheet.jpg" - }, - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ], - "length": { - "number": 10, - "unit": "minutes" - } - }, - { - "number": 3, - "step": "Remove from heat and allow to cool.Finely chop red pepper and garlic and mix in a bowl.Peel and coarsely chop avocado and add to bowl.", - "ingredients": [ - { - "id": 11821, - "name": "red pepper", - "localizedName": "red pepper", - "image": "red-pepper.jpg" - }, - { - "id": 9037, - "name": "avocado", - "localizedName": "avocado", - "image": "avocado.jpg" - }, - { - "id": 11215, - "name": "garlic", - "localizedName": "garlic", - "image": "garlic.png" - } - ], - "equipment": [ - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - }, - { - "number": 4, - "step": "Add cooled corn.", - "ingredients": [ - { - "id": 11168, - "name": "corn", - "localizedName": "corn", - "image": "corn.png" - } - ], - "equipment": [] - }, - { - "number": 5, - "step": "Mix in cumin and vinegar and blend well.", - "ingredients": [ - { - "id": 2053, - "name": "vinegar", - "localizedName": "vinegar", - "image": "vinegar-(white).jpg" - }, - { - "id": 1002014, - "name": "cumin", - "localizedName": "cumin", - "image": "ground-cumin.jpg" - } - ], - "equipment": [] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 97.75386047363281, - "spoonacularSourceUrl": "https://spoonacular.com/corn-avocado-salsa-640062" - }, - { - "id": 649403, - "image": "https://img.spoonacular.com/recipes/649403-556x370.jpg", - "imageType": "jpg", - "title": "Lebanese Kibbeh", - "readyInMinutes": 45, - "servings": 6, - "sourceUrl": "https://www.foodista.com/recipe/B6HG5RKG/lebanese-kibbeh", - "vegetarian": false, - "vegan": false, - "glutenFree": false, - "dairyFree": false, - "veryHealthy": false, - "cheap": false, - "veryPopular": false, - "sustainable": false, - "lowFodmap": false, - "weightWatcherSmartPoints": 19, - "gaps": "no", - "preparationMinutes": null, - "cookingMinutes": null, - "aggregateLikes": 3, - "healthScore": 19, - "creditsText": "foodista.com", - "license": null, - "sourceName": "foodista.com", - "pricePerServing": 298.81, - "extendedIngredients": [ - { - "id": 20012, - "aisle": "Health Foods", - "image": "bulgur-wheat.jpg", - "consistency": "SOLID", - "name": "bulgur wheat", - "nameClean": "bulgur wheat", - "original": "3/4 cup Bulgur wheat", - "originalName": "Bulgur wheat", - "amount": 0.75, - "unit": "cup", - "meta": [], - "measures": { - "us": { - "amount": 0.75, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 105, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 10017224, - "aisle": "Meat", - "image": "lamb-shanks.jpg", - "consistency": "SOLID", - "name": "lamb", - "nameClean": "lamb", - "original": "1 pound Finely minced lean lamb, (or beef)", - "originalName": "Finely minced lean lamb, (or beef)", - "amount": 1, - "unit": "pound", - "meta": [ - "lean", - "finely minced", - "(or beef)" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "lb", - "unitLong": "pound" - }, - "metric": { - "amount": 453.592, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 11282, - "aisle": "Produce", - "image": "brown-onion.png", - "consistency": "SOLID", - "name": "onion", - "nameClean": "onion", - "original": "1 large Onion, grated", - "originalName": "Onion, grated", - "amount": 1, - "unit": "large", - "meta": [ - "grated" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "large", - "unitLong": "large" - }, - "metric": { - "amount": 1, - "unitShort": "large", - "unitLong": "large" - } - } - }, - { - "id": 1001, - "aisle": "Milk, Eggs, Other Dairy", - "image": "butter-sliced.jpg", - "consistency": "SOLID", - "name": "butter", - "nameClean": "butter", - "original": "1 tablespoon Melted butter", - "originalName": "Melted butter", - "amount": 1, - "unit": "tablespoon", - "meta": [ - "melted" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - }, - "metric": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - } - } - }, - { - "id": 1002030, - "aisle": "Spices and Seasonings", - "image": "pepper.jpg", - "consistency": "SOLID", - "name": "salt & ground pepper", - "nameClean": "salt & ground pepper", - "original": "Salt & fresh ground black pepper, to taste", - "originalName": "Salt & fresh ground black pepper, to taste", - "amount": 6, - "unit": "servings", - "meta": [ - "fresh", - "black", - "to taste" - ], - "measures": { - "us": { - "amount": 6, - "unitShort": "servings", - "unitLong": "servings" - }, - "metric": { - "amount": 6, - "unitShort": "servings", - "unitLong": "servings" - } - } - }, - { - "id": 2064, - "aisle": "Produce", - "image": "mint.jpg", - "consistency": "SOLID", - "name": "sprg mint", - "nameClean": "sprg mint", - "original": "1 sprg mint, for garnish", - "originalName": "sprg mint, for garnish", - "amount": 1, - "unit": "", - "meta": [ - "for garnish" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 1, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 4582, - "aisle": "Oil, Vinegar, Salad Dressing", - "image": "vegetable-oil.jpg", - "consistency": "LIQUID", - "name": "oil", - "nameClean": "oil", - "original": "2 tablespoons Oil", - "originalName": "Oil", - "amount": 2, - "unit": "tablespoons", - "meta": [], - "measures": { - "us": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - }, - "metric": { - "amount": 2, - "unitShort": "Tbsps", - "unitLong": "Tbsps" - } - } - }, - { - "id": 11282, - "aisle": "Produce", - "image": "brown-onion.png", - "consistency": "SOLID", - "name": "onion", - "nameClean": "onion", - "original": "1 Onion, finely chopped", - "originalName": "Onion, finely chopped", - "amount": 1, - "unit": "", - "meta": [ - "finely chopped" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "", - "unitLong": "" - }, - "metric": { - "amount": 1, - "unitShort": "", - "unitLong": "" - } - } - }, - { - "id": 17224, - "aisle": "Meat", - "image": "meat-ground.jpg", - "consistency": "SOLID", - "name": "lamb", - "nameClean": "lamb", - "original": "8 ounces Minced lamb or veal", - "originalName": "Minced lamb or veal", - "amount": 8, - "unit": "ounces", - "meta": [ - "minced" - ], - "measures": { - "us": { - "amount": 8, - "unitShort": "oz", - "unitLong": "ounces" - }, - "metric": { - "amount": 226.796, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 12147, - "aisle": "Produce", - "image": "pine-nuts.png", - "consistency": "SOLID", - "name": "pine nuts", - "nameClean": "pine nuts", - "original": "1/2 cup Pine nuts", - "originalName": "Pine nuts", - "amount": 0.5, - "unit": "cup", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 67.5, - "unitShort": "g", - "unitLong": "grams" - } - } - }, - { - "id": 1022001, - "aisle": "Spices and Seasonings", - "image": "allspice-ground.jpg", - "consistency": "SOLID", - "name": "ground allspice", - "nameClean": "ground allspice", - "original": "1/2 teaspoon Ground allspice", - "originalName": "Ground allspice", - "amount": 0.5, - "unit": "teaspoon", - "meta": [], - "measures": { - "us": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - }, - "metric": { - "amount": 0.5, - "unitShort": "tsps", - "unitLong": "teaspoons" - } - } - }, - { - "id": 1256, - "aisle": "Milk, Eggs, Other Dairy", - "image": "plain-yogurt.jpg", - "consistency": "LIQUID", - "name": "greek yogurt", - "nameClean": "greek yogurt", - "original": "2 1/2 cups Greek yogurt", - "originalName": "Greek yogurt", - "amount": 2.5, - "unit": "cups", - "meta": [], - "measures": { - "us": { - "amount": 2.5, - "unitShort": "cups", - "unitLong": "cups" - }, - "metric": { - "amount": 500, - "unitShort": "ml", - "unitLong": "milliliters" - } - } - }, - { - "id": 11215, - "aisle": "Produce", - "image": "garlic.png", - "consistency": "SOLID", - "name": "garlic", - "nameClean": "garlic", - "original": "3 Cloves garlic, crushed", - "originalName": "garlic, crushed", - "amount": 3, - "unit": "Cloves", - "meta": [ - "crushed" - ], - "measures": { - "us": { - "amount": 3, - "unitShort": "Cloves", - "unitLong": "Cloves" - }, - "metric": { - "amount": 3, - "unitShort": "Cloves", - "unitLong": "Cloves" - } - } - }, - { - "id": 2064, - "aisle": "Produce", - "image": "mint.jpg", - "consistency": "SOLID", - "name": "mint", - "nameClean": "mint", - "original": "1 tablespoon Chopped fresh mint", - "originalName": "Chopped fresh mint", - "amount": 1, - "unit": "tablespoon", - "meta": [ - "fresh", - "chopped" - ], - "measures": { - "us": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - }, - "metric": { - "amount": 1, - "unitShort": "Tbsp", - "unitLong": "Tbsp" - } - } - } - ], - "summary": 'You can never have too many main course recipes, so give Lebanese Kibbeh a try. This recipe serves 6. One portion of this dish contains roughly 32g of protein, 41g of fat, and a total of 585 calories. For $2.99 per serving, this recipe covers 24% of your daily requirements of vitamins and minerals. From preparation to the plate, this recipe takes roughly 45 minutes. This recipe is typical of middl eastern cuisine. It is brought to you by Foodista. 3 people have made this recipe and would make it again. If you have greek yogurt, lamb, mint, and a few other ingredients on hand, you can make it. With a spoonacular score of 61%, this dish is solid. If you like this recipe, take a look at these similar recipes: Lebanese Kibbeh With Lemon Tahini, Lebanese Kibbeh With Lemon Tahini, and Kibbeh.', - "cuisines": [ - "Middle Eastern" - ], - "dishTypes": [ - "lunch", - "main course", - "main dish", - "dinner" - ], - "diets": [], - "occasions": [], - "instructions": "1) Preheat the oven to 375F degrees. Rinse the bulgur wheat in a sieve and squeeze out the excess moisture. 2. Mix the lamb, onion and seasoning, kneading the mixture to make a thick paste. Add the bulgur wheat and blend together. 3. To make the filling, heat the oil in a frying pan and fry the onion until golden. Add the lamb or veal and cook, stirring, until evenly browned and then add the pine nuts, allspice and salt and pepper. 4. Oil a large baking dish and spread half of the meat and bulgur wheat mixture over the bottom. Spoon over the filling and top with a second layer of meat and bulgur wheat, pressing down firmly with the back of a spoon. 5. Pour the melted butter over the top and then bake on the oven for 40-45 minutes until browned on top. 6. Meanwhile make the yogurt dip: Blend together the yogurt and garlic, spoon into a serving bowl and sprinkle with the chopped mint. 7. Cut the cooked kibbeh into squares or rectangles and serve garnished with mint and accompanied by rice and the yogurt dip. NOTES The national dish of Syria and the Lebanon in Kibbeh, as kind of meatball made from minced lamp and bulgur wheat. Raw kibbeh is the most widely eaten type, but this version is very popular too.", - "analyzedInstructions": [ - { - "name": "", - "steps": [ - { - "number": 1, - "step": "Preheat the oven to 375F degrees. Rinse the bulgur wheat in a sieve and squeeze out the excess moisture.", - "ingredients": [ - { - "id": 20012, - "name": "bulgur", - "localizedName": "bulgur", - "image": "bulgur-wheat.jpg" - } - ], - "equipment": [ - { - "id": 405600, - "name": "sieve", - "localizedName": "sieve", - "image": "https://spoonacular.com/cdn/equipment_100x100/strainer.png" - }, - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg", - "temperature": { - "number": 375, - "unit": "Fahrenheit" - } - } - ] - }, - { - "number": 2, - "step": "Mix the lamb, onion and seasoning, kneading the mixture to make a thick paste.", - "ingredients": [ - { - "id": 1042027, - "name": "seasoning", - "localizedName": "seasoning", - "image": "seasoning.png" - }, - { - "id": 11282, - "name": "onion", - "localizedName": "onion", - "image": "brown-onion.png" - }, - { - "id": 10017224, - "name": "lamb", - "localizedName": "lamb", - "image": "lamb-shanks.jpg" - } - ], - "equipment": [] - }, - { - "number": 3, - "step": "Add the bulgur wheat and blend together.", - "ingredients": [ - { - "id": 20012, - "name": "bulgur", - "localizedName": "bulgur", - "image": "bulgur-wheat.jpg" - } - ], - "equipment": [] - }, - { - "number": 4, - "step": "To make the filling, heat the oil in a frying pan and fry the onion until golden.", - "ingredients": [ - { - "id": 11282, - "name": "onion", - "localizedName": "onion", - "image": "brown-onion.png" - }, - { - "id": 4582, - "name": "cooking oil", - "localizedName": "cooking oil", - "image": "vegetable-oil.jpg" - } - ], - "equipment": [ - { - "id": 404645, - "name": "frying pan", - "localizedName": "frying pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/pan.png" - } - ] - }, - { - "number": 5, - "step": "Add the lamb or veal and cook, stirring, until evenly browned and then add the pine nuts, allspice and salt and pepper.", - "ingredients": [ - { - "id": 1102047, - "name": "salt and pepper", - "localizedName": "salt and pepper", - "image": "salt-and-pepper.jpg" - }, - { - "id": 12147, - "name": "pine nuts", - "localizedName": "pine nuts", - "image": "pine-nuts.png" - }, - { - "id": 2001, - "name": "allspice", - "localizedName": "allspice", - "image": "allspice-ground.jpg" - }, - { - "id": 10017224, - "name": "lamb", - "localizedName": "lamb", - "image": "lamb-shanks.jpg" - }, - { - "id": 17142, - "name": "veal", - "localizedName": "veal", - "image": "veal.jpg" - } - ], - "equipment": [] - }, - { - "number": 6, - "step": "Oil a large baking dish and spread half of the meat and bulgur wheat mixture over the bottom. Spoon over the filling and top with a second layer of meat and bulgur wheat, pressing down firmly with the back of a spoon.", - "ingredients": [ - { - "id": 20012, - "name": "bulgur", - "localizedName": "bulgur", - "image": "bulgur-wheat.jpg" - }, - { - "id": 0, - "name": "spread", - "localizedName": "spread", - "image": "" - }, - { - "id": 1065062, - "name": "meat", - "localizedName": "meat", - "image": "whole-chicken.jpg" - }, - { - "id": 4582, - "name": "cooking oil", - "localizedName": "cooking oil", - "image": "vegetable-oil.jpg" - } - ], - "equipment": [ - { - "id": 404646, - "name": "baking pan", - "localizedName": "baking pan", - "image": "https://spoonacular.com/cdn/equipment_100x100/roasting-pan.jpg" - } - ] - }, - { - "number": 7, - "step": "Pour the melted butter over the top and then bake on the oven for 40-45 minutes until browned on top.", - "ingredients": [ - { - "id": 1001, - "name": "butter", - "localizedName": "butter", - "image": "butter-sliced.jpg" - } - ], - "equipment": [ - { - "id": 404784, - "name": "oven", - "localizedName": "oven", - "image": "https://spoonacular.com/cdn/equipment_100x100/oven.jpg" - } - ], - "length": { - "number": 45, - "unit": "minutes" - } - }, - { - "number": 8, - "step": "Meanwhile make the yogurt dip: Blend together the yogurt and garlic, spoon into a serving bowl and sprinkle with the chopped mint.", - "ingredients": [ - { - "id": 0, - "name": "yogurt dip", - "localizedName": "yogurt dip", - "image": "" - }, - { - "id": 11215, - "name": "garlic", - "localizedName": "garlic", - "image": "garlic.png" - }, - { - "id": 1116, - "name": "yogurt", - "localizedName": "yogurt", - "image": "plain-yogurt.jpg" - }, - { - "id": 2064, - "name": "mint", - "localizedName": "mint", - "image": "mint.jpg" - } - ], - "equipment": [ - { - "id": 404783, - "name": "bowl", - "localizedName": "bowl", - "image": "https://spoonacular.com/cdn/equipment_100x100/bowl.jpg" - } - ] - }, - { - "number": 9, - "step": "Cut the cooked kibbeh into squares or rectangles and serve garnished with mint and accompanied by rice and the yogurt dip. NOTES The national dish of Syria and the Lebanon in Kibbeh, as kind of meatball made from minced lamp and bulgur wheat. Raw kibbeh is the most widely eaten type, but this version is very popular too.", - "ingredients": [ - { - "id": 20012, - "name": "bulgur", - "localizedName": "bulgur", - "image": "bulgur-wheat.jpg" - }, - { - "id": 0, - "name": "yogurt dip", - "localizedName": "yogurt dip", - "image": "" - }, - { - "id": 10110219, - "name": "meatballs", - "localizedName": "meatballs", - "image": "https://spoonacular.com/cdn/ingredients_100x100/meatballs.png" - }, - { - "id": 2064, - "name": "mint", - "localizedName": "mint", - "image": "mint.jpg" - }, - { - "id": 20444, - "name": "rice", - "localizedName": "rice", - "image": "uncooked-white-rice.png" - } - ], - "equipment": [] - } - ] - } - ], - "originalId": null, - "spoonacularScore": 68.41266632080078, - "spoonacularSourceUrl": "https://spoonacular.com/lebanese-kibbeh-649403" - } - ] -} diff --git a/index.html b/index.html index 6a7477fba..fd5e45c1c 100644 --- a/index.html +++ b/index.html @@ -74,6 +74,6 @@

Try Random Recipe

- + \ No newline at end of file diff --git a/script.js b/script.js index 2988e8a2a..194ebe4da 100644 --- a/script.js +++ b/script.js @@ -1,4 +1,6 @@ -const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" +// const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" +const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=5b0eb7cae7ef4a20af3202de42e39e78&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" + const allBtn = document.getElementById("all") const filterBtn = document.querySelectorAll(".filter-btn") @@ -11,7 +13,7 @@ const container = document.getElementById("recipe-container") allBtn.classList.add("active") //default select //=============================== -// like button +// like button - add recipes to favorites //=============================== // save favorite recipes in localStorage @@ -22,12 +24,13 @@ const attachLikeEvents =() => { likeButtons.forEach(button => { button.addEventListener("click", () => { - const card = button.closest(".recipe-card"); - const recipeId = String(card.dataset.id); - const recipe = results.find(r => String(r.id) === recipeId); + const card = button.closest(".recipe-card"); // find the closest recipe card + const recipeId = String(card.dataset.id); // get the recipe ID from card's data-id and turn it into string + const recipe = results.find(r => String(r.id) === recipeId); // find the recipe object from results array that has the same ID - if (!recipe) return; + if (!recipe) return; // if recipe not found, exit + // check if the recipe is already in favorites if (favorites.some(fav => String(fav.id) === recipeId)) { // remove recipe if it is already liked favorites = favorites.filter(fav => String(fav.id) !== recipeId); @@ -167,25 +170,6 @@ const showErrorMessage = () => { `; }; -// ------------import backup data----------------------------------------- - -// // Global backup data variable -// import { backupRecipes } from "./backup.js" - -// // Global backup data variable -// console.log("backup data loaded", backupRecipes); - -// let recipes = []; - -// const fetchData = async () => { -// try { -// recipes = backupRecipes.recipes; -// displayRecipes(recipes); -// } catch (error) { -// console.error("Error fetching data:", error); -// } -// }; -//------------------------------------------------------------------------ fetchData(); @@ -315,7 +299,7 @@ const noResultsMessage = document.getElementById("no-results"); const showSearchResult = (target) => target.style.display = ""; const hideSearchResult = (target) => target.style.display = "none"; -// filter search results by keyword +// search recipes by keyword const filterSearchResults = () => { const keyword = searchInput.value.trim().toLowerCase(); const searchTargets = document.querySelectorAll('.recipe-card'); @@ -323,6 +307,7 @@ const filterSearchResults = () => { searchTargets.forEach((target) => { const text = target.textContent.toLowerCase(); + // check if the keyword is in the text content and show/hide the recipe card if (text.includes(keyword)) { showSearchResult(target); matchFound = true; @@ -339,5 +324,6 @@ const filterSearchResults = () => { } }; +// add event listener to the search input searchInput.addEventListener("input", filterSearchResults); From dd4332b7e7de4a25cc11a91754591e00c03b9697 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Fri, 10 Oct 2025 15:28:53 +0200 Subject: [PATCH 20/22] add link to README --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 657c63242..9494db63e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ # js-project-recipe-library -https://asakos-recipe-library.netlify.app/ \ No newline at end of file +Link to letlify: +https://js-project-recipe-library-site.netlify.app/ \ No newline at end of file From 157477567c476fbe5ee9737a65b73b8b7b549665 Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Sat, 11 Oct 2025 17:51:58 +0200 Subject: [PATCH 21/22] fix bug --- index.html | 10 +++++++--- script.js | 2 +- style.css | 7 +++++++ 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/index.html b/index.html index fd5e45c1c..eeade79fe 100644 --- a/index.html +++ b/index.html @@ -21,7 +21,9 @@

Recipe Library

placeholder="Find a recipe or ingredient"> + class="search-button"> + 🔍 +
@@ -61,7 +63,9 @@

Try Random Recipe

    -
  • +
  • + +
@@ -72,7 +76,7 @@

Try Random Recipe

Loading...
- +

Oops... 😣 No recipes found

diff --git a/script.js b/script.js index 194ebe4da..9a6679542 100644 --- a/script.js +++ b/script.js @@ -1,5 +1,5 @@ // const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" -const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=5b0eb7cae7ef4a20af3202de42e39e78&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" +// const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=5b0eb7cae7ef4a20af3202de42e39e78&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" const allBtn = document.getElementById("all") diff --git a/style.css b/style.css index 2ba5cd188..f6ae248e5 100644 --- a/style.css +++ b/style.css @@ -68,6 +68,11 @@ favorite recipes button cursor: pointer; } +.favorites:hover { + border: 2px solid #0018a4; + box-shadow: 0 0 8px 2px rgba(0, 0, 0, 0.1); +} + /* ====================================== search form ======================================= */ @@ -126,6 +131,7 @@ style for the buttons display: flex; flex-direction: row; margin-bottom: 20px; + gap: 30px; } .filter-container, @@ -300,6 +306,7 @@ style for recipe cards margin-top: 100px; font-size: 2rem; color: #555; + display: none; } /* ====================================== From 2da5e357ea26fc82ee648ae51d8e4046db18828a Mon Sep 17 00:00:00 2001 From: Asako Kanno Date: Thu, 16 Oct 2025 14:08:10 +0200 Subject: [PATCH 22/22] fix bug --- script.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script.js b/script.js index 9a6679542..0c0d8cabe 100644 --- a/script.js +++ b/script.js @@ -1,4 +1,4 @@ -// const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" +const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=e1711b2ca9f84dec882725da3bd3acfd&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true" // const URL = "https://api.spoonacular.com/recipes/complexSearch?number=20&apiKey=5b0eb7cae7ef4a20af3202de42e39e78&cuisine=Thai,Mexican,Mediterranean,Indian&addRecipeInformation=true&addRecipeInstructions=true&fillIngredients=true"