This project is a Task Management System designed for scalability and flexibility, incorporating payment integration for premium features. Users can register, create tasks, assign tasks to team members, track task status, and manage subscriptions. It is containerized and deployed using Docker and Kubernetes.
https://drive.google.com/file/d/1Hvyi5W_kMWN5tM60zwKO6qAe16H3NEOm/view?usp=sharing
| Evaluation Criteria | Status |
|---|---|
| Frontend | ✅ |
| Backend | ✅ |
| Payment Integration | ✅ |
| Kafka Implementation | ✅ |
| Docker & Kubernetes | Containerized |
| Documentation | ✅ |
- Register and log in using JWT-based authentication.
- Support for user roles: Admin, Manager, and User to control access.
- Admins can create and assign tasks.
- Users can view assigned tasks and update their statuses (Pending, In Progress, Completed).
- Managers can view reports of all tasks and their statuses.
- Integrated Stripe/Razorpay for subscription-based payments.
- Free users: Limited task creation.
- Premium users: Unlimited task creation and access to advanced reports.
- Payment webhooks to update user subscription status.
- Generate real-time reports showing task progress.
- Kafka handles task updates and notifications.
| Component | Technology |
|---|---|
| Frontend | Next.js |
| Backend | Node.js + Express.js |
| Database | PostgreSQL |
| Messaging | Kafka |
| Payment Gateway | Stripe |
| Containerization | Docker |
| Orchestration | Kubernetes |
- Pages:
- Registration and login.
- Dashboard to display tasks.
- Features:
- Form to create and assign tasks.
- Integration with Stripe/Razorpay for payment processing.
- Display subscription status on the user profile.
- APIs:
- User registration and login.
- Task creation and assignment.
- Task status updates.
- Payment webhook handling.
- Authentication:
- JWT-based authentication for security.
- Messaging:
- Publish task updates to a Kafka topic.
- Tables:
- Users: Store user details and roles.
- Tasks: Store task details and statuses.
- Payments: Manage user subscription statuses.
- Docker:
- Dockerfiles for frontend and backend.
- Docker Compose for multi-container setup.
- Kubernetes:
- YAML files for deployment in a Kubernetes cluster.
- Use Secrets to securely store environment variables.
- Node.js, Docker, Kubernetes, and PostgreSQL installed.
- Stripe/Razorpay API keys.
To get started with the Project, follow these steps:
- Clone the repository to your local machine :
git clone https://github.com/GAGANRAGHAV/Catalysers_Finovate_assignment- Navigate to the project frontend directory:
cd client3- Install project dependencies:
npm install- Start the development server:
npm run dev- Navigate to the project backend directory:
cd server- Install project dependencies:
npm install- Start the development server:
node server.js- docker Command:
docker-compose build
docker-compose up