Skip to content

Latest commit

 

History

History
51 lines (37 loc) · 2.7 KB

task-scheduling-api.md

File metadata and controls

51 lines (37 loc) · 2.7 KB

Backend Challenge - Task Scheduling API

Introduction

The "Task Scheduling API" challenge focuses on building a RESTful API that allows users to schedule and manage tasks within your application.

Objectives

  • Set up a web server capable of handling API requests for task management and scheduling.
  • Implement endpoints for creating, updating, deleting, and querying tasks.
  • Support recurring tasks and scheduling options.
  • Understand HTTP methods (POST, GET, PUT, DELETE) and status codes.

Instructions

  1. Objective: Develop a Task Scheduling API that provides functionality for managing and scheduling tasks.

  2. Environment Setup: Choose your preferred programming language (e.g., JavaScript, Python, Java, Go) and set up the necessary environment.

  3. Implementation Details:

    • Define endpoints:
      • POST /tasks: Create a new task.
      • GET /tasks: Retrieve a list of tasks.
      • GET /tasks/{taskId}: Retrieve details about a specific task.
      • PUT /tasks/{taskId}: Update an existing task.
      • DELETE /tasks/{taskId}: Delete a task.
    • Implement support for task scheduling:
      • Define scheduling options such as one-time, recurring, or cron-based schedules.
      • Handle task execution based on scheduled intervals or specific dates/times.
      • Manage task dependencies and chaining for sequential or parallel execution.
    • Ensure fault tolerance and error handling for task execution and scheduling failures.
    • Implement authentication and authorization mechanisms to restrict access to task management endpoints.
  4. Testing: Test your API using a HTTP client (e.g., Postman, curl).

    • Create tasks with different scheduling options (one-time, recurring) and verify their execution.
    • Retrieve task details and status to validate scheduling accuracy.
    • Validate API responses include appropriate status codes and error handling for edge cases.

Possible Improvements

  • Task Prioritization: Implement priority levels for tasks to manage execution order.
  • Concurrency Management: Handle concurrent task execution and resource allocation.
  • Notification Integration: Integrate with a notification service to alert users about task status changes.
  • Dashboard: Develop a dashboard or monitoring interface to track task execution and scheduling.
  • Integration: Integrate with third-party task management tools or calendars for synchronization.

Conclusion

By completing this challenge, you will gain practical experience in developing a Task Scheduling API and learn essential practices for backend development related to task management and scheduling. Explore additional improvements and challenges to further enhance your skills.

Happy coding!