Thanks to visit codestin.com
Credit goes to github.com

Skip to content

hamzasiyak/SwipeLine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🤖 AI Tweet Analyzer - Siteye git

Swipeline AI Studio Developer Intern Teknik Görevi için geliştirilmiş AI destekli tweet analiz uygulaması.

🎯 Proje Hakkında

Bu proje, kullanıcıların tweet URL'lerini girerek veya manuel tweet içeriği yazarak Google Gemini AI ile duygu analizi yapmalarını sağlar. Analiz sonuçları otomatik olarak Google Sheets'e kaydedilir.

Not: Twitter API için onay süreci gerektiği için şu anda sahte (mock) tweet verileri kullanılmaktadır. Analiz yeteneğini test etmek için manuel tweet içeriği girme özelliği eklenmiştir.

✨ Temel Özellikler

  • 🔗 Tweet URL Analizi: Mock tweet verileri ile analiz (Twitter API onayı beklendiği için)
  • ✍️ Manuel İçerik Girişi: Direkt tweet metni yazarak gerçek AI analizi
  • 🤖 AI Duygu Analizi: Google Gemini ile akıllı duygu tespiti
  • 📝 Otomatik Özet: AI tarafından oluşturulan 1-2 cümlelik özet
  • 📊 Google Sheets Entegrasyonu: Sonuçları otomatik tabloya kaydetme
  • 📜 Analiz Geçmişi: Son analizleri görüntüleme
  • 🛡️ Fallback Sistem: AI hata durumunda basit analiz
  • 🎲 10 Farklı Mock Tweet: Test için hazırlanmış çeşitli duygu durumları

🛠️ Teknoloji Stack

Frontend:  React.js + CSS3 + Axios
Backend:   Node.js + Express.js
AI:        Google Gemini API
Database:  Google Sheets API
Deployment: Render.com

🎯 PDF Gereksinimlerine Uygunluk

Bu proje, Swipeline AI Studio teknik görevindeki tüm gereksinimleri karşılar:

Tweet URL'si input olarak girilecek
Tweet içeriğini çek (mock data ile)
Duygu analizi (olumlu/olumsuz/nötr)
İçerik özeti (1-2 cümle)
Kullanıcı adı ve tarih bilgisi
Google Sheets'e kaydetme:

  • @username
  • Tweet İçeriği
  • Duygu
  • Özet
  • Tarih ve Saat ✅ React frontend + Node.js backend
    Sade kullanıcı arayüzü

🚀 Canlı Demo

🌐 Live Application

📊 Örnek Google Sheets

Analiz sonuçlarının kaydedildiği tablo:
Tweet Analiz Sonuçları (Readonly)

Not: İlk kullanımda Render'ın ücretsiz planı nedeniyle 15-30 saniye bekleme süresi olabilir.

🎬 Nasıl Kullanılır

1. Tweet URL ile Analiz

1. Ana sayfaya gidin
2. Tweet URL'sini girin (örn: https://twitter.com/user/status/5)
3. "Analiz Et" butonuna tıklayın
4. Sonuçları görüntüleyin

Mock Tweet Sistemi:

  • URL'nin sonundaki sayıya göre 10 farklı hazır tweet bulunur (1-10)
  • 10'dan büyük sayı girilirse rastgele bir tweet seçilir
  • Her tweet farklı duygu durumunu test etmek için tasarlanmıştır

2. Manuel İçerik ile Analiz

1. "Tweet'i manuel yazmak istiyorum" seçeneğini işaretleyin
2. Tweet içeriğini yazın
3. "Analiz Et" butonuna tıklayın
4. Sonuçları görüntüleyin

📝 Örnek Test Verileri

Mock Tweet URL'leri:

Belirli tweetler (1-10):
- https://twitter.com/test/status/1    # Pozitif tweet
- https://twitter.com/demo/status/5    # Nötr tweet  
- https://twitter.com/user/status/8    # Negatif tweet
- https://twitter.com/sample/status/3  # Karma duygu

Rastgele tweet (10+):
- https://twitter.com/test/status/25   # Rastgele seçim
- https://x.com/user/status/100        # X.com formatı

Manuel İçerik Örnekleri:

Pozitif: "Bugün harika bir gün! AI teknolojisi çok gelişiyor 😊"
Negatif: "Bu uygulama berbat, hiç beğenmedim..."
Nötr:    "Hava durumu: Bugün 25 derece ve güneşli"
Karma:   "Projeyi bitirdim ama stresli bir süreçti. Sonuç güzel oldu."

Gereksinimler

  • Node.js (v16 veya üzeri)
  • npm veya yarn
  • Google Cloud Console hesabı
  • Google Sheets API erişimi

1. Repository'yi klonlayın

git clone https://github.com/yourusername/ai-tweet-analyzer.git
cd ai-tweet-analyzer

2. Backend Kurulumu

cd backend
npm install

3. Frontend Kurulumu

cd frontend
npm install

4. Environment Variables

Backend klasöründe .env dosyası oluşturun:

cp .env.example .env

.env dosyasını düzenleyin:

# Server Configuration
PORT=3001
NODE_ENV=development

# Gemini AI Configuration
GEMINI_API_KEY=your_gemini_api_key_here

# Google Sheets Configuration
GOOGLE_SHEET_ID=your_google_sheet_id_here

# Frontend URL
FRONTEND_URL=http://localhost:3000

5. Google Sheets Ayarları

a) Google Cloud Console'da Proje Oluşturma:

  1. Google Cloud Console'a gidin
  2. Yeni proje oluşturun
  3. Google Sheets API'yi etkinleştirin

b) Service Account Oluşturma:

  1. IAM & Admin → Service Accounts
  2. "Create Service Account" tıklayın
  3. JSON key dosyasını indirin
  4. Dosyayı backend/credentials.json olarak kaydedin

c) Google Sheets Hazırlama:

  1. Yeni bir Google Sheets oluşturun
  2. Service account email'ini sheets'e editor olarak ekleyin
  3. Sheets ID'sini kopyalayın (URL'den)
  4. .env dosyasındaki GOOGLE_SHEET_ID değerini güncelleyin

6. Gemini API Anahtarı

  1. Google AI Studio'ya gidin
  2. API anahtarı oluşturun
  3. .env dosyasındaki GEMINI_API_KEY değerini güncelleyin

▶️ Çalıştırma

Development Mode

Terminal 1 (Backend):

cd backend
npm start

Terminal 2 (Frontend):

cd frontend
npm start

Uygulama şu adreslerde çalışacak:

📊 Google Sheets Entegrasyonu

Tablo Yapısı

Her analiz sonucu aşağıdaki sütunlarla Google Sheets'e kaydedilir:

Sütun Açıklama Örnek
@Username Kullanıcı adı @test_user
Tweet İçeriği Tweet metni (max 500 karakter) "Bugün harika bir gün!..."
Duygu AI'ın tespit ettiği duygu olumlu / olumsuz / nötr
Özet AI özeti (max 200 karakter) "Pozitif duygu içeren tweet..."
Tarih ve Saat Analiz zamanı 15.01.2025 10:30:00

Örnek Tablo

📊 Canlı Google Sheets Örneği

🔧 Teknik Detaylar

AI Analiz Süreci

  1. Input Preprocessing: Metin temizleme ve validation
  2. Gemini API Call: Google Gemini 2.0 Flash modeli kullanımı
  3. Response Processing: JSON parsing ve validation
  4. Fallback System: AI hatası durumunda keyword-based analiz
  5. Result Formatting: Türkçe format ve karakter limitleri

Performance Metrics

  • Gemini AI Response: ~2-5 saniye
  • Google Sheets Write: ~1-3 saniye
  • Total Analysis Time: ~3-8 saniye
  • Fallback Analysis: <100ms
  • Mock Data Generation: <50ms

Error Handling

  • ✅ Network timeouts and retries
  • ✅ Invalid URL format detection
  • ✅ AI service fallback system
  • ✅ Google Sheets connectivity issues
  • ✅ User-friendly error messages
  • ✅ Graceful degradation

🏗️ Proje Mimarisi

ai-tweet-analyzer/
├── 📁 backend/                    # Node.js API Server
│   ├── 📁 routes/
│   │   └── tweetRoutes.js         # API endpoints
│   ├── 📁 services/
│   │   ├── tweetService.js        # Ana analiz servisi
│   │   ├── geminiService.js       # Gemini AI entegrasyonu
│   │   └── googleSheetsService.js # Google Sheets API
│   ├── 📁 utils/
│   │   ├── validators.js          # Input validation
│   │   └── errorHandler.js        # Error management
│   ├── server.js                  # Main server file
│   ├── package.json               # Dependencies
│   └── .env.example               # Environment template
│
├── 📁 frontend/                   # React Application
│   ├── 📁 public/                 # Static assets
│   ├── 📁 src/
│   │   ├── 📁 components/
│   │   │   ├── TweetAnalyzer.js   # Main analysis component
│   │   │   ├── Header.js          # Navigation header
│   │   │   └── Footer.js          # Page footer
│   │   ├── 📁 services/
│   │   │   └── api.js             # API client
│   │   ├── App.js                 # Main app component
│   │   ├── App.css                # Styling
│   │   └── index.js               # Entry point
│   └── package.json               # Dependencies
│
├── 📄 README.md                   # Project documentation
├── 📄 .gitignore                  # Git ignore rules
└── 📄 LICENSE                     # MIT License

🔄 Data Flow

graph TD
    A[User Input] --> B{Input Type?}
    B -->|Tweet URL| C[Extract Mock Data]
    B -->|Manual Content| D[Create Data Object]
    C --> E[Gemini AI Analysis]
    D --> E
    E --> F[Sentiment + Summary]
    F --> G[Save to Google Sheets]
    F --> H[Display Results]
    G --> I[Update History]
    H --> I
Loading

🐛 Troubleshooting

Yaygın Hatalar

1. Google Sheets Bağlantı Hatası:

Error: Credentials dosyası bulunamadı

Çözüm: backend/credentials.json dosyasının doğru konumda olduğundan emin olun.

2. Gemini API Hatası:

Error: GEMINI_API_KEY environment variable gerekli

Çözüm: .env dosyasında GEMINI_API_KEY değerinin ayarlandığından emin olun.

3. CORS Hatası:

Access to XMLHttpRequest blocked by CORS policy

Çözüm: Backend'in 3001 portunda, frontend'in 3000 portunda çalıştığından emin olun.

Debug Modları

Backend'de detaylı loglar için:

cd backend
DEBUG=* npm start

Frontend'de API çağrıları için browser console'unu kontrol edin.

📈 Performans

  • Gemini API Response Time: ~2-5 saniye
  • Google Sheets Write Time: ~1-3 saniye
  • Fallback Analysis Time: <100ms
  • Mock Data Generation: <50ms

✅ Tamamlanan Özellikler

  • Tweet URL input - Kullanıcı tweet linki girebilir
  • Tweet içeriği çekme - Mock data ile simülasyon
  • Duygu analizi - olumlu/olumsuz/nötr kategorileri
  • İçerik özeti - AI ile 1-2 cümlelik özet
  • Kullanıcı adı - Tweet sahibi bilgisi
  • Tarih bilgisi - Analiz zamanı
  • Google Sheets entegrasyonu - Otomatik kaydetme
  • React frontend - Modern UI/UX
  • Node.js backend - RESTful API
  • Sade arayüz - Minimalist tasarım

🚀 Ek Özellikler

  • Manuel tweet girişi - URL'ye ek seçenek
  • Analiz geçmişi - Local storage ile saklama
  • Fallback sistem - AI hata durumunda yedek analiz
  • Production deployment - Render.com ile canlı demo
  • Comprehensive documentation - Detaylı README

👤 Developer

Ahmet Hamza Siyak
🎓 Gebze Teknik Universitesi Bilgisayar Muhendisligi 📧 Email: [email protected] 💼 LinkedIn: https://www.linkedin.com/in/hamzasiyak

💭 Proje Hakkında Düşüncelerim

Bu proje, AI teknolojilerinin pratik kullanımını göstermek için harika bir fırsat oldu. Google Gemini API'si ile duygu analizi yapmak ve sonuçları Google Sheets'e kaydetmek, gerçek dünya problemlerine yönelik çözümler geliştirme konusunda değerli deneyim kazandırdı.

Öğrendiğim teknolojiler:

  • Google Gemini AI API entegrasyonu
  • Google Sheets API ile veri yönetimi
  • Production deployment (Render.com)
  • Error handling ve fallback sistemleri
  • Modern React patterns ve hooks

Not: Bu proje eğitim amaçlı geliştirilmiştir ve production kullanımı için ek güvenlik önlemleri alınmalıdır.

⭐ Projeyi beğendiyseniz star vermeyi unutmayın!

🚀 Happy Coding! 💻✨

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published