Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
784bfb5
feat(rest-API): implement route /api/cat and .env.example and start s…
Sep 5, 2026
992b1de
docs(api):document the cat api
Sep 5, 2026
56b910c
feat(cat): add breed filtering
Sep 9, 2026
a2ba661
docs(cat): add API usage guide
Sep 9, 2026
86887e6
fix(eslint): lint plain JS files under Node globals, not just ts/tsx
Sep 9, 2026
0ca824c
chore(lint): extend prettier check and pre-commit hook to whole repo
Sep 9, 2026
7512fbe
chore(test): set up Vitest
Sep 9, 2026
3c42867
chore(test): organize test files
Sep 9, 2026
96a287a
feat(cat): use TanStack Query for API state
Sep 9, 2026
42b5c34
chore(test): merge Vitest setup
Sep 9, 2026
5dec009
feat: add initial forward, backward and favorite buttons + styling
Sep 9, 2026
dd53938
test(api): add mocked Cat API tests
Sep 9, 2026
4c8cda3
style: reformat codebase with prettier
Sep 9, 2026
8a082db
chore: add .env to gitignore to prevent api key leaks
Sep 9, 2026
7616901
docs(test): add testing guide
Sep 9, 2026
ddb9b84
chore(test): configure jsdom environment
Sep 9, 2026
9e3f6d7
Merge pull request #32 from IT2810-H26/31-chore-extend-eslintprettier
anettkva Sep 9, 2026
02eff25
Merge branch 'dev' into 3-chore-setup-vitest
anettkva Sep 9, 2026
6590a9d
chore(test): merge jsdom setup
Sep 9, 2026
50e17fe
merge: integrate dev into API branch
Sep 9, 2026
aafd4d5
feat: added styling and resposivity for go-to-favourites button
Sep 9, 2026
f0bb358
style: format test templates
Sep 9, 2026
1dd95bf
style: format Vitest branch
Sep 9, 2026
7ad4cb1
style: changed color for when go-to-favorites is clicked
Sep 9, 2026
763f4e4
style: changed placement and styling for forward and backward buttons
Sep 9, 2026
df98e7f
Merge pull request #30 from IT2810-H26/3-chore-setup-vitest
anettkva Sep 11, 2026
cbdb5a7
merge: resolve dev conflicts in API branch
Sep 11, 2026
b0950cb
Merge pull request #3 from IT2810-H26/2-feat-rest-api
anettkva Sep 11, 2026
138cad7
feat: add localStorage read/write for selected breed filter
Sep 11, 2026
73751ae
test: add tests for breed filter storage
Sep 11, 2026
5c7d469
feat(favorites): add localStorage read/write for favorite cats
Sep 13, 2026
08e3772
test: add tests for favorite cats storage
Sep 13, 2026
76e4593
fix: moved the nav. buttons and favorites button from app to their ow…
Sep 14, 2026
fb4a91e
style: added correct placeholder for catCard and fixed buttonplacement
Sep 14, 2026
e5f2781
fix: ran prettier on all docs
Sep 14, 2026
c326d8a
Merge branch 'dev' into 12-feat-add-previousnext-buttons
xeniag Sep 14, 2026
7171152
Merge pull request #35 from IT2810-H26/12-feat-add-previousnext-buttons
ronjalh Sep 14, 2026
b3bbe1a
docs: add breed filter storage guide
Sep 14, 2026
38e0928
docs: add favorite cats storage guide
Sep 14, 2026
648ffde
docs: added generative AI documentation for Favorites.tsx
Sep 14, 2026
e5c8da2
feat: add catCard and a hook for catNavigation
Sep 15, 2026
d6aaf82
fix: deleted breed title from CatCard.css
Sep 15, 2026
6c8bf5b
style: changed the position of favorite button
Sep 15, 2026
fd8183e
Merge pull request #38 from IT2810-H26/10-feat-build-catcard-component
ronjalh Sep 16, 2026
6b57578
feat(routes): add favourites page
Sep 16, 2026
898f0a3
Merge pull request #37 from IT2810-H26/20-feat-set-up-localstorage-fo…
ronjalh Sep 16, 2026
258121f
Merge pull request #36 from IT2810-H26/18-feat-store-filter-selection…
ronjalh Sep 16, 2026
ad2c43e
Merge remote-tracking branch 'origin/dev' into 23-feat-build-favorite…
Sep 16, 2026
ffe0f53
chore: rename favourites page to FavoritePage
Sep 16, 2026
f01bf07
feat: make favorite star toggle saved state
Sep 16, 2026
be0f95c
feat: display favorites in a grid
Sep 16, 2026
8e6186c
Merge pull request #40 from IT2810-H26/23-feat-build-favorites-page
xeniag Sep 16, 2026
d332f1b
feat: add page/limit pagination to the breeds endpoint
Sep 17, 2026
fdfe49a
feat: add paginated fetchBreeds to the cat API client
Sep 17, 2026
f54ed28
feat: build custom breed dropdown
Sep 17, 2026
1b1b5a3
docs: document the breed dropdown and paginated breeds endpoint
Sep 17, 2026
1d7b00e
Merge remote-tracking branch 'origin/dev' into 15-feat-build-dropdown…
Sep 17, 2026
8065d21
feat: wire breed selection into cat fetching
Sep 17, 2026
5bce54d
docs: document breed selection wiring in breed dropdown guide
Sep 17, 2026
6e12a73
docs: add documenttion for CatCard and naviagtion
Sep 17, 2026
d9d62db
Merge pull request #43 from IT2810-H26/42-docs-create-documentation-f…
ronjalh Sep 18, 2026
66cd8e2
Merge pull request #42 from IT2810-H26/15-feat-build-dropdown-compone…
xeniag Sep 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
node_modules
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ Before a pull request can be merged:
request, and approvals from staff do not count — you review each other's
code.
2. **Every review comment must be marked resolved.** Reply to each one, fix it
or explain why not, then click *Resolve conversation*.
or explain why not, then click _Resolve conversation_.
3. **Pushing new commits dismisses the approval**, so if you change something
after being approved, ask for another review. This is deliberate: what was
approved is what gets merged.
approved is what gets merged.
3 changes: 3 additions & 0 deletions t29-project-1/.env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
# Copy to .env and set your key
CAT_API_KEY=your_cat_api_key_here
PORT=3001
5 changes: 5 additions & 0 deletions t29-project-1/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,3 +22,8 @@ dist-ssr
*.njsproj
*.sln
*.sw?

# Environment variables
.env
.env.*
!.env.example
5 changes: 2 additions & 3 deletions t29-project-1/.husky/pre-commit
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
#!/bin/sh
. "$(dirname "$0")/_/husky.sh"

#!/usr/bin/env sh
cd -- "$(dirname -- "$0")/.." || exit 1
npx lint-staged
10 changes: 4 additions & 6 deletions t29-project-1/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -40,16 +40,15 @@ export default defineConfig([
// other options...
},
},
])

]);
```

You can also install [eslint-plugin-react-x](https://npmx.dev/package/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://npmx.dev/package/eslint-plugin-react-dom) for React-specific lint rules:

```js
// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'
import reactX from 'eslint-plugin-react-x';
import reactDom from 'eslint-plugin-react-dom';

export default defineConfig([
globalIgnores(['dist']),
Expand All @@ -70,6 +69,5 @@ export default defineConfig([
// other options...
},
},
])

]);
```
23 changes: 16 additions & 7 deletions t29-project-1/eslint.config.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import js from '@eslint/js'
import globals from 'globals'
import reactHooks from 'eslint-plugin-react-hooks'
import reactRefresh from 'eslint-plugin-react-refresh'
import tseslint from 'typescript-eslint'
import { defineConfig, globalIgnores } from 'eslint/config'
import js from '@eslint/js';
import globals from 'globals';
import reactHooks from 'eslint-plugin-react-hooks';
import reactRefresh from 'eslint-plugin-react-refresh';
import tseslint from 'typescript-eslint';
import { defineConfig, globalIgnores } from 'eslint/config';

export default defineConfig([
globalIgnores(['dist']),
Expand All @@ -19,4 +19,13 @@ export default defineConfig([
globals: globals.browser,
},
},
])
{
// Plain JS files (e.g. server/**/*.js, root config files) run under Node, not the browser.
files: ['**/*.{js,cjs,mjs}'],
extends: [js.configs.recommended],
languageOptions: {
globals: globals.node,
sourceType: 'module',
},
},
]);
Loading