Created
December 2, 2014 17:12
-
-
Save smcelhinney/f208448a2486e3beb90a to your computer and use it in GitHub Desktop.
ryanair-fe-dev
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
## Ryanair.com FE Developer Tests | |
Choose 1 of the following web apps below, build it and submit it to [email protected] with the subject "Developer Test Web App". ZIP files or public Github URLs will be accepted. | |
Provide any build commands or runtime requirements (webserver required, extra packages, environment variables) in an INSTALLATION.txt file at the root of the project. The goal is to have the application as easily deployable as possible. | |
You may use a responsive framework (Foundation, Bootstrap) if you like, but customising the CSS (or SASS) will get you extra kudos. You must use AngularJS as the Javascript framework. | |
### Cheap flight finder | |
Build a small web app using the live Ryanair API for cheap flight information. The web app should have at least the following components | |
* A form which allows a user to choose an origin, a destination, and a date period. The origins/destinations should be taken from a web service (see below). | |
* When a button is pressed, a component which shows all the information relating to the cheapest flight between those points, for the chosen date period | |
_This must be coded as a single page Javascript application._ | |
Points are given for | |
* Style and colour | |
* Error handling | |
* User experience considerations | |
* Using AngularJS and vanilla JS. | |
* Modularity (re-usability of component code) | |
* Responsive design | |
Extra points are given for | |
* Automated testing | |
* Cross browser considerations | |
* Autocompletion (some data is interlinked, don't make the user think!) | |
* Work that goes above and beyond the brief | |
Points will be subtracted for | |
* Using jQuery :) | |
### Route maps | |
Using the Airports codes datasource below, plot a map with information relating to Ryanair's European destinations. | |
The web app should have at least the following components | |
* A map view which shows POI's (points of interest) from the Airports API | |
* A form which allows a user to free text search for a particular city | |
_This must be coded as a single page Javascript application._ | |
Points are given for | |
* Application performance considerations | |
* Using AngularJS and vanilla JS. | |
* Stylising of POIs | |
* Cross browser considerations & graceful degradation | |
* Modularity (re-usability of components) | |
Extra points are given for | |
* Anything cool you can introduce that we havent requested (vectors?) | |
* Stylising the map itself | |
* Making it responsive! | |
* Work that goes above and beyond the brief | |
Points will be subtracted for | |
* Using jQuery :) We don't like jQuery. | |
### Translations | |
Many of the pages on the Ryanair.com website are delivered in multiple languages. Provide a simple web app that allows a user to create a single piece of content, and store that content in (n) different languages, where (n) varies. The available languages should be read from a datasource (flat file, NoSQL, online db) and the content should be saved back to the same datasource. | |
To start with, assume that 2 languages are required: English (en) and French (fr). | |
The user interface should be intuitive enough to allow the user to update existing content. The basic components required are | |
* A form view which supports adding multiple pieces of content based on the number of available languages | |
* Ideally, the same form will allow updating of existing content | |
* A page view component which shows the saved content, and a mechanism for switching between the language variations of that content. | |
_This must be coded as a single page Javascript application._ | |
Points are given for | |
* Using AngularJS and vanilla JS. | |
* Data structure / atomicity (we take db performance seriously!) | |
* Simple stylising | |
* Modularity (re-usability of components) | |
Extra points are given for | |
* Intuitive mechanisms used for viewing different versions of the same content | |
* Supporting markup and rich text | |
* Supporting different locales and encoding formats | |
* Work that goes above and beyond the brief | |
Points will be subtracted for | |
* You know the drill by now.. | |
--- | |
## API routes | |
* Airport (IATA) codes: `http://www.ryanair.com/en/api/2/forms/flight-booking-selector/` | |
* Cheap flights API: `http://www.ryanair.com/en/api/2/flights/from/DUB/to/STN/2014-12-02/2015-02-02/250/unique/?limit=15&offset-0` | |
_where `DUB` is the originating IATA code, `STN` is the destination IATA code, the first date range is the start of the period, and the second is the end._ | |
__Please note__: you may need to use JSONP to request these endpoints, please ensure your code accounts for this. |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment