To setup this project, you'll need the following installed on your system:
- node
- npm
To install this project, run the following commands:
git clone [email protected]:jmcriffey/interview.git
cd interview
npm install
To run the server, run the following command in the interview directory:
npm start
To make sure your project passes code quality standards, run the following command in the interview directory:
npm test
Once installed, run the test server and go to http://127.0.0.1:8080/ to make sure you see 'Hello World!' inside the green div.
- Feel free to edit or add any files as needed
- Do not use any other JS library/framework other than jQuery v2.0.3
- Add any HTML to: index.html
- Add all grid code to: static/ambition/js/CompetitorGrid.js
- Add all grid tests to: static/ambition/js/test/CompetitorGrid.js
- Add all CSS to: static/ambition/resources/css/ambition-all.css
- If you use a CSS preprocessor, make sure it compiles to: static/ambition/css/ambition-all.css
- The design image to implement: table-design.png
- If you need to run the server on a port other than 8080, change the port variable in server.js
- http://127.0.0.1:8080/ will serve index.html
- http://127.0.0.1:8080/index.html will serve index.html
- http://127.0.0.1:8080/api/competitor/ will serve JSON from the competitor database
- The competitor API can be queried for:
- firstName
- lastName
- user.email
- teamName
- score
- Make an ajax call to the competitor API with the following parameters:
- firstName=Steve
- The API returns an object with a 'meta' and 'objects' key. Both will be needed.
- Edit index.html to display the results in a grid-like container
- Style the container to reflect the design
- Use Helvetica for all fonts
- The showing text at the bottom needs to reflect the number of competitors being shown and the total
- This can be figured out with the 'count' and 'total' values in the meta object returned by the api
- Center the container in the middle of the page
- Use onclick handlers for column headers to allow local sorting on each column
- The name column should be sorted on the 'lastName' parameter
- Write some useful tests using Jasmine
- The test file is at: test file
- Make sure your code passes the test suite and linting by running the 'npm test' command.