PayTasker is a task management system that allows workers and buyers to manage tasks, payments, and notifications efficiently. Workers can complete tasks and earn coins, while buyers can approve or reject task submissions and manage payments.
- Task Management: Buyers can create tasks, approve or reject submissions.
- Worker Rewards: Workers are rewarded with coins for completing tasks.
- Payment System: Buyers can approve or reject payments based on task completion.
- Notifications: Users receive real-time updates on task status and payment approvals.
- Node.js: JavaScript runtime for the server.
- Express.js: Web framework for building APIs.
- MongoDB: NoSQL database for storing task and user data.
- JWT: For secure authentication and authorization.
- Stripe: Payment processing.
- CORS: For handling cross-origin requests.
- Nodemon: For automatic server restarts during development.
- Description: Fetches the top 6 workers based on the highest number of coins.
- Description: Fetches the buyer's task and payment data, including total tasks, pending tasks, and total payment made.
- Description: Approves a worker's task submission and rewards them with coins for the task completion.
- Description: Rejects a worker's task submission and reassigns the task to other workers.
- Description: Fetches the worker's task submission and payment data, including total submissions, pending submissions, and total earnings.
- Description: Fetches notifications for the authenticated user based on their email.
- Description: Creates a new task for a buyer, specifying task details like required workers and task title.
- Description: Fetches the details of a specific task using its ID.
- Description: Allows workers to submit completed tasks for review.
- Description: Fetches all tasks for the authenticated buyer or worker, based on their role.
- Description: Updates the details of an existing task.
- Description: Submits a worker's task submission for review by the buyer.
- Description: Fetches a list of all submissions for a particular task.
- Description: Fetches the current status of a task (e.g., pending, completed, approved).
- Description: Updates the status of a task (e.g., from pending to completed).
- Description: Processes a payment to the worker for completing the task, integrating with Stripe.
- Description: Fetches the status of a payment made to a worker.
- Description: Fetches the authenticated user's profile details (either worker or buyer).
- Description: Updates the authenticated user's profile details.
- Description: Registers a new user (either buyer or worker) and stores their details.
- Description: Logs in a user by validating their credentials and generating a JWT token.
- Description: Fetches the authenticated worker's wallet balance (coins).
- Description: Adds coins to a worker's wallet after a successful task completion or payment.
- Description: Fetches the history of tasks for the authenticated buyer or worker.
- Description: Fetches rankings of workers based on completed tasks and coins earned.
- Description: Allows buyers to submit feedback on a worker's performance after task completion.
- Description: Fetches all feedback submitted for a particular worker or buyer.
- Description: Allows searching for tasks based on specific filters like task title, category, or status.
- Description: Fetches analytics for a task, such as the number of workers assigned, submission status, and payment details.
- Description: Generates a report for the buyer on the status of all their tasks and payments.
- Description: Fetches the payment history for the authenticated buyer or worker.
- Description: Allows users to customize their notification preferences for task and payment updates.
- Description: Fetches the admin dashboard data, including the number of tasks, submissions, payments, and users.
- Description: Approves a new user registration as a buyer or worker by the admin.
- Description: Sends a notification to a user based on specific criteria (e.g., task completion, submission status).