Skip to content

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.

Notifications You must be signed in to change notification settings

itzabhinavarya/taskopedia

Repository files navigation

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

About

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.

Topics

Resources

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •