{"id":25695515,"url":"https://github.com/sk-jabed/taskwiz-server-side","last_synced_at":"2026-04-11T12:02:16.268Z","repository":{"id":278612487,"uuid":"935685927","full_name":"SK-Jabed/TaskWiz-Server-Side","owner":"SK-Jabed","description":"The TaskWiz Server is the backend service for a task management application. It provides a robust API for managing user authentication, task creation, updating, deletion, and real-time synchronization of task statuses.","archived":false,"fork":false,"pushed_at":"2025-02-21T21:33:14.000Z","size":39,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-21T22:26:16.518Z","etag":null,"topics":["cors","dotenv","express","mongodb","morgan-middleware","nodejs"],"latest_commit_sha":null,"homepage":"https://taskwiz-01.web.app/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SK-Jabed.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-19T21:10:20.000Z","updated_at":"2025-02-21T21:36:49.000Z","dependencies_parsed_at":"2025-02-20T18:48:54.288Z","dependency_job_id":null,"html_url":"https://github.com/SK-Jabed/TaskWiz-Server-Side","commit_stats":null,"previous_names":["sk-jabed/job-task-server","sk-jabed/taskwiz-server-side"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SK-Jabed%2FTaskWiz-Server-Side","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SK-Jabed%2FTaskWiz-Server-Side/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SK-Jabed%2FTaskWiz-Server-Side/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SK-Jabed%2FTaskWiz-Server-Side/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SK-Jabed","download_url":"https://codeload.github.com/SK-Jabed/TaskWiz-Server-Side/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240582047,"owners_count":19824146,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cors","dotenv","express","mongodb","morgan-middleware","nodejs"],"created_at":"2025-02-25T00:51:58.022Z","updated_at":"2026-04-11T12:02:16.208Z","avatar_url":"https://github.com/SK-Jabed.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TaskWiz Server\n\n## 📌 Project Overview\nThe **TaskWiz Server** is the backend service for a task management application. It provides a robust API for managing user authentication, task creation, updating, deletion, and real-time synchronization of task statuses. Built with **Node.js, Express.js, and MongoDB**, it ensures a seamless and efficient backend for task tracking.\n\n## 🎯 Purpose\nThe purpose of this server is to:\n- Provide **authentication** using Firebase Authentication.\n- Manage **tasks** categorized into **To-Do, In Progress, and Done**.\n- Enable **real-time updates** for task reordering and status changes.\n- Store **user and task data** securely in MongoDB.\n\n## 🚀 Live Server\n\u003e 🔗 **Live API:** [Deployed API Link](https://taskwiz-server-side.vercel.app/)\n\n---\n\n## 🔑 Key Functionalities\n- **User Authentication**: Google Sign-In via Firebase.\n- **Task CRUD Operations**:\n  - Add a new task.\n  - Retrieve tasks by user email.\n  - Update task details (title, description, category).\n  - Delete a task permanently.\n- **Drag-and-Drop Task Management**:\n  - Reorder tasks within a category.\n  - Move tasks between categories.\n- **Real-Time Updates**:\n  - Optimistic UI updates with backend sync.\n  - WebSockets or Change Streams for instant synchronization.\n- **Secure \u0026 Scalable**:\n  - Uses MongoDB for persistent storage.\n  - Implements CORS for secure API access.\n\n---\n\n## 🛠️ Technologies Used\n| Technology   | Purpose |\n|-------------|---------|\n| **Node.js** | Backend runtime |\n| **Express.js** | Web framework for building APIs |\n| **MongoDB** | NoSQL database for task storage |\n| **Firebase Authentication** | User authentication |\n| **Mongoose** | MongoDB ODM for easy schema handling |\n| **CORS** | Secure cross-origin API access |\n| **Morgan** | HTTP request logger |\n| **Dotenv** | Environment variable management |\n\n---\n\n## 📌 API Endpoints Reference\n\n### 🔹 User Management\n#### ➤ Save User Data\n**`POST /users`**\n```json\n{\n  \"name\": \"John Doe\",\n  \"email\": \"johndoe@example.com\"\n}\n```\n✅ Saves user details in the database.\n\n#### ➤ Get All Users\n**`GET /users`**\n✅ Retrieves all users from the database.\n\n---\n\n### 🔹 Task Management\n#### ➤ Add a New Task\n**`POST /tasks`**\n```json\n{\n  \"title\": \"Complete project\",\n  \"description\": \"Finish the task management app\",\n  \"category\": \"To-Do\",\n  \"user\": {\n    \"name\": \"John Doe\",\n    \"email\": \"johndoe@example.com\"\n  }\n}\n```\n✅ Adds a new task to the database.\n\n#### ➤ Get All Tasks for a User\n**`GET /tasks?email=johndoe@example.com`**\n✅ Retrieves all tasks for the authenticated user.\n\n#### ➤ Get All Tasks (Admin)\n**`GET /allTasks`**\n✅ Fetches all tasks from the database.\n\n#### ➤ Update a Task\n**`PUT /tasks/:id`**\n```json\n{\n  \"title\": \"Update project\",\n  \"description\": \"Modify task details\",\n  \"category\": \"In Progress\"\n}\n```\n✅ Updates an existing task.\n\n#### ➤ Delete a Task\n**`DELETE /tasks/:id`**\n✅ Permanently removes a task from the database.\n\n---\n\n## ⚙️ Installation \u0026 Setup\n\n### 1️⃣ Clone the Repository\n```sh\ngit clone https://github.com/your-repo/taskwiz-server.git\ncd taskwiz-server\n```\n\n### 2️⃣ Install Dependencies\n```sh\nnpm install\n```\n\n### 3️⃣ Setup Environment Variables\nCreate a `.env` file in the root directory and add:\n```\nDB_USER=your_mongodb_username\nDB_PASS=your_mongodb_password\nPORT=5000\n```\n\n### 4️⃣ Run the Server\n```sh\nnpm start\n```\nThe server should now be running on **http://localhost:5000**.\n\n---\n\n## 📦 Dependencies\n| Package | Version | Purpose |\n|---------|---------|---------|\n| **express** | ^4.21.2 | Web framework |\n| **mongodb** | ^6.13.0 | MongoDB database driver |\n| **dotenv** | ^16.4.7 | Environment variables management |\n| **cors** | ^2.8.5 | Enable CORS for API requests |\n| **morgan** | ^1.10.0 | HTTP request logger |\n\n---\n\n## 🔮 Future Enhancements\n- ✅ **Real-time WebSocket support** for live task updates.\n- ✅ **User role management** (Admin/User).\n- ✅ **Task priorities** (High, Medium, Low).\n- ✅ **Task deadline \u0026 reminders**.\n\n---\n\n## 📝 License\nThis project is licensed under the **ISC License**.\n\n---\n\n## 👨‍💻 Author\n- **Sheikh Jabed** 🚀  \n  [GitHub](https://github.com/SK-Jabed) | [LinkedIn](https://linkedin.com/in/your-profile)\n\n---","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsk-jabed%2Ftaskwiz-server-side","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsk-jabed%2Ftaskwiz-server-side","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsk-jabed%2Ftaskwiz-server-side/lists"}