Skip to main content

Hotpot Tracker - Team Task Management Platform

Project Overview

Hotpot Tracker is a collaborative task management platform built for teams that need real-time coordination and structured workflows. It combines the flexibility of Kanban boards with team-based permissions and real-time collaboration features.

Architecture Summary

Technology Stack

  • Frontend: React 18 SPA with TypeScript
  • UI Library: Chakra UI with dark/light theme support
  • Backend: InstantDB (Backend-as-a-Service)
  • Routing: Wouter (lightweight client-side routing)
  • Build Tool: Vite with TypeScript
  • Authentication: Magic link via InstantDB
  • Real-time: InstantDB real-time subscriptions

Core Features

1. Team Management

  • Multi-tenant architecture with team-based isolation
  • Team invitations and membership management
  • Role-based access control
  • Team settings and configuration

2. Board & Column System

  • Kanban-style boards for visual task organization
  • Customizable columns with approval rules
  • Drag-and-drop task management
  • Board-level smart parameters

3. Task Management

  • Rich text task descriptions with TipTap editor
  • Task assignment and approval workflows
  • Issue tracking and discussion threads
  • Task history and event logging

4. Real-time Collaboration

  • Live updates across team members
  • Real-time cursor tracking
  • Collaborative editing capabilities
  • Presence indicators

5. AI Integration

  • AI-powered task analysis and reporting
  • Smart parameter extraction
  • Intelligent task categorization

Data Model

Core Entities

Key Relationships

  • Team-centric: All data belongs to a team for proper multi-tenancy
  • Hierarchical: Teams > Boards > Columns > Tasks
  • Audit Trail: Events track all significant actions
  • Discussion: Issues and replies provide task-level communication

Project Structure

Development Workflow

1. Local Development

2. InstantDB Integration

3. Build and Deploy

Security & Permissions

Multi-tenancy

  • All operations scoped to team membership
  • Team-based data isolation in all queries
  • Automatic team filtering in database layer

Authentication

  • Magic link authentication (no passwords)
  • JWT tokens managed by InstantDB
  • Automatic session management

Authorization

  • Team membership required for all operations
  • Feature-level permissions (create, read, update, delete)
  • Role-based access control for team management

Performance Considerations

Database Optimization

  • Indexed fields for frequent queries (teamId, createdAt, etc.)
  • Soft deletes to maintain data integrity
  • Efficient relationship modeling

Frontend Optimization

  • Code splitting with lazy loading
  • Optimistic updates for immediate feedback
  • Efficient re-rendering with React.memo
  • Bundle optimization with Vite

Real-time Features

  • Selective subscriptions to reduce bandwidth
  • Debounced updates for high-frequency operations
  • Efficient state management with InstantDB

Monitoring & Error Handling

Error Tracking

  • Sentry integration for production error monitoring
  • Global error boundaries for graceful failure handling
  • Comprehensive logging for debugging

Performance Monitoring

  • Vercel Speed Insights integration
  • Real-time performance metrics
  • User experience monitoring

Future Roadmap

Planned Features

  • Mobile app support (React Native)
  • Advanced reporting and analytics
  • Integration with external tools (GitHub, Slack)
  • Advanced AI features (task automation)
  • Custom field types and forms

Technical Improvements

  • Enhanced offline support
  • Performance optimization
  • Accessibility improvements
  • Advanced testing coverage

Getting Started

Prerequisites

  • Node.js 18+
  • InstantDB account and app ID
  • Environment variables configured

Quick Start

Environment Variables

Contributing

Code Standards

  • Follow established patterns in guides
  • Adhere to rules for consistency
  • Write tests for new features
  • Update documentation for architectural changes

Pull Request Process

  1. Create feature branch from main
  2. Implement changes following project conventions
  3. Add tests and update documentation
  4. Submit PR with clear description
  5. Address review feedback
  6. Merge after approval

Support & Documentation

  • Architecture Decisions: See decisions/adr/
  • Development Rules: See rules/
  • Implementation Guides: See guides/
  • Issue Tracking: GitHub Issues
  • Team Communication: Internal Slack channels