← Back to Selected Work
BackendYEAR: 2025ROLE: Backend Engineer

RESTful Task Management Engine

A backend service built with Node.js, TypeScript, PostgreSQL, and Prisma featuring structured API routes, middleware authorization, and database migrations.

// TECHNOLOGIES USED
Node.jsTypeScriptExpress.jsPostgreSQLPrismaREST APIDocker

Project Visual Preview

POST /api/v1/workspaces/tasks
STATUS 201 CREATED
// Prisma Model Relational Schema
model Workspace{
id String @id @default(uuid())
title String
tasks Task[]
members UserRole[]
}
ORM: Prisma 6.0DB: PostgreSQL 16
// 01. OVERVIEW

Project Overview

Developed to demonstrate robust backend engineering practices including type-safe database access with Prisma ORM, relational schema design, environment configuration, error-handling middleware, and structured endpoint validation.

// 02. PROBLEM & SOLUTION
The Problem

Building a multi-tenant task assignment backend requires clear entity relationships, cascade deletions, and clean authorization separation between workspace users.

The Solution

Architected a relational PostgreSQL schema with Prisma ORM, implementing layered controller-service-repository pattern for clean separation of concerns.

// 03. SYSTEM ARCHITECTURE

System Design & Data Flow

// SYSTEM ARCHITECTURE FLOWHTML/CSS Rendered Flow
LAYER 01

HTTP Client / Postman

LAYER 02

Express Middleware (Auth & Schema Validator)

LAYER 03

Service & Repository Controllers

LAYER 04

Prisma ORM Client

LAYER 05

PostgreSQL Database

Architectural Highlights
  • Node.js & Express routing layer with strict TypeScript typing
  • Prisma ORM for database schema migrations and query execution
  • PostgreSQL relational database running in containerized Docker environment
// 04. KEY FEATURES

Core Functionality & Capabilities

Relational database schema with CASCADE foreign keys and unique indexes
Custom error handling middleware returning standardized RFC 7807 error responses
Type-safe payload validation using TypeScript and schema verification
Complete Postman API collection for route testing
// 05. TECHNICAL CHALLENGES

Obstacles & Engineering Solutions

Challenge #1: Handling nested relational data queries cleanly without N+1 database queries.
Solution: Utilized Prisma's query inclusion engine and explicit payload selection to fetch user workspaces and nested tasks in single queries.
// 06. ENGINEERING DECISIONS

Trade-offs & Design Rationale

  • Chose Prisma over raw SQL queries for type safety across database operations and automatic schema migration generation
  • Containerized PostgreSQL using Docker for reproducible local development
// 07. LEARNINGS & TAKEAWAYS

Personal Growth & Technical Insights

Mastered relational database modeling, foreign key constraints, and index optimization in PostgreSQL
Learned to structure production-ready Node.js backend codebases