Nimbus Tasks is a full-stack task management application built with a Next.js frontend, FastAPI backend, JWT authentication, CRUD APIs, owner-only task security, AI task-command handling, and Kubernetes/cloud deployment proof.
This project was developed phase-wise for Hackathon 2 and is presented as a practical full-stack engineering project.
- Frontend UI: https://nimbus-tasks-web.vercel.app/login
- Backend Deployment: Render deployment completed previously; currently requires service resume on Render.
- Backend Swagger Docs: Available after Render service is resumed.
Note: The frontend UI is deployed on Vercel. The backend was deployed on Render, but the Render service is currently suspended and may need to be resumed before live login/API testing works again.
main— recruiter-facing overview and final READMEphase5-cloud— final cloud/Kubernetes/Dapr proof branchphase4-k8s— Docker, Minikube, Kubernetes Ingress, and Helm proofphase3-bonus— deployed frontend/backend and AI command proof
The goal of Nimbus Tasks is to demonstrate a working, secure, and deployable full-stack task management system.
The project includes:
- User registration and login
- JWT-based authentication
- Protected API routes
- User-owned task management
- Create, read, update, complete, and delete tasks
- Owner-only task access
- Frontend and backend deployment
- Kubernetes, Helm, and cloud deployment proof
- AI-style task command handling in English and Urdu
- Next.js
- React
- TypeScript
- Vercel
- FastAPI
- Python
- SQLModel
- JWT Authentication
- Uvicorn
- Render
- Docker
- Minikube
- Kubernetes
- Ingress
- Helm
- Dapr
- Cloud Kubernetes proof
Nimbus Tasks supports secure authentication using JWT tokens.
Implemented endpoints:
POST /api/auth/register
POST /api/auth/login
GET /api/auth/meAuthenticated users can manage their own tasks.
Implemented endpoints:
GET /api/tasks
POST /api/tasks
PUT /api/tasks/{task_id}
PATCH /api/tasks/{task_id}/toggle
DELETE /api/tasks/{task_id}A key requirement of this project is owner-only task access.
Every task operation is restricted to the authenticated user who owns the task.
Non-owners receive:
404 Not FoundThis prevents other users from viewing, updating, toggling, or deleting tasks they do not own.
| Phase | Focus | Status |
|---|---|---|
| Phase 1 | Local frontend/backend proof | Completed |
| Phase 2 | Backend contract, auth, CRUD, owner-only security | Completed |
| Phase 3 | Render + Vercel deployment and AI command proof | Completed |
| Phase 4 | Docker, Minikube, Kubernetes Ingress, Helm proof | Completed |
| Phase 5 | Cloud Kubernetes, Dapr, worker, and protected endpoint proof | Completed |
Phase 1 proved that the frontend and backend could run locally together.
cd "D:\Shoaib Project\nimbus-tasks\phase2-backend\api"
.\.venv\Scripts\Activate.ps1
uvicorn app.main:app --reload --port 8000 --env-file .envcurl.exe -X GET "http://127.0.0.1:8000/api/health"Expected response:
{"ok": true}cd "D:\Shoaib Project\nimbus-tasks\phase2-frontend"
npm run devLocal frontend:
http://localhost:3000/loginPhase 2 focused on backend correctness, authentication, CRUD behavior, and security.
curl.exe -i "https://nimbus-backend-sc34.onrender.com/api/health"Expected result:
HTTP/1.1 200 OKExpected response:
{"ok": true}curl.exe -i -X POST "https://nimbus-backend-sc34.onrender.com/api/auth/login" `
-H "Content-Type: application/x-www-form-urlencoded" `
-d "username=test@user.com&password=test123"Expected result:
HTTP/1.1 200 OKThe response returns a JWT access token.
A second user attempted to delete another user's task.
curl.exe -i -X DELETE "https://nimbus-backend-sc34.onrender.com/api/tasks/37" `
-H "Authorization: Bearer SECOND_USER_TOKEN"Expected result:
HTTP/1.1 404 Not FoundExpected response:
{"detail":"Task not found"}Then the real owner listed tasks and confirmed the task still existed.
This proves owner-only task protection.
When the actual owner deletes the task:
curl.exe -i -X DELETE "https://nimbus-backend-sc34.onrender.com/api/tasks/37" `
-H "Authorization: Bearer OWNER_TOKEN"Expected result:
HTTP/1.1 204 No ContentThis proves only the owner can delete their own task.
Phase 3 proved that the frontend and backend were deployed and connected.
https://nimbus-tasks-web.vercel.app/loginhttps://nimbus-backend-sc34.onrender.com/docs- Login
- Add task
- Update task
- Complete task
- Delete task
- List tasks
Nimbus Tasks includes chatbot-style task commands.
Intent priority order:
- Delete
- Complete
- Update
- List
- Add
This helps the system detect task commands in a predictable way.
Add a new task called Neon Blast.
Add a task named Milk.
Create a new task called Water.
Show all my tasks.
Update the task Milk to Buy Milk.
Mark Water as completed.
Delete the task Neon Blast.ایک نیا کام شامل کرو: بل بجلی جمع کرو
ایک نیا کام شامل کرو: کتاب خریدنی ہے
ایک نیا کام شامل کرو: دفتر جانا ہے
میرے سارے کام دکھاؤ
کتاب خریدنی ہے والے کام کا نام بدل دو
دفتر جانا ہے والا کام مکمل کر دو
بل بجلی جمع کرو والا کام حذف کر دوThis demonstrates multilingual task command handling in English and Urdu.
Phase 4 proved local Kubernetes deployment.
minikube start --driver=dockerkubectl get nodeskubectl -n nimbus get podskubectl -n nimbus get ingressminikube tunnelcurl.exe -I http://nimbus.local/ | findstr /i "HTTP/ location:"curl.exe -i http://nimbus.local/api/auth/meExpected result:
HTTP/1.1 401 UnauthorizedThis proves protected routes require authentication.
helm version
helm list -A
helm status nimbus -n nimbus
helm get values nimbus -n nimbusThis proves the Nimbus application can be managed through Helm.
Phase 5 proved cloud Kubernetes readiness with Dapr and worker components.
kubectl config current-context
kubectl get nskubectl -n nimbus get pods -o wide
kubectl -n nimbus rollout status deploy/nimbus-backend
kubectl -n nimbus rollout status deploy/nimbus-worker
kubectl -n nimbus rollout status deploy/nimbus-frontendkubectl -n nimbus get componentsExpected components include:
pubsub
cron
secretstorekubectl -n nimbus get ingress
kubectl -n nimbus describe ingress nimbus-ingresscurl.exe -I http://nimbus.local/ | findstr /i "HTTP/"
curl.exe -i http://nimbus.local/api/healthcurl.exe -i -H "Authorization: Bearer TOKEN" "http://nimbus.local/api/internal/secret-proof"Expected result:
HTTP/1.1 200 OK- JWT tokens are not committed.
- Environment variables are not committed.
- Protected routes require valid authentication.
- Non-owner task access returns
404 Not Found. - Owner-only task access is enforced at the backend level.
This project was developed phase-wise using separate branches for backend, frontend, deployment, Kubernetes, and cloud proof.
Recommended review path:
- Start with the backend Swagger documentation.
- Check the backend health endpoint.
- Review authentication and CRUD behavior.
- Review owner-only security proof.
- Review frontend deployment.
- Review Kubernetes, Helm, and cloud proof from phase branches.
The main branch is used as the public project landing page for recruiters and reviewers.
Nimbus Tasks demonstrates:
- Full-stack web development
- API design
- JWT authentication
- Secure CRUD operations
- Owner-only authorization
- Frontend/backend deployment
- AI-style command handling
- English and Urdu command support
- Docker and Kubernetes proof
- Helm deployment proof
- Dapr and cloud Kubernetes proof
This project shows practical full-stack engineering ability with deployment and security awareness.