- Please fork this repository as boilerplate (make sure you work in 'scaffold' branch).
- Use tailwind css when building UI with Element Plus library
- Please follow all frontend best practices, use Typescript without ‘any’ types, keep code small, split template into multiple components and keep each component code small, readable and maintainable.
Task
- Get familiar with Softonix guidelines
- (Optional) Setup IDE
- Use this link to understand how the app should look like in Figma
App should contain
- Dropdown with users
- Initial loading state for page (element plus v-loading)
- Table with posts with pagination of selected user (frontend side pagination)
- Search post by post name (search should filter all items in user posts list, not only opened page)
- When clicking row in posts table, show modal with post details
- Implement debounce for post search
- Search inputs state should persist after refreshing the page (use query params) (dropdown with selected user, post search name, pagination page)
- Show error messages when error happened (use element plus notification component)
- If no posts, show no posts message
- If no posts when filtering, show There is no such posts message
P.S. Some additional info you can find in Doc with Requirements
Code Requirements and Packages Requirements
- Follow Softonix Guidelines
- Use Tailwind for styles
- Use Element Plus library
- Use vue-use for debounce
- Use https://jsonplaceholder.typicode.com for mocking data
- You can add additional improvements to the app if you want to, will be a plus
API endpoints Examples how to use API
- https://jsonplaceholder.typicode.com
- **/posts
- **/posts/1
- **/posts/1/comments
- **/users
- **/photos (for user's avatar, use this endpoint, where :photoId is user's id)
Good Luck!!!
Links you might need: