Full Stack Developer Assignment (MERN)
Overview
As part of our hiring process, you are required to build a simple Task Management System
using the MERN stack (MongoDB, [Link], [Link], [Link]).
The goal of this assignment is to evaluate your ability to:
● Build a complete full-stack application
● Implement authentication and authorization
● Design clean APIs and data models
● Write structured, readable, and maintainable code
Technical Requirements
● Frontend: [Link]
● Backend: [Link] + [Link]
● Database: MongoDB or PostgreSQL
● Authentication: JWT-based authentication
Authentication
Implement basic user authentication:
● User Registration
● User Login
● Passwords should be securely stored (hashed)
● Use JWT for authentication
● Protected routes should only be accessible to authenticated users
Task Management
Each user should be able to:
● Create tasks
● View tasks
● Update tasks
● Delete tasks
Task Fields:
● Title
● Description
● Status (Todo / In Progress / Done)
● Due Date
Task Types & Behavior
1. Personal Tasks
● Created by a user
● Visible only to the creator
● All fields can be edited by the creator
2. Assigned Tasks
● A user (assigner) can assign a task to another user (assignee)
Visibility:
● Visible to both assigner and assignee
Role-Based Permissions (Important)
For Assigned Tasks:
Assignee:
● Can only update the task status
● Cannot modify:
○ Title
○ Description
○ Due Date
Assigner:
● Can view the task and its progress
● Can set and update the due date
● Cannot update:
○ Task status
General Rule:
● Users should not be able to access or modify tasks they are not related to
Frontend Requirements
Create a simple and clean UI with the following pages:
● Login / Register
● Dashboard (task list)
● Task creation / update interface
Expectations:
● Clean and readable layout
● Proper handling of:
○ Loading states
○ Empty states
○ Error states
Submission Guidelines
Please submit the following:
1. GitHub Repository link
2. README file including:
○ Setup instructions
○ Tech stack used
○ Sample user credentials (at least 2 users required)
3. Deployed application link (mandatory)
Notes
● The application should be fully functional and error-free
● Focus on correctness, clarity, and code quality
● Avoid overcomplicating the solution
● Ensure proper authorization checks are implemented
● The system should correctly handle multiple users and task assignments
Evaluation Criteria
Your submission will be evaluated based on:
● Functionality (end-to-end working application)
● Code quality and structure
● API design and database modeling
● Authentication and authorization implementation
● Correct handling of role-based permissions
● UI usability and clarity
We are looking for candidates who can take ownership of a problem and deliver a clean,
working solution.
Good luck!