Task Title: Task Manager API
Objective:
Create a simple Task Manager REST API using Node.js and TypeScript. This API will allow the user to create, read, update, and delete tasks.
📍As an additional "plus", we'd like to see the implementation of user authentication and authorization.
Core Requirements:
-
Use Node.js and TypeScript to create your application.
-
Your API should support operations to Create, Read, Update, and Delete (CRUD) tasks. Each task should have at least a title, description, status (i.e., pending, in-progress, completed), and a due date.
-
The tasks should be stored in a MySQL or MongoDB database.
-
Implement user authentication and authorization. Only authorized users should be able to perform the CRUD operations. You can use JSON Web Tokens (JWT) or any other method you prefer.
-
Write unit tests for your API endpoints using a testing framework of your choice.
-
Include a comprehensive README file explaining your design choices and how to use your project.
😎Bonus Requirements:
-
Implement rate limiting to protect the API from being overwhelmed by too many requests.
-
Implement filtering, sorting, and pagination for the tasks.
-
Add a feature to send reminders to users about their upcoming tasks via email.
📌 Deliverables:
-
A public GitHub repository containing your code.
-
A README file that explains:
-
Your design decisions and why you made them.
-
How to run your project.
-
How to use your project (if it's not self-explanatory).
-
-
Optionally, a deployed version of your API. You can use services like Heroku or AWS for hosting.
📝 The evaluation will be based on the code quality, API functionality, design, and the optional bonus features.