berra

arabalariseviyoruz.com

Türkiye’nin araba topluluk platformu — Forum + Akış + Araçlar.

Not: Aktif legacy uygulama depo kökünde yer alır. package.json, scripts/migrate.js ve schema.sql dosyaları bu kök dizin için kanonik kaynaktır; yanlışlıkla alt klasörlerde çalışmayın.

Aktif kullanıcı arayüzü

Geliştirme komutları (arayüze göre)

Legacy arayüzü geliştirme (aktif):

npm run dev:legacy
npm run start:legacy

Next arayüzü geliştirme (migration):

npm run dev:web
npm run build:web

Route matrisi (Next vs Legacy)

URL pattern Legacy (public/) Next (apps/web) Durum
/ index.html / SPA ana ekran app/page.tsx İki arayüzde de var
/index.html ✅ statik giriş /‘e redirect Next tarafında kalıcı yönlendirme var
/login ⚠️ modal/SPA akışı app/login/page.tsx Next karşılığı hazır
/register ⚠️ modal/SPA akışı app/register/page.tsx Next karşılığı hazır
/feed ⚠️ SPA içinde feed paneli app/feed/page.tsx Next karşılığı hazır
/search ⚠️ navbar içi arama app/search/page.tsx Next karşılığı hazır
/notifications ⚠️ SPA panel app/notifications/page.tsx Next karşılığı hazır
/dashboard ❌ ayrı route yok app/dashboard/page.tsx Sadece Next
/post/:id ✅ SPA post detail route /items/:id (app/items/[id]/page.tsx) Kalıcı yönlendirme planlandı
/thread/:slug ✅ SPA thread route app/thread/[slug]/page.tsx Next karşılığı hazır
/profile/:username ✅ SPA profile route app/profile/[username]/page.tsx Next karşılığı hazır
/messages , /messages/:username ✅ SPA messages route app/messages/* Next karşılığı hazır
/rehber.html ✅ statik sayfa /rehber Next karşılığı hazır (yeni URL)
/sanayi.html ✅ statik sayfa /sanayi Next karşılığı hazır (yeni URL)
/karsilastir.html ✅ statik sayfa /karsilastir Next karşılığı hazır (yeni URL)
/ozellikler.html ✅ statik sayfa /ozellikler Next karşılığı hazır (yeni URL)

API sahiplik durumu (Next cutover)

Next frontend tarafında kullanılan endpointler Nest API üzerinde çalışır:

Detay endpoint envanteri ve taşınma kararları: docs/next-cutover-api-matrix.md.

Legacy -> Next kalıcı redirect planı

Her iki backend’de de cookie politikası hizalandı:

Yeni Mimari (Migration Başlangıcı)

Bu repo yeni mimari geçişi için aşağıdaki başlangıç yapısını içerir:

Yeni komutlar

npm run dev:api
npm run dev:web
npm run build:api
npm run build:web

Bu adımda taşınanlar

Legacy Express uygulaması hâlâ çalışır:

npm run dev:legacy
npm run start:legacy

Monorepo Yapısı (pnpm + Turbo)

Repo, pnpm-workspace.yaml + turbo.json ile monorepo düzenine taşındı:

Temel komutlar

pnpm install
pnpm dev
pnpm build
pnpm lint
pnpm test

Ortak Standartlar

Local Docker Compose

docker-compose.local.yml ile aşağıdaki servisler birlikte ayağa kalkar:

docker compose -f docker-compose.local.yml up --build

Legacy Kurulum

1. Bağımlılıkları yükle

npm install

2. Ortam değişkenlerini ayarla

cp .env.example .env
# .env dosyasını düzenle

3. Veritabanını oluştur ve şemayı uygula

npm run migrate, kökteki scripts/migrate.js dosyasını çalıştırır ve kökteki schema.sql şemasını uygular.

createdb arabalariseviyoruz
npm run migrate

İsterseniz aynı akışı manuel olarak da kök dizinden çalıştırabilirsiniz:

node scripts/migrate.js

4. Legacy geliştirme sunucusunu başlat

npm run dev:legacy

API Rotaları (Legacy)

Auth

| Metod | Rota | Açıklama | |——-|——————|—————–| | POST | /api/auth/register | Kayıt ol | | POST | /api/auth/login | Giriş yap | | POST | /api/auth/logout | Çıkış yap | | GET | /api/auth/me | Aktif kullanıcı |

Forum

| Metod | Rota | Açıklama | |——–|——————————–|——————-| | GET | /api/forum/categories | Kategoriler | | GET | /api/forum/threads | Tüm konular | | GET | /api/forum/threads?category=x | Kategori konuları | | GET | /api/forum/threads?tag=x | Etikete göre konular | | GET | /api/forum/threads/:slug | Konu detayı | | POST | /api/forum/threads | Konu aç | | POST | /api/forum/threads/:slug/posts | Yanıt yaz | | POST | /api/forum/posts/:id/like | Beğen | | DELETE | /api/forum/posts/:id/like | Beğeniyi geri al | | GET | /api/forum/tags | Popüler etiketler |

Discovery (Takip + Model Merkezi)

| Metod | Rota | Açıklama | |——–|————————————-|——————————| | POST | /api/discovery/users/:userId/follow | Kullanıcı takip et | | DELETE | /api/discovery/users/:userId/follow | Kullanıcı takibini bırak | | POST | /api/discovery/threads/:threadId/follow | Thread takip et | | DELETE | /api/discovery/threads/:threadId/follow | Thread takibini bırak | | POST | /api/discovery/models | Marka/model kaydı aç | | GET | /api/discovery/models | Model listesi | | GET | /api/discovery/models/:slug | Model landing verisi | | POST | /api/discovery/models/:modelId/follow | Model takip et | | DELETE | /api/discovery/models/:modelId/follow | Model takibini bırak |

Akış (Feed)

| Metod | Rota | Açıklama | |——-|—————–|————–| | GET | /api/feed | Akışı getir | | POST | /api/feed | Post paylaş | | POST | /api/feed/:id/like | Beğen |

Araçlar

| Metod | Rota | Açıklama | |——-|—————|——————–| | POST | /api/score | Alınır mı skoru | | GET | /api/score/stats | İstatistikler |

Staging Altyapısı

Bu repoda staging için temel deploy altyapısı eklendi:

Local staging smoke

docker compose -f docker-compose.staging.yml up --build

K8s apply

kubectl apply -f deploy/k8s/namespace.yaml
kubectl apply -f deploy/k8s/api-deployment.yaml
kubectl apply -f deploy/k8s/web-deployment.yaml
kubectl apply -f deploy/k8s/worker-deployment.yaml
kubectl apply -f deploy/k8s/db-migrate-job.yaml
kubectl apply -f deploy/k8s/ingress.yaml

CI/CD özeti

Backend Foundation (2.x)

2.1 Core

NestJS modülleri:

Global:

2.2 Auth

2.3 DB (PostgreSQL + Prisma)

Prisma schema (apps/api/prisma/schema.prisma) model kapsamı:

Pipeline:

pnpm --filter @berra/api run prisma:generate
pnpm --filter @berra/api run prisma:migrate
pnpm --filter @berra/api run prisma:seed

Nixpacks / PNPM Lockfile Notu

pnpm-lock.yaml olmadığında CI/build tarafında --frozen-lockfile hatası alınmaması için repo kökünde nixpacks.toml ile install komutu pnpm i --no-frozen-lockfile olarak override edilmiştir.