4.4 KiB
4.4 KiB
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)