DevifyX
Node.js Job Assignment
Assignment Title: Kanban Board API
Assignment Description: Boards Tasks Drag Order
Assignment Deadline: 7 Days
Objective
Design and implement a RESTful API for a Kanban Board system using Node.js. The
API should allow users to manage boards, columns, and tasks, including the ability to
drag and reorder tasks within and across columns. The goal is to demonstrate proficiency
in backend development, API design, and data consistency.
Core Features
1. User Authentication: Implement secure user registration and login using JWT.
2. Board Management: Create, read, update, and delete Kanban boards.
3. Column Management: Add, update, delete, and reorder columns within a board.
4. Task Management: Create, update, delete, and reorder tasks within columns.
5. Drag-and-Drop Task Ordering: Support API endpoints to update the order of
tasks via drag-and-drop (within and across columns).
6. Task Details: Each task should support title, description, status, and due date.
7. Board Sharing: Allow users to share boards with other registered users (read/write
access).
8. Data Validation: Ensure all input data is validated and errors are handled grace-
fully.
Bonus Features
Real-time updates using WebSockets (e.g., notify clients when board changes occur).
Activity log for each board (track changes made by users).
Task attachments (allow users to upload files to tasks).
Role-based permissions (admin, editor, viewer).
API documentation using Swagger/OpenAPI.
1
Technical Requirements
Backend: Node.js with Express.js (or similar framework).
Database: MongoDB (preferred) or PostgreSQL.
Authentication: JWT-based authentication.
Validation: Use a validation library such as Joi or express-validator.
Version Control: Use Git for source code management.
Testing: Include unit and integration tests (Jest, Mocha, or similar).
Documentation: Provide a README with setup instructions and API usage.
Deliverables
Source code repository (GitHub, GitLab, or similar).
API documentation (README and/or Swagger/OpenAPI).
Sample environment configuration file (.env.example).
Database schema/model definitions.
Test cases for key functionalities.
Use of AI Tools
You are permitted and encouraged to use AI-based coding tools such
as GitHub Copilot, ChatGPT, or similar platforms to assist with code
generation, debugging, and documentation. However, the final submission
should reflect your own understanding and structure.
Submission
Submit your assignment using the following form:
https://forms.gle/LAvLWFmHRLXswwsx5
Ensure your repository is publicly accessible or provide access credentials if private.
Include your full name and contact email in the submission form.
2
Evaluation Criteria
Functionality: Completeness and correctness of core and bonus features.
Code Quality: Readability, structure, and maintainability of code.
API Design: RESTful principles, clear endpoints, and error handling.
Testing: Coverage and quality of test cases.
Documentation: Clarity and thoroughness of README and API docs.
Security: Proper handling of authentication, authorization, and data validation.
Submission: Adherence to submission guidelines and deadlines.
We look forward to your submission!
Good luck from the DevifyX Team.
Click here to read our Terms and Conditions