-
Notifications
You must be signed in to change notification settings - Fork 49
Comments
Open
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Uh oh!
There was an error while loading. Please reload this page.
Backend Development: http://localhost:4001/graphql
Docker Update:
Configured a pgAdmin container for database administration, accessible via a web interface (db-create.sh)
API Integration:
Integrated with the external CNB API (Swagger(https://api.cnb.cz/cnbapi/swagger-ui.html)) to fetch exchange rates.
Designed a dynamic request system that supports fetching rates for a given date, including precise time down to minutes and
seconds for accurate tracking.
GraphQL Implementation:
Defined a GetExchangeRates GraphQL query to provide exchange rate data, including fields such as country, currency,
amount, currencyCode, and rate.
Caching Mechanis:
Implemented a caching layer to minimize frequent API calls and enhance performance.
Database Change: http://localhost:8080/browser
Table "exchange_rate"s created to store exchange rate data, with fields such as:
validFor
country
currency
amount
currencyCode
rate
Additional metadata.
Added Migration scripts to efficiently manage database schema evolution.
Frontend Development: http://localhost:5173/exchange-rates
Table Display
Developed a dynamic table to display exchange rates using Material-UI (MUI) for responsive and visually appealing
components. Columns include Country, Currency, Amount, Currency Code, and Rate.
"Last Fetched" Display
Designed a feature to show how recently the data was fetched, e.g., "Last fetched 5 minutes ago".
Added real-time tracking of the elapsed time using React hooks, ensuring updates without needing a page refresh.
Error Handling
Integrated error handling for failed GraphQL queries and missing data. Displayed meaningful messages to improve user
experience during issues like API unavailability.
Responsive Design
Ensured the frontend is responsive and accessible on various devices.