Sidst opdateret: 20. april 2026
Features bygget
24
Bugs fikset
18
API'er tilsluttet
5
Commits
47
Tech Stack
Next.js TypeScript Tailwind CSS Supabase Vercel GitHub Stripe (test) Leaflet.js Google Cloud Claude Code Claude Design
API Status
Google Places API (New)
100 kald/dag cap
Aktiv
Google Solar API
20 kald/dag cap
Aktiv
Google Geocoding API
30 kald/dag cap
Aktiv
Google Maps Static API
Delt med Google cap
Aktiv
CVR API (cvrapi.dk)
100 kald/dag cap
Delvist
SendGrid
80 emails/dag cap
Ikke tilsluttet
Stripe
Test mode
Test mode
Claude API
Fjernet — lokal prompt
Ikke nødvendig
Sprint 1 — Fundament
Afsluttet
Next.js projekt oprettet
TypeScript, Tailwind CSS, App Router. Oprettet via Claude Code.
Supabase auth integration
Login og signup med e-mail/password. Beskyttet dashboard route.
GitHub + Vercel deployment pipeline
Automatisk deploy ved git push. Live URL oprettet.
Dashboard med sidebar og stats
SolarMatch dark theme design. Sidebar med navigation, AI Core animation, mini-stats.
Alle sidebar-sider oprettet
Scan, Leads, Outreach, Pipeline og API Indstillinger med placeholder-indhold.
Login-side redesign
Split-screen: partikelfelt + brand panel (venstre), login-form (højre). AI Core animation på idle.
Sprint 2 — API'er og data
Afsluttet
API usage limiter (kill switch)
lib/api-limits.ts + api_usage tabel i Supabase. Daglige caps på alle API'er. Stopper kald automatisk ved grænse.
CVR API integration
app/api/cvr/route.ts — opslag via cvrapi.dk. "Hent CVR data" knap på leads.
CVR returnerer forkert virksomhed
Søger på navn i stedet for CVR-nummer. Returnerer Erhvervsstyrelsen. Parkeret til senere fix.
Google Places API tilsluttet
app/api/scan/route.ts — finder erhvervsbygninger i et område. Returnerer navn, adresse, koordinater.
Google Solar API tilsluttet
app/api/solar/route.ts — henter tagareal, paneler, solskinstimer, CO2 for hver bygning automatisk.
Geocoding API til præcis placering
Konverterer bynavn til koordinater før Places-søgning. Fixer at resultater landede i forkert by.
Multi-query scanning (5 søgetermer)
Søger lager, industri, produktion, logistik, erhverv. Op til 15 unikke resultater per scanning.
Leaflet satellitkort
Esri satellite tiles. Grønne markører med popups. Centrer automatisk på resultater.
Sprint 3 — Features og beregninger
Afsluttet
Komponentbibliotek (5 paneler + 3 invertere)
lib/solar-components.ts — JinKO, LONGi, Canadian Solar, Trina, SunPower. Huawei, SMA, Fronius invertere. Panelvælger per bygning.
Skyggeanalyse / soleksponering
Beregner soleksponering fra Solar API data. Farvekodet bar (grøn/gul/blå/grå). Positiv framing: "Fremragende soleksponering 92%".
Finansieringsberegninger
lib/financial-calculator.ts — NPV, IRR, 25-års cashflow. Kontant vs. leasing. Justerbare sliders for elpris og stigning. Cashflow bar-chart.
Design Mode (panelplacering)
Canvas-baseret visuel panel-layout. Korrekte dimensioner per paneltype. Orientering portræt/landskab. Eksklusionszoner. Donut-chart for dækningsgrad.
Mockup prompt generator (lokal)
Genererer DALL-E prompt lokalt uden Claude API. Klar til billedgenerering når DALL-E tilsluttes.
Mockup med satellitbillede + panel-overlay
Google Maps Static API via server-side proxy. Canvas overlay med realistiske paneler baseret på valgt type. CORS fix via /api/satellite route. Under test.
Sprint 4 — Design og polish
I gang
Dark/Light mode toggle
ThemeProvider med localStorage. Toggle i sidebar. Login altid dark. Anti-flash script i layout.tsx.
AI Core status dynamisk
ScanContext provider. Skifter fra "AI Core klar" til "Scanner bygninger..." kun under aktiv scanning.
Claude Design — komplet redesign
Design system bygget fra kodebase. 5 sider redesignet: Dashboard (sparklines, aktivitetsfeed), Scan (kompakt), Leads (filter-chips), Outreach (split-view), Pipeline (kanban). Handoff til Claude Code.
Dashboard redesign implementeret
Sparkline-grafer i stats-kort, aktivitetsfeed, forbedret leads-tabel med handling-knapper.
Leads — dynamiske filtre
Filter-chips med X-knap. Dropdown til kommune, tagtype, min. tagareal, score og status. Live filtrering med AND-logik.
Scan — layout fix (overflow)
Søgekriterier fast bredde 320px. Metrics reduceret til 5 synlige + "Vis mere" toggle. Global overflow-x: hidden.
Horisontal scroll stadig til stede
Leaflet-kortet forårsager muligvis overflow. Under debugging.
Backlog — ikke bygget endnu
Planlagt
SendGrid e-mail integration
Outreach-siden skal sende rigtige e-mails via SendGrid API. Tracking af åbninger og klik.
CVR opslag fix
Ret søgning til at bruge ?vat= parameter i stedet for firmanavn. Returnerer den korrekte virksomhed.
"Tilføj som lead" → Supabase
Gem scannede bygninger i leads-tabellen i Supabase. Leads-siden viser rigtige data fra databasen.
Pipeline med rigtige data
Kanban-board der henter leads fra Supabase og tillader drag-and-drop mellem kolonner.
Batch-scanning (automatisk daglig)
Cron job der scanner nye områder hver morgen og præsenterer friske leads i dashboardet.
PDF-tilbud generator
Generer professionelt PDF-tilbud per lead med bygningsdata, Solar API nøgletal og ROI-estimat.
Onboarding-flow for nye brugere
Guided setup: vælg dækningsområde → tilpas e-mail-skabelon → kør første scanning.
Stripe betalingsflow
Tre prisplaner (499/1.299/2.999 kr./mdr.) med 14-dages prøveperiode. Upgrade/downgrade.
GDPR-compliance
Kontaktlog, unsubscribe-links, databehandleraftale, samtykke-håndtering.
Admin-panel
Intern oversigt over alle kunder, abonnementer, brug og API-forbrug.
Kendte bugs
Horisontal scroll på scan-siden
Leaflet-kortet eller resultat-kortene forårsager overflow. Flere fix forsøgt — ikke løst endnu.
CVR returnerer Erhvervsstyrelsen
Søger på firmanavn i stedet for CVR-nummer via ?vat= parameter.
Mockup viser sort boks
CORS-problem med Google Maps Static API. Server-side proxy er implementeret — afventer test.