https://github.com/leonardodino/forex-web-app
:currency_exchange: foreign currency exchange app built with react hooks
https://github.com/leonardodino/forex-web-app
create-react-app forex jest minimalist pwa react react-app react-hooks reactjs responsive-design styled-components typescript
Last synced: 3 months ago
JSON representation
:currency_exchange: foreign currency exchange app built with react hooks
- Host: GitHub
- URL: https://github.com/leonardodino/forex-web-app
- Owner: leonardodino
- License: mit
- Created: 2019-02-22T07:00:08.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-12-29T22:30:44.000Z (over 3 years ago)
- Last Synced: 2025-04-10T22:44:06.730Z (3 months ago)
- Topics: create-react-app, forex, jest, minimalist, pwa, react, react-app, react-hooks, reactjs, responsive-design, styled-components, typescript
- Language: TypeScript
- Homepage: https://leonardodino.github.io/forex-web-app/
- Size: 4.46 MB
- Stars: 17
- Watchers: 2
- Forks: 11
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# :currency_exchange: [forex web app](https://leonardodino.github.io/forex-web-app/) · frontend development assignment [
](https://leonardodino.github.io/forex-web-app/)
[](https://github.com/leonardodino/forex-web-app/actions/workflows/ci.yml?query=branch:master)
[](https://www.travis-ci.com/github/leonardodino/forex-web-app)
[](https://codecov.io/gh/leonardodino/forex-web-app)
[](https://github.com/leonardodino/forex-web-app/blob/master/LICENSE)
[](https://kunst.com.br)> this project was a take-home exercise for a job interview (in [2019](https://github.com/leonardodino/forex-web-app/tree/HEAD@{2019-03-02}))
## :flight_departure: Quick Start
```bash
# Make a copy of this repo
$ git clone https://github.com/leonardodino/forex-web-app
$ cd forex-web-app# Install project dependencies
$ yarn# Start development server
$ yarn start # Opens browser at http://localhost:3000# Start development test watcher
$ yarn test --coverage# Production build
$ yarn build # Outputs to ./build directory
$ npx serve build # Static server for the built website
```## :sparkles: Features
- [x] :alembic: react hooks + context
- [x] :art: 8pt grid + simple design
- [x] :musical_keyboard: keyboard accessible
- [x] :shower: no media queries
- [x] :100: interactive (rates updates don't mess with user input)
- [x] :electric_plug: service worker + offline state
- [x] :robot: decently tested
- [x] :hammer_and_wrench: `typescript`## :nut_and_bolt: Dependencies / Services / Assets
| name | license | description |
| ----------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| [`react`](https://reactjs.org/) | [](https://api.github.com/repos/facebook/react/license) | declarative, component-based, library for building ui |
| [`react-router`](https://github.com/ReactTraining/react-router) | [](https://api.github.com/repos/ReactTraining/react-router/license) | declarative routing for react |
| [`create-react-app`](https://facebook.github.io/create-react-app) | [](https://api.github.com/repos/facebook/create-react-app/license) | create react apps with no build configuration |
| [`styled-components`](https://styled-components.com/) | [](https://api.github.com/repos/styled-components/styled-components/license) | `css-in-js`: visual primitives for the component age |
| [`dinero.js`](https://sarahdayan.github.io/dinero.js) | [](https://api.github.com/repos/sarahdayan/dinero.js/license) | immutable utils to create, calculate and format money |
| [`use-interval`](https://github.com/Hermanya/use-interval) | [](https://api.github.com/repos/Hermanya/use-interval/license) | react hook for setting an interval |
| [`react-testing-library`](https://testing-library.com/react) | [](https://api.github.com/repos/kentcdodds/react-testing-library/license) | utilities that encourage good testing practices |
| [`jest`](https://jestjs.io/) | [](https://api.github.com/repos/facebook/jest/license) | delightful javascript testing |
| [`gitmoji`](https://www.typescriptlang.org/) | [](https://api.github.com/repos/carloscuesta/gitmoji/license) | emoji reference for commit messages |
| [`typescript`](https://www.typescriptlang.org/) | [](https://api.github.com/repos/Microsoft/TypeScript/license) | superset of javascript, with types |
| [Inter](https://rsms.me/inter/) | [](https://api.github.com/repos/rsms/inter/license) | typeface designed for computer screens |
| [Crypto Compare API](https://min-api.cryptocompare.com/) | [](https://min-api.cryptocompare.com/faq) | free forex api, updates every 10 seconds |
| [iPhone Mockup](http://www.designbolts.com/download/56032/) | [](http://www.designbolts.com/2017/09/14/free-vector-apple-iphone-8-mockup-ai-eps/) | free vector apple iphone 8 mockup ai & eps |> special thanks to [GitHub](https://github.com), [Netlify](https://netlify.com), [NPM](https://npmjs.com), [Travis CI](https://travis-ci.com), and [CodeCov](https://codecov.io) for supporting open-source projects with free tiers!
© 2019 [Leonardo Dino](https://leonardodino.com)