2025

DrillWork — Role-Based Task Management System

Designed REST API endpoints using TypeScript, Express, MongoDB, React, Passport.js, and Zustand to enable workspace, project, and task management with role-based permissions.

Technology Stack

TypeScriptExpress.jsMongoDBMongooseReactPassport.jsZodZustand

Overview

DrillWork is a comprehensive task management system built with a focus on role-based access control and dual authentication strategies. The system structures MongoDB models with Mongoose ODM using TypeScript and Zod validation to maintain data integrity across users, workspaces, projects, and tasks.

System Architecture

A secure, layered REST API architecture:

  • API Layer: Express.js with strict middleware chains for request validation (Zod) and authentication using Passport.js strategies.
  • Data Layer: MongoDB with Mongoose schemas enforces strict relationships between Users, Workspaces, and Tasks.
  • State Management: React frontend utilizes Zustand for lightweight, efficient global state management without boilerplate.
  • Security: Implements HttpOnly cookies and CSRF protection for secure session handling.

Key Features

  • Workspace, project, and task management with hierarchical organization.
  • Role-based permissions for fine-grained access control.
  • Dual authentication using Passport.js with Google OAuth 2.0 and local strategy.
  • Cookie-based session management for secure authentication.
  • TypeScript and Zod validation for type safety and data integrity.

Key Challenges

  • Designing flexible permission systems that scale with organizational needs.
  • Implementing secure authentication with multiple providers.
  • Maintaining data consistency across nested entities.

Impact

  • Enabled efficient team collaboration with clear role definitions.
  • Provided secure authentication options for diverse user preferences.