Remove obsolete scripts and configuration files for self-hosting and database migrations
- Deleted `pnpm-workspace.yaml` as it is no longer needed. - Removed `apply-migrations.sh` script that handled database migrations. - Eliminated `generate-full-stack-env.mjs` script for environment variable generation. - Deleted `selfhost-backup.sh` script for creating backups of the self-hosted environment. - Removed `selfhost-doctor.sh` script for health checks of the self-hosted services. - Deleted `selfhost-restore.sh` script for restoring backups in the self-hosted environment.
This commit is contained in:
@@ -0,0 +1,175 @@
|
||||
---
|
||||
title: Geliştirme
|
||||
description: Neta üzerinde lokal geliştirme yapma ve kod yapısını anlama.
|
||||
order: 13
|
||||
---
|
||||
|
||||
# Geliştirme
|
||||
|
||||
Neta'yı geliştirmek için önce standart bir Next.js uygulaması gibi düşünmek yeterli. Uygulama Supabase'e dışarıdan bağlanır; local geliştirme sırasında da aynı şekilde bir Supabase projesine ihtiyaç vardır.
|
||||
|
||||
## Kurulum
|
||||
|
||||
Önce bağımlılıkları kurun:
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
Sonra `.env.example` dosyasını `.env.local` olarak kopyalayıp değerleri doldurun:
|
||||
|
||||
```bash
|
||||
cp .env.example .env.local
|
||||
```
|
||||
|
||||
Windows PowerShell için:
|
||||
|
||||
```powershell
|
||||
Copy-Item .env.example .env.local
|
||||
```
|
||||
|
||||
Dev server:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
Uygulama varsayılan olarak şurada açılır:
|
||||
|
||||
```txt
|
||||
http://localhost:3000
|
||||
```
|
||||
|
||||
## Klasör Yapısı
|
||||
|
||||
Ana klasörler:
|
||||
|
||||
```txt
|
||||
app/
|
||||
components/
|
||||
config/
|
||||
hooks/
|
||||
lib/
|
||||
public/
|
||||
docs/
|
||||
supabase/
|
||||
```
|
||||
|
||||
## `app/`
|
||||
|
||||
Next.js App Router route'ları burada durur.
|
||||
|
||||
Önemli alanlar:
|
||||
|
||||
- `app/(dashboard)`: Freelancer dashboard ekranları.
|
||||
- `app/portal`: Müşteri portalı.
|
||||
- `app/api`: API route'ları.
|
||||
- `app/login`: Login ekranı.
|
||||
- `app/register`: İlk admin kayıt ekranı.
|
||||
|
||||
## `components/`
|
||||
|
||||
Paylaşılan UI bileşenleri burada durur.
|
||||
|
||||
Örnekler:
|
||||
|
||||
- Layout shell bileşenleri.
|
||||
- Auth bileşenleri.
|
||||
- UI yardımcıları.
|
||||
- Dashboard hızlı aksiyon bileşenleri.
|
||||
|
||||
## `config/`
|
||||
|
||||
Menü ve navigation gibi sabit konfigürasyonlar burada durur.
|
||||
|
||||
Önemli dosyalar:
|
||||
|
||||
```txt
|
||||
config/sidebar.ts
|
||||
config/portal-sidebar.ts
|
||||
```
|
||||
|
||||
Yeni bir dashboard sayfası eklerken genelde `sidebar.ts` dosyasını da güncellemek gerekir.
|
||||
|
||||
## `lib/`
|
||||
|
||||
Uygulama yardımcıları ve servis bağlantıları burada durur.
|
||||
|
||||
Önemli dosyalar:
|
||||
|
||||
- `lib/supabase/client.ts`
|
||||
- `lib/supabase/server.ts`
|
||||
- `lib/supabase/admin.ts`
|
||||
- `lib/auth/first-admin-setup.ts`
|
||||
- `lib/auth/internal-users.ts`
|
||||
- `lib/ai.ts`
|
||||
- `lib/ai/embeddings.ts`
|
||||
|
||||
## Veri Çekme Deseni
|
||||
|
||||
Projede sık kullandığım desen şu:
|
||||
|
||||
1. `page.tsx` server component olarak Supabase'ten veriyi çeker.
|
||||
2. Client tarafında etkileşim gerekiyorsa veri bir `*-client.tsx` bileşenine aktarılır.
|
||||
3. Form işlemleri `actions.ts` içinde server action olarak yapılır.
|
||||
|
||||
Örnek:
|
||||
|
||||
```txt
|
||||
app/(dashboard)/tasks/page.tsx
|
||||
app/(dashboard)/tasks/tasks-client.tsx
|
||||
app/(dashboard)/tasks/actions.ts
|
||||
```
|
||||
|
||||
Bu desen hem okunabilirliği artırır hem de Supabase sorgularının nerede çalıştığını netleştirir.
|
||||
|
||||
## Yeni Modül Eklemek
|
||||
|
||||
Yeni bir modül eklerken şu sırayı izlemek mantıklı:
|
||||
|
||||
1. Supabase tablosunu ve RLS policy'lerini planla.
|
||||
2. Server page dosyasını oluştur.
|
||||
3. Gerekirse client component oluştur.
|
||||
4. CRUD işlemleri için `actions.ts` ekle.
|
||||
5. Sidebar config'e menü ekle.
|
||||
6. Gerekirse dashboard/analiz ekranına özet veri ekle.
|
||||
|
||||
## Build
|
||||
|
||||
Production build kontrolü:
|
||||
|
||||
```bash
|
||||
npm run build
|
||||
```
|
||||
|
||||
Build başarılıysa TypeScript ve Next.js route üretimi de temel seviyede doğrulanmış olur.
|
||||
|
||||
## Lint
|
||||
|
||||
Lint komutu:
|
||||
|
||||
```bash
|
||||
npm run lint
|
||||
```
|
||||
|
||||
Eğer lint yavaş çalışıyorsa `.next` klasörünün temiz olduğundan emin olun. Generated dosyaların gereksiz taranması geliştirme deneyimini bozabilir.
|
||||
|
||||
## `.next` Cache Temizleme
|
||||
|
||||
Dev server bazen eski route type veya cache nedeniyle garip davranabilir. Bu durumda:
|
||||
|
||||
```powershell
|
||||
Remove-Item .next -Recurse -Force
|
||||
```
|
||||
|
||||
Sonra tekrar:
|
||||
|
||||
```bash
|
||||
npm run dev
|
||||
```
|
||||
|
||||
## Python Yardımcı Dosyası
|
||||
|
||||
Repo içinde `main.pyw` ve `requirements.txt` bulunur. Bunlar web uygulamasının deploy akışına dahil değildir. Lokal Ollama tabanlı masaüstü metin işleme yardımcısı olarak korunur.
|
||||
|
||||
Python bağımlılıkları web build'i için gerekli değildir.
|
||||
Reference in New Issue
Block a user