Develop a Personal Task Manager where users can manage their daily tasks efficiently. The test evaluates JavaScript proficiency, UI development skills, and problem-solving abilities. The candidate can choose to implement the project using Vanilla JavaScript, React, or Angular.
Develop a Personal Task Manager with the following functionalities:
-
Add a Task
- Fields: Title (Required), Description (Optional), Due Date (Required, cannot be past), Status (To Do, In Progress, Done).
- Clicking "Add Task" should save the task.
-
View Tasks
- Display tasks in a list or table.
- Show Title, Status, Due Date, Description.
-
Edit a Task
- Allow users to update task details.
- Users cannot set a past date.
-
Delete a Task
- Implement a button to remove a task.
-
Search & Filter
- Search tasks by title.
- Filter tasks by status.
-
Persist Data
- Use LocalStorage to save tasks.
Candidates familiar with Node.js can:
- Build a REST API with Express.js:
POST /tasks→ Add a task.GET /tasks→ Retrieve tasks.PUT /tasks/:id→ Update a task.DELETE /tasks/:id→ Delete a task.
- Use MongoDB (Optional)
- Store tasks in a MongoDB database instead of LocalStorage.
Candidates can choose to implement the UI using React or Angular:
- Convert the app into a React or Angular application.
- Use React Hooks or Angular Services to manage state and API calls.
- Enhance UI with Material UI (React) or Angular Material.
- Use clear variable names and structured code.
- Add comments where needed.
- Follow JavaScript best practices.
- Use GitHub for version control.
- Maintain a clear commit history.
- Deploy the app using Netlify, Vercel, or Firebase.
- If backend is implemented, deploy it using Heroku or AWS.
- Fork this repository to your GitHub account.
- Implement the Personal Task Manager using Vanilla JavaScript, React, or Angular.
- If comfortable, implement a Node.js API with MongoDB.
- Share the GitHub repository link once completed.
- If deployed, add the live demo URL in the
README.md.