Bu proje, Turkiye'deki KOBI ihracatcilari icin CBAM definitive regime veri toplama, default-value fallback, emisyon hesaplama ve taslak beyan olusturma akisina yonelik temel bir iskelet sunar.
Ana veri bloklari:
- deklarant: EORI, CBAM account number, yerlesik oldugu uye devlet
- ithalat detaylari: mense, ithal tarihi, customs procedure, miktar
- goods: 8 haneli CN kodu, urun tipi, sektor, net kutle
- tesis: installation id, operator ve iletisim bilgileri
- raporlama ve metodoloji: declaration year, production route, actual/default/mixed secimi
- emisyon girdileri: enerji, prekursor, proses emisyonu, karbon fiyati, verification bilgisi
- PDF varliklari: logo yolu, imza sahibi, kase kutusu
Ornek payload: examples/shipment_example.json
2026 icin sinirli ama calisir bir katsayi seti app/data/cbam_default_values_2026.json altina eklendi.
- kaynak dayagi: Regulation (EU) 2023/956, Implementing Regulations 2025/2547 ve 2025/2621
- kapsam: MVP icin demir-celik ve aluminyum alt kumesi
- not: tum ek resmi annex tabloyu otomatik cekemedigimiz icin bazi satirlar manual curated olarak isaretlendi
Hesaplama servisi app/services/emissions.py icinde su sirayla calisir:
- Kullanici
actualveyamixedsecmis mi? - Gercek emisyon verisi var mi?
- Varsa actual hesap yap.
- Yoksa app/services/default_values.py icinden uygun CN code + mense default degerini bul.
- Demir-celik ve aluminyum icin
Annex IIkuralini uygula ve indirect emissions'i sifirla.
app/services/pdf_generator.py artik:
- yeni veri modelini okur
- baslikta logo kutusu veya gercek logo gosterir
- deklarant, ithalat, tesis ve metodoloji bloklari cizer
- emisyon ozet tablosu olusturur
- kase / imza alani ekler
Bu cikti resmi CBAM registry formunun birebir kopyasi degil; fakat communication-template mantigina daha yakin, kurumsal bir taslak form uretiyor.
Basit kullanim akisi:
- Ihracatci urun CN kodunu, miktari, menseyi ve tesis bilgisini girer.
- Eger tesis actual emissions ve verifier raporu sagliyorsa bunlari ekler.
- Saglamiyorsa sistem ayni urun ve mense icin 2026 default value kaydini otomatik bulur.
- API hesaplama sonucunu ve PDF deklarasyon taslagini uretir.
- Yetkili kisi logo, imza ve kase alaniyla PDF'i gozden gecirir.
- Sonraki fazda bu veri CBAM Registry entegrasyonuna aktarilabilir.
python -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadProjeyi local ortamda kaldirmak icin:
- Backend ortamını hazirla:
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt- Backend API'yi baslat:
uvicorn app.main:app --reloadBackend varsayilan olarak http://localhost:8000 adresinde calisir.
- Yeni bir terminal ac ve frontend klasorune gir:
cd frontend
npm install- Frontend ortam degiskenini hazirla:
cp .env.example .envVarsayilan olarak frontend VITE_API_BASE_URL=http://localhost:8000 kullanir.
- Frontend'i baslat:
npm run devFrontend varsayilan olarak http://localhost:5173 adresinde acilir.
- Kullanim akisi:
- Dashboard'a gir ve
Yeni Rapor Oluşturbutonuna tikla - Cok adimli formu tamamla
- Son adimda
Taslak Raporu Oluşturbutonuna bas - Sistem FastAPI uzerinden
POST /api/v1/shipmentscagirir - Kayit olustugunda
PDF İndirbutonu aktif olur - Butona basildiginda frontend
GET /api/v1/shipments/{shipment_id}/pdfile dosyayi indirir
Bu proje www.karbonbeyan.com frontend ve api.karbonbeyan.com backend yapisi icin hazirlandi.
Frontend konfigurasyonu: frontend/vercel.json
Production env ornegi: frontend/.env.production.example
Vercel ortam degiskenleri:
VITE_API_BASE_URL=https://api.karbonbeyan.comVITE_APP_NAME=KarbonBeyanVITE_APP_DOMAIN=https://www.karbonbeyan.com
Vercel ayarlari:
- Root Directory olarak
frontendsec - Build Command
npm run build - Output Directory
dist - Production domain olarak
www.karbonbeyan.combagla - Apex domain
karbonbeyan.comicinwww'ye redirect tanimla
Backend konfigurasyonlari:
Railway ortam degiskenleri:
DATABASE_URL=${{Postgres.DATABASE_URL}}APP_ENV=productionAPP_NAME=KarbonBeyan APIPORT=8000ALLOWED_ORIGINS=https://karbonbeyan.com,https://www.karbonbeyan.com
Notlar:
DATABASE_URLverilmezse sistem local SQLite kullanir- Railway Postgres eklersen shipment ve default value verileri kalici olur
- Railway health check yolu
/healtholarak ayarlanmistir - API custom domain olarak
api.karbonbeyan.comkullan
Onerilen DNS yapisi:
www.karbonbeyan.com-> Vercel frontendkarbonbeyan.com->www.karbonbeyan.comredirectapi.karbonbeyan.com-> Railway backend
Bu yapiyla:
- kullanici arayuzu ana web deneyiminde
wwwaltinda kalir - backend ayri subdomain uzerinden guvenli sekilde yonetilir
- CORS sadece gercek production domainlerine izin verir