Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 12 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
Frontend Technical Test for [TeamITG](https://teamitg.com/)
# Frontend Technical Test for [TeamITG](https://teamitg.com/)

It is a quick coding challenge. It is important to note that it is not by any means a test, and there are no trick questions. We want to understand how you write code and solve problems. You are allowed to use search engine or StackOverflow during the session.
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May we please change the search engine to search engines?


## System requirements
You’ll want to ensure you have the following already installed on your local machine before getting started with the test:
Expand All @@ -12,23 +14,17 @@ You’ll want to ensure you have the following already installed on your local m
npm install && npm start
````

## Task Instructions
1. API Implementation
* You will receive a list of general vehicle information by making an initial api request to endpoint `/api/vehicles.json`
* You are now required to traverse the API and make further calls on a detail endpoint (`apiUrl`) to get vehicle-specific details such as price and description
* Ignore vehicles with broken apiUrl or without any price information
* All API related logic should be implemented inside `getData()` available at `src/api/index.js`
## Brief
We have a simple API that returns a list of vehicles as JSON array. We would like you to read the API and display it as per given design ([Mobile](https://raw.githubusercontent.com/connect-group/frontend-technical-test/master/designs/mobile.png), [Tablet](https://raw.githubusercontent.com/connect-group/frontend-technical-test/master/designs/tablet.png), [Desktop](https://raw.githubusercontent.com/connect-group/frontend-technical-test/master/designs/desktop.png)). In addition, the list of vehicles should be ordered by the lowest price. Feel free to use our preconfigured boilerplate, familiar preconfigured environment for React development or VanillaJS.


2. Using `getData()` in a React component
* React component `VehicleList` is configured to use `getData()` through a custom hook `useData`
* If you prefer to use class-based component, then the rule to make a single function to obtain all vehicles through `getData()` needs to be respected
* No other components are allowed to make any network request
### API End Points
List of all vehicles:-
http://localhost:8080/api/vehicles.json

3. UI Design
* You are required to produce the following designs on different viewports to match as closely as possible, ready for a designer to review
* [Mobile](https://raw.githubusercontent.com/connect-group/frontend-technical-test/master/designs/mobile.png)
* [Tablet](https://raw.githubusercontent.com/connect-group/frontend-technical-test/master/designs/tablet.png)
* [Desktop](https://raw.githubusercontent.com/connect-group/frontend-technical-test/master/designs/desktop.png)
Each vehicle has "apiUrl" which contains the detail of a vehicle e.g. Price/Description
Example of detail endpoint
http://localhost:8080/api/vehicle_fpace.json

## Browser Support
We expect the solution to work in the latest version of Chrome
Expand Down
45 changes: 45 additions & 0 deletions public/fix-accessibility-issues.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Page title</title>
</head>
<body>
<div class="main">
<div class="main__heading">Page Heading</div>

<div class="section section--articles">
<div id="section_heading" class="section__heading">Latest Articles</div>

<!-- repeating articles -->
<div class="article">
<div class="article__heading">Article Heading</div>
<img src="/img.jpg" />
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit.
</p>
<div class="button">Show more</div>
<div class="article__more" hidden>
<p>
◦ Lorem ipsum dolor sit amet <br/>
◦ Lorem ipsum dolor sit amet <br/>
◦ Lorem ipsum dolor sit amet
</p>
</div>
<a href="/lorem-ipsum">Find out more</a>
</div>

</div>

<div class="section section--newsletter">
<div id="section_heading" class="section__heading">Sign up for our newsletter...</div>

<form class="newsletter" action="/form-submit/" method="post">
<input id="email" type="text" placeholder="Email address" />
<div class="button">Submit</div>
</form>

</div>
</div>
</body>
</html>