first commit

This commit is contained in:
Beyhan Oğur
2026-04-26 22:04:35 +03:00
commit 763b147cc3
199 changed files with 29356 additions and 0 deletions

109
CONTACT_API_README.md Normal file
View File

@@ -0,0 +1,109 @@
# Contact Form API Kullanım Kılavuzu
## Yapılandırma
### 1. Environment Variables (.env dosyası)
`.env` dosyanıza aşağıdaki satırları ekleyin ve kendi bilgilerinizle güncelleyin:
```env
# Backend Credentials for Contact Form
BACKEND_EMAIL='your-admin-email@example.com'
BACKEND_PASSWORD='your-admin-password'
```
### 2. Backend API Endpoint'leri
Contact form sistemi aşağıdaki backend endpoint'lerini kullanır:
- **Login:** `http://127.0.0.1:8000/api/v1/auth/jwt/create/`
- **Contact Create:** `http://127.0.0.1:8000/api/v1/contact/create/`
## Nasıl Çalışır?
### Server-Side Flow (Nuxt Server API)
1. Kullanıcı formu doldurur ve gönderir
2. Frontend `/api/contact/post.create` endpoint'ine POST request gönderir
3. Nuxt server API:
- `.env` dosyasından admin credentials'ları alır
- Backend'e login olur ve JWT token alır
- Token ile contact form verisini backend'e gönderir
4. Backend'den gelen response frontend'e iletilir
### Güvenlik
- **Admin credentials** sadece server-side'da saklanır (`.env` dosyası)
- Client-side'da hiçbir zaman admin şifresi görünmez
- Her form gönderiminde otomatik login yapılır
- JWT token sadece server-side'da kullanılır
## Form Alanları
Contact form aşağıdaki zorunlu alanları içerir:
```typescript
{
name: string, // İsim
email: string, // E-posta
ip: string, // IP Adresi (server-side otomatik eklenir)
subject: string, // Konu
message: string // Mesaj
}
```
**Not:** IP adresi kullanıcıdan alınmaz, server-side'da otomatik olarak tespit edilir ve backend'e gönderilir.
## Frontend Kullanımı
Form zaten `app/pages/index.vue` sayfasında entegre edilmiştir. Kullanıcı:
1. Formu doldurur
2. Turnstile captcha'yı tamamlar
3. "Send Message" butonuna tıklar
4. Başarılı/hatalı mesaj görür
## API Response
### Başarılı Response:
```json
{
"success": true,
"data": { /* backend response */ },
"message": "Mesajınız başarıyla gönderildi"
}
```
### Hata Response:
```json
{
"statusCode": 400,
"statusMessage": "Tüm alanlar zorunludur: name, email, subject, message"
}
```
## Test Etme
1. Sunucuyu başlatın: `npm run dev`
2. Anasayfaya gidin: `http://localhost:3000`
3. Contact bölümüne scroll edin
4. Formu doldurun ve gönderin
## Hata Ayıklama
Konsol loglarını kontrol edin:
```bash
# Server-side logs
Terminal'de Nuxt server logları
# Client-side logs
Browser Console
```
## Önemli Notlar
- ⚠️ `.env` dosyasını asla Git'e commit etmeyin
- ✅ Production'da gerçek admin credentials kullanın
- ✅ Backend'inizde contact endpoint'inin aktif olduğundan emin olun
- ✅ Turnstile Cloudflare doğrulaması aktif