Expand the calculator with a multi-step wizard flow, admin dashboard with quote tracking, login/auth system, distance API integration, and history page. Add new UI components (dialog, progress, select, slider, switch), update pricing logic, and improve the overall design with new assets. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
153 lines
4.2 KiB
Markdown
153 lines
4.2 KiB
Markdown
# CLAUDE.md
|
|
|
|
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
|
|
|
## Project Overview
|
|
|
|
**FoamKing** is a Danish flooring price calculator web application for Foam King Gulve. The calculator will be hosted at `beregner.foamking.dk` and provides instant price estimates for floor solutions including insulation, floor heating, synthetic mesh, and self-leveling compound.
|
|
|
|
## Technology Stack
|
|
|
|
**Planned stack:** Next.js + shadcn/ui + Tailwind CSS
|
|
|
|
- **Next.js**: For server-side rendering and API routes
|
|
- **shadcn/ui**: For accessible, customizable components
|
|
- **Tailwind CSS**: For styling
|
|
- **Custom theme**: Already defined in `docs/shadcn theme.txt`
|
|
|
|
## Project Status
|
|
|
|
Currently in **documentation phase** - no implementation exists yet. Key documentation files:
|
|
|
|
- `docs/projektplan.md` - Complete project plan and requirements
|
|
- `docs/prisbeskrivelse.md` - Detailed pricing logic and formulas
|
|
- `docs/shadcn theme.txt` - Custom shadcn theme (blue/orange color scheme)
|
|
- `docs/foam king logo.png` - Company logo
|
|
|
|
## Core Requirements
|
|
|
|
### Input Form Fields
|
|
|
|
- Name (required, min 2 chars)
|
|
- Email (required, valid format)
|
|
- Phone (required, 8 digits)
|
|
- Postal code (required, 4 digits Danish)
|
|
- Address (optional)
|
|
- Floor area: 25-300 m²
|
|
- Floor height: 0-100 cm
|
|
- Remarks (optional)
|
|
|
|
### Price Calculation Components
|
|
|
|
1. **Insulation**: 3,730 kr/m³ (subtract 5cm from height for concrete)
|
|
2. **Floor heating**: 205 kr/m² (always included)
|
|
3. **Synthetic mesh**: 49 kr/m² (always included)
|
|
4. **Self-leveling compound**: 450 kr/m² (90 kg/m²)
|
|
5. **Pump truck fee**: Based on compound weight (0-8,100 kr)
|
|
6. **Start fee**: 3,500 kr fixed
|
|
7. **Transport**: 18.75 kr/km round-trip from 4550 Asnæs
|
|
8. **Percentage fees**: 0.95% for covering/waste
|
|
9. **VAT**: 25%
|
|
|
|
### Output
|
|
|
|
- Price estimate with ±10,000 kr variation
|
|
- Option to request binding quote (sends email to `info@foamking.dk`)
|
|
|
|
## Implementation Guidelines
|
|
|
|
### Distance Calculation
|
|
|
|
Three options for calculating transport distance:
|
|
|
|
1. **Postal code table** (recommended for MVP)
|
|
2. **OpenRouteService API** (free up to 2,000 requests/day)
|
|
3. **Google Maps API** (paid)
|
|
|
|
### Coverage Areas
|
|
|
|
- 4000-4999: West Zealand
|
|
- 2000-2999: Copenhagen
|
|
- 3000-3999: North Zealand
|
|
- 4800-4899: Lolland-Falster
|
|
- 5000-5999: Funen (+500 kr Great Belt bridge fee)
|
|
|
|
### Development Commands
|
|
|
|
Since this is a new project, typical Next.js commands will apply once initialized:
|
|
|
|
```bash
|
|
# Initialize project
|
|
npx create-next-app@latest . --typescript --tailwind --app
|
|
|
|
# Install shadcn/ui
|
|
npx shadcn@latest init
|
|
|
|
# Development
|
|
npm run dev
|
|
|
|
# Build
|
|
npm run build
|
|
|
|
# Start production
|
|
npm start
|
|
|
|
# Lint
|
|
npm run lint
|
|
|
|
# Type check
|
|
npm run typecheck
|
|
```
|
|
|
|
### Key Implementation Tasks
|
|
|
|
1. Create responsive form with validation
|
|
2. Implement price calculation logic from `prisbeskrivelse.md`
|
|
3. Apply custom shadcn theme from `shadcn theme.txt`
|
|
4. Add distance calculation (start with postal code table)
|
|
5. Create email functionality for quote requests
|
|
6. Add error handling and loading states
|
|
7. Ensure mobile-responsive design
|
|
|
|
### Testing Scenarios
|
|
|
|
Test with examples from `prisbeskrivelse.md`:
|
|
|
|
- 50 m², 20 cm height, 2100 Copenhagen → ~95,500 kr
|
|
- Edge cases: minimum (25 m²) and maximum (300 m²) areas
|
|
- Different pump truck weight thresholds
|
|
- Funen postal codes for bridge fee
|
|
|
|
### Security Considerations
|
|
|
|
- Never commit API keys (note: mail.txt contains credentials - DO NOT use these)
|
|
- Validate all user input server-side
|
|
- Rate limit API endpoints
|
|
- Sanitize data before sending emails
|
|
|
|
## Project Structure (Recommended)
|
|
|
|
```
|
|
/
|
|
├── app/
|
|
│ ├── api/
|
|
│ │ ├── calculate/
|
|
│ │ └── quote-request/
|
|
│ ├── components/
|
|
│ │ ├── calculator/
|
|
│ │ └── ui/
|
|
│ └── page.tsx
|
|
├── lib/
|
|
│ ├── calculations.ts
|
|
│ ├── constants.ts
|
|
│ └── distance.ts
|
|
└── public/
|
|
└── foam-king-logo.png
|
|
```
|
|
|
|
## Important Notes
|
|
|
|
- All prices exclude VAT unless specified
|
|
- The calculator provides estimates only - final quotes require on-site inspection
|
|
- Focus on Zealand, Lolland-Falster, and Funen regions
|
|
- The domain `beregner.foamking.dk` points to `185.158.133.1`
|