Skip to content

dcs-soni/taskerra

Repository files navigation

Taskerra

A task management system with Kanban boards, effortless collaboration, and role-based access control.

Tech Stack

Backend

  • Fastify + TypeScript
  • PostgreSQL (Neon) with Knex.js ORM
  • JWT authentication + bcrypt
  • Zod validation
  • RESTful API with Swagger docs

Frontend

  • React 18 + TypeScript
  • TanStack Router (file-based routing)
  • TanStack Query (server state)
  • Radix UI + Tailwind CSS
  • Zustand (client state)
  • DnD Kit (drag-and-drop)

Infrastructure

  • Turborepo monorepo
  • Docker multi-stage builds
  • Nginx reverse proxy with SSL

Architecture

apps/
├── backend/          # Fastify API server
│   ├── src/
│   │   ├── db/      # Migrations, schemas
│   │   ├── server/  # Routes, plugins
│   │   └── services/# Business logic (DAL pattern)
│   └── Dockerfile
└── web/             # React SPA
    ├── src/
    │   ├── routes/  # File-based routing
    │   ├── features/# Feature modules
    │   └── shared/  # Reusable components
    └── Dockerfile

packages/
├── ui/              # Shared component library
├── typescript-config/
└── eslint-config/

Deployment

Production (EC2): https://taskerra.divyanshusoni.com

  • Frontend: Nginx (port 80/443) → Static assets
  • Backend: Fastify → PostgreSQL
  • Database: PostgreSQL (containerized)
  • SSL: Let's Encrypt certificates
  • Reverse proxy: Nginx → Backend API

Alternative Deployments

  • Frontend: Vercel
  • Backend: Render
  • Database: Neon (serverless PostgreSQL)

Key Features

  • Kanban board with drag-and-drop task management
  • Project and workspace organization
  • Role-based access control (Admin, Member, Viewer)
  • Task assignment and status tracking
  • Authentication with JWT tokens
  • RESTful API with OpenAPI documentation

API Structure

Authentication

  • POST /api/v1/auth/register - User registration
  • POST /api/v1/auth/login - User login
  • GET /api/v1/auth/me - Get current user

Projects

  • GET /api/v1/projects - List projects
  • POST /api/v1/projects - Create project
  • GET /api/v1/projects/:id - Get project details
  • PUT /api/v1/projects/:id - Update project
  • DELETE /api/v1/projects/:id - Delete project

Tasks

  • GET /api/v1/tasks - List tasks (filterable by project/status)
  • POST /api/v1/tasks - Create task
  • PATCH /api/v1/tasks/:id - Update task (status, assignment, etc.)
  • DELETE /api/v1/tasks/:id - Delete task

Docker Images

  • Backend: Multi-stage build (builder → runner)
  • Frontend: Vite build → Nginx static server

About

A project management tool that respects your workflow. Drag, drop, and deliver without the complexity.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages