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

System 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.