WineApp 🍷
Building the App...
Requires npm or yarn (instructions below use npm)
- Download, fork, or clone the repo locally
- In your CLI, navigate to the project directory
- Run
npm install
to install local dependencies
...for Development
-
Run
npm run build-dev
to build the project for local developmentwebpack-dev-server
will automatically open the project in a new browser tab- Skip past HTTPS warnings (caused by no SSL cert for the project)
- Any changes to files inside the
src/
directory will trigger a hot reload
...for Production
-
Run
npm run build-prod
to build the project for deployment- Files will be bundled and placed into the
dist/
folder - Files expect to be run on-server, so to view the production-build either:
- Deploy the
dist/
folder to a hosting provider -OR- - Run a http-server in the
dist/
folder
- Deploy the
- Before deployment, make sure the server is configured for an SPA otherwise page navigation will not work
- Whitespaces are removed during bundling process
- All comments are stripped during bundling process
- Files will be bundled and placed into the
Further improvements
These are some features that I would have like to have added, but had to cut due to time constraints.
- Add a UI for more advanced filters
- Scroll the active page no. in the pagination to the center when changed.
- Trap the tab focus to only elements inside the active page
- Include the currency system as part of the
<Client>
context rather than recalculate in every instance. - Add a debounced resize listener to update the
<Client>
dimension data - Style the rebuy ratio rings as radial
<meter>
elements instead of just a 'border' - Handle unknown values if the user manually changes the url query parameters
- Add gesture support throughout the app
- Replicate slight parallax effect when scrolling on the details page
- Replace arrows with SVG icons instead of ::pseudo 'content' to prevent screen-reader announcements
- Show 'loading' animations whilst fetching data / images
- Add IE10/11 support with:
fetch()
polyfillURL()
polyfillURLSearchParams()
polyfill