# Wisecolt-CI Proje Genel Bilgileri ## Proje Tanımı Wisecolt-CI, modern web teknolojileriyle geliştirilmiş tam teşekküllü bir CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) platformudur. Proje, repository otomasyonu ve test süreçlerini yönetmek için tasarlanmıştır. ## Teknoloji Yığını ### Backend - **Platform**: Node.js + TypeScript - **Framework**: Express.js - **Veritabanı**: MongoDB - **Gerçek Zamanlı**: Socket.io - **Kimlik Doğrulama**: JWT (JSON Web Token) - **Process Yönetimi**: Child Process (git, npm komutları) - **Geliştirme Araçları**: tsx (hot-reload) ### Frontend - **Platform**: React 18 + TypeScript - **Build Tool**: Vite - **Stil**: Tailwind CSS - **UI Bileşenleri**: shadcn/ui - **Rotalama**: React Router DOM - **HTTP Client**: Axios - **Font Awesome**: Font Awesome SVG Icons - **Toast Bildirimleri**: Sonner - **İkonlar**: Lucide React ### DevOps - **Konteynerizasyon**: Docker + Docker Compose - **Hot Reload**: Geliştirme anında kod değişiklikleri - **Environment**: .env konfigürasyon yönetimi ## Proje Yapısı ``` wisecolt-ci/ ├── backend/ │ ├── src/ │ │ ├── config/env.ts # Konfigürasyon yönetimi │ │ ├── middleware/authMiddleware.ts # JWT kimlik doğrulama │ │ ├── models/job.ts # MongoDB Job modeli │ │ ├── routes/ │ │ │ ├── auth.ts # Giriş/kimlik endpoint'leri │ │ │ └── jobs.ts # Job yönetim endpoint'leri │ │ ├── services/jobService.ts # Job süreç yönetimi │ │ └── index.ts # Express sunucu ana dosyası │ ├── package.json │ ├── tsconfig.json │ ├── Dockerfile │ └── .env ├── frontend/ │ ├── src/ │ │ ├── api/ │ │ │ └── client.ts # API istemci ayarları │ │ ├── components/ │ │ │ ├── ui/ # shadcn/ui bileşenleri │ │ │ ├── ProtectedRoute.tsx # Korumalı rotalar │ │ │ ├── DashboardLayout.tsx # Ana kontrol paneli │ │ │ └── ThemeToggle.tsx # Tema değiştirme │ │ ├── pages/ # Sayfa bileşenleri │ │ │ ├── LoginPage.tsx # Giriş sayfası │ │ │ ├── HomePage.tsx # Ana sayfa │ │ │ ├── JobsPage.tsx # Job listesi │ │ │ └── JobDetailPage.tsx # Job detayı │ │ ├── providers/ # React Context Provider'lar │ │ │ ├── auth-provider.tsx # Kimlik yönetimi │ │ │ ├── socket-provider.tsx # Socket.io bağlantısı │ │ │ ├── live-provider.tsx # Gerçek zamanlı güncellemeler │ │ │ └── theme-provider.tsx # Tema yönetimi │ │ ├── lib/utils.ts # Yardımcı fonksiyonlar │ │ ├── App.tsx # Ana uygulama bileşeni │ │ └── main.tsx # Giriş noktası │ ├── package.json │ ├── vite.config.ts │ ├── tailwind.config.js │ └── Dockerfile ├── docker-compose.yml └── README.md ``` ## Temel Özellikler ### Authentication Sistemi - JWT tabanlı kimlik doğrulama - .env dosyasında yönetilen admin bilgileri - Korumalı rotalar için middleware - localStorage tabanlı token saklama ### Job Yönetim Sistemi - Repository URL ve test komutu tanımımlama - Zaman tabanlı otomatik çalıştırma (dakika/saat/gün) - Real-time durum güncellemeleri - Job log akışı - Test sonuçlarını kayıt ve izleme ### Real-time İletişim - Socket.io tabanlı gerçek zamanlı iletişim - Job durum güncellemeleri - Sayaç yayınınlaması - Canlı log akışı ### UI/UX Özellikler - Modern React tabanlı arayüz - shadcn/ui bileşen kütüphanesi - Tailwind CSS ile responsive tasarım - Dark/Light tema desteği - Toast bildirim sistemi ## Port Yapılandırması - Frontend: http://localhost:5173 - Backend API: http://localhost:4000 - MongoDB: localhost:27017 ## Environment Değişkenleri - PORT: Backend sunucu portu (4000) - MONGO_URI: MongoDB bağlantı adresi - ADMIN_USERNAME: Admin kullanıcı adı - ADMIN_PASSWORD: Admin şifresi - JWT_SECRET: JWT imzalama anahtarı - CLIENT_ORIGIN: Frontend adresi (CORS için)