/taskopedia

TaskOPedia - Enterprises task and project management platform built with NestJS microservices, featuring JWT authentication, API Gateway, Prisma ORM and centralized logging for scalable team collaboration.

Primary LanguageTypeScript

TaskOPedia

Enterprise-grade task and project management microservices architecture, built using NestJS, Prisma, and Turborepo.

๐Ÿ“‹ View Feature Roadmap - Track upcoming features and implementation progress

๐Ÿ—๏ธ Architecture

This monorepo contains three microservices:

  • API Service - Core business logic with Prisma ORM and database management
  • Gateway Service - API Gateway with request routing and proxy middleware
  • Logger Service - Centralized logging service using Winston

๐Ÿš€ Quick Start

Prerequisites

  • Node.js >= 18.0.0
  • pnpm >= 10.0.0

Installation

# Install dependencies
pnpm install

# Generate Prisma client
pnpm run db:generate

Environment Setup

Copy the example environment file and update values:

# Copy .env.example to .env
cp .env.example .env

Then update the .env file with your database credentials and other settings.

Development

# Run all services
pnpm run dev:all

# Run individual services
pnpm run dev:api      # API on port 4000
pnpm run dev:gateway  # Gateway on port 3000
pnpm run dev:logger   # Logger on port 4001

Build & Production

# Build all services
pnpm run build

# Build specific service
pnpm run build:api

# Start in production
pnpm run start:all

๐Ÿ“ฆ Project Structure

taskopedia/
โ”œโ”€โ”€ apps/
โ”‚   โ”œโ”€โ”€ api/          # API service with Prisma
โ”‚   โ”œโ”€โ”€ gateway/      # API Gateway
โ”‚   โ””โ”€โ”€ logger/       # Centralized logging
โ”œโ”€โ”€ packages/         # Shared packages
โ”‚   โ”œโ”€โ”€ common/
โ”‚   โ”œโ”€โ”€ config/
โ”‚   โ”œโ”€โ”€ contracts/
โ”‚   โ””โ”€โ”€ types/
โ””โ”€โ”€ infra/           # Infrastructure configs

๐Ÿ” Authentication

JWT-based authentication system with the following endpoints:

Public Endpoints:

  • POST /api/user/signup - Register new user
  • POST /api/user/login - Login (returns JWT token)
  • POST /api/user/verify-otp - Verify account with OTP
  • POST /api/user/resend-otp - Resend OTP
  • POST /api/user/reset-password - Reset password

Protected Endpoints (require Authorization: Bearer <token> header):

  • User CRUD operations
  • Project management (create, update, archive, delete)
  • Task management (create, update, archive, delete)
  • Dashboard statistics

๐Ÿ—„๏ธ Database Commands

pnpm run db:migrate   # Run migrations
pnpm run db:push      # Push schema changes
pnpm run db:studio    # Open Prisma Studio
pnpm run db:reset     # Reset database

๐Ÿงช Testing & Quality

pnpm run test         # Run tests
pnpm run test:cov     # Test coverage
pnpm run lint         # Lint code
pnpm run format       # Format code

๐Ÿ› ๏ธ Tech Stack

  • Framework: NestJS
  • Language: TypeScript
  • Database: Prisma ORM (MySQL)
  • Authentication: JWT (jsonwebtoken)
  • Logging: Winston
  • Build Tool: Turborepo
  • Package Manager: pnpm

๐Ÿ“ License

ISC