← Back

Projects

Kanban Board App

Real-time collaborative Kanban with role-based access, optimistic updates, labels, assignees, and drag-and-drop.

Project Snapshot

Role
Frontend Developer
Product type
Real-time collaboration
Scope
Boards, roles & drag-and-drop
Quality & delivery
Emulator E2E & rules coverage

Stack

  • Next.js App Router
  • React 19
  • TypeScript
  • Redux Toolkit / RTK Query
  • Firebase Auth + Firestore + Admin SDK
  • dnd-kit
  • Radix UI / shadcn/ui
  • Vitest + Cypress

Context

A real-time collaboration workspace where board changes, permissions, and drag-and-drop need to remain predictable across clients.

Constraints

  • Keeping Firestore listeners, the RTK Query cache, optimistic mutations, and drag-and-drop order consistent across clients.
  • Enforcing owner, editor, and viewer permissions across the interface, Firestore rules, and server-owned operations.
  • Evolving the data model for shared labels, multiple assignees, and legacy records without exposing credentials or letting tests write to production.

Key Decisions

  1. Synchronize through Firestore listeners and RTK Query. Structure boards, columns, cards, participants, and invites around live listeners and optimistic patches so interactions stay responsive.
  2. Move sensitive mutations into validated API routes. Use Firebase Admin for atomic board creation, invite acceptance, role changes, and cascade deletes.
  3. Test against isolated Firebase emulators. Cover E2E flows and Firestore rules without allowing tests to write to production.

Verified Outcomes

  • Delivered a bilingual real-time workspace with owner, editor, and viewer roles.
  • Kept interactions responsive with Firestore listeners, RTK Query cache updates, and optimistic mutations.
  • Added isolated Firebase Emulator E2E and Firestore-rules coverage to protect production data during testing.

Links

Sign in with Google or email; boards are private by default.