Files
bogazici-admin/README.md
Bulut Kuru f46b9d795d deploy 1
2026-03-27 21:06:38 +03:00

175 lines
6.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bogazici Admin Dashboard
Bogazici Denizcilik yonetim paneli. Kurs, duyuru, sayfa, kullanici ve icerik yonetimi icin gelistirilmis kapsamli bir CMS admin uygulamasidir.
## Ozellikler
### Icerik Yonetimi
- **Kurslar** - Kurs olusturma, duzenleme, kategori atama, fiyatlandirma, gorsel yukleme
- **Kurs Takvimleri** - Takvim planlamasi, kontenjan takibi, egitmen atama
- **Kategoriler** - Kurslari kategorilere ayirma, slug, SEO meta bilgileri
- **Duyurular** - Blog tarzinda duyurular, zengin metin editoru, one cikan gorseller
- **Sayfalar** - Blok tabanli sayfa olusturucu ile dinamik CMS sayfalari
- **SSS** - Sikca sorulan sorular yonetimi
- **Basari Hikayeleri** - Musteri referanslari ve basari hikayeleri
### Site Yonetimi
- **Hero Slider** - Ana sayfa karousel yonetimi (gorsel ve video destegi)
- **Menuler** - Hiyerarsik navigasyon menu yonetimi
- **Rehber Kartlari** - Bilgilendirme kartlari yonetimi
- **Ayarlar** - Sistem genelinde yapilandirma
### Kullanici ve Erisim
- **Kullanici Yonetimi** - Admin kullanicilari CRUD islemleri, rol atama
- **Rol Tabanli Erisim Kontrolu (RBAC)** - Modullere gore ayrilmis detayli izin tanimlari
- **Lead Yonetimi** - Farkli kaynaklardan (form, WhatsApp) gelen leadlerin takibi, UTM parametreleri, KVKK onay takibi
- **Yorum Moderasyonu** - Yorumlari onaylama/reddetme, admin yaniti
### Arayuz
- Acik/karanlik/sistem tema destegi
- Responsive tasarim
- Komut paleti (Cmd/Ctrl+K) ile hizli navigasyon
- Siralama, filtreleme ve sayfalama destekli veri tablolari
- Zengin metin editoru (TipTap)
- Gorsel ve video yukleme
- Erisebilirlik (a11y) destegi
- RTL/LTR dil yonu destegi
- Toast bildirimleri ve ilerleme gostergeleri
## Teknoloji Yigini
| Katman | Teknoloji |
|---|---|
| **UI Framework** | [React 19](https://react.dev) |
| **Build** | [Vite 7](https://vitejs.dev) + [SWC](https://swc.rs) |
| **Bilesenler** | [Shadcn UI](https://ui.shadcn.com) (TailwindCSS + Radix UI) |
| **Routing** | [TanStack Router](https://tanstack.com/router) (dosya tabanli, otomatik code splitting) |
| **Sunucu Durumu** | [TanStack React Query](https://tanstack.com/query) |
| **Istemci Durumu** | [Zustand](https://zustand.docs.pmnd.rs) |
| **Formlar** | [React Hook Form](https://react-hook-form.com) + [Zod](https://zod.dev) |
| **Zengin Metin** | [TipTap](https://tiptap.dev) |
| **Grafikler** | [Recharts](https://recharts.org) |
| **Tablolar** | [TanStack Table](https://tanstack.com/table) |
| **HTTP** | [Axios](https://axios-http.com) (Bearer token interceptor) |
| **Stil** | [TailwindCSS 4](https://tailwindcss.com) |
| **Ikonlar** | [Lucide](https://lucide.dev) |
| **Dil** | [TypeScript](https://www.typescriptlang.org) |
| **Lint/Format** | [ESLint](https://eslint.org) + [Prettier](https://prettier.io) |
## Proje Yapisi
```
src/
├── routes/ # TanStack Router dosya tabanli yonlendirme
│ ├── (auth)/ # Giris sayfalari
│ ├── _authenticated/ # Korunmus rotalar (auth guard)
│ │ ├── dashboard/ # Ana panel
│ │ ├── courses/ # Kurs yonetimi
│ │ ├── categories/ # Kategori yonetimi
│ │ ├── schedules/ # Takvim yonetimi
│ │ ├── announcements/ # Duyuru yonetimi
│ │ ├── pages/ # Sayfa yonetimi (CMS)
│ │ ├── users/ # Kullanici yonetimi
│ │ ├── roles/ # Rol yonetimi
│ │ ├── leads/ # Lead yonetimi
│ │ ├── comments/ # Yorum moderasyonu
│ │ ├── hero-slides/ # Hero slider
│ │ ├── faqs/ # SSS
│ │ ├── menus/ # Menu yonetimi
│ │ ├── guide-cards/ # Rehber kartlari
│ │ ├── stories/ # Basari hikayeleri
│ │ └── settings/ # Ayarlar
│ └── (errors)/ # Hata sayfalari (403, 404, 500)
├── features/ # Ozellik modulleri (her module CRUD islemleri)
├── components/
│ ├── ui/ # Shadcn UI bilesenler (40+)
│ ├── layout/ # Sidebar, header, ana layout
│ ├── data-table/ # Yeniden kullanilabilir tablo bilesenleri
│ └── block-manager/ # Sayfa blok yonetimi
├── lib/api/ # API istemcisi ve modul bazli API fonksiyonlari
├── stores/ # Zustand durum yonetimi
├── context/ # React context (tema, font, yon, layout)
└── hooks/ # Ozel React hooklari
```
## Kurulum
### Gereksinimler
- Node.js 22+
- pnpm
### Yerel Gelistirme
```bash
# Projeyi klonla
git clone <repo-url>
cd bogazici-admin
# Ortam degiskenlerini ayarla
cp .env.example .env
# .env dosyasinda VITE_API_BASE_URL degerini duzenle
# Bagimliliklari yukle
pnpm install
# Gelistirme sunucusunu baslat
pnpm dev
```
### Mevcut Betikler
| Betik | Aciklama |
|---|---|
| `pnpm dev` | Gelistirme sunucusu |
| `pnpm build` | TypeScript kontrolu + uretim derlemesi |
| `pnpm preview` | Uretim derlemesini onizle |
| `pnpm lint` | ESLint ile kod kontrolu |
| `pnpm format` | Prettier ile otomatik formatlama |
| `pnpm format:check` | Format kontrolu |
| `pnpm knip` | Kullanilmayan dosya/bagimlilik tespiti |
### Ortam Degiskenleri
| Degisken | Aciklama |
|---|---|
| `VITE_API_BASE_URL` | Backend API adresi (orn: `https://bogazici-api.test`) |
## Deployment
### Docker
Proje, multi-stage Docker build ile Nginx uzerinde sunulmaktadir.
```bash
# Uretim imajini olustur
docker build --build-arg VITE_API_BASE_URL=https://api.bogazicidenizcilik.com -t bogazici-admin .
# Calistir
docker compose -f docker-compose.prod.yml up -d
```
### CI/CD (DroneCI)
| Dal | Islem |
|---|---|
| `develop` | TypeScript kontrolu + build dogrulamasi |
| `test` | Test sunucusuna otomatik deploy |
| `main` | Uretim sunucusuna otomatik deploy |
## Kimlik Dogrulama
- Email/sifre ile giris (`/sign-in`)
- JWT Bearer token tabanli kimlik dogrulama
- Token ve kullanici bilgisi Zustand store + cookielerde saklanir
- 401 yaniti alindiginda otomatik oturum sonlandirma
- Tum `/_authenticated` rotalari gecerli token gerektirir
## Lisans
[MIT](https://choosealicense.com/licenses/mit/)