Awesome
Introduction
Yet another weather application, based on Scala.js, scalajs-react and Playframework.
Features:
- city search with autocomplete
- weather forecast is displayed for a selected city
- authentication via Github OAuth
- saving city to favorites (for authenticated users)
Frontend
Tech stack:
JS packages
The project is using following JavaScript packages:
- react-select - Link to the JsFnComponent
- google-map-reaact - Link to the JsFnComponent
- lodash-throttle
Full list of JS dependencies is in package.json.
Routing
scalajs-react router is used for SPA routing.
State Management
diode is used for managing application state.
XHR client
XHR client of scalajs.dom is used for XHR requests. circe is used for JSON encoding/decoding
Bundler
Webpack is used to bundle Scala.js generated javascript and npm dependencies. SCSS/Images are bundled via webpack as well.
API
Application backend is writted with following tech stack:
- Scala
- Playframework
- Slick
Following external services are used:
- http://openweathermap.org/
- Github OAuth