This is the test task that I had to do for JourneyHero technical interview. The role that I had applied for was "Front-end (Vue.js) Developer" (May, 2023).
Build a responsive Vue 3 application consisting of two pages: a home page and a todo list page.
The home page should display a list of existing todo lists. Each todo list should have a title, a description, and a creation date. The user should be able to create a new todo list by clicking a button.
The todo list page should display a table of todo items for the selected todo list. The table should display the following columns by default:
- Title
- Description
- Due Date
- Priority
- The user should be able to customize the columns displayed in the table by selecting which columns to show/hide.
- The user should also be able to filter the table based on the selected columns. For example, the user should be able to filter the table to show only items with a certain priority or due date.
- The user should be able to add, edit, and delete todo items using form.
- The application should be responsive and work well on both desktop and mobile devices.
- The data for the todo lists and items should be persisted between sessions.
- The application should implement a notification system to remind the user of upcoming due dates upon first page load.
- The application should be built using Vue 3 and Composition API.
- The application UI should be implemented using either Vuetify 3 or Bootstrap. Bonus Points: If you have time, you may consider implementing the following additional features:
- Use of state management.
- Sorting functionality to allow the user to sort the table by different columns.
- A search bar to allow the user to search for todo items by title or description.Submission Guidelines:
Please create a public repository on GitHub and push your code to it. Once you have completed the task, please email the link to your repository to the person who assigned you the task.
- You should have Node.js and
yarn
installed on your system - Do
yarn install
- Run
yarn dev
- Happy hacking!