Tornet Solar System
A solar storefront with an AI sizing advisor — research, sizing, quotation, purchase, and installation in one place, in English, Kurdish, and Arabic.
Visit Tornet Solar- Full-Stack Development
- Product Strategy & Lead
- AI & Automation
- Frontend / UI
“Should I even go solar?”
Going solar in Iraq and the Kurdistan Region is confusing — buyers don't know what size they need, what it should cost, or who to trust. The journey starts in that fog.
The conversation
An AI advisor opens with a few plain questions — property, monthly usage, backup needs — in English, Kurdish, or Arabic. The friendly front door to a deterministic engine.
What you need
Behind the chat is the real WizardController logic. It sizes your generation requirement deterministically — the same constants, every time.
- daily_kwh = monthly ÷ 30
- 22 kWh
- system_kw = ⌈daily ÷ SUN_PEAK(5.0)⌉
- 4.4 kWp
- battery = max(1, kw×0.6) × 6h × 1.2
- 19 kWh
- panels = ⌈system_w ÷ 450⌉
- 10 × 450 W
Generation is deterministic. Storage is the one input the formula must assume — it sizes whole-home backup for 6 h. How long you actually want backup is a choice, and that's where the engineered package comes in.
Your estimate → 4.4 kWp lands in a pre-engineered package:
- 3 kWStarter
- 5 kWFamily Home
- 8 kWVilla
- 11 kWEstate
- 15 kWOff-grid
What meets it
The matched package isn't the raw estimate — it's what a real engineer specced to deliver it. Same generation, refined hardware, your call on backup.
The engine sized · generic estimate
660 kWh/mo · real constants
“Family Home” · real catalogue package
engineer-validated · fixed price
The “Family Home” array delivers 4.4 kWp — it meets the 4.4 kWp the engine sized. The deliberate gap is the backup tier, not the engine over-promising — and the rated 5 kW is the inverter, not the array.
The proof
One source of truth feeds the storefront, the packages, and the advisor — a price or spec lives in exactly one place. Here's the real product doing it.
Ownership
Quote, book an installation, then track orders and install status from a personal dashboard — in your language. The fog at 01 has become a home, lit after dark on its battery.
- 162API endpoints
- 57screens
- 3languages · full RTL
Vue 3 SPA
One front end: storefront, account, admin console.
Laravel 11 API
Sanctum + granular permissions, one source of truth.
Gemini engine
Server-side sizing, inventory-aware, keys never in the browser.
Multi-warehouse
Stock, transfers, stocktakes, serial units, dead-stock signals.
Outbound automation
n8n + WhatsApp/email outreach, Slack hot-lead pings.
6 roles + audit
Super-admin → accountant, route/component checks, audit log.




