A full-stack task management application built with React, Node.js, and MongoDB. TaskRoot helps you organize and manage your tasks efficiently with features like task creation, status updates, filtering, and more.
- Create, read, update, and delete tasks
- Mark tasks as complete/incomplete
- Filter tasks by type (Work, Private, Others)
- Edit task details
- Responsive and modern UI
- Real-time status updates
- Frontend: React, TailwindCSS, Axios
- Backend: Node.js, Express
- Database: MongoDB
- Development Tools: Vite, Postman
- Node.js (v14 or higher)
- MongoDB
- npm or yarn
- Navigate to the backend directory:
cd backend- Install dependencies:
npm install- Create a
.envfile in the backend directory with the following content:
MONGO_URL=your_mongodb_connection_url
PORT=4000- Start the backend server:
npm startfor hot reloading
nodemon index.js- Navigate to the frontend directory:
cd frontend- Install dependencies:
npm install- Create a
.envfile in the frontend directory with the following content:
VITE_API_URL=http://localhost:4000- Start the frontend development server:
npm run devhttp://localhost:4000
- Method: GET
- Endpoint:
/tasks - Response:
[
{
"id": "string",
"title": "string",
"description": "string",
"type": "string",
"isCompleted": boolean,
"datetime": "ISO date string"
}
]- Method: POST
- Endpoint:
/tasks - Request Body:
{
"title": "string",
"description": "string",
"type": "string",
"isCompleted": boolean,
"datetime": "ISO date string"
}- Response:
{
"message": "Successfully added new task."
}- Method: GET
- Endpoint:
/tasks/:id - Response:
{
"id": "string",
"title": "string",
"description": "string",
"type": "string",
"isCompleted": boolean,
"datetime": "ISO date string"
}- Method: PUT
- Endpoint:
/tasks/:id - Request Body:
{
"title": "string",
"description": "string"
}- Response: Updated task object
- Method: PATCH
- Endpoint:
/tasks/:id/status - Response: Updated task object with toggled status
- Method: DELETE
- Endpoint:
/tasks/:id - Response:
{
"message": "Task deleted successfully"
}- Import the following collection into Postman:
{
"info": {
"name": "TaskRoot API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Get All Tasks",
"request": {
"method": "GET",
"url": "http://localhost:4000/tasks"
}
},
{
"name": "Create Task",
"request": {
"method": "POST",
"url": "http://localhost:4000/tasks",
"body": {
"mode": "raw",
"raw": "{\"title\":\"Test Task\",\"description\":\"Test Description\",\"type\":\"work\",\"isCompleted\":false,\"datetime\":\"2024-03-20T12:00:00Z\"}",
"options": {
"raw": {
"language": "json"
}
}
}
}
}
]
}- Get All Tasks:
curl http://localhost:4000/tasks- Create Task:
curl -X POST http://localhost:4000/tasks \
-H "Content-Type: application/json" \
-d '{"title":"Test Task","description":"Test Description","type":"work","isCompleted":false,"datetime":"2024-03-20T12:00:00Z"}'- Update Task Status:
curl -X PATCH http://localhost:4000/tasks/{task_id}/status- Delete Task:
curl -X DELETE http://localhost:4000/tasks/{task_id}- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request


