CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Common Development Commands
Development
# Start React development servercd react && npm run dev
# Start Firebase Functions locallycd functions && npm run serveTesting
# Run all tests (if configured in React app)cd react && npm testBuilding and Deployment
# Build React appcd react && npm run build
# Deploy React app to Firebase Hostingcd react && firebase deploy --only hosting
# Deploy Firebase Functionscd functions && npm run deployCode Quality
# Run lintingcd react && npm run lintArchitecture Overview
This is a Help Desk ticketing system with two main components:
1. React Application (/react)
- SPA frontend using React Router and Vite
- Material UI and shadcn/ui components with Tailwind CSS
- Direct Firebase SDK integration
- Authentication via Firebase Auth with Google SSO
- File structure:
src/components/- Reusable React componentssrc/pages/- Route page componentssrc/lib/firebase/- Firebase service layerssrc/lib/auth/- Authentication utilities and context
2. Firebase Cloud Functions (/functions)
- Express.js API endpoints with CORS support
- Handles email notifications via Mailgun/Nodemailer
- Algolia search indexing
- Webhook processing
- Key endpoints:
/api/tickets- Ticket CRUD operations/api/users- User management/api/projects- Project management/api/send-email- Email notifications
Key Integration Points
Firebase Services
- Firestore: Document database for tickets, users, projects, tasks
- Authentication: Google SSO with domain restrictions
- Storage: File attachments for tickets
- Functions: Serverless backend API
Search Integration
- Algolia search with automatic indexing
- Fallback search using Firestore queries
- Search service abstraction in
lib/algolia/
Email Notifications
- Triggered on ticket creation, updates, and replies
- Template-based emails in
lib/utils/emailTemplates.ts - Configurable SMTP or Mailgun transport
State Management
- React Context for authentication (
AuthContext) - Theme context for dark/light mode
- Notification context for user feedback
- Config context for company settings
Environment Configuration
Required environment variables are documented in .env.local.example. Key configurations:
- Firebase credentials (public and admin)
- SMTP/Mailgun settings for email
- Algolia search credentials
- Company customization settings
Testing Strategy
- Jest with React Testing Library
- 70% coverage threshold requirement
- Test utilities in
lib/utils/testUtils.ts - Component tests alongside implementation files
Deployment Modes
- Production Build: Build React app for Firebase Hosting, use Cloud Functions for API
- Docker: Containerized deployment with health checks
Important Notes
- Always check existing patterns in similar files before implementing new features
- Firebase security rules are defined in
firestore.rulesandstorage.rules - CORS is pre-configured for cross-origin API access
- Email templates support both HTML and plain text formats
- Algolia indexing happens automatically via Cloud Functions triggers