Welcome to our technical assessment! This task is designed to evaluate your skills in:
- React/Next.js development
- TypeScript proficiency
- UI/UX design sensibility with Tailwind CSS
- Code organization and architecture
- Problem-solving approach
Estimated time: 2-3 hours
You will build a simple Task Management Dashboard where users can view, create, edit, and delete tasks. The application should demonstrate your ability to create clean, maintainable code with a polished user interface.
-
Task List View
- Display a list of tasks from the provided mock data
- Each task should show: title, description, status, priority, and due date
- Implement visual distinction between different statuses (todo, in-progress, completed)
- Implement visual distinction between priorities (low, medium, high)
-
Create Task
- A form/modal to create a new task
- Include validation (title is required, due date must be in the future)
- The new task should appear in the list immediately
-
Edit Task
- Ability to edit an existing task
- Pre-populate the form with existing data
-
Delete Task
- Ability to delete a task
- Include a confirmation step before deletion
-
Filter & Sort
- Filter tasks by status
- Sort tasks by due date or priority
- Clean, modern, and responsive design
- Intuitive user experience
- Proper loading and error states
- Smooth transitions/animations where appropriate
- Accessible (keyboard navigation, proper ARIA labels)
We've provided a starter template with:
src/
├── app/
│ ├── page.tsx # Main page (start here)
│ ├── layout.tsx # Root layout
│ └── globals.css # Global styles
├── components/ # Create your components here
├── lib/
│ └── data.ts # Mock data and types
├── hooks/ # Custom hooks (if needed)
└── types/ # TypeScript types (if needed)
-
Install dependencies:
npm install
-
Run the development server:
npm run dev
-
Open http://localhost:3000 in your browser
If you have extra time and want to showcase more skills:
- Persist data to localStorage
- Add drag-and-drop to reorder tasks or change status
- Add a Kanban board view (alternative to list view)
- Add search functionality
- Add dark mode toggle
- Write unit tests for key components
- Add keyboard shortcuts
When you're done:
- Make sure all features work correctly
- Clean up any console errors or warnings
- Ensure the app runs with
npm run dev - Share your solution (zip file or git repository)
Include a brief note about:
- Any assumptions you made
- Trade-offs or decisions you'd like to explain
- What you would improve with more time
If you have any questions about the task, please reach out. We're happy to clarify any requirements.
Good luck! We're excited to see what you build. 🎉