-
Notifications
You must be signed in to change notification settings - Fork 0
Final merge #82
Merged
Final merge #82
+7,057
−8
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Scaffold project, configure engines/base path/.gitignore, add README setup instructions. Closes #1
…-project feat: set up Vite + React + TypeScript project
Add Prettier config and ignore file, disable conflicting ESLint rules via eslint-config-prettier, add lint/format scripts, and format the project. Closes #2
chore: configure ESLint and Prettier
Add api/, components/, hooks/, types/, and utils/ folders and move App into components/. Closes #5
Add desktop and mobile wireframes, document country card content, component responsibilities, props, and state. Closes #4
…ucture feat: create the basic project structure
…ent-structure docs: add wireframes and component structure
Document countries.dev in src/api/README.md and add a small getCountriesByRegion/getCountryByAlpha implementation to verify it. Closes #6
Add a shared QueryClient and wrap App in QueryClientProvider. Configure five-minute stale time, disable refetch on window focus, and retry failed queries once. Closes #7
docs: select and document a REST API
feat: install and configure TanStack Query
Add getCountriesByRegion/getCountryByAlpha with response.ok checks, error handling, and a transform into an internal Country type. Closes #9
…ching-country-data feat: implement a function for fetching country data
Replace temporary API types with shared response and Country models, retain only required fields, and map country codes for component use without introducing any. Closes #8
feat: define TypeScript types for country data
Add useCountries, a TanStack Query hook wired to getCountriesByRegion with data/loading/error state. Closes #10
…ntry-data feat: create a query hook for country data
Add semantic header/main/footer structure to App with sections for filters, selected country, and favorites, matching the component hierarchy. Closes #11
…n-layout feat: create application main layout
Add accessible Loading and ErrorMessage components, and expose refetch from useCountries for retrying failed requests. Closes #12
…ssages feat: add loading and error message components
Display country details through props, format numbers, add flag alt text and responsive styling, handle missing API fields, and show one country at a time. Closes #13
feat: add reusable country card
Track the selected country by ID, connect a country selector, default to the first available country, and handle changed or empty selections. Closes #14
…ive-country feat: implement active country state
Add reusable navigation controls with props, accessible buttons and country position. Update active country safely and disable navigation at selection boundaries. Closes #15
…ous-and-next-country feat: add previous and next country navigation
Extract a reusable country selector with props, an associated visible label and keyboard focus styling. Keep selection synchronized with the active country. Closes #16
Filter European countries by subregion without mutating API data. Synchronize country selection and navigation, provide an all-regions option, and handle empty results. Closes #28
Adds tests for region filtering, sorting, and empty results. Closes #45
Summarize the group's positive experience and suggest a more compact mobile layout with easier access to navigation controls.
test: test filtering and sorting
…on-in-browsers 48 manually test the application in browsers
Test filter and sorting storage, favorite persistence and removal, restoration on startup, invalid data and unavailable storage. Clear storage between tests. Closes #46
test: verify Web Storage persistence and restoration
Deployed a production build to the VM and verified it loads correctly at /project1. Closes #50 Co-authored-by: Edvin Gunic <edving@stud.ntnu.no> Co-authored-by: Felix Trommer <felixtro@stud.ntnu.no>
…e-vm docs: document VM deployment
Confirms the app makes exactly one REST API request per session; filtering, sorting and navigation are all client-side. No query config changes needed. Closes #49
Use role=radiogroup for the Dropdown's radio options instead of the generic group role, and give the page a descriptive <title> instead of the raw project folder name. Verified heading hierarchy, form labels, alt text, keyboard operability, focus indicators, and color contrast (all WCAG AA, computed) across the app. Closes #37
…mance docs: verify API calls and performance
…rovements 37 carry out accessibility improvements
Adds a snapshot test for CountryCard using fixed test data, with the useId()-generated heading id normalized so the snapshot only reflects stable content. Closes #47
Use a light blue background with dark blue accents and white cards. Center the responsive heading, add a globe emoji and remove the decorative line. Closes #77
test: create a snapshot test
style: refine page colors and header layout
Add the live app link, setup steps and documentation links to README. Document testing, Git workflow and weekly meetings while preserving PR approval rules.@
Add the live app link, setup steps and documentation links to README. Document testing, Git workflow and weekly meetings while preserving PR approval rules.
51 write a complete readme
Review the project against the assignment requirements and correct inaccurate or outdated documentation. Verify linting, formatting, tests, and the production build. Closes #53
Issue #53
…heck docs: complete final project quality check
edving
approved these changes
Sep 17, 2026
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Sign in
to join this conversation on GitHub.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
No description provided.