/booking

Primary LanguageJavaScript

Booking

This project was bootstrapped with Create React App.

Available Scripts

In the project directory, you can run:

npm start

Runs the app in the development mode.
Open http://localhost:3000 to view it in your browser.

The page will reload when you make changes.
You may also see any lint errors in the console.

npm test

Launches the test runner in the interactive watch mode.
See the section about running tests for more information.

npm run build

Builds the app for production to the build folder.
It correctly bundles React in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.
Your app is ready to be deployed!

See the section about deployment for more information.

Accessibility

Combobox

The Pick-up Location field is complient with the Aria 1.1 Combobox design pattern.

Reduced Animations

Animations are reduced/removed when user activates the Reduce Motion option in the accessibility menu on the Operating System.

Forced colors for high contrast

Styles were tweaked for when user activates the High Contrast option in the accessibility menu on the Operating System.

Compatible with Right-to-Left written languages

The layout is compatible with Right-to-Left written languages. This can be viewed by changing the dir attribute in the <html> tag from "ltr" to "rtl".

Font-sizes

Font sizes are scalabe and responds to the user's preferences set in the browser preferences.

Performance

White page

To avoid a white page while the javascript file is being loaded and parsed, the header area of the application is written staticly in the index.html file. Only the form itself is dynamically rendered using javascript. This brings the benefit of improved perceived performance to the user, especially users on slow devices and/or slow connections.

Throttled network requests

As a side effect of typing in the Pick-Up Location field, a request is done to the autocomplete service. To avoid multiple requests for each character input in the field, there is a cool-off period 600ms before the next request to ensure the player is done typing.