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 folder.
The estimated time to accomplish every task sits between 10 and 15 hours, depending on your experience.
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:
- The footer should stick to the bottom when scrolling;
- You can, and should, use a CSS pre-processor, such as SASS or LESS;
- Avoid changing the template, your answer should only style the given HTML.
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
yarn
ornpm install
. The app must run by using eitheryarn start
ornpm start
.
- 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
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 install
or
npm install
Run the server using:
yarn server
or
npm run server
The 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).