- FE is deployed at https://currency-converter-fe.netlify.app
- BE is deployed at https://currency-converter-be.netlify.app/.netlify/functions/getCurrencyRates
- create env files in
apps/frontend/.env
andapps/backend/.env
based on the example files in the same location yarn
to install dependeciesyarn dev
to run dev environment (Netlify CLI might be needed and initialized for the backend part to work properly)- tasks for linting, testing, typechecking are in the package.json in the root.
- FE runs on
http://localhost:5173/
and BE is available onhttp://localhost:3001/.netlify/functions/getCurrencyRates
Create a simple React app (don’t use NextJS please), which:
When it starts, retrieve the latest currency exchange rates from the Czech National Bank.
Documentation: https://www.cnb.cz/en/faq/Format-of-the-foreign-exchange-market-rates/
Parses the downloaded data and clearly displays it to the user in the UI.
Add a simple form, into which the customer can enter an amount in CZK and select a currency, and after submitting (clicking a button or in real-time) sees the amount entered in CZK converted into the selected currency.
Commit your code throughout your work and upload the resulting codebase into a Github repo.
Deploy the app so it can be viewed online (it doesn’t matter where - e.q. Vercel, Netflify, etc.).
Tech stack: React (+ Hooks), TypeScript, Styled Components, React Query.
Overall: Keep the code simple and the UI nice and easy to use for the user.
- In the repository is a yarn workspaces monorepo with two appllications - backend (netlify function for parsing and fetching the currency rate) and frontend (react app created with create vite app) and one shared package (zod type schema and shared type for Currency)
- BE uses:
- Netlify function to fetch, parse, format and return the data
- Effecct.ts
- FE uses:
- Styled Components for styling
- ReactQuery for data fetching (with suspense)
- Vite as a bundler
- Vitest as test runner