TaskSphere is a premium, collaborative two-tier Kanban board application built using modern web technologies and DevOps best practices. It features a stunning glassmorphic interface (Dark Space Theme) with drag-and-drop board mechanics, connected to a PostgreSQL database for real-time task status transitions.
TaskSphere uses a classic two-tier architecture:
- Tier 1 (Web Logic & Client):
- A single-page React client built with Vite for maximum performance, featuring micro-animations and custom dark aesthetics.
- Served by a Node.js Express server, which handles API routes (
/api/tasks) and provides a health check dashboard (/health).
- Tier 2 (Database Data Store):
- A PostgreSQL database that persists the board state, auto-migrating and seeding demo data on application startup.
TaskSphere comes loaded with ready-to-use DevOps pipelines and configurations:
- Containerization: Single-command container deployment via Docker & Docker Compose (
docker-compose.yml). - Multi-Stage Build: Highly optimized
Dockerfilecompilation that packages built static frontend assets and runtime backend code in a single minimal Node container. - CI/CD Pipeline (GitHub Actions): Workflow (
.github/workflows/ci-cd.yml) that lints code, runs tests, and verifies Docker builds. - Jenkins Automation: Included a declarative
Jenkinsfilefor enterprise CI/CD integration, which automates testing and Docker artifact packaging. - Infrastructure-as-Code (IaC): Standard Kubernetes manifests (
k8s/folder) containing Deployment, ClusterIP/NodePort Services, ConfigMaps, PersistentVolumeClaims, and Secret templates for cloud deployments. - Microservice Healthchecks: Real-time liveness/readiness probes mapped to the
/healthendpoint for auto-healing container networks.
- Node.js (v18+)
- Docker Desktop (active)
To run backend, frontend, and database in development mode:
Double-click run-dev.bat. This will:
- Start the PostgreSQL Docker container.
- Launch the backend Node server on
localhost:5000. - Launch the React dev server on
localhost:5173. - Open your default web browser to the dashboard.
- Run the database container:
docker-compose up -d db
- Install and launch the Backend:
cd backend npm install npm run dev - Install and launch the Frontend client:
cd frontend npm install npm run dev
To compile the entire app and run it in production mode:
Double-click run-prod.bat. This compiles the frontend assets inside a temporary docker container, bundles it with the Express API server, and serves the unified web application on http://localhost:5000.
docker-compose up --build -dAccess the application at: http://localhost:5000
To deploy the application to a local Kubernetes cluster (e.g. Minikube):
- Start your cluster:
minikube start
- Configure your shell to use minikube's Docker daemon:
minikube docker-env | Invoke-Expression - Build the Docker image inside minikube:
docker build -t tasksphere-web:latest -f backend/Dockerfile . - Apply the Kubernetes configurations:
kubectl apply -f k8s/
- Get service URL to access the web board:
minikube service tasksphere-web-service
Integration tests for the backend API endpoints are written with Jest and Supertest (with mock DB query clients):
To run tests:
cd backend
npm test