From 6ef3207790b7b56ac96ca4dda28d6b8f28f1db86 Mon Sep 17 00:00:00 2001 From: prince rusweka Date: Fri, 2 May 2025 00:59:29 -0400 Subject: [PATCH] petprofile + homepage modified --- backend/.github/workflows/backend-ci.yml | 144 ------------------ backend/__pycache__/utils.cpython-311.pyc | Bin 1269 -> 1269 bytes backend/images/shadow.jpg | Bin 0 -> 68884 bytes backend/tests/test_api.py | 2 +- frontend/src/App.tsx | 14 +- frontend/src/assets/facebook_logo.png | Bin 0 -> 1786 bytes frontend/src/assets/instagram_logo.png | Bin 0 -> 2916 bytes frontend/src/assets/menu_logo.png | Bin 0 -> 1815 bytes frontend/src/assets/twitter_logo.png | Bin 0 -> 3223 bytes frontend/src/assets/youtube_logo.png | Bin 0 -> 2514 bytes frontend/src/index.css | 62 ++++++-- frontend/src/pages/Home.tsx | 171 +++++++++++++++++----- frontend/src/pages/PetProfile.tsx | 65 ++++++-- 13 files changed, 243 insertions(+), 215 deletions(-) delete mode 100644 backend/.github/workflows/backend-ci.yml create mode 100644 backend/images/shadow.jpg create mode 100644 frontend/src/assets/facebook_logo.png create mode 100644 frontend/src/assets/instagram_logo.png create mode 100644 frontend/src/assets/menu_logo.png create mode 100644 frontend/src/assets/twitter_logo.png create mode 100644 frontend/src/assets/youtube_logo.png diff --git a/backend/.github/workflows/backend-ci.yml b/backend/.github/workflows/backend-ci.yml deleted file mode 100644 index 68668fe..0000000 --- a/backend/.github/workflows/backend-ci.yml +++ /dev/null @@ -1,144 +0,0 @@ -name: Backend CI Pipeline - -on: - push: - branches: [main, develop] - pull_request: - branches: [main, develop] - -jobs: - lint: - runs-on: self-hosted - defaults: - run: - working-directory: backend - - steps: - - name: Checkout code without submodules - uses: actions/checkout@v2 # Using v2 for actions/checkout - with: - submodules: false # Skips submodule initialization - - - name: Set up Python - uses: actions/setup-python@v2 # Using v2 for setup-python - with: - python-version: '3.11' - - - name: Install dependencies - run: | - python -m venv venv - source venv/bin/activate - pip install -r requirements.txt # Ensure all dependencies are installed, including requests - - - name: Cache Python dependencies - uses: actions/cache@v2 # Using v2 for actions/cache - with: - path: venv - key: ${{ runner.os }}-python-${{ hashFiles('**/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-python- - - - name: Run pylint (backend only on changed files) - run: | - source venv/bin/activate - changed_files=$(git diff --name-only origin/main...HEAD | grep '\.py$' || true) - - if [ -n "$changed_files" ]; then - pylint $changed_files --exit-zero | tee pylint.log - SCORE=$(tail -n 2 pylint.log | grep -oP '[0-9]+\.[0-9]+(?=/10)') - echo "Pylint score: $SCORE" - python -c "import sys; sys.exit(0 if float('$SCORE') >= 8.0 else 1)" - else - echo "No Python files changed, skipping pylint." - exit 0 # Exit with status 0 (success) if no Python files changed - fi - - test: - runs-on: self-hosted - needs: lint - - steps: - - name: Checkout code without submodules - uses: actions/checkout@v2 # Using v2 for actions/checkout - with: - submodules: false # Skips submodule initialization - - - name: Set up Python - uses: actions/setup-python@v2 # Using v2 for setup-python - with: - python-version: '3.11' - - - name: Install dependencies - run: | - python -m venv venv - source venv/bin/activate - pip install -r backend/requirements.txt # Ensure all dependencies are installed, including requests - pip install pytest-html - - - name: Cache Python dependencies - uses: actions/cache@v2 # Using v2 for actions/cache - with: - path: venv - key: ${{ runner.os }}-python-${{ hashFiles('backend/requirements.txt') }} - restore-keys: | - ${{ runner.os }}-python- - - - name: Start Flask API server - run: | - nohup python backend/main.py > flask.log 2>&1 & - for i in {1..10}; do - if curl --silent --fail http://127.0.0.1:5000/; then - echo "Flask is ready" - break - fi - echo "Waiting for Flask... Attempt $i/10" - sleep 5 - done - - - name: Run backend tests with pytest - env: - BASE_URL: http://127.0.0.1:5000 - run: | - source venv/bin/activate # Activate the virtual environment before running tests - pytest backend/tests --html=backend/test-report.html --self-contained-html - - - name: Upload test report - uses: actions/upload-artifact@v2 # Using v2 for actions/upload-artifact - with: - name: backend-test-report - path: backend/test-report.html - - - name: Kill Flask server - run: | - pkill -f "python backend/main.py" || echo "Flask already exited" - - build-frontend: - runs-on: self-hosted - needs: [lint, test] - - steps: - - name: Checkout repository without submodules - uses: actions/checkout@v2 # Using v2 for actions/checkout - with: - submodules: false # Skips submodule initialization - - - name: Set up Node.js - uses: actions/setup-node@v3 # Using the latest stable version for Node.js - with: - node-version: '20' - - - name: Cache node modules - uses: actions/cache@v2 # Using v2 for actions/cache - with: - path: frontend/node_modules - key: ${{ runner.os }}-node-${{ hashFiles('frontend/package-lock.json') }} - restore-keys: | - ${{ runner.os }}-node- - - - name: Install frontend dependencies - working-directory: frontend - run: npm install - - - name: Build frontend app - working-directory: frontend - run: npm run build diff --git a/backend/__pycache__/utils.cpython-311.pyc b/backend/__pycache__/utils.cpython-311.pyc index 72169859e6a69fd64bdabf2a040a6bfe26297fdc..566dd7b172a7c4c954131c048fe54ba1f6af0ebe 100644 GIT binary patch delta 20 acmey$`IVD=y9I~^VB_H6KF7r;AiyUg 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 F|Jjr@I&S~~ literal 0 HcmV?d00001 diff --git a/backend/tests/test_api.py b/backend/tests/test_api.py index e86176d..e174084 100644 --- a/backend/tests/test_api.py +++ b/backend/tests/test_api.py @@ -87,7 +87,7 @@ def test_duplicate_pet_submission(): "breed": "Black", "age": 3, "personality": "Sneaky", - "image_path": "/images/shadow.jpg", + "image_path": "../images/shadow.jpg", } # First submit (should succeed) diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index b743de7..47c8748 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -9,14 +9,12 @@ function App() { return ( <> -
- - } /> - } /> - } /> - } /> - -
+ + } /> + } /> + } /> + } /> + ); } diff --git a/frontend/src/assets/facebook_logo.png b/frontend/src/assets/facebook_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..b6dad0a727f5e1da8487df405fdd67c671f06aa8 GIT binary patch literal 1786 zcmZ{lc{CgN7RRHD5wsc8pdD#q*IE*4DnV>X5KB|E8dY1Qq_u^j)>=v|EibVeE$ z->W>L)YKCDQe{wU?OUkUGQ_-&Jj+bxkN4(}ci!)ud%wSX?mg$8^ZVW3=a=q4us$RC zy(9ntIAepyIf?X7bC(bod4p&@f=I+dovbl{szJzSQE-Z4am@k%sG&<8l1__aU@-o6 zC;;$X*qidU~=*xyrP4P&m9 z(e7fT`f%ofGD%5Eq@@lTgTVmU<-uuOu5P{_S^Uu#R#ukG`sQZx#Kf)rfB#D>D#}9X zqQ4V5tDr#B&(E)G@6!+sjB{D)$y87_HT4i`KdlIx4!X2B&x^4nlYjKt?Gdc>f*d_O zs$wfFZx{u>nQMxul|nIJz0$1lYCo}B%e!iQx^QPF7#02n?8b|heYp8?cXDsxF3T`f z{eX8-g}>bWbcx@W!;SwvE-fuhk-E4jp=512(BGeQyVf@g$>qA^A%hPDsRIK8z|@(= zMa9|1a4B0`TSY^|3%58fVxemTiKV5bA@%o1)!#lkFmV42%guS&YX23dheq3z%&%R) zPDjP=a~USYD9|%CH8tR6qq%nbz`%dH)CaHxM%14tpbeBEDBjL)4^_0Wv7uyatUxF+ zJwsh+QLEnLUc*C14!&;br<6)I%qN}GAefU#Wi=`xM)g3^*)2JC=~D*V8bUuUj=sFk z4>zcnNaux2R=F$wwe(AFtFRzz~6y64cq9yM96r@J4<(6AN&({ntUWd1N zQDDNrQ#{bSnqfx&1 zK+@6)(&l4Vl4J_Vgjk_K4Pq7tsd8_!f|?$}Rgv;=w}fKj2*N!DWY7=N@Y8+H}( zK6qP8w9XwJ9o2msqLfi_puHwSySe6pCFMgV5Hh*GYx z3=wWjBK(AMoI3NBE{>LjJ1wF!lT)%Uvaq)wB2y>co=i~N#y4dwe|INMfwHs z>-zc$RCS%Lrzb4ti5RJW3JeCfm0?r8#$P$}LlO%Usirj zD>~&rSw;K!(Z!GT0Yf-pyk^~nz)XydB}nJnc5=!xUi37t0qqln*f1FbC74O{scO&G3TEy4_I3(oi0#;q_2Lfbv=6=Y|7gN++1Q8V>{g}cI%&hsFIZmC;qTrnCxGCG>+bk14E8H+vn0}^>d z^cL0MA7dSk$EXXsit7FKMyhXT715jNDXFd$H@zhj}ELl*eks@E+&cPR|suPVl=58 z++we)Ut3xFiwe|LXo9`o9M3ARdxJ3-j(U R^F{v^z{Zk*tHO9a{sSjHP|E-S literal 0 HcmV?d00001 diff --git a/frontend/src/assets/instagram_logo.png b/frontend/src/assets/instagram_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..74247044b37338d7239a11d419d1dcd801def107 GIT binary patch literal 2916 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 F`vdT6R9*l8 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/twitter_logo.png b/frontend/src/assets/twitter_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..201f15db798bc0c20b85b9c2e1c4de353ec9f2f4 GIT binary patch literal 3223 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 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/youtube_logo.png b/frontend/src/assets/youtube_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..bd7109efcd8a142a18dd8a1ca5ca0f82ee3756a9 GIT binary patch literal 2514 zcmV;@2`%=CP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGmbN~PnbOGLGA9w%&31>+}K~#8N?VM+5 z6we#SpWol!d+#lRC5llrioy0yjS9v@MMW?oDvCtx3MvFNA|mzzqM%VNhhU=Mn&6+i-apT6+vSmwZ+qNx#ty|r? zb*WyxdeppmbN=2MHEQs7w8@TT;5|71=g%Md_U)T!mGk%SU;6m*BYpk)RkRTO{P~k! zy?Ryh`t|GAC2jiqVej6(qi4^a1%1{H92KNZn>I9b=uqm{uOGKwy?SvGaN(;0zkdCq zr%#{K`}gnZ_U+qr^5jXnd-pEAeECwm!xtxZSjUlaBvu13~nl(%t zx5dwjZXgP7%+%CW>GiT;(neE5&qzy4^Tm)*R8(ZEr&xCCniw>D_H0_WZXId8M6}um z5fUO99UQ-X`&Jy4^8NdFdh_OuI5Ng8LaScAIzLyxetmviyLN4A)v6VLZI^%l{?WaA z_h{9sRdn|3S<$MFWkE)c97*Zv=`>`>5YZwB;o*Y^5BQIJ^5hA zks?qih}61uYyP)$=g!orQzz=sp##4OyLa!-%?R8y5M$1qIrQbr7tyLtP?s??3{|UF zuNIxNJX%=Da&vQ8Qc@DrLS5;1RCd!uV_I)w$;rt~yUE1=ygZK|KW5{`jgx*y2$MES zZP>73EIT_}{FA|a{`{Hk-@l(}caik7Rm~twTwEN>$;lB{AQ)Vay?ggcKWk=|N+(G2 zdi3Zaj)KX{%cDbw4)Me(8bB6*|Ned2wQH9&F|1Xq79Z+x&8%Qa5R^DDj+O;K2xI2u z%a=tm8137)7e~QBkb;5&aTHyA`0#-)Uc4xd zfuj8#Zjg(T5K zWq}WIO%S6Vg1h6#k00X5IrN!8Bj8s?j~-1&jvS%P%*>Fb95*p??5+udBnJ*k26{(v zaj`fGKaCnSqU7Xco(FB)wk;yVn3Iu~k|6j(BZux*53ve<-~9RW>B5Bzv}n;H$Evp~ zpu%fZM6~MIl?1_;8ubv|9mrU{0EW4~ef!duEnDc!nKLwb^5n3D$|$24Eq-vNhnV4( zQ?~|bb;O7fJRhlyR2e}K;!c?|g-)G1 z#T|Fou3g0$V=&CX!MnYp-3pan5F~+v2M^{&MmTuYA|u4uvu6(-K73fTR2yU{OX&-`Kuz2xe8Z~N^Qn|zp za1D%xEJSy%L|I0?1jChV0k&O2JwPEJm_$JbDD$Fd*z3FIPJ(HLpWoH|Aq$A>I{FP8NXjGdSfb6OPm1tfmRH?X?A zsHmu9QflhdsY;Vl;R1rlW(6x!mbcVHu(gB?l&{^0wBWa}IuUsUp0&X6q&jUIE+7UL zq06cTRvkJ}76gvTC^>Y?k5mTCRwrUaDJ(1$M{3yiApnAO?ATEpMHlE9Mvoj=^&h}e z55agSOAzscu<1-Rf=4Eh`^a#$hX5l#f=CO`uVV#BGyyRXUAK(v$s|A7(3N)DnU zeLPoYv9Yo2#EBE)!Qb-Sx^;^sCMHThTh&YxgKgZnQT)%#qYYJT?%cW3&xSB*qtvvB zf-P9Ez;urj?T%nsSy^o6%$Zz3EgY79S7kFimyQhs5)u+vdU`tFmdT8~yga_qg6zA@ z%<|S6SUiA|c2ZK3XbBC<&)8lALmpnk7wOw`Ykx}_3PKuzJ2>di#5ur6v{9x6%-VRd%-6Vj2@YpnHB0C z!laF+ra5t@Wz12xgIp*e#<63^?1%xAHik5aGGW35K34iTCI(E}sBC@u^kD}M9AMhm zFMe9|p``*&>?Eg~w9%5`u85D1kE)F@wV;CCxpRk2pFZ7*UQuF>@7s$c5ydt<(u_^M z@EU&+xxkQ2$sVuv8i9NGB0_{ADMmdnKR=&t+_>S&ibuxfoH6r)v=+V;&{&0%9f)VKdqSUk7fi90?*Oh>sjgwJaa^@dfc1z91gM7sO-uf_MyH c5Klq$f5X9@S3WF4y8r+H07*qoM6N<$g6_qyjsO4v literal 0 HcmV?d00001 diff --git a/frontend/src/index.css b/frontend/src/index.css index 08a3ac9..f80e59c 100644 --- a/frontend/src/index.css +++ b/frontend/src/index.css @@ -1,16 +1,17 @@ -:root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; +html, body, #root { + margin: 0; + padding: 0; + height: 100%; + width: 100%; + overflow-x: hidden; + background-color: rgb(180, 164, 143); + font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; } a { @@ -24,10 +25,11 @@ a:hover { body { margin: 0; - display: flex; - place-items: center; - min-width: 320px; + min-width: 100vw; min-height: 100vh; + width: 100%; + height: 100%; + box-sizing: border-box; } h1 { @@ -35,6 +37,11 @@ h1 { line-height: 1.1; } +h2 { + margin: 0; + padding: 0; +} + button { border-radius: 8px; border: 1px solid transparent; @@ -66,3 +73,28 @@ button:focus-visible { background-color: #f9f9f9; } } + + +@media (max-width: 600px) { + h2 { + font-size: 1.5rem; + } + + footer img { + width: 24px; + height: 24px; + } +} + +.pet-grid { + display: grid; + grid-template-columns: repeat(3, 1fr); + gap: 2rem; + justify-items: center; +} + +@media (max-width: 768px) { + .pet-grid { + grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); + } +} \ No newline at end of file diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index 94e75b0..9c2f54c 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -4,60 +4,161 @@ import catImg from '../assets/cat.png'; import bird from '../assets/bird.png'; import turtle from '../assets/turtle.png'; import doggo from '../assets/puppy.png'; +import instagramLogo from '../assets/instagram_logo.png'; +import facebookLogo from '../assets/facebook_logo.png'; +import twitterLogo from '../assets/twitter_logo.png'; +import youtubeLogo from '../assets/youtube_logo.png'; +import menuLogo from '../assets/menu_logo.png'; +import { useNavigate } from 'react-router-dom'; export default function Home() { + const navigate = useNavigate(); + const pets = [ + { name: "Stella", age: 1, type: "Golden Retriever", img: doggo }, + { name: "Bowser", age: 13, type: "Western Painted Turtle", img: turtle }, + { name: "Moon", age: 9, type: "Cockatiel", img: bird }, + { name: "Cleo", age: 7, type: "Maine Coon Cat", img: catImg }, + ]; + return ( -
-

Home Page

+
+
+
+ Dog handshake + Animal group +
-
- Dog handshake - Animal group -
+
+

+ Adopt your perfect companion today! +

-
-

Adopt your perfect companion today!

- - +
+ + +
+
+
+ + {/*Full-width Featured Header */} +
+

Featured Pets

-

Featured Pets

- -
- {[ - { name: "Stella", age: 1, type: "Golden Retriever", img: doggo }, - { name: "Cleo", age: 7, type: "Maine Coon Cat", img: catImg }, - { name: "Bowser", age: 13, type: "Western Painted Turtle", img: turtle }, - { name: "Moon", age: 9, type: "Cockatiel", img: bird }, - ].map((pet) => ( -
- {pet.name} -
+ {/* ✅ Full-width Grid */} +
+ {pets.map((pet) => ( +
+ {pet.name} +
Name: {pet.name}
Age: {pet.age}
Type: {pet.type}
))} -
+
- Instagram - Facebook - Twitter - YouTube - Menu +
+ Instagram + Facebook + Twitter + YouTube +
+
+ Menu +
); } + +const buttonStyle = { + backgroundColor: "black", + color: "white", + padding: "0.6rem 1.5rem", + borderRadius: "6px", + border: "none", + fontSize: "1rem", + cursor: "pointer" +}; + +const iconStyle = { + width: "36px", + height: "36px" +}; diff --git a/frontend/src/pages/PetProfile.tsx b/frontend/src/pages/PetProfile.tsx index 70b8ad6..393386d 100644 --- a/frontend/src/pages/PetProfile.tsx +++ b/frontend/src/pages/PetProfile.tsx @@ -17,28 +17,60 @@ function PetProfile() { fetch('http://localhost:5000/api/pets') .then(res => res.json()) .then(data => { - console.log('Received pets:', data); // ✅ inside the .then block + console.log('Received pets:', data); setPets(data); }) .catch(err => console.error('Error fetching pets:', err)); }, []); - return ( -
-

Adoptable Pets

-
+
+

Adoptable Pets

+ +
{pets.map(pet => ( -
+
{pet.name} -

{pet.name}

-

Breed: {pet.breed}

-

Age: {pet.age}

-

Temperament: {pet.personality}

+

{pet.name}, {pet.age}

+

Breed: {pet.breed}

+

Temperament: {pet.personality}

+
+ + +
))}
@@ -46,6 +78,15 @@ function PetProfile() { ); } - +const buttonStyle = { + backgroundColor: "black", + color: "white", + padding: "0.5rem 1.25rem", + border: "none", + borderRadius: "8px", + fontSize: "0.9rem", + cursor: "pointer", + flex: "1" +}; export default PetProfile;