first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 21:46:42 +03:00
commit 2a5b661443
202 changed files with 49770 additions and 0 deletions

View File

@@ -0,0 +1,112 @@
# Admin Paneli Geliştirme Kılavuzu
Bu kılavuz, `admin_user.md` dosyasındaki gereksinimlere dayanarak **Next.js 16 + TypeScript + Tailwind v4 + shadcn** teknolojileriyle geliştirilecek Admin Paneli için mimari yapıyı ve geliştirme süreçlerini içerir.
## 1. Teknoloji Yığını ve Kurulum
Proje `frontend` klasörü altında yapılandırılmıştır. Gerekli tüm paketler (`package.json`) önceden yüklenmiştir:
- **Framework:** Next.js 16 (App Router)
- **UI:** React 19, Tailwind CSS v4, shadcn/ui
- **İkonlar:** lucide-react
- **Validasyon:** Zod
- **Auth:** NextAuth.js
- **Bildirimler:** SweetAlert2
- **Güvenlik:** nextjs-turnstile (Cloudflare)
### Kurulum ve Çalıştırma
```bash
cd frontend
npm install
npm run dev
```
## 2. Proje Klasör Yapısı (Önerilen)
Admin paneli için aşağıdaki klasör yapısını takip edeceğiz:
```
frontend/
├── app/
│ ├── admin/ # Admin paneli rotaları
│ │ ├── layout.tsx # Admin layout (Sidebar, Header, Auth Check)
│ │ ├── dashboard/ # Dashboard (KPI kartları)
│ │ ├── users/ # Kullanıcı yönetimi
│ │ ├── products/ # Ürün yönetimi
│ │ └── settings/ # Ayarlar
│ ├── api/auth/[...nextauth]/ # NextAuth API rotası
│ └── globals.css # Global stiller (Tailwind)
├── components/
│ ├── admin/ # Admin'e özel bileşenler
│ │ ├── sidebar.tsx
│ │ ├── header.tsx
│ │ ├── data-table.tsx # Reusable tablo yapısı
│ │ └── recent-sales.tsx
│ └── ui/ # shadcn bileşenleri (Button, Input, vb.)
├── lib/
│ ├── utils.ts # cn() ve diğer yardımcılar
│ ├── auth.ts # NextAuth konfigürasyonu
│ └── db.ts # Veritabanı bağlantısı (veya API client)
├── actions/ # Server Actions (Zod validasyonlu)
│ ├── auth-actions.ts
│ └── user-actions.ts
└── public/
└── admin/ # Admin ile ilgili statik dosyalar
```
## 3. Ortam Değişkenleri (.env)
Kök dizindeki `.env` dosyasına aşağıdaki değişkenlerin eklenmesi gerekmektedir:
```env
# NextAuth
NEXTAUTH_URL=http://localhost:3000
NEXTAUTH_SECRET=gizli-bir-anahtar-olusturun
# Backend API (Go)
NEXT_PUBLIC_API_URL=http://localhost:8080/api/v1
# Cloudflare Turnstile (Login güvenliği için)
NEXT_PUBLIC_TURNSTILE_SITEKEY=your-site-key
TURNSTILE_SECRET_KEY=your-secret-key
```
## 4. Geliştirme Adımları
Geliştirme süreci aşağıdaki sırayla ilerleyecektir:
1. **Temel Bileşenler:** shadcn kurulumunun doğrulanması ve temel bileşenlerin (Button, Input, Card, Form) eklenmesi.
2. **Auth Yapısı:** NextAuth yapılandırması ve `middleware.ts` ile `/admin` rotalarının korunması.
3. **Login Sayfası:** `/admin/login` sayfasının tasarımı ve Turnstile entegrasyonu.
4. **Admin Layout:** Sidebar ve Header içeren ana yerleşim düzeninin oluşturulması.
5. **Dashboard:** KPI kartları ve özet tabloların eklenmesi.
6. **CRUD Sayfaları:** Kullanıcılar (`/users`), Ürünler (`/products`) sayfalarının geliştirilmesi.
## 5. Güvenlik ve Validasyon Kuralları
- **Zod:** Tüm form verileri hem istemci (client) hem sunucu (server) tarafında Zod şemaları ile doğrulanmalıdır.
- **Server Actions:** Veri mutasyonları (Create, Update, Delete) Server Actions üzerinden yapılmalı ve oturum kontrolü içermelidir.
- **Role-Based Access:** Sadece `admin` veya `superadmin` rolüne sahip kullanıcılar `/admin` paneline erişebilmelidir.
## 6. Örnek Kullanım (Server Action ile Form)
```typescript
// actions/login.ts
"use server"
import { z } from "zod";
const loginSchema = z.object({
email: z.string().email(),
password: z.string().min(6),
});
export async function loginAction(formData: FormData) {
const data = Object.fromEntries(formData);
const parsed = loginSchema.safeParse(data);
if (!parsed.success) {
return { error: "Geçersiz veri" };
}
// Auth işlemleri...
}
```