Task Management System with Payment Integration
Develop a Task Management System where users can register, create tasks, assign tasks
to team members, track task status, and manage subscriptions for premium features. The
system should be scalable, containerized, and deployed using Docker and Kubernetes.
Features to Implement
1. User Authentication and Role Management
• Allow users to register and log in using JWT-based authentication.
• Implement roles (Admin, Manager, User) to control access to features.
2. Task Management
• Admins can create and assign tasks to users.
• Users can view tasks assigned to them and update the task status (e.g., Pending,
In Progress, Completed).
• Managers can view reports of all tasks and their statuses.
3. Payment Integration
• Use Stripe or Razorpay to implement a subscription-based system.
• Free users have limited task creation, while premium users get access to unlimited
tasks and advanced reports.
• Handle payment webhooks to update user subscription status.
4. Task Status Reports
• Generate real-time reports showing task progress.
• Use Kafka to handle task updates and noti cations.
Tech Stack Requirements
Component Technology
Frontend [Link]
fi
Backend [Link] + Express
Database PostgreSQL
Messaging Kafka
Containerization Docker
Orchestration Kubernetes
Payment Gateway Stripe/Razorpay
Frontend ([Link])
1. Create a registration and login page.
2. Build a dashboard to display tasks.
3. Implement a form to create and assign tasks.
4. Integrate Stripe/Razorpay for payment processing.
5. Show subscription status on the user pro le.
Backend ([Link] + Express)
1. Create APIs for
◦ User registration/login
◦ Task creation/assignment
◦ Updating task status
◦ Payment webhook handling
2. Implement JWT authentication.
3. Use Kafka to publish task updates to a topic.
Database (PostgreSQL)
1. Tables to create
◦ Users
◦ Tasks
◦ Payments
2. Store task details, user roles, and payment status.
Containerization and Orchestration
fi
1. Docker
◦ Create Docker les for both frontend and backend.
◦ Use Docker Compose to manage multi-container setup.
2. Kubernetes
◦ Write YAML les for deploying the application on a Kubernetes cluster.
◦ Use Secrets to manage sensitive environment variables.
Deliverables
1. GitHub Repository with
◦ Frontend ([Link])
◦ Backend ([Link])
◦ Docker & Kubernetes les
◦ README with setup instructions
2. Deployed App Link (optional for bonus points)
Evaluation Criteria
Criteria Weightage
Code Quality 20%
Project Architecture 20%
Payment Integration 15%
Kafka Implementation 15%
Docker & Kubernetes 15%
Documentation 15%
fi
fi
fi