Porje dökümanları oluşturuldu
This commit is contained in:
1
.serena/.gitignore
vendored
Normal file
1
.serena/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
||||
/cache
|
||||
120
.serena/memories/proje_genel_bilgiler.md
Normal file
120
.serena/memories/proje_genel_bilgiler.md
Normal file
@@ -0,0 +1,120 @@
|
||||
# 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)
|
||||
84
.serena/project.yml
Normal file
84
.serena/project.yml
Normal file
@@ -0,0 +1,84 @@
|
||||
# list of languages for which language servers are started; choose from:
|
||||
# al bash clojure cpp csharp csharp_omnisharp
|
||||
# dart elixir elm erlang fortran go
|
||||
# haskell java julia kotlin lua markdown
|
||||
# nix perl php python python_jedi r
|
||||
# rego ruby ruby_solargraph rust scala swift
|
||||
# terraform typescript typescript_vts yaml zig
|
||||
# Note:
|
||||
# - For C, use cpp
|
||||
# - For JavaScript, use typescript
|
||||
# Special requirements:
|
||||
# - csharp: Requires the presence of a .sln file in the project folder.
|
||||
# When using multiple languages, the first language server that supports a given file will be used for that file.
|
||||
# The first language is the default language and the respective language server will be used as a fallback.
|
||||
# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored.
|
||||
languages:
|
||||
- typescript
|
||||
|
||||
# the encoding used by text files in the project
|
||||
# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings
|
||||
encoding: "utf-8"
|
||||
|
||||
# whether to use the project's gitignore file to ignore files
|
||||
# Added on 2025-04-07
|
||||
ignore_all_files_in_gitignore: true
|
||||
|
||||
# list of additional paths to ignore
|
||||
# same syntax as gitignore, so you can use * and **
|
||||
# Was previously called `ignored_dirs`, please update your config if you are using that.
|
||||
# Added (renamed) on 2025-04-07
|
||||
ignored_paths: []
|
||||
|
||||
# whether the project is in read-only mode
|
||||
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
|
||||
# Added on 2025-04-18
|
||||
read_only: false
|
||||
|
||||
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
|
||||
# Below is the complete list of tools for convenience.
|
||||
# To make sure you have the latest list of tools, and to view their descriptions,
|
||||
# execute `uv run scripts/print_tool_overview.py`.
|
||||
#
|
||||
# * `activate_project`: Activates a project by name.
|
||||
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
|
||||
# * `create_text_file`: Creates/overwrites a file in the project directory.
|
||||
# * `delete_lines`: Deletes a range of lines within a file.
|
||||
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
|
||||
# * `execute_shell_command`: Executes a shell command.
|
||||
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
|
||||
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
|
||||
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
|
||||
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
|
||||
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
|
||||
# * `initial_instructions`: Gets the initial instructions for the current project.
|
||||
# Should only be used in settings where the system prompt cannot be set,
|
||||
# e.g. in clients you have no control over, like Claude Desktop.
|
||||
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
|
||||
# * `insert_at_line`: Inserts content at a given line in a file.
|
||||
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
|
||||
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
|
||||
# * `list_memories`: Lists memories in Serena's project-specific memory store.
|
||||
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
|
||||
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
|
||||
# * `read_file`: Reads a file within the project directory.
|
||||
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
|
||||
# * `remove_project`: Removes a project from the Serena configuration.
|
||||
# * `replace_lines`: Replaces a range of lines within a file with new content.
|
||||
# * `replace_symbol_body`: Replaces the full definition of a symbol.
|
||||
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
|
||||
# * `search_for_pattern`: Performs a search for a pattern in the project.
|
||||
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
|
||||
# * `switch_modes`: Activates modes by providing a list of their names
|
||||
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
|
||||
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
|
||||
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
|
||||
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
|
||||
excluded_tools: []
|
||||
|
||||
# initial prompt for the project. It will always be given to the LLM upon activating the project
|
||||
# (contrary to the memories, which are loaded on demand).
|
||||
initial_prompt: ""
|
||||
|
||||
project_name: "Wisecolt-CI"
|
||||
included_optional_tools: []
|
||||
Reference in New Issue
Block a user