120 lines
4.4 KiB
Markdown
120 lines
4.4 KiB
Markdown
# 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) |