Introduces core backend and frontend infrastructure for a PDF translation interface. Adds API endpoints for translation, PDF testing, and AI provider testing; implements PDF text extraction, cost tracking, and pricing logic in the lib directory; adds reusable UI components; and provides comprehensive documentation (SDD, environment setup, Claude instructions). Updates Tailwind and global styles, and includes a sample test PDF and configuration files.
2.8 KiB
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Project Overview
This is a PDF Translation Interface built with Next.js 15 and React 19. The application allows users to upload PDF files and translate them into multiple languages using OpenAI's GPT-4o-mini model.
Development Commands
# Install dependencies
npm install
# Run development server
npm run dev
# Build for production
npm run build
# Start production server
npm run start
# Run linter
npm run lint
Architecture
Tech Stack
- Framework: Next.js 15.2.4 with App Router
- UI: React 19 with TypeScript
- Styling: Tailwind CSS v4 with CSS variables for theming
- Components: shadcn/ui with Radix UI primitives
- AI Integration: Vercel AI SDK with OpenAI
Key Architectural Decisions
-
Component Structure: Main functionality is centralized in
components/pdf-translator.tsx
. UI components follow shadcn/ui patterns using Radix UI primitives with Class Variance Authority for variants. -
API Design: Translation endpoint at
/api/translate/route.ts
handles PDF processing and AI translation. Currently uses simulated PDF text extraction - production implementation requires a proper PDF parsing library. -
Styling System: Uses modern Tailwind CSS v4 with OKLCH color space. Theme variables are defined as CSS custom properties in
app/globals.css
. -
State Management: Simple React hooks for local state. No global state management needed for current functionality.
Important Implementation Notes
PDF Processing
The current implementation simulates PDF text extraction. For production:
- Install a PDF parsing library (e.g.,
pdf-parse
orpdfjs-dist
) - Update
/app/api/translate/route.ts
to properly extract text from uploaded PDFs - Handle various PDF formats and encodings
Translation API
- Uses OpenAI GPT-4o-mini model via Vercel AI SDK
- API key must be set as
OPENAI_API_KEY
environment variable - Supports 14 languages including Traditional Chinese, English, Japanese, Korean
Build Configuration
- TypeScript and ESLint errors are ignored during builds (see
next.config.mjs
) - Images are unoptimized for faster builds
- Configured for Vercel deployment
Testing
No testing framework is currently configured. When adding tests:
- Use Jest with React Testing Library for unit tests
- Consider Playwright for E2E tests
- Test the translation API endpoint thoroughly
- Mock the OpenAI API calls in tests
Environment Variables
Required for production:
OPENAI_API_KEY=your_openai_api_key
Known Limitations
- PDF text extraction is simulated - needs proper implementation
- No file size validation or limits
- No progress indication for large files
- No caching of translations
- No error recovery for failed API calls