Task ManagerEnterprise-Grade System
A full-stack collaborative task management platform showcasing modern web development practices, role-based access control, and enterprise architecture patterns — built solo, end to end, with a production-grade testing and CI/CD discipline behind it.
Group Collaboration
Organize tasks within groups with fine-grained role management. Supports supervisor, editor, user, and viewer roles with distinct permissions for optimal team collaboration.
Advanced Permissions
CASL-powered authorization system with context-aware permissions. Rules cascade across user levels, group memberships, and task ownership for secure, flexible access control.
Task Management
Create, assign, and track tasks with deadlines and completion states. Permissions prevent -among other things- deletion of completed group-level tasks and ensure data integrity across team workflows.
Platform Capabilities
JWT Authentication
Secure token-based auth with refresh tokens, bcrypt password hashing, and session management
Multi-Role System
Admin, manager, and user access levels with granular group-level role assignments
Groups
Organize users into groups with group-specific permissions and task assignments
Field-Level Security
Protect sensitive fields like passwords and enforce business rules at the permission layer
Technology Stack
Frontend
- Next.js - React framework with SSR
- TypeScript - Type-safe development
- Tailwind CSS - Utility-first styling
- CASL React - Declarative permissions
Backend
- Hono - Lightweight web framework
- Drizzle ORM - Type-safe SQL toolkit
- PostgreSQL - Relational database
Common Layer
- Zod - Schema validation library
- CASL - Authorization framework
- TypeScript - Shared type definitions
Testing
- Vitest - Unit, component & integration tests
- Testing Library - Component & hook testing
- Playwright - End-to-end tests
Infrastructure
- Terraform - GCP + Neon provisioning
- Cloud Run - Container hosting
- GitHub Actions - CI/CD pipeline
Architecture Highlights
Monorepo Structure
Three-package architecture with clear separation of concerns: frontend, backend, and shared common layer for types and business logic
Type Safety
End-to-end TypeScript with Zod validation ensures runtime type checking and compile-time guarantees across the entire stack
Permission Model
Centralized CASL ability definitions in the common package ensure consistent authorization logic between client and server
Modern Runtime
Bun runtime provides exceptional performance with native TypeScript support, faster startup times, and built-in testing utilities
Testing & CI/CD
Unit, component, integration, and end-to-end tests, all gated on every pull request alongside a Docker image smoke test and coverage tracked against a rolling main-branch baseline. This process has caught and fixed real issues before deployment — including a privilege-escalation vulnerability — not just chased a coverage number.
This project demonstrates comprehensive full-stack development skills including:
Built solo, end to end — from database schema to cloud deployment — as a self-directed deep dive into production engineering practices.