From 46c2a4be5215c16f2cda9e2ca810be67cf8252da Mon Sep 17 00:00:00 2001 From: hpibot Date: Sat, 21 Feb 2026 12:22:54 +0300 Subject: [PATCH] =?UTF-8?q?Marka=20g=C3=BCncellemeleri:=20hMarket=20ismi,?= =?UTF-8?q?=20turuncu=20logo=20ve=20PWA=20yap=C4=B1land=C4=B1rmas=C4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/public/index.html | 4 +- frontend/public/logo192.png | Bin 5347 -> 5815 bytes frontend/public/logo512.png | Bin 9664 -> 3676 bytes frontend/public/manifest.json | 4 +- frontend/src/components/Layout/Navbar.tsx | 6 +-- frontend/src/pages/Auth/LoginPage.tsx | 4 +- generate_logo.py | 63 ++++++++++++++++++++++ generate_logo_orange.py | 60 +++++++++++++++++++++ logo_temp.html | 39 ++++++++++++++ 9 files changed, 171 insertions(+), 9 deletions(-) create mode 100644 generate_logo.py create mode 100644 generate_logo_orange.py create mode 100644 logo_temp.html diff --git a/frontend/public/index.html b/frontend/public/index.html index aa069f2..0fe6747 100644 --- a/frontend/public/index.html +++ b/frontend/public/index.html @@ -7,7 +7,7 @@ - React App + hMarket - Akıllı Alışveriş Listesi diff --git a/frontend/public/logo192.png b/frontend/public/logo192.png index fc44b0a3796c0e0a64c3d858ca038bd4570465d9..ad9fdc0da446c2d338985b244fa97020f6cbd5ae 100644 GIT binary patch literal 5815 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%0At|=&YarwMIA5GTYOG5jI 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 literal 5347 zcmZWtbyO6NvR-oO24RV%BvuJ&=?+<7=`LvyB&A_#M7mSDYw1v6DJkiYl9XjT!%$dLEBTQ8R9|wd3008in6lFF3GV-6mLi?MoP_y~}QUnaDCHI#t z7w^m$@6DI)|C8_jrT?q=f8D?0AM?L)Z}xAo^e^W>t$*Y0KlT5=@bBjT9kxb%-KNdk zeOS1tKO#ChhG7%{ApNBzE2ZVNcxbrin#E1TiAw#BlUhXllzhN$qWez5l;h+t^q#Eav8PhR2|T}y5kkflaK`ba-eoE+Z2q@o6P$)=&` z+(8}+-McnNO>e#$Rr{32ngsZIAX>GH??tqgwUuUz6kjns|LjsB37zUEWd|(&O!)DY zQLrq%Y>)Y8G`yYbYCx&aVHi@-vZ3|ebG!f$sTQqMgi0hWRJ^Wc+Ibv!udh_r%2|U) zPi|E^PK?UE!>_4`f`1k4hqqj_$+d!EB_#IYt;f9)fBOumGNyglU(ofY`yHq4Y?B%- zp&G!MRY<~ajTgIHErMe(Z8JG*;D-PJhd@RX@QatggM7+G(Lz8eZ;73)72Hfx5KDOE zkT(m}i2;@X2AT5fW?qVp?@WgN$aT+f_6eo?IsLh;jscNRp|8H}Z9p_UBO^SJXpZew zEK8fz|0Th%(Wr|KZBGTM4yxkA5CFdAj8=QSrT$fKW#tweUFqr0TZ9D~a5lF{)%-tTGMK^2tz(y2v$i%V8XAxIywrZCp=)83p(zIk6@S5AWl|Oa2hF`~~^W zI;KeOSkw1O#TiQ8;U7OPXjZM|KrnN}9arP)m0v$c|L)lF`j_rpG(zW1Qjv$=^|p*f z>)Na{D&>n`jOWMwB^TM}slgTEcjxTlUby89j1)|6ydRfWERn3|7Zd2&e7?!K&5G$x z`5U3uFtn4~SZq|LjFVrz$3iln-+ucY4q$BC{CSm7Xe5c1J<=%Oagztj{ifpaZk_bQ z9Sb-LaQMKp-qJA*bP6DzgE3`}*i1o3GKmo2pn@dj0;He}F=BgINo};6gQF8!n0ULZ zL>kC0nPSFzlcB7p41doao2F7%6IUTi_+!L`MM4o*#Y#0v~WiO8uSeAUNp=vA2KaR&=jNR2iVwG>7t%sG2x_~yXzY)7K& zk3p+O0AFZ1eu^T3s};B%6TpJ6h-Y%B^*zT&SN7C=N;g|#dGIVMSOru3iv^SvO>h4M=t-N1GSLLDqVTcgurco6)3&XpU!FP6Hlrmj}f$ zp95;b)>M~`kxuZF3r~a!rMf4|&1=uMG$;h^g=Kl;H&Np-(pFT9FF@++MMEx3RBsK?AU0fPk-#mdR)Wdkj)`>ZMl#^<80kM87VvsI3r_c@_vX=fdQ`_9-d(xiI z4K;1y1TiPj_RPh*SpDI7U~^QQ?%0&!$Sh#?x_@;ag)P}ZkAik{_WPB4rHyW#%>|Gs zdbhyt=qQPA7`?h2_8T;-E6HI#im9K>au*(j4;kzwMSLgo6u*}-K`$_Gzgu&XE)udQ zmQ72^eZd|vzI)~!20JV-v-T|<4@7ruqrj|o4=JJPlybwMg;M$Ud7>h6g()CT@wXm` zbq=A(t;RJ^{Xxi*Ff~!|3!-l_PS{AyNAU~t{h;(N(PXMEf^R(B+ZVX3 z8y0;0A8hJYp@g+c*`>eTA|3Tgv9U8#BDTO9@a@gVMDxr(fVaEqL1tl?md{v^j8aUv zm&%PX4^|rX|?E4^CkplWWNv*OKM>DxPa z!RJ)U^0-WJMi)Ksc!^ixOtw^egoAZZ2Cg;X7(5xZG7yL_;UJ#yp*ZD-;I^Z9qkP`} zwCTs0*%rIVF1sgLervtnUo&brwz?6?PXRuOCS*JI-WL6GKy7-~yi0giTEMmDs_-UX zo=+nFrW_EfTg>oY72_4Z0*uG>MnXP=c0VpT&*|rvv1iStW;*^={rP1y?Hv+6R6bxFMkxpWkJ>m7Ba{>zc_q zEefC3jsXdyS5??Mz7IET$Kft|EMNJIv7Ny8ZOcKnzf`K5Cd)&`-fTY#W&jnV0l2vt z?Gqhic}l}mCv1yUEy$%DP}4AN;36$=7aNI^*AzV(eYGeJ(Px-j<^gSDp5dBAv2#?; zcMXv#aj>%;MiG^q^$0MSg-(uTl!xm49dH!{X0){Ew7ThWV~Gtj7h%ZD zVN-R-^7Cf0VH!8O)uUHPL2mO2tmE*cecwQv_5CzWeh)ykX8r5Hi`ehYo)d{Jnh&3p z9ndXT$OW51#H5cFKa76c<%nNkP~FU93b5h-|Cb}ScHs@4Q#|}byWg;KDMJ#|l zE=MKD*F@HDBcX@~QJH%56eh~jfPO-uKm}~t7VkHxHT;)4sd+?Wc4* z>CyR*{w@4(gnYRdFq=^(#-ytb^5ESD?x<0Skhb%Pt?npNW1m+Nv`tr9+qN<3H1f<% zZvNEqyK5FgPsQ`QIu9P0x_}wJR~^CotL|n zk?dn;tLRw9jJTur4uWoX6iMm914f0AJfB@C74a;_qRrAP4E7l890P&{v<}>_&GLrW z)klculcg`?zJO~4;BBAa=POU%aN|pmZJn2{hA!d!*lwO%YSIzv8bTJ}=nhC^n}g(ld^rn#kq9Z3)z`k9lvV>y#!F4e{5c$tnr9M{V)0m(Z< z#88vX6-AW7T2UUwW`g<;8I$Jb!R%z@rCcGT)-2k7&x9kZZT66}Ztid~6t0jKb&9mm zpa}LCb`bz`{MzpZR#E*QuBiZXI#<`5qxx=&LMr-UUf~@dRk}YI2hbMsAMWOmDzYtm zjof16D=mc`^B$+_bCG$$@R0t;e?~UkF?7<(vkb70*EQB1rfUWXh$j)R2)+dNAH5%R zEBs^?N;UMdy}V};59Gu#0$q53$}|+q7CIGg_w_WlvE}AdqoS<7DY1LWS9?TrfmcvT zaypmplwn=P4;a8-%l^e?f`OpGb}%(_mFsL&GywhyN(-VROj`4~V~9bGv%UhcA|YW% zs{;nh@aDX11y^HOFXB$a7#Sr3cEtNd4eLm@Y#fc&j)TGvbbMwze zXtekX_wJqxe4NhuW$r}cNy|L{V=t#$%SuWEW)YZTH|!iT79k#?632OFse{+BT_gau zJwQcbH{b}dzKO?^dV&3nTILYlGw{27UJ72ZN){BILd_HV_s$WfI2DC<9LIHFmtyw? zQ;?MuK7g%Ym+4e^W#5}WDLpko%jPOC=aN)3!=8)s#Rnercak&b3ESRX3z{xfKBF8L z5%CGkFmGO@x?_mPGlpEej!3!AMddChabyf~nJNZxx!D&{@xEb!TDyvqSj%Y5@A{}9 zRzoBn0?x}=krh{ok3Nn%e)#~uh;6jpezhA)ySb^b#E>73e*frBFu6IZ^D7Ii&rsiU z%jzygxT-n*joJpY4o&8UXr2s%j^Q{?e-voloX`4DQyEK+DmrZh8A$)iWL#NO9+Y@!sO2f@rI!@jN@>HOA< z?q2l{^%mY*PNx2FoX+A7X3N}(RV$B`g&N=e0uvAvEN1W^{*W?zT1i#fxuw10%~))J zjx#gxoVlXREWZf4hRkgdHx5V_S*;p-y%JtGgQ4}lnA~MBz-AFdxUxU1RIT$`sal|X zPB6sEVRjGbXIP0U+?rT|y5+ev&OMX*5C$n2SBPZr`jqzrmpVrNciR0e*Wm?fK6DY& zl(XQZ60yWXV-|Ps!A{EF;=_z(YAF=T(-MkJXUoX zI{UMQDAV2}Ya?EisdEW;@pE6dt;j0fg5oT2dxCi{wqWJ<)|SR6fxX~5CzblPGr8cb zUBVJ2CQd~3L?7yfTpLNbt)He1D>*KXI^GK%<`bq^cUq$Q@uJifG>p3LU(!H=C)aEL zenk7pVg}0{dKU}&l)Y2Y2eFMdS(JS0}oZUuVaf2+K*YFNGHB`^YGcIpnBlMhO7d4@vV zv(@N}(k#REdul8~fP+^F@ky*wt@~&|(&&meNO>rKDEnB{ykAZ}k>e@lad7to>Ao$B zz<1(L=#J*u4_LB=8w+*{KFK^u00NAmeNN7pr+Pf+N*Zl^dO{LM-hMHyP6N!~`24jd zXYP|Ze;dRXKdF2iJG$U{k=S86l@pytLx}$JFFs8e)*Vi?aVBtGJ3JZUj!~c{(rw5>vuRF$`^p!P8w1B=O!skwkO5yd4_XuG^QVF z`-r5K7(IPSiKQ2|U9+`@Js!g6sfJwAHVd|s?|mnC*q zp|B|z)(8+mxXyxQ{8Pg3F4|tdpgZZSoU4P&9I8)nHo1@)9_9u&NcT^FI)6|hsAZFk zZ+arl&@*>RXBf-OZxhZerOr&dN5LW9@gV=oGFbK*J+m#R-|e6(Loz(;g@T^*oO)0R zN`N=X46b{7yk5FZGr#5&n1!-@j@g02g|X>MOpF3#IjZ_4wg{dX+G9eqS+Es9@6nC7 zD9$NuVJI}6ZlwtUm5cCAiYv0(Yi{%eH+}t)!E^>^KxB5^L~a`4%1~5q6h>d;paC9c zTj0wTCKrhWf+F#5>EgX`sl%POl?oyCq0(w0xoL?L%)|Q7d|Hl92rUYAU#lc**I&^6p=4lNQPa0 znQ|A~i0ip@`B=FW-Q;zh?-wF;Wl5!+q3GXDu-x&}$gUO)NoO7^$BeEIrd~1Dh{Tr` z8s<(Bn@gZ(mkIGnmYh_ehXnq78QL$pNDi)|QcT*|GtS%nz1uKE+E{7jdEBp%h0}%r zD2|KmYGiPa4;md-t_m5YDz#c*oV_FqXd85d@eub?9N61QuYcb3CnVWpM(D-^|CmkL z(F}L&N7qhL2PCq)fRh}XO@U`Yn<?TNGR4L(mF7#4u29{i~@k;pLsgl({YW5`Mo+p=zZn3L*4{JU;++dG9 X@eDJUQo;Ye2mwlRs%B2S1@ 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 b{|{}U^kRn2wo}j7|0ATu<;8xA7zX}7|B6mN diff --git a/frontend/public/manifest.json b/frontend/public/manifest.json index 080d6c7..e798215 100644 --- a/frontend/public/manifest.json +++ b/frontend/public/manifest.json @@ -1,6 +1,6 @@ { - "short_name": "React App", - "name": "Create React App Sample", + "short_name": "hMarket", + "name": "hMarket - Akıllı Alışveriş Listesi", "icons": [ { "src": "favicon.ico", diff --git a/frontend/src/components/Layout/Navbar.tsx b/frontend/src/components/Layout/Navbar.tsx index 8bb3613..0bb9d17 100644 --- a/frontend/src/components/Layout/Navbar.tsx +++ b/frontend/src/components/Layout/Navbar.tsx @@ -88,7 +88,7 @@ const Navbar: React.FC = () => { - HMarket + hMarket @@ -139,7 +139,7 @@ const Navbar: React.FC = () => { - HMarket + hMarket @@ -188,7 +188,7 @@ const Navbar: React.FC = () => { sx={{ cursor: 'pointer' }} onClick={() => navigate('/dashboard')} > - HMarket + hMarket diff --git a/frontend/src/pages/Auth/LoginPage.tsx b/frontend/src/pages/Auth/LoginPage.tsx index 3f3614b..3822f06 100644 --- a/frontend/src/pages/Auth/LoginPage.tsx +++ b/frontend/src/pages/Auth/LoginPage.tsx @@ -106,7 +106,7 @@ const LoginPage: React.FC = () => { - HMarket + hMarket @@ -250,7 +250,7 @@ const LoginPage: React.FC = () => { {/* Features */} - Neden HMarket? + Neden hMarket? diff --git a/generate_logo.py b/generate_logo.py new file mode 100644 index 0000000..a30ff15 --- /dev/null +++ b/generate_logo.py @@ -0,0 +1,63 @@ +from PIL import Image, ImageDraw, ImageFilter + +def create_hmarket_logo(path, size=512): + # Create image with transparent background + img = Image.new('RGBA', (size, size), (255, 255, 255, 0)) + draw = ImageDraw.Draw(img) + + # Modern Blue/Teal Gradient simulation + # Let's draw a rounded rectangle background for the icon + padding = size // 8 + rect_shape = [padding, padding, size - padding, size - padding] + corner_radius = size // 6 + + # Draw shadow + shadow_offset = size // 40 + draw.rounded_rectangle( + [padding + shadow_offset, padding + shadow_offset, size - padding + shadow_offset, size - padding + shadow_offset], + radius=corner_radius, + fill=(0, 0, 0, 40) + ) + + # Draw main background circle/rounded rect with gradient + for i in range(size - 2*padding): + # Color from #3a7bd5 to #00d2ff + r = int(58 + (0 - 58) * (i / (size - 2*padding))) + g = int(123 + (210 - 123) * (i / (size - 2*padding))) + b = int(213 + (255 - 213) * (i / (size - 2*padding))) + draw.line([padding + i, padding, padding + i, size - padding], fill=(r, g, b, 255)) + + # Redraw rounded corners mask (to make it look like a rounded rect icon) + mask = Image.new('L', (size, size), 0) + mask_draw = ImageDraw.Draw(mask) + mask_draw.rounded_rectangle(rect_shape, radius=corner_radius, fill=255) + + # Apply mask to gradient + output = Image.new('RGBA', (size, size), (255, 255, 255, 0)) + output.paste(img, (0, 0), mask=mask) + + # Draw Shopping Cart Icon (Simplified white vector style) + draw_icon = ImageDraw.Draw(output) + s = size // 10 # scale factor + + # Cart body + cart_color = (255, 255, 255, 255) + # Handle and frame + draw_icon.line([3*s, 3*s, 3.5*s, 3*s, 4*s, 6*s, 7.5*s, 6*s], fill=cart_color, width=s//3) + # Basket + draw_icon.polygon([4*s, 4*s, 7.5*s, 4*s, 7*s, 5.5*s, 4.5*s, 5.5*s], fill=cart_color) + # Wheels + draw_icon.ellipse([4.2*s, 6.2*s, 4.8*s, 6.8*s], fill=cart_color) + draw_icon.ellipse([6.7*s, 6.2*s, 7.3*s, 6.8*s], fill=cart_color) + + # Save + output.save(path) + return output + +# Generate both sizes +logo512 = create_hmarket_logo("/home/hololu/calismalar/hMarket/frontend/public/logo512.png", 512) +logo192 = logo512.resize((192, 192), Image.LANCZOS) +logo192.save("/home/hololu/calismalar/hMarket/frontend/public/logo192.png") +logo512.save("/home/hololu/calismalar/hmarket-logo.png") # Extra copy for OAuth screen + +print("Logolar başarıyla oluşturuldu.") diff --git a/generate_logo_orange.py b/generate_logo_orange.py new file mode 100644 index 0000000..e9a4462 --- /dev/null +++ b/generate_logo_orange.py @@ -0,0 +1,60 @@ +from PIL import Image, ImageDraw + +def create_orange_logo(path, size=512): + # Base image + img = Image.new('RGBA', (size, size), (255, 255, 255, 0)) + draw = ImageDraw.Draw(img) + + # Background color #FF5722 + bg_color = (255, 87, 34, 255) + + padding = size // 10 + corner_radius = size // 6 + draw.rounded_rectangle( + [padding, padding, size - padding, size - padding], + radius=corner_radius, + fill=bg_color + ) + + # Scale for the 24x24 SVG path + # We want the icon to fit in the center, say 60% of the box + icon_size = size * 0.55 + offset = (size - icon_size) / 2 + scale = icon_size / 24 + + def scale_pt(x, y): + return (offset + x * scale, offset + y * scale) + + # Drawing the cart manually based on the SVG path logic + # Wheels + r_wheel = 1 * scale + w1_c = scale_pt(7, 20) + draw.ellipse([w1_c[0]-r_wheel, w1_c[1]-r_wheel, w1_c[0]+r_wheel, w1_c[1]+r_wheel], fill="white") + + w2_c = scale_pt(17, 20) + draw.ellipse([w2_c[0]-r_wheel, w2_c[1]-r_wheel, w2_c[0]+r_wheel, w2_c[1]+r_wheel], fill="white") + + # The main body path + # M1 2v2h2l3.6 7.59-1.35 2.45c-.16.28-.25.61-.25.96 0 1.1.9 2 2 2h12v-2H7.42c-.14 0-.25-.11-.25-.25l.03-.12.9-1.63h7.45c.75 0 1.41-.41 1.75-1.03l3.58-6.49c.08-.14.12-.31.12-.48 0-.55-.45-1-1-1H5.21l-.94-2z + # Simplified polygon for the cart body + points = [ + scale_pt(1, 2), scale_pt(1, 4), scale_pt(3, 4), + scale_pt(6.6, 11.59), scale_pt(5.25, 14.04), + scale_pt(5.25, 15), scale_pt(7, 17), scale_pt(19, 17), + scale_pt(19, 15), scale_pt(7.42, 15), scale_pt(8.35, 13.37), + scale_pt(15.8, 13.37), scale_pt(17.55, 12.34), scale_pt(21.13, 5.85), + scale_pt(21.25, 5.37), scale_pt(20.25, 4.37), scale_pt(5.21, 4.37), + scale_pt(4.27, 2.37) + ] + draw.polygon(points, fill="white") + + # Save + img.save(path) + +create_orange_logo("/home/hololu/calismalar/hMarket/frontend/public/logo512.png", 512) +create_orange_logo("/home/hololu/calismalar/hmarket-logo.png", 512) +img_512 = Image.open("/home/hololu/calismalar/hMarket/frontend/public/logo512.png") +img_192 = img_512.resize((192, 192), Image.LANCZOS) +img_192.save("/home/hololu/calismalar/hMarket/frontend/public/logo192.png") + +print("Yeni turuncu logolar oluşturuldu.") diff --git a/logo_temp.html b/logo_temp.html new file mode 100644 index 0000000..36a31a0 --- /dev/null +++ b/logo_temp.html @@ -0,0 +1,39 @@ + + + + + + +
+ + + +
+ +