Submit all the answers by creating a private GitHub repository and sharing it with reedsyapplications. Alternatively, you can submit a zipped folder with all the answers.
- Your submission should include markdown and code and each answer should be in it's own directory.
- The estimated time to accomplish every task sits between 10 and 15 hours, depending on your experience.
- We expect your answers to be as polished as possible. Please write down and include any assumptions you've made as well as notes on decisions and things you would improve or add in the future.
- The bonus features, though not mandatory, might be taken into consideration as a deciding factor between candidates.
Tell us about one of your commercial projects with Vue.js.
2.3. Explain the difference between creating a DOM element setting innerHTML and using createElement.
Given the HTML file front-end/q3/q3.html, implement the styling so the page matches the image below.
- Implement styling rules that consider different screen sizes.
Notes:
- This answer aims to evaluate the ability to replicate a given mockup, as close as possible, without any given details or measurements, it's intended;
- Avoid changing the template; your answer should only style the given HTML;
- The footer should stick to the bottom when scrolling;
- You should use a CSS pre-processor, such as SASS or LESS.
- Please do not use styling libraries like Tailwind or Bootstrap.
Using Vue.js, implement an SPA that gets information from a server (explained below) and has the following pages:
Display all available books returned from the API.
- Synopsis should be truncated at 200 characters.
- Book's title and cover should link to the book's individual page.
- Though the upvote functionality is not required, the upvote state should be represented.
Display a single book information, highlighting the cover and displaying the full synopsis.
The upvote functionality is not required, the UI should only reflect if a book has been upvoted yet or not. For this question, you don't have to replicate the example screens above, feel free to implement any design that you'd like.
Important notes:
- Do not change or submit the server code, your answer should focus on the client application only;
- Add test coverage as you see fit;
- You may use TypeScript instead of plain JS;
- Use a CSS pre-processor;
- Your app must be responsible for all of it's dependencies and they should be installed via
yarnornpm install. The app must run by using eitheryarn startornpm start; - Your code should be polished and as close to production-level as possible.
- Implement text search on the books list (for title and synopsis);
- Add pagination on the books list;
- Add a comments section on the book page (UI part only).
In order to solve this problem, a simple server is provided, which you should use to get the data.
Head into front-end/q4/server and install the server dependencies using:
yarn installor
npm installRun the server using:
yarn serveror
npm run serverThe server should be running on port 3000.
Returns a list of books, with their info.
Returns the book information for the given SLUG (404 otherwise).


