From 2fbd379e348a6ae6b13c9bc1ae7edb17fbe0a9fa Mon Sep 17 00:00:00 2001 From: Vedant Rane Date: Sat, 22 Mar 2025 10:20:41 +0530 Subject: [PATCH] mobile mode design --- .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 130 bytes findd/dowork/__pycache__/admin.cpython-39.pyc | Bin 0 -> 171 bytes findd/dowork/__pycache__/apps.cpython-39.pyc | Bin 0 -> 407 bytes .../dowork/__pycache__/models.cpython-39.pyc | Bin 0 -> 223 bytes findd/dowork/__pycache__/urls.cpython-39.pyc | Bin 0 -> 426 bytes findd/dowork/__pycache__/views.cpython-39.pyc | Bin 0 -> 1620 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 141 bytes .../findd/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 129 bytes .../findd/__pycache__/settings.cpython-39.pyc | Bin 0 -> 2491 bytes findd/findd/__pycache__/urls.cpython-39.pyc | Bin 0 -> 1172 bytes findd/findd/__pycache__/views.cpython-39.pyc | Bin 0 -> 518 bytes findd/findd/settings.py | 2 +- findd/frontend/FINDD/package-lock.json | 26 +- findd/frontend/FINDD/package.json | 2 +- findd/frontend/FINDD/src/pages/Jobs.css | 42 +++- findd/frontend/FINDD/src/pages/Jobs.jsx | 118 +++++---- findd/frontend/FINDD/src/pages/Login.css | 13 +- .../FINDD/src/pages/RecruiterForm.css | 9 +- findd/frontend/FINDD/vite.config.js | 12 +- .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 132 bytes .../frontend/__pycache__/admin.cpython-39.pyc | Bin 0 -> 173 bytes .../frontend/__pycache__/apps.cpython-39.pyc | Bin 0 -> 413 bytes .../__pycache__/models.cpython-39.pyc | Bin 0 -> 170 bytes .../frontend/__pycache__/urls.cpython-39.pyc | Bin 0 -> 282 bytes .../frontend/__pycache__/views.cpython-39.pyc | Bin 0 -> 312 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 143 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 131 bytes findd/getwork/__pycache__/urls.cpython-39.pyc | Bin 0 -> 448 bytes .../getwork/__pycache__/views.cpython-39.pyc | Bin 0 -> 1622 bytes .../home/__pycache__/__init__.cpython-39.pyc | Bin 0 -> 128 bytes findd/home/__pycache__/admin.cpython-39.pyc | Bin 0 -> 169 bytes findd/home/__pycache__/apps.cpython-39.pyc | Bin 0 -> 401 bytes findd/home/__pycache__/models.cpython-39.pyc | Bin 0 -> 166 bytes findd/home/__pycache__/urls.cpython-39.pyc | Bin 0 -> 246 bytes findd/home/__pycache__/views.cpython-39.pyc | Bin 0 -> 459 bytes .../__pycache__/__init__.cpython-39.pyc | Bin 0 -> 139 bytes findd_frontend/FINDD/package-lock.json | 218 ++++++++--------- findd_frontend/FINDD/package.json | 2 +- findd_frontend/FINDD/src/pages/Jobs.css | 231 ++++++++++-------- findd_frontend/FINDD/src/pages/Jobs.jsx | 160 +++++++----- 40 files changed, 478 insertions(+), 357 deletions(-) create mode 100644 findd/dowork/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/dowork/__pycache__/admin.cpython-39.pyc create mode 100644 findd/dowork/__pycache__/apps.cpython-39.pyc create mode 100644 findd/dowork/__pycache__/models.cpython-39.pyc create mode 100644 findd/dowork/__pycache__/urls.cpython-39.pyc create mode 100644 findd/dowork/__pycache__/views.cpython-39.pyc create mode 100644 findd/dowork/migrations/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/findd/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/findd/__pycache__/settings.cpython-39.pyc create mode 100644 findd/findd/__pycache__/urls.cpython-39.pyc create mode 100644 findd/findd/__pycache__/views.cpython-39.pyc create mode 100644 findd/frontend/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/frontend/__pycache__/admin.cpython-39.pyc create mode 100644 findd/frontend/__pycache__/apps.cpython-39.pyc create mode 100644 findd/frontend/__pycache__/models.cpython-39.pyc create mode 100644 findd/frontend/__pycache__/urls.cpython-39.pyc create mode 100644 findd/frontend/__pycache__/views.cpython-39.pyc create mode 100644 findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/getwork/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/getwork/__pycache__/urls.cpython-39.pyc create mode 100644 findd/getwork/__pycache__/views.cpython-39.pyc create mode 100644 findd/home/__pycache__/__init__.cpython-39.pyc create mode 100644 findd/home/__pycache__/admin.cpython-39.pyc create mode 100644 findd/home/__pycache__/apps.cpython-39.pyc create mode 100644 findd/home/__pycache__/models.cpython-39.pyc create mode 100644 findd/home/__pycache__/urls.cpython-39.pyc create mode 100644 findd/home/__pycache__/views.cpython-39.pyc create mode 100644 findd/home/migrations/__pycache__/__init__.cpython-39.pyc diff --git a/findd/dowork/__pycache__/__init__.cpython-39.pyc b/findd/dowork/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..768aecec4a9f1ffc96cd703f837baff68ef4a7bd GIT binary patch literal 130 zcmYe~<>g`kf;nezr-SInAOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUTbSF0Ge%)FG8 qm^36ZCBHnsC_5%TJ~J<~BtBlRpz;=nO>TZlX-=vg$bip4%m4u7VjT+r literal 0 HcmV?d00001 diff --git a/findd/dowork/__pycache__/admin.cpython-39.pyc b/findd/dowork/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..3445273beab3a69e6345a7220ee473c2b3ffcdcd GIT binary patch literal 171 zcmYe~<>g`kf;nezr#k`Z#~=tpHB(e`{!5jhVk1MW8+vX(Cr}t5TKe=G^LbW5eR_25@3qH zurvUEP2$N9vPewb?y_mlO`Vs;t?!JDVzEHC`v{7p6bQbiDT5&8z)*#|=)ydj_I^-! zK7cz}7bbz5q%xqiP0q?<*=@|KR2tk4^yGCsaiI{ktdtOLDg<&n?ej>8hfeD4WDis> zJG~JS6-3@ka6kJXt-nPNzektH*{ZAovV4TYPnm2Qn>0@?L%KhZ^$=1{`_4LMZnj<7 bGuyzcdhWmekj=2?!joaqQ-2uixe@yVZx>^2 literal 0 HcmV?d00001 diff --git a/findd/dowork/__pycache__/models.cpython-39.pyc b/findd/dowork/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7137f67bb1501c84309487b4ec93f465a6031ad3 GIT binary patch literal 223 zcmYe~<>g`kf;nezr)L4_#~=vVp{ooP-s*12^CT9EJ-FCDmR5 z8phcaJC>i{%y{&koz3SVqxksx&M!D)KPEYj2_-kQo0I?;@RC(L;gywGoPh;)X>XX| z;0Om?@ZN3WzHlKJ`9ydSj(jS7n2mfc0$3QHyU7Gj9$2*8lLCt@bn2|#qF>0zvIDUv zS1jVl&wF>PDiJ3$P&=hxHkr;vOC3jMl|Yt+hx$ET>b+9sg^bZ1&OT_0T&k{((H~hq zkgkr=GnKAhMP(;VrIE)oin-9|F4{=IkWW5zy wHlIwNnudYjv)jw`u8;uf(-9urrbcU3zhQ7yDdI{k~y2RhR^_Cu}o0Q)^X z)O*;E^hl4fAM5>NRvf&;9atfJ2By^pyaJ;uFbh|3FMqcNio~aNx2#&9Vb^V(AC()o zGOeo?r85go3+#S`6Kp?Wvs9vEJ!XF)a3?X_PIULYgQrKUt})YJ9Ig+k&{k=1vR_ezpj`__VTx1j~{tO zMYko6)mdpR5~2$McQ8M=OJR&*`(Q^Pm}O-hl&yfts?%^t zGbAUZ6iCxT!hrDA7G4tF|D)Ab%eHE1NqY|i(Tc=||0p0OkmfJ&$t{}6u(VB}nM5GN zUT~y{N1DmDgDWbqRub*g^5&EWo)L1ICH*K7_!9eD+ft3x!nRukq^{yNd?x;g4lH#5ndF-Fntg`kf;nezr-SInAOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUSeSF0Ge%)FG8 zm^36ZCBHnsC_5%MGrcIWBr`v+I3_+mGcU6wK3=b&@)n0pZhlH>PO2Tqtj|Eq003xK BA+G=c literal 0 HcmV?d00001 diff --git a/findd/findd/__pycache__/__init__.cpython-39.pyc b/findd/findd/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..9f6006b782a4f58ae70a890ac9d47c60fc65f684 GIT binary patch literal 129 zcmYe~<>g`kf;nezr-SInAOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUSwSF0Ge%)FG8 jm^2JBK0Y%qvm`!Vub}c4hfQvNN@-529Z3IYAZ7pnzPcQF literal 0 HcmV?d00001 diff --git a/findd/findd/__pycache__/settings.cpython-39.pyc b/findd/findd/__pycache__/settings.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..711f0fc0b127d50f0349b01843b7eb15450254ce GIT binary patch literal 2491 zcmb7GTXWM!6t-+RR!l-n5+K}KQCg@IB9j(qhv`rhTMix^I}_PSt6@eXd)M|lx}jYs zjb8gVcmUq|mv*L4o#{;fKp$E<^hmaeahPc;S*yLA?>lGDWo2uAKAV8+?cHCy4|0jb zZ_!}#l3?%z9{M{pC}AX!fReW0B#opH^;34rNZ}+Fe->V)UnlxA{TU;JL_fu0)j$7g0cX%TG>7J2i`^tjqw^rO@J1j4%Doi3f{{ZP zj0UXR-wMCgjf68gkgMxPoN!GcThTt>37 zGOg`{@y$rPaRq&5Ttz88k-ufF3W-Fv)VJKOCsWKAal2IRc!As@E<&;&czxVvN;bQN zT^v{pBe``f-$5~A-9ip=Wy-98jU?~L0}34Si1LB5p*#e185kWez%p@x+_4z(Tp50> zM?f91@mRbX0SF7s^GTZ)#^x4=^sI;F&cL>1n@}cu zos;cYE&@fE1oEL}4>0{dx&qvpQ1l0+Mj|h8amQl4TDUoK192&C4+6aIt*(9U9-855 zaC>9p3)C9;mjC31k8OADCc6Ki)9)SjTDQ&Bht>h5tu=OdtC61#mxnY;+jCh!T1xEI zaA|sWz*y$UE|a zgYbGMh*crQ@_nk5N28+Wc1Sm$3D-wV4nfGqM^=E9*e8S?D|+M{=xo1V3-3=W9+|34 z;Pv6$1S)@838aPNxk@p9{f8(GI!Y0mJ%W!WM8BD`#R5l9+M&W2d`#ML)=mJYH!*hW zBzSx1>Iu}tk8Hvw?SsD6K7h(mekcc)gX?}&B6I?mjVn?a1U3x|BMycg--e=8S^&l_ z8W)XHitDp6TBdw4w7Z6q6!#R(sI{3Fa!B*L$!gx`DlBY^Q*UgVigwfIb{!S+g(U7btn z&W;)PGWDHCrC!s+OGAeq(JqOS8e$L!m}d~~SOc4dDd&=n7*)$bPNs8=}^Z# z^5m;~_cpi~cpl@kw%4}oo<~_e&1baQR;8wKv8HZoT-s4}eZRg7CN*_!my1v9dLvkX z6D52)wZ}LGeT!14J!HbEMNn*;(xf<0S>&_6L})rO|?+`hh5iLlj5QH@fO&z97N z8kwN;6}8!TYK}9-+*7L+Sgb<^&sWvjR#V;5%woNy0bylZGmSc=mjvl#RyMw^@tLUC zFklxAU@k_M@Z7Lpu2eOBSOJSAt*kby4HIei^QekQ)pMLggC%*saEP{V>eAn?8tUmHsZEi z`62wJh#RN<32%wScjqpAJJii~jxFZU9oAX**8R&4;2v{n|I#*i(83(I4m|I8#mMPKW<{hmlU$vWELECFvC&Ks$f1Z9|*%{&5QrFEfZVMs-+0=kZPBDUMbA`cl49|rrO7DXDX5S>HVUWMMl$0&zfYUUko zcx(upZB5esfIJ7@5hrP02&rd;ETzavezAy(qA}JqjsJtjA1lBDS`|Vl6ua7;PWPI+ zRw8G6ghx4hJViY9y%$-e)crFkjJC4=jfK!FCXq;B7;ovkgk1l_2K|FbEilQh{|BQZ z9%mbx@&rUM`(bI=->p7JMi>HApgrizc73vJq@2}q)$IsS@GZ&4ch89O&uq^!k%S=N zcBd&COx~&QdslE3EZ?r&h~_ExJC%cqSG~sj%C48~d*zPt2rH``pzW~7*c_t34;@>!)hQ|6l?4TFmSM|CY-eLhq zb+MRVYt#WzwM@?>Tq3I)wj`5Xut@j`Se0uUT{$Y%ta4CK**EU3gZ9;u6AZxV=iP(Z q$syjo6LSN9n=w2nE~@^cT+mI%o}fPJ4ouEuWKZmVcVxGoAHM)v88&-p<5>K|s*n-apdRBIMIt_6<35fv%<)7-3WpNh3-PwuB|^ z$ZoJLI?{=p26u!jy~t~@Bf8R$e8evEUP% { const [jobs, setJobs] = useState(jobsData); const [currentJobIndex, setCurrentJobIndex] = useState(0); @@ -56,6 +55,8 @@ const JobsPage = () => { const [startX, setStartX] = useState(null); const [isMobile, setIsMobile] = useState(window.innerWidth <= 768); const [showDescription, setShowDescription] = useState(false); + const [swipeDirection, setSwipeDirection] = useState(""); // 🔹 Track swipe animation + const jobBoxRef = useRef(null); // Detect screen size change useEffect(() => { @@ -72,14 +73,22 @@ const JobsPage = () => { setRecentlyApplied(jobs[currentJobIndex]); setTimeout(() => setRecentlyApplied(null), 500); } - handleNext(); + setSwipeDirection("right"); // 🔹 Trigger right swipe animation + setTimeout(() => { + handleNext(); + setSwipeDirection(""); // Reset animation class + }, 300); }; // Function to move to the next job const handleNext = () => { if (currentJobIndex < jobs.length - 1) { - setCurrentJobIndex(currentJobIndex + 1); - setShowDescription(false); // Reset description visibility when switching jobs + setSwipeDirection("left"); // 🔹 Trigger left swipe animation + setTimeout(() => { + setCurrentJobIndex(currentJobIndex + 1); + setSwipeDirection(""); // Reset animation class + setShowDescription(false); + }, 300); } }; @@ -106,8 +115,22 @@ const JobsPage = () => { // Swipe events for mobile const handleTouchStart = (e) => { if (!isMobile) return; + + const jobBox = jobBoxRef.current; + const divider = document.querySelector(".divider"); + + if (!jobBox || !divider) return; + + // Get the Y position of the divider relative to the viewport + const dividerRect = divider.getBoundingClientRect(); + const touchY = e.touches[0].clientY; // Get the Y position of the touch event + + // If touch starts below the divider, disable swipe + if (touchY > dividerRect.bottom) return; + setStartX(e.touches[0].clientX); }; + const handleTouchEnd = (e) => { if (!isMobile || !startX) return; @@ -138,53 +161,48 @@ const JobsPage = () => { )} -
- {jobs[currentJobIndex] ? ( - <> - {/* 🔹 Job Title & Company Section */} -
-

{jobs[currentJobIndex].title}

-

{jobs[currentJobIndex].company}

+
+ {jobs[currentJobIndex] ? ( + <> + {/* 🔹 Job Title & Company Section */} +
+

{jobs[currentJobIndex].title}

+

{jobs[currentJobIndex].company}

+
+ + {/* 🔹 Black Divider */} +
+ + {/* 🔹 Job Description Section */} +
+

Title of Job:

+

{jobs[currentJobIndex].title}

+ +

Job Description:

+

{jobs[currentJobIndex].description}

+ +

Location:

+

{jobs[currentJobIndex].location}

+ +

Years of Experience Required:

+

{jobs[currentJobIndex].experience}

+ +

Salary:

+

{jobs[currentJobIndex].salary}

+ +

Mode of Job:

+

{jobs[currentJobIndex].mode}

+ +

Time Duration of Job:

+

{jobs[currentJobIndex].duration}

+
+ + ) : ( +

No more jobs available

+ )}
- - {/* 🔹 Black Divider */} -
- - {/* 🔹 Job Description Section */} -
-

Title of Job:

-

{jobs[currentJobIndex].title}

- -

Job Description:

-

{jobs[currentJobIndex].description}

- -

Location:

-

{jobs[currentJobIndex].location}

- -

Years of Experience Required:

-

{jobs[currentJobIndex].experience}

- -

Salary:

-

{jobs[currentJobIndex].salary}

- -

Mode of Job:

-

{jobs[currentJobIndex].mode}

- -

Time Duration of Job:

-

{jobs[currentJobIndex].duration}

-
- - - ) : ( -

No more jobs available

- )} -
-
); }; export default JobsPage; - - - diff --git a/findd/frontend/FINDD/src/pages/Login.css b/findd/frontend/FINDD/src/pages/Login.css index 5c291742..b7374cbe 100644 --- a/findd/frontend/FINDD/src/pages/Login.css +++ b/findd/frontend/FINDD/src/pages/Login.css @@ -23,10 +23,11 @@ box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; - width: 100%; + width: 95%; max-width: 400px; /* margin-top: -250px; */ gap: 10px; + padding-left: 20px; } .login-container label { @@ -43,6 +44,8 @@ border: 1px solid #ccc; border-radius: 5px; font-size: 14px; + background-color: white; + color: black; } .login-container button { @@ -61,4 +64,10 @@ .login-container button:hover { background-color: #1a252f; } - \ No newline at end of file + + @media (max-width: 600px) { + .login-container { + width: 115%; + padding: 20px; + } +} diff --git a/findd/frontend/FINDD/src/pages/RecruiterForm.css b/findd/frontend/FINDD/src/pages/RecruiterForm.css index ce246089..c9a4e607 100644 --- a/findd/frontend/FINDD/src/pages/RecruiterForm.css +++ b/findd/frontend/FINDD/src/pages/RecruiterForm.css @@ -42,9 +42,12 @@ width: 100%; padding: 10px; margin-bottom: 15px; + padding-left: 1px; border: 1px solid #ccc; border-radius: 5px; font-size: 14px; + background-color: white; + color: black; } /* Buttons */ @@ -85,10 +88,12 @@ margin-top: 10px; text-align: center; font-size: 14px; + padding-right: 100px; + color: black; } .login-link a { - color: #2c3e50; + color: #3491ee; font-weight: bold; text-decoration: none; } @@ -118,7 +123,7 @@ /* Responsive Design */ @media (max-width: 600px) { .recruiter-form-container form { - width: 90%; + width: 85%; padding: 20px; } diff --git a/findd/frontend/FINDD/vite.config.js b/findd/frontend/FINDD/vite.config.js index 7fc5d9cb..f075fa1d 100644 --- a/findd/frontend/FINDD/vite.config.js +++ b/findd/frontend/FINDD/vite.config.js @@ -5,12 +5,12 @@ import react from '@vitejs/plugin-react' export default defineConfig({ plugins: [react()], // base: '/static/frontend/dev/', - // server: { - // cors: { - // // the origin you will be accessing via browser - // origin: 'http://my-backend.example.com', - // }, - // }, + server: { + host: '0.0.0.0', // Allows access from other devices + port: 5173, // Default Vite port, change if needed + strictPort: true, // Ensures the port does not change + cors: true, // Allows cross-origin requests if needed + }, build: { // generate .vite/manifest.json in outDir manifest: true, diff --git a/findd/frontend/__pycache__/__init__.cpython-39.pyc b/findd/frontend/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bfd22dde211f636e397c1e335283fb0983bbf268 GIT binary patch literal 132 zcmYe~<>g`kg7Ts}=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o2DL)hfmg`kg7Ts}=}tiUF^Gc(44TX@fuanW zjJH@5Q*tx&{4|-O_)@YG^V0M6lJoOQiZYXmKnAR2C}IXuVB(jWt5u9!W?o84Od2v- h1XQ1zml6XuNUxys7Kcr4eoARhsvRRx>t`Tl001d4D5U@Z literal 0 HcmV?d00001 diff --git a/findd/frontend/__pycache__/apps.cpython-39.pyc b/findd/frontend/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a27396231f28ad6fa33dbbd9cde5ab04695439a3 GIT binary patch literal 413 zcmYjOy-vh13{IMy)I07N5GxW3Lzg}PLg)@e*=}KrDn$XORZ;(Fu0pWFQ}717QpCo@ zD==YSD^W}SV#l99TZvh%77XpV`^rD?{HA1T5|cH$J4FBnykr$uoU>a70f=`7!tytv z0+4qsn*AV)McmIfZF}9+S&=``&D1z1Yjk&vV432;u$wCZfs!ClMf$^}YwDe?VbFLz zfk#v4O$_&O)qpKsd{yL|e%B<0EkT9ZNZ&>?A8K8j%4+QwS|htJDPC&*)SGgw9D&VD zU+%O)4V{sQmsI;?-5l52!|&P6d72b8K$=Z)oRylkb#eRB32dNeas(lle1Efzgg+S9 bCT16qE^+@S3=w^R4=;vQFX?$4ahKu`D|Tei literal 0 HcmV?d00001 diff --git a/findd/frontend/__pycache__/models.cpython-39.pyc b/findd/frontend/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..a3dbc384c8672567dfb92c59d84cfd727d7b257f GIT binary patch literal 170 zcmYe~<>g`kg7Ts}={7+6F^Gc(44TX@fuanW zjJMcw^HWlDiv2X1ZgHk$CFZ5)>!l2p=>Px# literal 0 HcmV?d00001 diff --git a/findd/frontend/__pycache__/urls.cpython-39.pyc b/findd/frontend/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..97e54d60cd0658de2492362fecb7e0531dccfb54 GIT binary patch literal 282 zcmYk0ziz@X5XOD64K9SoV90`)5kg&H?9wfYR9QNcf)XdP1Bgdp=!5i?tZton1r~Y^ z9XQF~`P2RGkDg3MjN;^e$_wS+Xr4ood8Oy)B*+jdRznWJFhO1=HP1QyMJ^1WG#m#w z{Ng3#64g7)Uar)|G6k!DtVqno+QCzESnv~((dc>c=Lhvwyh>1Hels7k2RN-02%(KoC##!HwF{@8`1 z3PUm$4Xu^z|A=@BpP5eDJbZD`LGwku_)M&6)2**clCF6aMr7U_<9vv7DqI-8wla@E zBlgcXkGI*=&LU=;zEW*HS7-a3XLD3cKg7c^NlG~zA-L@vbZoDIT YU1xU{JxSOI$z4@rQ<{7ER2MdmE_rlB)c^nh literal 0 HcmV?d00001 diff --git a/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc b/findd/frontend/migrations/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..8d28ef2058536bf91eb000e2a2afc35bd9b8dd28 GIT binary patch literal 143 zcmYe~<>g`kg7Ts}=^*+sh(HF6K#l_t7qb9~6oz01O-8?!3`HPe1o6wn)hfmg`kf;nezr-SInAOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUSISF0Ge%)FG8 rm^36ZJ+-7fzbHE|xvlTgt+a04#DVYq-g)c|{5N(Z=x#(YVIb=LkT6)}*0~HWsre0SoNfUK38i z;SRXqz1zrr?m}RA$UTS*kGT&s!xJ9BT=UXpA)Ks8y4a%vNiF4c#jsI+B_8V$_#V3= zDOL1r=Wg1DXDliCux;hbx{$~)uS(I5L&jpm zCbzGRvCCL=AliAKMk_XZI%6+Z)wpZRT$ty=U#XOx_2{zS2iGyS8 zRE*g;&%mYVKZ#6q84bUuH|P0nB>?iLBQz7_T65XGsoY}F5GA?XT}qa0B~H_(hqefi!(QZj5flZA=BO5MdRZ7XHX zdJo%?9_cZ*W4(XOvV(td2bKw+fN8V=ufXUM%-m(%%ipYlEb?*HF3QFy*tBcsN5$GL zP2FO%uK()T(J_Yl~ z+F19F0sZmn(a+zXJSiKkPoCe1+XYTumgd|}&t7>+OQp0Ot;0BsFn&I#Z*aC_E4Jcr z*NI(jF4E$XA0xAvXEfU!?(%d6APkva?H}z%0~?w2a*g!(Noh}S5~4#zKs11&K;`sd z50Ov$MQPNc_L#HcLje;+xAK-aKyTo(La@zy;si2^*kaG?Qg%n?N&(K$gAa zND=R8CgZ9d6<8~2_IY(vN&^oG8O@S>lm~o;?X6v@M0&%n8w4b-<|t-`h-D;M6wJ-j$RPq26I1pFL7%efALl zv^7a@kPyZFtxe!NoS$X;exg@JvuLMw*@By|o&9jM{ny*MdD}QBpH0b=)4J8BvJk2| z{KN-+Il)1};_&up26{`a!{{zw0 BVU+*? literal 0 HcmV?d00001 diff --git a/findd/home/__pycache__/__init__.cpython-39.pyc b/findd/home/__pycache__/__init__.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b90c3f0c187fb58c994efbee007e74bce92e20c4 GIT binary patch literal 128 zcmYe~<>g`kf;nezr-SInAOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUT5SF0Ge%)FG8 om^36ZBR@AaCO$qhFS8^*Uaz3?7Kcr4eoARhsvSuCXCP((0HAgp8~^|S literal 0 HcmV?d00001 diff --git a/findd/home/__pycache__/admin.cpython-39.pyc b/findd/home/__pycache__/admin.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..7eac73124e14889ac6a700af4fd532af2c75925e GIT binary patch literal 169 zcmYe~<>g`kf;nezr#k`Z#~=C8g34PQHo5sJr8%i~j6iLlftUdR$lfPu literal 0 HcmV?d00001 diff --git a/findd/home/__pycache__/apps.cpython-39.pyc b/findd/home/__pycache__/apps.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..4111602f745df7db66fff6a1d788f98d9e94e0cd GIT binary patch literal 401 zcmYjNJ5Izf5Vd2k6tcSwqD6u-O%8w%+6A#tZ9^ADvJB&dAm>B8DWHWDP;&te!v#!9 z#TBTS*{noHn&}BV602d%VODYnpJ5mczKW1bv*H*Qnjv(Qa(}&nZ2cWrqpAv?XI&ACfB{) zD2?+f9|WlP!8*Fb7JiQ}PqI~617!IK>7PuutxMXcP9T|1;|M}7`L?o-g`e)$C1w|p XCUO7OhiHm5AD#|tp3zAhacANWKxAN? literal 0 HcmV?d00001 diff --git a/findd/home/__pycache__/models.cpython-39.pyc b/findd/home/__pycache__/models.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..5a6be344ce1bef86a33cd8e73d515671981582ad GIT binary patch literal 166 zcmYe~<>g`kf;nezr`rJO#~=wn literal 0 HcmV?d00001 diff --git a/findd/home/__pycache__/urls.cpython-39.pyc b/findd/home/__pycache__/urls.cpython-39.pyc new file mode 100644 index 0000000000000000000000000000000000000000..cb3f0d8beda776635bc5f1c3d761148824871faa GIT binary patch literal 246 zcmYe~<>g`kf;nezr>6qx#~=>|v8J#FGib8C1gd7xWV*#tkXVv&i#;G^u4MLESqOhCCJkaf3M%Q92Ti*K=H+S~&rltm;Mogq_bQM{ES^VAZ*|#tYYGl@19D`b?+5Mt z2ZIs5{2rYjFE83ospZWMQseTW)sL>cdkQgyDRIyc#$gX}QH;Y(-B#VIFJ04vuLtio zEI=!T!)>naI}h!3Nk^2nSK2s;sbK$~0!T0eLg`kf;nezr-SInAOaaM0yz#qT+9L_QW%06G#UL?G8BP?5yUS8SF0Ge%)FG8 zm^36ZBR@AaCO0#^D6u3nKd(3@K0Y%qvm`!Vub}c4hfQvNN@-529mu55K+FID8V?}A literal 0 HcmV?d00001 diff --git a/findd_frontend/FINDD/package-lock.json b/findd_frontend/FINDD/package-lock.json index 641f1f8f..bcb38201 100644 --- a/findd_frontend/FINDD/package-lock.json +++ b/findd_frontend/FINDD/package-lock.json @@ -25,7 +25,7 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", - "vite": "^6.1.0" + "vite": "^6.2.2" } }, "node_modules/@ampproject/remapping": { @@ -325,9 +325,9 @@ } }, "node_modules/@esbuild/aix-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.24.2.tgz", - "integrity": "sha512-thpVCb/rhxE/BnMLQ7GReQLLN8q9qbHmI55F4489/ByVg2aQaQ6kbcLb6FHkocZzQhxc4gx0sCk0tJkKBFzDhA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.1.tgz", + "integrity": "sha512-kfYGy8IdzTGy+z0vFGvExZtxkFlA4zAxgKEahG9KE1ScBjpQnFsNOX8KTU5ojNru5ed5CVoJYXFtoxaq5nFbjQ==", "cpu": [ "ppc64" ], @@ -342,9 +342,9 @@ } }, "node_modules/@esbuild/android-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.24.2.tgz", - "integrity": "sha512-tmwl4hJkCfNHwFB3nBa8z1Uy3ypZpxqxfTQOcHX+xRByyYgunVbZ9MzUUfb0RxaHIMnbHagwAxuTL+tnNM+1/Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.1.tgz", + "integrity": "sha512-dp+MshLYux6j/JjdqVLnMglQlFu+MuVeNrmT5nk6q07wNhCdSnB7QZj+7G8VMUGh1q+vj2Bq8kRsuyA00I/k+Q==", "cpu": [ "arm" ], @@ -359,9 +359,9 @@ } }, "node_modules/@esbuild/android-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.24.2.tgz", - "integrity": "sha512-cNLgeqCqV8WxfcTIOeL4OAtSmL8JjcN6m09XIgro1Wi7cF4t/THaWEa7eL5CMoMBdjoHOTh/vwTO/o2TRXIyzg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.1.tgz", + "integrity": "sha512-50tM0zCJW5kGqgG7fQ7IHvQOcAn9TKiVRuQ/lN0xR+T2lzEFvAi1ZcS8DiksFcEpf1t/GYOeOfCAgDHFpkiSmA==", "cpu": [ "arm64" ], @@ -376,9 +376,9 @@ } }, "node_modules/@esbuild/android-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.24.2.tgz", - "integrity": "sha512-B6Q0YQDqMx9D7rvIcsXfmJfvUYLoP722bgfBlO5cGvNVb5V/+Y7nhBE3mHV9OpxBf4eAS2S68KZztiPaWq4XYw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.1.tgz", + "integrity": "sha512-GCj6WfUtNldqUzYkN/ITtlhwQqGWu9S45vUXs7EIYf+7rCiiqH9bCloatO9VhxsL0Pji+PF4Lz2XXCES+Q8hDw==", "cpu": [ "x64" ], @@ -393,9 +393,9 @@ } }, "node_modules/@esbuild/darwin-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.24.2.tgz", - "integrity": "sha512-kj3AnYWc+CekmZnS5IPu9D+HWtUI49hbnyqk0FLEJDbzCIQt7hg7ucF1SQAilhtYpIujfaHr6O0UHlzzSPdOeA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.1.tgz", + "integrity": "sha512-5hEZKPf+nQjYoSr/elb62U19/l1mZDdqidGfmFutVUjjUZrOazAtwK+Kr+3y0C/oeJfLlxo9fXb1w7L+P7E4FQ==", "cpu": [ "arm64" ], @@ -410,9 +410,9 @@ } }, "node_modules/@esbuild/darwin-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.24.2.tgz", - "integrity": "sha512-WeSrmwwHaPkNR5H3yYfowhZcbriGqooyu3zI/3GGpF8AyUdsrrP0X6KumITGA9WOyiJavnGZUwPGvxvwfWPHIA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.1.tgz", + "integrity": "sha512-hxVnwL2Dqs3fM1IWq8Iezh0cX7ZGdVhbTfnOy5uURtao5OIVCEyj9xIzemDi7sRvKsuSdtCAhMKarxqtlyVyfA==", "cpu": [ "x64" ], @@ -427,9 +427,9 @@ } }, "node_modules/@esbuild/freebsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.24.2.tgz", - "integrity": "sha512-UN8HXjtJ0k/Mj6a9+5u6+2eZ2ERD7Edt1Q9IZiB5UZAIdPnVKDoG7mdTVGhHJIeEml60JteamR3qhsr1r8gXvg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.1.tgz", + "integrity": "sha512-1MrCZs0fZa2g8E+FUo2ipw6jw5qqQiH+tERoS5fAfKnRx6NXH31tXBKI3VpmLijLH6yriMZsxJtaXUyFt/8Y4A==", "cpu": [ "arm64" ], @@ -444,9 +444,9 @@ } }, "node_modules/@esbuild/freebsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.24.2.tgz", - "integrity": "sha512-TvW7wE/89PYW+IevEJXZ5sF6gJRDY/14hyIGFXdIucxCsbRmLUcjseQu1SyTko+2idmCw94TgyaEZi9HUSOe3Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.1.tgz", + "integrity": "sha512-0IZWLiTyz7nm0xuIs0q1Y3QWJC52R8aSXxe40VUxm6BB1RNmkODtW6LHvWRrGiICulcX7ZvyH6h5fqdLu4gkww==", "cpu": [ "x64" ], @@ -461,9 +461,9 @@ } }, "node_modules/@esbuild/linux-arm": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.24.2.tgz", - "integrity": "sha512-n0WRM/gWIdU29J57hJyUdIsk0WarGd6To0s+Y+LwvlC55wt+GT/OgkwoXCXvIue1i1sSNWblHEig00GBWiJgfA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.1.tgz", + "integrity": "sha512-NdKOhS4u7JhDKw9G3cY6sWqFcnLITn6SqivVArbzIaf3cemShqfLGHYMx8Xlm/lBit3/5d7kXvriTUGa5YViuQ==", "cpu": [ "arm" ], @@ -478,9 +478,9 @@ } }, "node_modules/@esbuild/linux-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.24.2.tgz", - "integrity": "sha512-7HnAD6074BW43YvvUmE/35Id9/NB7BeX5EoNkK9obndmZBUk8xmJJeU7DwmUeN7tkysslb2eSl6CTrYz6oEMQg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.1.tgz", + "integrity": "sha512-jaN3dHi0/DDPelk0nLcXRm1q7DNJpjXy7yWaWvbfkPvI+7XNSc/lDOnCLN7gzsyzgu6qSAmgSvP9oXAhP973uQ==", "cpu": [ "arm64" ], @@ -495,9 +495,9 @@ } }, "node_modules/@esbuild/linux-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.24.2.tgz", - "integrity": "sha512-sfv0tGPQhcZOgTKO3oBE9xpHuUqguHvSo4jl+wjnKwFpapx+vUDcawbwPNuBIAYdRAvIDBfZVvXprIj3HA+Ugw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.1.tgz", + "integrity": "sha512-OJykPaF4v8JidKNGz8c/q1lBO44sQNUQtq1KktJXdBLn1hPod5rE/Hko5ugKKZd+D2+o1a9MFGUEIUwO2YfgkQ==", "cpu": [ "ia32" ], @@ -512,9 +512,9 @@ } }, "node_modules/@esbuild/linux-loong64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.24.2.tgz", - "integrity": "sha512-CN9AZr8kEndGooS35ntToZLTQLHEjtVB5n7dl8ZcTZMonJ7CCfStrYhrzF97eAecqVbVJ7APOEe18RPI4KLhwQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.1.tgz", + "integrity": "sha512-nGfornQj4dzcq5Vp835oM/o21UMlXzn79KobKlcs3Wz9smwiifknLy4xDCLUU0BWp7b/houtdrgUz7nOGnfIYg==", "cpu": [ "loong64" ], @@ -529,9 +529,9 @@ } }, "node_modules/@esbuild/linux-mips64el": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.24.2.tgz", - "integrity": "sha512-iMkk7qr/wl3exJATwkISxI7kTcmHKE+BlymIAbHO8xanq/TjHaaVThFF6ipWzPHryoFsesNQJPE/3wFJw4+huw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.1.tgz", + "integrity": "sha512-1osBbPEFYwIE5IVB/0g2X6i1qInZa1aIoj1TdL4AaAb55xIIgbg8Doq6a5BzYWgr+tEcDzYH67XVnTmUzL+nXg==", "cpu": [ "mips64el" ], @@ -546,9 +546,9 @@ } }, "node_modules/@esbuild/linux-ppc64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.24.2.tgz", - "integrity": "sha512-shsVrgCZ57Vr2L8mm39kO5PPIb+843FStGt7sGGoqiiWYconSxwTiuswC1VJZLCjNiMLAMh34jg4VSEQb+iEbw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.1.tgz", + "integrity": "sha512-/6VBJOwUf3TdTvJZ82qF3tbLuWsscd7/1w+D9LH0W/SqUgM5/JJD0lrJ1fVIfZsqB6RFmLCe0Xz3fmZc3WtyVg==", "cpu": [ "ppc64" ], @@ -563,9 +563,9 @@ } }, "node_modules/@esbuild/linux-riscv64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.24.2.tgz", - "integrity": "sha512-4eSFWnU9Hhd68fW16GD0TINewo1L6dRrB+oLNNbYyMUAeOD2yCK5KXGK1GH4qD/kT+bTEXjsyTCiJGHPZ3eM9Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.1.tgz", + "integrity": "sha512-nSut/Mx5gnilhcq2yIMLMe3Wl4FK5wx/o0QuuCLMtmJn+WeWYoEGDN1ipcN72g1WHsnIbxGXd4i/MF0gTcuAjQ==", "cpu": [ "riscv64" ], @@ -580,9 +580,9 @@ } }, "node_modules/@esbuild/linux-s390x": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.24.2.tgz", - "integrity": "sha512-S0Bh0A53b0YHL2XEXC20bHLuGMOhFDO6GN4b3YjRLK//Ep3ql3erpNcPlEFed93hsQAjAQDNsvcK+hV90FubSw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.1.tgz", + "integrity": "sha512-cEECeLlJNfT8kZHqLarDBQso9a27o2Zd2AQ8USAEoGtejOrCYHNtKP8XQhMDJMtthdF4GBmjR2au3x1udADQQQ==", "cpu": [ "s390x" ], @@ -597,9 +597,9 @@ } }, "node_modules/@esbuild/linux-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.24.2.tgz", - "integrity": "sha512-8Qi4nQcCTbLnK9WoMjdC9NiTG6/E38RNICU6sUNqK0QFxCYgoARqVqxdFmWkdonVsvGqWhmm7MO0jyTqLqwj0Q==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.1.tgz", + "integrity": "sha512-xbfUhu/gnvSEg+EGovRc+kjBAkrvtk38RlerAzQxvMzlB4fXpCFCeUAYzJvrnhFtdeyVCDANSjJvOvGYoeKzFA==", "cpu": [ "x64" ], @@ -614,9 +614,9 @@ } }, "node_modules/@esbuild/netbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.24.2.tgz", - "integrity": "sha512-wuLK/VztRRpMt9zyHSazyCVdCXlpHkKm34WUyinD2lzK07FAHTq0KQvZZlXikNWkDGoT6x3TD51jKQ7gMVpopw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.1.tgz", + "integrity": "sha512-O96poM2XGhLtpTh+s4+nP7YCCAfb4tJNRVZHfIE7dgmax+yMP2WgMd2OecBuaATHKTHsLWHQeuaxMRnCsH8+5g==", "cpu": [ "arm64" ], @@ -631,9 +631,9 @@ } }, "node_modules/@esbuild/netbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.24.2.tgz", - "integrity": "sha512-VefFaQUc4FMmJuAxmIHgUmfNiLXY438XrL4GDNV1Y1H/RW3qow68xTwjZKfj/+Plp9NANmzbH5R40Meudu8mmw==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.1.tgz", + "integrity": "sha512-X53z6uXip6KFXBQ+Krbx25XHV/NCbzryM6ehOAeAil7X7oa4XIq+394PWGnwaSQ2WRA0KI6PUO6hTO5zeF5ijA==", "cpu": [ "x64" ], @@ -648,9 +648,9 @@ } }, "node_modules/@esbuild/openbsd-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.24.2.tgz", - "integrity": "sha512-YQbi46SBct6iKnszhSvdluqDmxCJA+Pu280Av9WICNwQmMxV7nLRHZfjQzwbPs3jeWnuAhE9Jy0NrnJ12Oz+0A==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.1.tgz", + "integrity": "sha512-Na9T3szbXezdzM/Kfs3GcRQNjHzM6GzFBeU1/6IV/npKP5ORtp9zbQjvkDJ47s6BCgaAZnnnu/cY1x342+MvZg==", "cpu": [ "arm64" ], @@ -665,9 +665,9 @@ } }, "node_modules/@esbuild/openbsd-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.24.2.tgz", - "integrity": "sha512-+iDS6zpNM6EnJyWv0bMGLWSWeXGN/HTaF/LXHXHwejGsVi+ooqDfMCCTerNFxEkM3wYVcExkeGXNqshc9iMaOA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.1.tgz", + "integrity": "sha512-T3H78X2h1tszfRSf+txbt5aOp/e7TAz3ptVKu9Oyir3IAOFPGV6O9c2naym5TOriy1l0nNf6a4X5UXRZSGX/dw==", "cpu": [ "x64" ], @@ -682,9 +682,9 @@ } }, "node_modules/@esbuild/sunos-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.24.2.tgz", - "integrity": "sha512-hTdsW27jcktEvpwNHJU4ZwWFGkz2zRJUz8pvddmXPtXDzVKTTINmlmga3ZzwcuMpUvLw7JkLy9QLKyGpD2Yxig==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.1.tgz", + "integrity": "sha512-2H3RUvcmULO7dIE5EWJH8eubZAI4xw54H1ilJnRNZdeo8dTADEZ21w6J22XBkXqGJbe0+wnNJtw3UXRoLJnFEg==", "cpu": [ "x64" ], @@ -699,9 +699,9 @@ } }, "node_modules/@esbuild/win32-arm64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.24.2.tgz", - "integrity": "sha512-LihEQ2BBKVFLOC9ZItT9iFprsE9tqjDjnbulhHoFxYQtQfai7qfluVODIYxt1PgdoyQkz23+01rzwNwYfutxUQ==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.1.tgz", + "integrity": "sha512-GE7XvrdOzrb+yVKB9KsRMq+7a2U/K5Cf/8grVFRAGJmfADr/e/ODQ134RK2/eeHqYV5eQRFxb1hY7Nr15fv1NQ==", "cpu": [ "arm64" ], @@ -716,9 +716,9 @@ } }, "node_modules/@esbuild/win32-ia32": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.24.2.tgz", - "integrity": "sha512-q+iGUwfs8tncmFC9pcnD5IvRHAzmbwQ3GPS5/ceCyHdjXubwQWI12MKWSNSMYLJMq23/IUCvJMS76PDqXe1fxA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.1.tgz", + "integrity": "sha512-uOxSJCIcavSiT6UnBhBzE8wy3n0hOkJsBOzy7HDAuTDE++1DJMRRVCPGisULScHL+a/ZwdXPpXD3IyFKjA7K8A==", "cpu": [ "ia32" ], @@ -733,9 +733,9 @@ } }, "node_modules/@esbuild/win32-x64": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.24.2.tgz", - "integrity": "sha512-7VTgWzgMGvup6aSqDPLiW5zHaxYJGTO4OokMjIlrCtf+VpEL+cXKtCvg723iguPYI5oaUNdS+/V7OU2gvXVWEg==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.1.tgz", + "integrity": "sha512-Y1EQdcfwMSeQN/ujR5VayLOJ1BHaK+ssyk0AEzPjC+t1lITgsnccPqFjb6V+LsTp/9Iov4ysfjxLaGJ9RPtkVg==", "cpu": [ "x64" ], @@ -2881,9 +2881,9 @@ } }, "node_modules/esbuild": { - "version": "0.24.2", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.24.2.tgz", - "integrity": "sha512-+9egpBW8I3CD5XPe0n6BfT5fxLzxrlDzqydF3aviG+9ni1lDC/OvMHcxqEFV0+LANZG5R1bFMWfUrjVsdwxJvA==", + "version": "0.25.1", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.1.tgz", + "integrity": "sha512-BGO5LtrGC7vxnqucAe/rmvKdJllfGaYWdyABvyMoXQlfYMb2bbRuReWR5tEGE//4LcNJj9XrkovTqNYRFZHAMQ==", "dev": true, "hasInstallScript": true, "license": "MIT", @@ -2894,31 +2894,31 @@ "node": ">=18" }, "optionalDependencies": { - "@esbuild/aix-ppc64": "0.24.2", - "@esbuild/android-arm": "0.24.2", - "@esbuild/android-arm64": "0.24.2", - "@esbuild/android-x64": "0.24.2", - "@esbuild/darwin-arm64": "0.24.2", - "@esbuild/darwin-x64": "0.24.2", - "@esbuild/freebsd-arm64": "0.24.2", - "@esbuild/freebsd-x64": "0.24.2", - "@esbuild/linux-arm": "0.24.2", - "@esbuild/linux-arm64": "0.24.2", - "@esbuild/linux-ia32": "0.24.2", - "@esbuild/linux-loong64": "0.24.2", - "@esbuild/linux-mips64el": "0.24.2", - "@esbuild/linux-ppc64": "0.24.2", - "@esbuild/linux-riscv64": "0.24.2", - "@esbuild/linux-s390x": "0.24.2", - "@esbuild/linux-x64": "0.24.2", - "@esbuild/netbsd-arm64": "0.24.2", - "@esbuild/netbsd-x64": "0.24.2", - "@esbuild/openbsd-arm64": "0.24.2", - "@esbuild/openbsd-x64": "0.24.2", - "@esbuild/sunos-x64": "0.24.2", - "@esbuild/win32-arm64": "0.24.2", - "@esbuild/win32-ia32": "0.24.2", - "@esbuild/win32-x64": "0.24.2" + "@esbuild/aix-ppc64": "0.25.1", + "@esbuild/android-arm": "0.25.1", + "@esbuild/android-arm64": "0.25.1", + "@esbuild/android-x64": "0.25.1", + "@esbuild/darwin-arm64": "0.25.1", + "@esbuild/darwin-x64": "0.25.1", + "@esbuild/freebsd-arm64": "0.25.1", + "@esbuild/freebsd-x64": "0.25.1", + "@esbuild/linux-arm": "0.25.1", + "@esbuild/linux-arm64": "0.25.1", + "@esbuild/linux-ia32": "0.25.1", + "@esbuild/linux-loong64": "0.25.1", + "@esbuild/linux-mips64el": "0.25.1", + "@esbuild/linux-ppc64": "0.25.1", + "@esbuild/linux-riscv64": "0.25.1", + "@esbuild/linux-s390x": "0.25.1", + "@esbuild/linux-x64": "0.25.1", + "@esbuild/netbsd-arm64": "0.25.1", + "@esbuild/netbsd-x64": "0.25.1", + "@esbuild/openbsd-arm64": "0.25.1", + "@esbuild/openbsd-x64": "0.25.1", + "@esbuild/sunos-x64": "0.25.1", + "@esbuild/win32-arm64": "0.25.1", + "@esbuild/win32-ia32": "0.25.1", + "@esbuild/win32-x64": "0.25.1" } }, "node_modules/escalade": { @@ -5445,14 +5445,14 @@ } }, "node_modules/vite": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/vite/-/vite-6.1.1.tgz", - "integrity": "sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==", + "version": "6.2.2", + "resolved": "https://registry.npmjs.org/vite/-/vite-6.2.2.tgz", + "integrity": "sha512-yW7PeMM+LkDzc7CgJuRLMW2Jz0FxMOsVJ8Lv3gpgW9WLcb9cTW+121UEr1hvmfR7w3SegR5ItvYyzVz1vxNJgQ==", "dev": true, "license": "MIT", "dependencies": { - "esbuild": "^0.24.2", - "postcss": "^8.5.2", + "esbuild": "^0.25.0", + "postcss": "^8.5.3", "rollup": "^4.30.1" }, "bin": { diff --git a/findd_frontend/FINDD/package.json b/findd_frontend/FINDD/package.json index 200d2198..40788426 100644 --- a/findd_frontend/FINDD/package.json +++ b/findd_frontend/FINDD/package.json @@ -28,6 +28,6 @@ "eslint-plugin-react-hooks": "^5.0.0", "eslint-plugin-react-refresh": "^0.4.18", "globals": "^15.14.0", - "vite": "^6.1.0" + "vite": "^6.2.2" } } diff --git a/findd_frontend/FINDD/src/pages/Jobs.css b/findd_frontend/FINDD/src/pages/Jobs.css index c0ec8bd3..d15b534a 100644 --- a/findd_frontend/FINDD/src/pages/Jobs.css +++ b/findd_frontend/FINDD/src/pages/Jobs.css @@ -10,30 +10,46 @@ background-color: white; padding-left: 6px; padding-right: 5px; + margin-top: 65px; } /* Centered Job Box */ .job-box { - width: 1290px; - height: 640px; + width: 1278px; + height: 1200px; background: #fdbf62; border-radius: 10px; padding: 20px; + padding-top: 220px; text-align: center; box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); display: flex; flex-direction: column; justify-content: center; + align-items: center; position: relative; font-family: Arial, sans-serif; font-size: 18px; - margin-top: 35px; + margin-top: 700px; +} + +.job-header { + text-align: center; + padding: 20px 0; +} + +.divider { + width: 100%; + height: 2px; + background-color: black; + margin-top: 190px; + margin-bottom: 50px; } /* Applied Job Notification */ .applied-job-popup { position: absolute; - top: 20px; + top: 100px; left: 50%; transform: translateX(-50%); background: green; @@ -43,106 +59,49 @@ font-size: 16px; animation: fadeOut 2s; z-index: 10; - display: none; - /* margin-top: 100px; */ + display: block; + transition: opacity 0.2s ease-in-out; + opacity: 0; } @keyframes fadeOut { 0% { opacity: 1; } - 100% { opacity: 0; } -} - -/* More Details Clickable Text */ -.more-details { - color: blue; - text-decoration: none; - cursor: pointer; - font-size: 16px; - margin-top: 10px; -} - -.more-details:hover { - text-decoration: underline; } -/* Mobile Overlay (Covers only 50% of screen) */ -.job-overlay { - display: none; /* Hidden by default */ - position: fixed; - bottom: 0; - left: 0; - width: 100%; - height: 50vh; /* Covers only half of the screen */ - background: rgba(0, 0, 0, 0.8); - backdrop-filter: blur(5px); - color: white; - align-items: center; - justify-content: center; - font-size: 18px; - text-align: center; - padding: 20px; - z-index: 999; -} - -/* Show Overlay when Active */ -.job-overlay.active { - display: flex; -} - -/* Close Button for Popup */ -.close-overlay, .close-popup { - position: absolute; - top: 10px; - right: 15px; - font-size: 24px; - cursor: pointer; - color: white; -} - -/* Desktop Popup */ -.popup { - display: none; /* Initially hidden */ - position: fixed; - top: 58%; - left: 50%; - transform: translate(-50%, -50%); - width: 400px; - height: 150px; - max-width: 90%; - background: white; - padding: 20px; - box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.2); +/* ✅ New Feature: Scrollable Job Description */ +.job-description-container { + width: 1278px; + max-height: 1200px; + overflow-y: auto; + background: #fdbf62; border-radius: 10px; - z-index: 1000; - text-align: center; + padding: 15px; + /* margin-top: 10px; */ + text-align: left; + /* box-shadow: 0px 4px 10px rgba(0, 0, 0, 0.1); */ + /* margin-top: 20px; */ + transition: opacity 0.3s ease-in-out; } -/* Show Popup */ -.popup.active { - display: block; +.job-description-container h3 { + font-size: 18px; + font-weight: bold; + margin-bottom: 5px; + color: #222; } -/* Close Button for Popup */ -.close-popup { - color: black; - position: absolute; - font-size: 24px; - font-weight: bold; - top: 10px; - right: 10px; - cursor: pointer; +.job-description-container p { + font-size: 16px; + color: #333; + line-height: 1.5; + margin-bottom: 10px; } -/* Base Styles (Applies to Mobile) */ -.jobs-container { - padding-top: 60px; /* Adjust based on navbar height */ - height: calc(100vh - 60px); /* Full height minus navbar */ - display: flex; - flex-direction: column; - align-items: center; - justify-content: center; - width: 100%; - background-color: white; +.job-description { + font-size: 16px; + color: #333; + line-height: 1.5; + /* margin-top: 600px; */ } /* Responsive Adjustments */ @@ -158,52 +117,122 @@ top: 15%; left: 50%; } + .job-description-container { + width: 60%; + } } /* Small Tablets & Large Phones (768px and below) */ @media (max-width: 768px) { .jobs-container { - padding: 50px 20px; + padding: 0; + margin: 0; + height: 100vh; + width: 100vw; + overflow: hidden; + display: flex; + align-items: center; + justify-content: center; } .job-box { - width: 90%; - height: 100%; + width: 100vw; + height: calc(100vh - 60px); max-height: calc(100vh - 60px); /* Full screen minus navbar */ - padding: 20px; display: flex; flex-direction: column; justify-content: center; text-align: center; font-size: 18px; + box-sizing: border-box; + margin: 0; } .applied-job-popup { font-size: 14px; } + .job-description-container { + width: 90vw; + max-height: 180px; + } } /* ✅ Mobile Screens (480px and below) */ @media (max-width: 480px) { .jobs-container { - height: auto; - padding: 20px; + height: 100%; + width: 100vw; + margin: 0; + padding: 0; + display: flex; + align-items: center; + justify-content: center; + margin-top: 62px; + } + + .divider { + margin-top: 150px; /* Increased margin to push it further down */ + margin-bottom: 20px; } .job-box { - width: 95%; + width: 100vw; + height: calc(100vh - 60px); + max-height: calc(100vh - 60px); font-size: 16px; padding: 15px; + box-sizing: border-box; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; } .applied-job-popup { font-size: 12px; } + .job-description-container { + width: 90vw; + max-height: 180px; /* Slightly increased for better readability */ + overflow-y: auto; + padding: 10px; + } } /* ✅ Extra Small Screens (360px and below) */ @media (max-width: 360px) { + .jobs-container { + width: 100vw; + height: 1200px; + padding: 0; + margin: 0; + margin-top: -165px; + display: flex; + align-items: center; + justify-content: center; + } + .job-box { - width: 95%; - font-size: 16px; + width: 100vw; + min-height: 1200px; /* Increase height dynamically */ + font-size: 14px; + padding: 10px; + padding-top: 465px; + display: flex; + flex-direction: column; + justify-content: center; + } + + .divider { + margin-top: 300px; /* Keep reasonable margin */ + margin-bottom: 20px; } + .applied-job-popup { font-size: 10px; + padding: 5px; + margin-top: 150px; + } + + .job-description-container { + width: 90vw; + max-height: 400px; /* Adjusted for small screens */ + overflow-y: auto; } -} \ No newline at end of file +} diff --git a/findd_frontend/FINDD/src/pages/Jobs.jsx b/findd_frontend/FINDD/src/pages/Jobs.jsx index 609c4931..5f6a197a 100644 --- a/findd_frontend/FINDD/src/pages/Jobs.jsx +++ b/findd_frontend/FINDD/src/pages/Jobs.jsx @@ -2,20 +2,60 @@ import React, { useState, useEffect } from "react"; import "./Jobs.css"; const jobsData = [ - { id: 1, title: "Software Engineer", company: "Google", description: "Develop scalable applications using React and Node.js." }, - { id: 2, title: "Frontend Developer", company: "Amazon", description: "Build interactive UIs using modern frameworks like React and Vue." }, - { id: 3, title: "Data Analyst", company: "Microsoft", description: "Analyze data trends using Python, SQL, and Power BI." }, - { id: 4, title: "Cybersecurity Expert", company: "Tesla", description: "Secure networks, prevent cyber attacks, and analyze threats." }, + { + id: 1, + title: "Software Engineer", + company: "Google", + description: "Develop scalable applications using React and Node.js.", + location: "Mountain View, CA", + experience: "2+ years", + salary: "$120,000 - $150,000 per year", + mode: "Full-time", + duration: "Permanent" + }, + { + id: 2, + title: "Frontend Developer", + company: "Amazon", + description: "Build interactive UIs using modern frameworks like React and Vue.", + location: "Seattle, WA", + experience: "1-3 years", + salary: "$100,000 - $130,000 per year", + mode: "Hybrid", + duration: "Permanent" + }, + { + id: 3, + title: "Data Analyst", + company: "Microsoft", + description: "Analyze data trends using Python, SQL, and Power BI.", + location: "Redmond, WA", + experience: "3+ years", + salary: "$90,000 - $120,000 per year", + mode: "Remote", + duration: "6-month contract" + }, + { + id: 4, + title: "Cybersecurity Expert", + company: "Tesla", + description: "Secure networks, prevent cyber attacks, and analyze threats.", + location: "Austin, TX", + experience: "4+ years", + salary: "$130,000 - $160,000 per year", + mode: "Full-time", + duration: "Permanent" + } ]; + const JobsPage = () => { const [jobs, setJobs] = useState(jobsData); const [currentJobIndex, setCurrentJobIndex] = useState(0); const [recentlyApplied, setRecentlyApplied] = useState(null); const [startX, setStartX] = useState(null); const [isMobile, setIsMobile] = useState(window.innerWidth <= 768); - const [overlayJob, setOverlayJob] = useState(null); - const [popupJob, setPopupJob] = useState(null); // Popup for Desktop + const [showDescription, setShowDescription] = useState(false); // Detect screen size change useEffect(() => { @@ -28,19 +68,18 @@ const JobsPage = () => { // Function to handle applying for a job const handleApply = () => { - if(popupJob) return; if (currentJobIndex < jobs.length) { setRecentlyApplied(jobs[currentJobIndex]); - setTimeout(() => setRecentlyApplied(null), 3000); + setTimeout(() => setRecentlyApplied(null), 500); } handleNext(); }; // Function to move to the next job const handleNext = () => { - if(popupJob) return; if (currentJobIndex < jobs.length - 1) { setCurrentJobIndex(currentJobIndex + 1); + setShowDescription(false); // Reset description visibility when switching jobs } }; @@ -48,7 +87,8 @@ const JobsPage = () => { useEffect(() => { if (!isMobile) { const handleClick = (e) => { - if(popupJob) return; + const jobsContainer = document.querySelector(".jobs-container"); + if (!jobsContainer.contains(e.target)) return; if (e.clientX < window.innerWidth / 2) { handleNext(); // Left click → next job } else { @@ -61,7 +101,7 @@ const JobsPage = () => { document.removeEventListener("click", handleClick); }; } - }, [currentJobIndex, isMobile, popupJob]); + }, [currentJobIndex, isMobile]); // Swipe events for mobile const handleTouchStart = (e) => { @@ -84,69 +124,67 @@ const JobsPage = () => { setStartX(null); }; - // Show overlay for mobile - const showOverlay = (job) => { - if (isMobile) { - setOverlayJob(job); - } else { - setPopupJob(job); // Open popup on desktop - } - }; - - // Close overlay - const closeOverlay = (e) => { - e.stopPropagation(); - setOverlayJob(null); - setPopupJob(null); + // Handle Scroll to Show Description + const handleScroll = (e) => { + const scrollTop = e.target.scrollTop; + setShowDescription(scrollTop > 50); }; return ( -
+
{recentlyApplied && (
Applied to {recentlyApplied.title} at {recentlyApplied.company}
)} -
- {jobs[currentJobIndex] ? ( - <> -

{jobs[currentJobIndex].title}

-

{jobs[currentJobIndex].company}

- showOverlay(jobs[currentJobIndex])}> - More Details - - - ) : ( -

No more jobs available

- )} +
+ {jobs[currentJobIndex] ? ( + <> + {/* 🔹 Job Title & Company Section */} +
+

{jobs[currentJobIndex].title}

+

{jobs[currentJobIndex].company}

- {/* Overlay for Mobile */} - {overlayJob && ( -
- × -

{overlayJob.title}

-

Company: {overlayJob.company}

-

{overlayJob.description}

-
- )} + {/* 🔹 Black Divider */} +
+ + {/* 🔹 Job Description Section */} +
+

Title of Job:

+

{jobs[currentJobIndex].title}

+ +

Job Description:

+

{jobs[currentJobIndex].description}

+ +

Location:

+

{jobs[currentJobIndex].location}

+ +

Years of Experience Required:

+

{jobs[currentJobIndex].experience}

+ +

Salary:

+

{jobs[currentJobIndex].salary}

+ +

Mode of Job:

+

{jobs[currentJobIndex].mode}

+ +

Time Duration of Job:

+

{jobs[currentJobIndex].duration}

+
+ + + ) : ( +

No more jobs available

+ )} +
- {/* Popup for Desktop */} - {popupJob && !isMobile && ( -
- × -

{popupJob.title}

-

Company: {popupJob.company}

-

{popupJob.description}

-
- )}
); }; -export default JobsPage; \ No newline at end of file +export default JobsPage; + + +