Skip to content

Latest commit

 

History

History
27 lines (24 loc) · 2.32 KB

Assignment.md

File metadata and controls

27 lines (24 loc) · 2.32 KB

Task Management API Background: You are working for a fictional tech startup called "TechCorp," which specializes in building innovative web applications. The company is currently developing a new project and needs a talented intern to assist in the backend development process.

Assignment Description: Your task is to create a robust and feature-rich backend API for a task management application using the following technologies: Node.js and PostgreSQL. While the frontend development is not required for this assignment, you should design the API with the intention of supporting a future frontend application. The API should allow users to efficiently manage their tasks, collaborate with others, and stay organized. The design should prioritize functionality, performance, and scalability.

Requirements: Backend (Node.js, Express and PostgreSQL):

  • Set up a Node.js server to handle API requests.
  • Assignment of Tasks to Users: In a task management application, it's essential to have user-specific tasks. So create users and then create tasks for those users.
  • Database Migrations/Seeds: Your solution should include appropriate database migrations and seed data to set up the database schema and initial data (seed your db with a few users).
  • Create RESTful API endpoints for CRUD operations (Create, Read, Update, Delete) on tasks.
  • Implement appropriate error handling and validation.
  • Implement user-specific views for tasks, ensuring that users only see their assigned tasks.
  • Allow users to mark tasks as completed.
  • Include a task history feature, showing task changes and updates (optional). Submission Guidelines: Provide a comprehensive GitHub repository with clear instructions on setting up and running the backend application. Include a detailed README file describing the project's structure, setup instructions, and any additional notes. Ensure that your code is well-documented with clear code comments where necessary.

Evaluation Criteria: Effective use of Node.js and PostgreSQL. Proper implementation of CRUD operations on tasks. Clean, well-structured, and well-documented code. Correct implementation of all specified features and requirements. Effective error handling and validation. Note: You can use any additional/different libraries or frameworks if necessary, but make sure to justify your choices in the code or documentation.