Skip to content

About

Task Pulse is a TypeScript microservices monorepo for task management. It uses Express and Prisma with PostgreSQL for authentication, alongside Mongoose and MongoDB for tasks. An API Gateway handles routing and JWT validation, with Docker Compose containerizing the full development environment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Task Pulse

Task Pulse is a production-grade, containerized microservices monorepo designed for efficient task management, automated alerts, and scalable cloud deployments. It serves as a robust showcase of modern backend architecture, polyglot persistence, container orchestration, and an enterprise API gateway pattern.

Acc: Krx


Technology Stack & Architecture

Task Pulse follows a decoupled microservices approach managed within a single monorepo:

Service Path Status Stack
Frontend apps/web-frontend In Development Next.js (App Router), TypeScript, Tailwind CSS
Auth Service services/auth-service Complete Express, TypeScript, Prisma 7 ORM, PostgreSQL (registration, auth, JWT)
Task Service services/task-service Partially Complete Express, TypeScript, Mongoose ODM, MongoDB (task CRUD & metadata)
Notification Service services/notification-service In Development Express, TypeScript, Nodemailer (asynchronous email alerts)

Testing Stack: Vitest + Supertest for unit and integration testing.


Architecture Diagram

Task Pulse

Project Structure

Task-Pulse/
├── .github/workflows/          # CI/CD pipelines (GitHub Actions)
├── apps/
│   └── web-frontend/           # Next.js client application
├── gateway                     # API Gateway: Cloudflare Worker
├── services/
│   ├── auth-service/           # PostgreSQL + Prisma Auth microservice
│   ├── task-service/           # MongoDB + Mongoose Task microservice
│   └── notification-service/   # Async notification handler
├── compose.dev.yaml            # Local development orchestration
├── README.md
└── .env                        # Docker Compose environment (see .env.example)

Getting Started (Local Development)

Prerequisites

1. Clone the Repository

git clone https://github.com/krsnagupta/task-pulse.git
cd task-pulse

2. Configure Environment Variables

Copy the root .env.example (or configure individual service .env files) and provide the required database URIs, secrets, and port mappings.

3. Run with Docker Compose

Spin up the infrastructure databases and microservices:

docker compose -f compose.dev.yaml up --build

This automatically configures:

Component Port Notes
PostgreSQL 5432 —
MongoDB 27017 —
Auth Service 5003 Includes automated Prisma schema migration (npx prisma migrate deploy)
Task Service 5002 —

Deployment Strategy

Task Pulse is designed for an independent Dockerized cloud deployment model (optimized for platforms such as Render and Vercel):

  • Microservices : Deployed independently as Docker web services to ensure isolated failure domains, tailored scaling, and subfolder-safe root contexts.
  • Frontend : Hosted on Vercel and communicates exclusively through the Kong API Gateway layer.

Project Status

Component Status
Core Auth Service Completed & Verified (Prisma 7, PostgreSQL, JWT, Vitest/Supertest suites passing)
Task Service & Cloudflare worker as Gateway Active development / integration phase

About

Task Pulse is a TypeScript microservices monorepo for task management. It uses Express and Prisma with PostgreSQL for authentication, alongside Mongoose and MongoDB for tasks. An API Gateway handles routing and JWT validation, with Docker Compose containerizing the full development environment.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages