TaskForge is a distributed full-stack platform for asynchronous text-processing jobs. It combines a Next.js frontend, a Node.js/Express API, Redis-backed queueing, Python workers, MongoDB persistence, Dockerized services, Kubernetes deployment, GitOps with Argo CD, and CI/CD with GitHub Actions.
- Full-stack application with authentication and task lifecycle management
- Distributed architecture with decoupled API, queue, worker, and database layers
- Asynchronous processing using Redis and horizontally scalable workers
- Containerized services for local and cluster deployment
- Kubernetes manifests for namespace-scoped deployment in
taskforge - GitOps delivery with Argo CD auto-sync and self-healing
- CI/CD pipeline that builds images, pushes them to Docker Hub, updates manifests in Git, and lets Argo CD deploy the new version
flowchart LR
U["User"] --> F["Frontend<br/>Next.js"]
F --> B["Backend API<br/>Node.js / Express"]
B --> M["MongoDB<br/>Task metadata + results"]
B --> R["Redis<br/>task-queue"]
R --> W["Python Workers"]
W --> M
flowchart LR
G["git push"] --> A["GitHub Actions"]
A --> B["Build backend/frontend/worker images"]
B --> D["Push SHA-tagged images to Docker Hub"]
D --> M["Update infra/k8s manifests in Git"]
M --> R["Argo CD detects new commit"]
R --> K["Kubernetes sync + rollout"]
- Frontend: Next.js 16, React 19
- Backend: Node.js, Express, Mongoose
- Worker: Python
- Queue: Redis
- Database: MongoDB
- Containerization: Docker, Docker Compose
- Orchestration: Kubernetes
- GitOps: Argo CD
- CI/CD: GitHub Actions
- User registration and login
- JWT-protected backend routes
- Task creation and execution from the dashboard
- Async queue-based processing with Redis
- Live task status, logs, and result polling
- Horizontal worker scaling with multiple replicas
- Health checks and resource limits in Kubernetes
- Automated GitOps deployment from GitHub to Kubernetes
backend/ Express API and MongoDB models
frontend/ Next.js application
worker/ Python worker service
infra/k8s/ Kubernetes manifests
.github/workflows/ GitHub Actions CI/CD pipeline
ARCHITECTURE.md Architecture notes and scaling strategy
README.md Project overview and deployment guide
- A user registers or logs in through the frontend.
- The frontend stores a JWT and calls the backend API.
- A task is created in MongoDB with status metadata.
- When the user runs a task, the backend pushes a job into the Redis queue.
- Python workers consume jobs asynchronously and update the task in MongoDB.
- The frontend polls the backend and renders live status, logs, and final output.
From docker-compose.yml:
docker compose up --buildLocal endpoints:
- Frontend: http://localhost:3000
- Backend API: http://localhost:5000
Kubernetes manifests live in infra/k8s.
Apply the stack:
cd C:\Users\Piyush\Desktop\root\infra\k8s
kubectl apply -f namespace.yaml
kubectl apply -f configmap.yaml
kubectl apply -f secret.example.yaml
kubectl apply -f mongo.yaml
kubectl apply -f redis.yaml
kubectl apply -f backend.yaml
kubectl apply -f worker.yaml
kubectl apply -f frontend.yaml
kubectl apply -f ingress.yamlVerify:
kubectl get pods -n taskforge
kubectl get deployments -n taskforge
kubectl get ingress -n taskforgeCurrent namespace:
taskforge
Important runtime config from infra/k8s/configmap.yaml:
MONGO_URI=mongodb://mongo-service:27017/taskforgeREDIS_HOST=redis-serviceNEXT_PUBLIC_API_URL=http://backend-service:5000/api
Argo CD is configured through app.yaml and infra/argocd-app.yaml.
Application source:
- Repo: https://github.com/piyushsachdv/taskforge
- Path:
infra/k8s - Namespace:
taskforge
Apply the app:
kubectl apply -f C:\Users\Piyush\Desktop\root\app.yaml
kubectl get applications -n argocdExpected healthy state:
- Sync status:
Synced - Health status:
Healthy
The pipeline is defined in .github/workflows/deploy.yml.
On every push to main that changes app code or the workflow:
- GitHub Actions builds backend, frontend, and worker images
- Images are pushed to Docker Hub with the Git commit SHA as the tag
- The workflow updates
infra/k8s/*.yamlimage references in Git - The workflow commits those manifest changes back to
main - Argo CD detects the new Git revision and rolls out the updated images
Required GitHub repository secrets:
DOCKER_USERNAMEDOCKER_PASSWORD
Deployment proof can be verified with:
kubectl get application taskforge-app -n argocd
kubectl get deployment backend -n taskforge -o jsonpath="{.spec.template.spec.containers[0].image}"
kubectl get deployment frontend -n taskforge -o jsonpath="{.spec.template.spec.containers[0].image}"
kubectl get deployment worker -n taskforge -o jsonpath="{.spec.template.spec.containers[0].image}"- Workers are stateless Redis consumers and can scale horizontally
- The worker deployment starts with 2 replicas
- MongoDB task queries are indexed by
userId,createdAt, andstatus - Resource requests and limits are defined for cluster scheduling safety
- Argo CD auto-sync, prune, and self-heal reduce drift
- Frontend dashboard screenshot
kubectl get pods -n taskforgescreenshot- Argo CD application screenshot showing
SyncedandHealthy - GitHub Actions screenshot showing a green pipeline
- Optional screenshot of SHA-tagged deployment images
See ARCHITECTURE.md for scaling strategy, indexing, Redis failure handling, and environment design.






