furiosa-autos
Welcome to the Saltside Web code challenge! Please read and follow the instructions below in detail and submit your project when you're satisfied with the results.
Project
The project consists of a simple express application with jade templating. It is currently incomplete and your tasks will consist of completing it, bugfixing it, and applying some basic responsive styling to it.
Development
First, run npm i
to install dependencies. Start the server by running npm start
and start working! The server will restart automatically when you update code that requires it to do so.
The server runs on http://localhost:3000
.
Styling
To add your own styling - change public/style.less
.
Fake API
A fake, promise-based, API is provided in through lib/api
.
This file may not be changed in your solution!
The fake api contains the following functions. All of them are promise-based and returns a promise that will resolve with the data listed below.
fetchModels()
- an array of strings representing car models.
Example: ['Saab', 'Volvo']
fetchServices()
- an array of objects, each representing a service that the company performs.
Example:
{
job: 'Wheel replacement',
cost: '120 caps',
type: 'repair'
}
fetchCustomerReviews()
- an array of objects, each representing a customer review.
Example:
{
content: 'There is no better workshop in the wastelands!',
source: 'Bullet Farm'
}
fetchCorporateReviews()
- an array of objects, each representing a corporate review.
Example:
{
content: 'There is no better workshop in the wastelands!',
source: 'Bullet Farm'
}
Tasks
All of the tasks must be solved without any client-side JS and without changing api.js
Bootstrap 3 is available in the project and you may use it to style any components.
Keep in mind - your solution must be accessible from the provided UI. If you add endpoints, also add ui controls for accessing them in the application.
What we're looking for
When we evaluate your solution we are primarily looking for the following qualities:
- Functionality - A working solution.
- Code cleanliness and quality - An understandable solution.
- Simplicity - Keep it simple.
We are not looking for:
- A visually stunning solution - Try to use the styles available in bootstrap to solve the tasks.
- Plans for the far future - Solve the tasks at hand rather than preparing the application for 10k+ rpm.
/models
endpoint
Task 1 - Implement the - Implement the models endpoint. Use the provided
api
object to retrieve mock data from the api with thefetchModels()
function. Render a list of models. - Make alphabetic sorting possible (ascending, descending, none) by adding a UI component.
/services
endpoint
Task 2 - Implement the - Implement the
services
endpoint. Use the providedapi
object to retrieve mock data from the api with thefetchServices()
function. Render a list of provided services. - Make the services filterable by
type
. Add some sort of UI component that lets the user filter on the three typesrepair
,maintenance
, andcosmetic
.
/reviews
endpoint
Task 3 - Bugfix the - Bugfix the
reviews
endpoint. It should render all Corporate and Customer reviews. Order is not important. - Add a UI component that lets the user search for reviews. The search shall look for matches in both
content
andsource
.
Task 4 - Make the application responsive
- Make the application viewable and usable on mobile devices as well as desktop devices.
Feel free to use bootstrap to solve this task, it is included by default. Assume a minimum device width of 320px.
You may decide yourself how to style the content on each page, the criteria for completing this task is that the content is viewable, and usable, on a mobile device.
Submitting
Submit a zip/rar file with your project to our recruitment contact.