diff --git a/scratch/analyze_repos.php b/scratch/analyze_repos.php new file mode 100644 index 0000000..98f99d2 --- /dev/null +++ b/scratch/analyze_repos.php @@ -0,0 +1,48 @@ +make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); + +$interns = App\Models\CareerApplication::where('type', 'internship')->where('status', 'accepted')->with(['journalEntries' => function($q) { + $q->orderBy('day_number', 'asc'); +}])->get(); + +$analysis = []; + +foreach ($interns as $intern) { + if ($intern->journalEntries->count() == 0) continue; + + $repoUrl = $intern->github_repo; + $allContent = ""; + $commits = []; + + foreach ($intern->journalEntries as $entry) { + $allContent .= "\n--- DAY {$entry->day_number} ({$entry->date}) ---\n" . $entry->content . "\n"; + + // Extract commits from content if available + if (preg_match_all('/\[[0-9:]+\]\s*\[([a-f0-9]+)\]\s*(.+)/i', $entry->content, $matches, PREG_SET_ORDER)) { + foreach ($matches as $m) { + $commits[] = [ + 'hash' => $m[1], + 'msg' => $m[2], + 'day' => $entry->day_number + ]; + } + } + } + + $analysis[$intern->name] = [ + 'id' => $intern->id, + 'email' => $intern->email, + 'repo' => $repoUrl, + 'github_username' => $intern->github_username, + 'total_entries' => $intern->journalEntries->count(), + 'commits_count' => count($commits), + 'commits_sample' => array_slice($commits, -10), + 'full_text' => $allContent + ]; +} + +file_put_contents(__DIR__ . '/repo_analysis_data.json', json_encode($analysis, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); +echo "Saved analysis data for " . count($analysis) . " interns.\n"; diff --git a/scratch/approval_report.json b/scratch/approval_report.json new file mode 100644 index 0000000..bc69a6c --- /dev/null +++ b/scratch/approval_report.json @@ -0,0 +1,838 @@ +{ + "approved_total": 58, + "interns": [ + { + "id": 18, + "name": "Emre Satıl", + "email": "emresatil72@gmail.com", + "github": "https:\/\/github.com\/Emresatil\/Recycle-Rush-VR\/commits\/feature\/save-manager-and-haptics", + "total_entries": 27, + "filled_entries": 27, + "already_approved": 20, + "newly_approved": 7, + "on_time_count": 24, + "retroactive_count": 3, + "on_time_days": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 13, + 15, + 16, + 17, + 18, + 19, + 20, + 21, + 22, + 23, + 24, + 25, + 26, + 27 + ], + "retroactive_days": [ + 11, + 12, + 14 + ], + "retroactive_details": [ + { + "day": 11, + "date": "2026-07-16", + "content_snippet": "11. Gün (16.07.2026) Çalışma RaporuBugün stajımda projemizin" + }, + { + "day": 12, + "date": "2026-07-17", + "content_snippet": "12. Gün (17.07.2026) Çalışma RaporuBugün oyunun en önemli hi" + }, + { + "day": 14, + "date": "2026-07-21", + "content_snippet": "14. Gün (21.07.2026) Çalışma RaporuBugün, VR projemizin perf" + } + ] + }, + { + "id": 19, + "name": "Ayşenur Ebrar Gündüz", + "email": "aysenurebrargunduzz@gmail.com", + "github": "https:\/\/github.com\/AysenurGunduz\/vantage-ai", + "total_entries": 15, + "filled_entries": 15, + "already_approved": 8, + "newly_approved": 7, + "on_time_count": 12, + "retroactive_count": 3, + "on_time_days": [ + 1, + 2, + 3, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "retroactive_days": [ + 4, + 5, + 6 + ], + "retroactive_details": [ + { + "day": 4, + "date": "2026-07-23", + "content_snippet": "Güne ekip arkadaşlarım ile gerçekleştirdiğimiz toplantı ile " + }, + { + "day": 5, + "date": "2026-07-24", + "content_snippet": "Toplantının ardından güne, her gün olduğu gibi yeni bir bran" + }, + { + "day": 6, + "date": "2026-07-27", + "content_snippet": "Bugüne yine ekip içi günlük toplantıda Cuma günkü ilerlemeyi" + } + ] + }, + { + "id": 20, + "name": "Hakan Üzer", + "email": "hakanuzer1@gmail.com", + "github": "https:\/\/github.com\/Emresatil\/Recycle-Rush-VR\/tree\/feature\/ar-golden-spawner-rewards", + "total_entries": 26, + "filled_entries": 26, + "already_approved": 20, + "newly_approved": 6, + "on_time_count": 21, + "retroactive_count": 5, + "on_time_days": [ + 3, + 4, + 5, + 6, + 7, + 8, + 9, + 10, + 11, + 12, + 13, + 14, + 15, + 16, + 17, + 18, + 21, + 22, + 23, + 24, + 26 + ], + "retroactive_days": [ + 1, + 2, + 19, + 20, + 25 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-01", + "content_snippet": "Konu: Unity VR Proje İskeletinin Oluşturulması ve Versiyon K" + }, + { + "day": 2, + "date": "2026-07-02", + "content_snippet": "Konu: Unity VR Projenin Sadeleştirlmesi ve XR Altyapısının Y" + }, + { + "day": 19, + "date": "2026-07-28", + "content_snippet": "VR Projesinde Sahne Senkronizasyonu, Görsel Post-Processing " + }, + { + "day": 20, + "date": "2026-07-29", + "content_snippet": "Oyun Durum Yönetimi (GameState) Optimizasyonu, Dinamik Çevre" + }, + { + "day": 25, + "date": "2026-08-05", + "content_snippet": "Bugünkü çalışmalar kapsamında, projemizin VR (Sanal Gerçekli" + } + ] + }, + { + "id": 22, + "name": "Mustafa emre kaplan", + "email": "mustafaemre027@gmail.com", + "github": "https:\/\/github.com\/mustafaemre027\/securewatch-ai", + "total_entries": 19, + "filled_entries": 19, + "already_approved": 12, + "newly_approved": 7, + "on_time_count": 11, + "retroactive_count": 8, + "on_time_days": [ + 4, + 6, + 7, + 8, + 9, + 10, + 12, + 15, + 17, + 18, + 19 + ], + "retroactive_days": [ + 1, + 2, + 3, + 5, + 11, + 13, + 14, + 16 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-13", + "content_snippet": "1. Gün – Proje Planlama ve GitHub AltyapısıProje Tanımı ve P" + }, + { + "day": 2, + "date": "2026-07-14", + "content_snippet": "2. Gün – CIC-IDS2017 Veri Seti AnaliziVeri Seti Seçimi ve Ha" + }, + { + "day": 3, + "date": "2026-07-16", + "content_snippet": "3. Gün – Sistem Mimarisi TasarımıFonksiyonel Gereksinimler v" + }, + { + "day": 5, + "date": "2026-07-20", + "content_snippet": "5. Gün – Kimlik Doğrulama, RBAC ve Audit LogKullanıcı ve Ver" + }, + { + "day": 11, + "date": "2026-07-28", + "content_snippet": "Gün 11 – Güvenli Model Tahmini ve Analiz API’siGüvenli Model" + }, + { + "day": 13, + "date": "2026-07-30", + "content_snippet": "Gün 13 – Frontend Temeli, Güvenli Kimlik Doğrulama ve Uygula" + }, + { + "day": 14, + "date": "2026-07-31", + "content_snippet": "Gün 14 – Analiz Ekranları ve Güvenli CSV İş AkışıAnaliz API " + }, + { + "day": 16, + "date": "2026-08-04", + "content_snippet": "Gün 16 – Güvenli Olay Yönetimi Arayüzü ve İş AkışıOlay Yönet" + } + ] + }, + { + "id": 23, + "name": "Doğukan Kalkan", + "email": "kalkandogukan01@gmail.com", + "github": "https:\/\/github.com\/Dogukan-klkn\/StockRoute", + "total_entries": 20, + "filled_entries": 20, + "already_approved": 20, + "newly_approved": 0, + "on_time_count": 9, + "retroactive_count": 11, + "on_time_days": [ + 4, + 10, + 11, + 12, + 15, + 16, + 17, + 18, + 19 + ], + "retroactive_days": [ + 1, + 2, + 3, + 5, + 6, + 7, + 8, + 9, + 13, + 14, + 20 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-06-29", + "content_snippet": "Oryantasyon ve Kurulum Süreçleri: Stajın ilk günü şirket ve " + }, + { + "day": 2, + "date": "2026-06-30", + "content_snippet": "Tasarım ve Dokümantasyon Yapısının Kurulumu: Proje planlamas" + }, + { + "day": 3, + "date": "2026-07-01", + "content_snippet": "Projenin daha ölçeklenebilir ve tek merkezden yönetilebilir " + }, + { + "day": 5, + "date": "2026-07-03", + "content_snippet": "Kimlik Doğrulama ve Güvenlik Altyapısının Kurulması: Sistem " + }, + { + "day": 6, + "date": "2026-07-06", + "content_snippet": "Yetki Kontrol Mekanizmasının (Guard) Kurulması: Sistemdeki A" + }, + { + "day": 7, + "date": "2026-07-07", + "content_snippet": "Başlangıç Verileri (Seed) ve Onboarding: Sistemin ilk kayıt " + }, + { + "day": 8, + "date": "2026-07-08", + "content_snippet": "Veri Doğrulama (DTO) ve Dokümantasyon: Şube oluşturma ve gün" + }, + { + "day": 9, + "date": "2026-07-09", + "content_snippet": "Proje Dokümantasyonu: Projenin genel yapısını, kullanılan te" + }, + { + "day": 13, + "date": "2026-07-16", + "content_snippet": "Bugün, proje planının 13. gün hedefleri doğrultusunda sistem" + }, + { + "day": 14, + "date": "2026-07-17", + "content_snippet": "Gün 14 — Web Yönetim Panelinin KuruluşuBugün itibarıyla Stoc" + }, + { + "day": 20, + "date": "2026-07-27", + "content_snippet": "Projenin son geliştirme günü. Bugün iki blok iş yapıldı: mob" + } + ] + }, + { + "id": 24, + "name": "Elif Çiftepala", + "email": "elifciftepala82@gmail.com", + "github": null, + "total_entries": 0, + "filled_entries": 0, + "already_approved": 0, + "newly_approved": 0, + "on_time_count": 0, + "retroactive_count": 0, + "on_time_days": [], + "retroactive_days": [], + "retroactive_details": [] + }, + { + "id": 25, + "name": "Eren Kara", + "email": "erenkara1549@gmail.com", + "github": "https:\/\/github.com\/erenkara0\/Smart-E-Commerce-Assistant", + "total_entries": 23, + "filled_entries": 23, + "already_approved": 15, + "newly_approved": 8, + "on_time_count": 8, + "retroactive_count": 15, + "on_time_days": [ + 6, + 10, + 12, + 13, + 18, + 19, + 22, + 23 + ], + "retroactive_days": [ + 1, + 2, + 3, + 4, + 5, + 7, + 8, + 9, + 11, + 14, + 15, + 16, + 17, + 20, + 21 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-06", + "content_snippet": "On the first day of the internship, the topic for the projec" + }, + { + "day": 2, + "date": "2026-07-07", + "content_snippet": "Today, brand and user interface preparation work was carried" + }, + { + "day": 3, + "date": "2026-07-08", + "content_snippet": "Today, the foundational development environment for the proj" + }, + { + "day": 4, + "date": "2026-07-09", + "content_snippet": "As part of the M2 milestone for the MikroAsistan project, th" + }, + { + "day": 5, + "date": "2026-07-10", + "content_snippet": "Today, I focused on the product data structure for the proje" + }, + { + "day": 7, + "date": "2026-07-14", + "content_snippet": "Today, as part of the M4 phase, I focused on the RAG-based r" + }, + { + "day": 8, + "date": "2026-07-16", + "content_snippet": "Today, I improved the reliability and maintainability of the" + }, + { + "day": 9, + "date": "2026-07-17", + "content_snippet": "Today, I implemented session-based chat memory for the Smart" + }, + { + "day": 11, + "date": "2026-07-21", + "content_snippet": "Today, I developed the initial interactive chat interface fo" + }, + { + "day": 14, + "date": "2026-07-24", + "content_snippet": "Today, I completed the M7 backend testing milestone by setti" + }, + { + "day": 15, + "date": "2026-07-27", + "content_snippet": "Today, I prepared the project for final delivery and demonst" + }, + { + "day": 16, + "date": "2026-07-28", + "content_snippet": "I finalized the project’s v1.0.0 release, completed the GitH" + }, + { + "day": 17, + "date": "2026-07-29", + "content_snippet": "I started the M8 Excel Product Data Foundation milestone. I " + }, + { + "day": 20, + "date": "2026-08-03", + "content_snippet": "Yesterday, I implemented the product import and upsert workf" + }, + { + "day": 21, + "date": "2026-08-04", + "content_snippet": "Today, I implemented an Excel product import API endpoint fo" + } + ] + }, + { + "id": 26, + "name": "Ümit Tunç", + "email": "umit.tunc@truncgil.com", + "github": null, + "total_entries": 0, + "filled_entries": 0, + "already_approved": 0, + "newly_approved": 0, + "on_time_count": 0, + "retroactive_count": 0, + "on_time_days": [], + "retroactive_days": [], + "retroactive_details": [] + }, + { + "id": 27, + "name": "ismet can sezgin", + "email": "ismet.can.sezgin96@erzurum.edu.tr", + "github": "https:\/\/github.com\/ismetcansezgin\/EEG-Flow", + "total_entries": 15, + "filled_entries": 15, + "already_approved": 10, + "newly_approved": 5, + "on_time_count": 4, + "retroactive_count": 11, + "on_time_days": [ + 5, + 6, + 7, + 9 + ], + "retroactive_days": [ + 1, + 2, + 3, + 4, + 8, + 10, + 11, + 12, + 13, + 14, + 15 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-13", + "content_snippet": "Subject of Work: Project Scope Definition, Roadmap Desi" + }, + { + "day": 2, + "date": "2026-07-14", + "content_snippet": "Subject of Work: Directory Structure Setup, Environment" + }, + { + "day": 3, + "date": "2026-07-16", + "content_snippet": "Subject of Work: EEG CSV Data Loading, Multi-Channel Va" + }, + { + "day": 4, + "date": "2026-07-17", + "content_snippet": "Subject of Work: EEG Synthetic Signal Simulator Development " + }, + { + "day": 8, + "date": "2026-07-23", + "content_snippet": "Subject of Work: Signal Processing Backend Integration:" + }, + { + "day": 10, + "date": "2026-07-27", + "content_snippet": "Subject of Work: Signal Visualization: Chart.js Interac" + }, + { + "day": 11, + "date": "2026-07-28", + "content_snippet": "Subject of Work: Feature Engineering Phase: Sliding Win" + }, + { + "day": 12, + "date": "2026-07-29", + "content_snippet": "Subject of Work: Feature Engineering REST API: Implemen" + }, + { + "day": 13, + "date": "2026-07-30", + "content_snippet": "Subject of Work: Phase 2 Feature Engineering: Signal Ep" + }, + { + "day": 14, + "date": "2026-07-31", + "content_snippet": "Subject of Work: Feature Engineering Phase: Implementat" + }, + { + "day": 15, + "date": "2026-08-03", + "content_snippet": "Subject of Work: Feature Engine REST API Endpoint, Alph" + } + ] + }, + { + "id": 28, + "name": "Alesam Baath", + "email": "isambais15@gmail.com", + "github": "https:\/\/github.com\/isambais\/SmartHome-EnergyRL", + "total_entries": 18, + "filled_entries": 18, + "already_approved": 11, + "newly_approved": 7, + "on_time_count": 10, + "retroactive_count": 8, + "on_time_days": [ + 2, + 5, + 6, + 7, + 13, + 14, + 15, + 16, + 17, + 18 + ], + "retroactive_days": [ + 1, + 3, + 4, + 8, + 9, + 10, + 11, + 12 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-13", + "content_snippet": "Bugün Ne Yapıldı?Projenin resmi başlangıcı olarak GitHub üze" + }, + { + "day": 3, + "date": "2026-07-16", + "content_snippet": "Bugün Ne Yapıldı?Yol haritasındaki Gün 3 hedefi doğrultusund" + }, + { + "day": 4, + "date": "2026-07-17", + "content_snippet": "Bugün Ne Yapıldı?implementation_plan.md Bölüm 8'de projedeki" + }, + { + "day": 8, + "date": "2026-07-23", + "content_snippet": "Gün 8 — Gerçek EPIAS Verisi, VecNormalize ve Çok Algoritmali" + }, + { + "day": 9, + "date": "2026-07-24", + "content_snippet": "Gün 9 — Gerçek Dünya Ortamı Yeniden Yazımı ve Curriculum Aşa" + }, + { + "day": 10, + "date": "2026-07-27", + "content_snippet": "Gün 10 — Pazartesi, 27 Temmuz 2026Öz-Tüketim Bonusu, Hiperpa" + }, + { + "day": 11, + "date": "2026-07-28", + "content_snippet": "Gün 11 — Salı, 28 Temmuz 2026Phase 1 → Phase 2 Karşılaştırma" + }, + { + "day": 12, + "date": "2026-07-29", + "content_snippet": "Gün 12 — Aşama 3: Hibrit Aksiyon Uzayı ve Ertelenebilir Yük1" + } + ] + }, + { + "id": 29, + "name": "Mehmet Akif Tunçer", + "email": "akiftuncer0@gmail.com", + "github": null, + "total_entries": 0, + "filled_entries": 0, + "already_approved": 0, + "newly_approved": 0, + "on_time_count": 0, + "retroactive_count": 0, + "on_time_days": [], + "retroactive_days": [], + "retroactive_details": [] + }, + { + "id": 30, + "name": "Melike Bayer", + "email": "melikebayer09@gmail.com", + "github": null, + "total_entries": 0, + "filled_entries": 0, + "already_approved": 0, + "newly_approved": 0, + "on_time_count": 0, + "retroactive_count": 0, + "on_time_days": [], + "retroactive_days": [], + "retroactive_details": [] + }, + { + "id": 31, + "name": "Faruk Tazeoğlu", + "email": "faruktazeoglu9@gmail.com", + "github": "https:\/\/github.com\/Faruk-T\/baret", + "total_entries": 17, + "filled_entries": 17, + "already_approved": 11, + "newly_approved": 6, + "on_time_count": 7, + "retroactive_count": 10, + "on_time_days": [ + 3, + 5, + 6, + 7, + 8, + 9, + 17 + ], + "retroactive_days": [ + 1, + 2, + 4, + 10, + 11, + 12, + 13, + 14, + 15, + 16 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-10", + "content_snippet": "Stajımın ilk gününde şirket içi oryantasyon süreçleri tamaml" + }, + { + "day": 2, + "date": "2026-07-13", + "content_snippet": "Baret projesi için kapsamlı implementation_plan.md hazırladı" + }, + { + "day": 4, + "date": "2026-07-16", + "content_snippet": "Baret projesinde alıcı akışının 3 temel ekranı (Ana Sayfa, Ü" + }, + { + "day": 10, + "date": "2026-07-24", + "content_snippet": "Bugün Baret projesinde 13. kısım kapsamında Supabase Storage" + }, + { + "day": 11, + "date": "2026-07-27", + "content_snippet": "27 Temmuz 2026 — Faz 3 Gün 13 kapanışı + Gün 14 (Alıcı ana s" + }, + { + "day": 12, + "date": "2026-07-28", + "content_snippet": "Bugün Baret projesinde Faz 3 kapsamındaki Gün 15 paketini ta" + }, + { + "day": 13, + "date": "2026-07-29", + "content_snippet": "Bugün Baret projesinde Faz 3 kapsamındaki Gün 15 paketini ta" + }, + { + "day": 14, + "date": "2026-07-30", + "content_snippet": "Bugün Baret pazaryeri uygulamasında hem kritik özellik tamam" + }, + { + "day": 15, + "date": "2026-07-31", + "content_snippet": "Bugün Baret projesinin canlı teslim ve kapanış günüydü. Uygu" + }, + { + "day": 16, + "date": "2026-08-03", + "content_snippet": "day-21-esn-interest branch’i üzerinden go-live baseline’a ES" + } + ] + }, + { + "id": 32, + "name": "Barış Paşa", + "email": "barispasa460@gmail.com", + "github": "https:\/\/github.com\/baris8138\/UstaFlow_litte", + "total_entries": 8, + "filled_entries": 8, + "already_approved": 3, + "newly_approved": 5, + "on_time_count": 1, + "retroactive_count": 7, + "on_time_days": [ + 8 + ], + "retroactive_days": [ + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ], + "retroactive_details": [ + { + "day": 1, + "date": "2026-07-23", + "content_snippet": "Stajın birinci gününde, teknik servis ve saha ekiplerinin iş" + }, + { + "day": 2, + "date": "2026-07-24", + "content_snippet": "Stajın ikinci gününde, UstaFlow Lite projesinin dört haftalı" + }, + { + "day": 3, + "date": "2026-07-27", + "content_snippet": "Git Commit Mesajları:[11:52] (41b7ea7) Merge pull request #5" + }, + { + "day": 4, + "date": "2026-07-28", + "content_snippet": "Git Commit Mesajları:[18:03] (84cc453) docs(brand): add Usta" + }, + { + "day": 5, + "date": "2026-07-29", + "content_snippet": "Git Commit Mesajları:[08:44] (66775b7) feat(database): add u" + }, + { + "day": 6, + "date": "2026-07-30", + "content_snippet": "Git Commit Mesajları:[16:35] (1b468e1) chore(auth): install " + }, + { + "day": 7, + "date": "2026-07-31", + "content_snippet": "UstaFlow Lite projesinde kimlik doğrulama altyapısının genel" + } + ] + } + ] +} \ No newline at end of file diff --git a/scratch/check_this_week.php b/scratch/check_this_week.php new file mode 100644 index 0000000..8a6b131 --- /dev/null +++ b/scratch/check_this_week.php @@ -0,0 +1,80 @@ +make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); + +$weekStart = '2026-08-03'; +$weekEnd = '2026-08-07'; + +$interns = App\Models\CareerApplication::where('type', 'internship') + ->with(['journalEntries' => function($q) { + $q->orderBy('date', 'asc'); + }])->get(); + +echo "=== BU HAFTA (03.08.2026 - 07.08.2026) STAJYER KODLAMA DURUMU ===\n\n"; + +$noCodingActiveInterns = []; +$activeInternsWithCoding = []; +$inactiveInterns = []; + +foreach ($interns as $intern) { + // Check if internship is active in this date range + $start = $intern->internship_start_date; + $end = $intern->internship_end_date; + + // An intern is active this week if internship started on or before Friday 2026-08-07, and ends on or after Monday 2026-08-03 + $isActiveThisWeek = ($start <= $weekEnd && $end >= $weekStart); + + // Filter entries for this week + $thisWeekEntries = []; + foreach ($intern->journalEntries as $entry) { + if ($entry->date >= $weekStart && $entry->date <= $weekEnd) { + if (!empty(trim($entry->content))) { + $thisWeekEntries[] = $entry; + } + } + } + + $internData = [ + 'id' => $intern->id, + 'name' => $intern->name, + 'email' => $intern->email, + 'start_date' => $start, + 'end_date' => $end, + 'is_active' => $isActiveThisWeek, + 'this_week_entry_count' => count($thisWeekEntries), + 'this_week_dates' => array_map(fn($e) => $e->date, $thisWeekEntries), + 'all_entries_count' => $intern->journalEntries->where('content', '!=', '')->count(), + ]; + + if (!$isActiveThisWeek) { + $inactiveInterns[] = $internData; + } else { + if (count($thisWeekEntries) == 0) { + $noCodingActiveInterns[] = $internData; + } else { + $activeInternsWithCoding[] = $internData; + } + } +} + +echo "1. STAJ GÜNÜ AKTİF OLUP BU HAFTA HİÇ KODLAMA / DEFTEN GİRİŞİ YAPMAYANLAR:\n"; +foreach ($noCodingActiveInterns as $i) { + echo "• " . $i['name'] . " (" . $i['email'] . ")\n"; + echo " - Staj Tarihleri: " . $i['start_date'] . " - " . $i['end_date'] . "\n"; + echo " - Bu Hafta Doldurulan Gün Sayısı: 0\n"; + echo " - Toplam (Tüm Staj Boyunca) Giriş Sayısı: " . $i['all_entries_count'] . "\n\n"; +} + +echo "2. STAJ GÜNÜ AKTİF OLUP BU HAFTA KODLAMA / DEFTEN GİRİŞİ YAPANLAR:\n"; +foreach ($activeInternsWithCoding as $i) { + echo "• " . $i['name'] . " (" . $i['email'] . ")\n"; + echo " - Staj Tarihleri: " . $i['start_date'] . " - " . $i['end_date'] . "\n"; + echo " - Bu Hafta Doldurulan Gün Sayısı: " . $i['this_week_entry_count'] . " / 5 gün (Tarihler: " . implode(', ', $i['this_week_dates']) . ")\n\n"; +} + +echo "3. BU HAFTA STAJ DÖNEMİ DIŞINDA / PASİF OLANLAR:\n"; +foreach ($inactiveInterns as $i) { + echo "• " . $i['name'] . " (" . $i['email'] . ") [Tarihler: " . $i['start_date'] . " - " . $i['end_date'] . "]\n"; +} diff --git a/scratch/gen_summaries.php b/scratch/gen_summaries.php new file mode 100644 index 0000000..4233b31 --- /dev/null +++ b/scratch/gen_summaries.php @@ -0,0 +1,31 @@ +make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); + +$interns = App\Models\CareerApplication::where('type', 'internship')->where('status', 'accepted')->with(['journalEntries' => function($q) { + $q->orderBy('day_number', 'asc'); +}])->get(); + +$report = []; + +foreach ($interns as $intern) { + $entriesCount = $intern->journalEntries->count(); + if ($entriesCount == 0) continue; + + $contents = []; + foreach ($intern->journalEntries as $e) { + $contents[] = "Gün " . $e->day_number . " (" . $e->date . "):\n" . mb_substr(strip_tags($e->content), 0, 400); + } + + $report[] = [ + 'name' => $intern->name, + 'repo' => $intern->github_repo, + 'entries_count' => $entriesCount, + 'snippets' => array_slice($contents, -3) // Last 3 entries + ]; +} + +file_put_contents(__DIR__ . '/intern_code_summaries.json', json_encode($report, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); +echo "Generated summaries for " . count($report) . " interns.\n"; diff --git a/scratch/intern_code_summaries.json b/scratch/intern_code_summaries.json new file mode 100644 index 0000000..6d5bd8d --- /dev/null +++ b/scratch/intern_code_summaries.json @@ -0,0 +1,102 @@ +[ + { + "name": "Emre Satıl", + "repo": "https:\/\/github.com\/Emresatil\/Recycle-Rush-VR\/commits\/feature\/save-manager-and-haptics", + "entries_count": 27, + "snippets": [ + "Gün 25 (2026-08-05):\n25. Gün (05.08.2026) Çalışma RaporuAR Mimari Geçişi ve VFX EntegrasyonuBugün, projemizin 2. ay \"Karma Gerçeklik (MR) Planlaması\" doğrultusunda, oyunumuzun temelini VR'dan (Sanal Gerçeklik) AR'a (Karma Gerçeklik) taşımak için kritik mimari değişiklikler ve görsel efekt (VFX) entegrasyonları gerçekleştirdim.1. Proje Yönetimi ve Branch (Dal) YapılandırmasıGüne her zamanki standartlarımıza uyarak başl", + "Gün 26 (2026-08-06):\n26. Gün (06.08.2026) Çalışma Raporu**Konu:** AR Fizik Optimizasyonu, Kapsamlı \"Tunneling\" (İçinden Geçme) Çözümü ve Prefab Mimari TemizliğiBugünkü mesaime, dünkü testlerde gözlemlediğim AR fizik hatalarını ve objelerin zeminden geçme problemlerini çözmek amacıyla GitHub üzerinde **\"AR Physics Stability and Tunneling Bug\"** adında kapsamlı bir Issue (Görev) oluşturarak başladım.İlk olarak Unity AR ", + "Gün 27 (2026-08-07):\n27. Gün (07.08.2026) Çalışma RaporuKonu:AAA Standartlarında Kayıt Mimarisi (SaveManager), Golden Waste Joker Mekaniği ve Dokunsal Geri Bildirim (Haptic) SistemleriBugünkü mesaime, projenin eksik olan temel yapı taşlarını (Core Systems) belirleyip inşa etmek amacıyla GitHub üzerinde **\"Core Systems & Mechanics: Haptics, Save Architecture, and Joker Logic\"** adında kapsamlı bir Issue (Görev) olu" + ] + }, + { + "name": "Ayşenur Ebrar Gündüz", + "repo": "https:\/\/github.com\/AysenurGunduz\/vantage-ai", + "entries_count": 15, + "snippets": [ + "Gün 13 (2026-08-05):\nGüne, her zamanki gibi Daily toplantısında bir önceki günün özetini paylaşarak ve bugünün hedeflerini belirleyerek başladım.Bugünün hedefi, plana göre gecikme riski skorlaması olduğu için önce yeni bir çalışma dalı açtım. Bu branch’i dünküne zincirleme yöntemiyle bağlayarak açtım çünkü dünden kullanmam gereken özellikler vardı.Asıl işe, gecikme riskini hesaplayan bir motor yazarak başladım. Risk s", + "Gün 14 (2026-08-06):\nGüne, her zamanki gibi Daily toplantısında bir önceki günün özetini paylaşarak ve bugünün hedeflerini belirleyerek başladım. Bugünün hedefi, yapay zeka tarafındaki hata yönetimini güçlendirmek olduğu için önce yeni bir çalışma dalı açtım. Bu branch'i de dünküne zincirleme yöntemiyle bağlayarak açtım, çünkü dünkü PR henüz onaylanmamıştı ve bugünkü işler onun üzerine kurulu olacaktı.Asıl işe, modele", + "Gün 15 (2026-08-07):\nGüne, her zamanki gibi Daily toplantısında bir önceki günün özetini paylaşarak ve bugünün hedeflerini belirleyerek başladım. Bugünün hedefi yeni bir özellik eklemek değil, önceki üç günde yazdığım yapay zekâ özelliklerini gerçek senaryolarla test etmek ve demoya hazırlamaktı. Bu yüzden yeni branch'imi dünkü branch'in üzerine zincirleyerek açtım, çünkü test edeceğim şeylerin çoğu tam olarak dünkü d" + ] + }, + { + "name": "Hakan Üzer", + "repo": "https:\/\/github.com\/Emresatil\/Recycle-Rush-VR\/tree\/feature\/ar-golden-spawner-rewards", + "entries_count": 26, + "snippets": [ + "Gün 24 (2026-08-04):\nOpenXR Konfigürasyonu, Scene Understanding Entegrasyonu ve AR Varlık (Asset) Optimizasyonları1. OpenXR Paket ve Özellik Ayarlarının SenkronizasyonuGünün ilk aşamasında, projenin Sanal Gerçeklikten (VR) Karma Gerçekliğe (MR - Passthrough) geçişi kapsamında OpenXR ve Meta XR SDK bağımlılıkları gözden geçirilmiştir. Proje gereksinimlerine uygun olarak OpenXR paket ayarları (OpenXRPackageSettings.asse", + "Gün 25 (2026-08-05):\nBugünkü çalışmalar kapsamında, projemizin VR (Sanal Gerçeklik) ortamından AR (Artırılmış Gerçeklik) ve Karma Gerçeklik (MR) ortamına geçiş sürecinin teknik altyapısı oluşturulmuş, cihaz derleme ayarları yapılandırılmış ve nesne havuzlama ile spawner mimarisi AR ortamına uygun hale getirilmiştir.XR Build Ayarları ve Passthrough Entegrasyonu:Meta Quest cihazlarında çalışacak ilk AR yapısının (Build)", + "Gün 26 (2026-08-06):\nBugünkü çalışmalar kapsamında, AR oyunumuzun atık üretim mekanizmasına seviyeye bağlı nadir obje (Golden Waste) üretim algoritması entegre edilmiş, 3D model ve fizik yapılandırmaları tamamlanmış ve geri dönüşüm kutularının (Bin) oyuncuya skor, Coin ve XP kazandıran event tabanlı ödül sistemi geliştirilmiştir.Golden Waste (Altın Çöp) Mimarisi ve Dinamik RNG Algoritması:PortalSpawner.cs sınıfı üzeri" + ] + }, + { + "name": "Mustafa emre kaplan", + "repo": "https:\/\/github.com\/mustafaemre027\/securewatch-ai", + "entries_count": 19, + "snippets": [ + "Gün 17 (2026-08-05):\nGün 17 – Güvenli Dashboard ve RaporlamaDashboard Backend Servisi ve API EntegrasyonuBugün SecureWatch AI projesinde analiz, güvenlik tespiti ve olay verilerini tek ekranda özetleyen dashboard modülü üzerinde çalıştım. Gerçek veritabanı kayıtlarından analiz durumlarını, tespit sayılarını, risk seviyelerini ve olay bilgilerini hesaplayan backend servisini geliştirdim. Sayım ve gruplandırma işlemleri", + "Gün 18 (2026-08-06):\nGün 18 – Güvenlik Doğrulamaları, Test Regresyonu ve Marka EntegrasyonuBackend Regresyon Testleri ve Sistem BütünlüğüBugün SecureWatch AI projesinde kimlik doğrulama, analiz, saldırı tespiti, olay yönetimi ve dashboard modüllerinin birlikte güvenli çalıştığını doğruladım. Backend tarafında 499 testin tamamı başarıyla geçti. Kaynak kodu, bağımlılıklar ve Alembic migration yapısı kontrol edildi; veri", + "Gün 19 (2026-08-07):\nDocker Ortamı ve Backend KonteynerizasyonuBugün SecureWatch AI projesinin Docker tabanlı çalışma ortamını hazırladım. Docker Desktop ve WSL 2 kurulumlarını doğruladıktan sonra backend servisi için Python 3.12 tabanlı Docker image oluşturdum. FastAPI uygulamasının Uvicorn üzerinden container içinde çalışmasını sağladım ve .dockerignore ile gereksiz ve hassas dosyaların image içerisine alınmasını en" + ] + }, + { + "name": "Doğukan Kalkan", + "repo": "https:\/\/github.com\/Dogukan-klkn\/StockRoute", + "entries_count": 20, + "snippets": [ + "Gün 18 (2026-07-23):\nBugün projenin mobil ayağına başladım. Şimdiye kadar sistem yalnızca web tarayıcısından kullanılabiliyordu; bugünden itibaren saha personelinin telefondan erişebileceği bir uygulama iskeleti oluştu.Başlangıç Durumu ve KurulumMobil klasörü projenin ilk günlerinde temel bir Expo iskeleti olarak oluşturulmuştu, ancak içi büyük ölçüde boştu — navigasyon, tema, kimlik doğrulama ve API bağlantısı yoktu.", + "Gün 19 (2026-07-24):\nBugün mobil uygulamanın iki ana özelliği tamamlandı: barkod tarama ve gelen transferlerin teslim alınması. Barkod işi planlanandan hızlı ilerlediği için, normalde son güne bırakılmış olan transfer teslim ekranı da bugüne çekildi.Barkod TaramaKamera ve izinler. Expo'nun kamera modülü kuruldu. Kamera izni üç ayrı durumda ele alındı: izin henüz istenmemiş, reddedilmiş ama tekrar sorulabilir, kalıcı o", + "Gün 20 (2026-07-27):\nProjenin son geliştirme günü. Bugün iki blok iş yapıldı: mobil uygulamaya gerçek zamanlı senkronizasyon eklendi ve backend tarafında son tutarlılık düzeltmeleri tamamlandı. Ardından tüm sistem sıfırdan uçtan uca doğrulandı.Çalışma SırasıGünü planlarken işleri riskine göre sıraladım. Mobil gerçek zamanlı katman backend'e dokunmuyordu, yani izole bir işti — onu önce yapıp bitirmek güvenliydi. Backen" + ] + }, + { + "name": "Eren Kara", + "repo": "https:\/\/github.com\/erenkara0\/Smart-E-Commerce-Assistant", + "entries_count": 23, + "snippets": [ + "Gün 21 (2026-08-04):\nToday, I implemented an Excel product import API endpoint for the MikroAsistan project. I created issue #84 and a dedicated branch, added multipart file upload support, and developed the POST \/products\/import\/excel endpoint. The endpoint validates .xlsx files, rejects unsupported, empty, or corrupted uploads, and connects the Excel parser with the product import and upsert workflow. I also added a", + "Gün 22 (2026-08-05):\nToday, I migrated the product listing workflow from a JSON-based structure to a database-backed architecture. I created a product repository to retrieve active products from SQLite using SQLAlchemy, added deterministic ordering by product ID, and developed a query service to map database models to the existing API product schema. I updated the GET \/products endpoint to use the database while prese", + "Gün 23 (2026-08-06):\nToday, I migrated the product search workflow from JSON-based indexing to a database-backed vector search architecture. I refactored the in-memory vector store to make it independent from the data source, created a service that retrieves active products from the database, converts them into searchable documents, refreshes the index, and performs product searches. I updated the GET \/products\/search" + ] + }, + { + "name": "ismet can sezgin", + "repo": "https:\/\/github.com\/ismetcansezgin\/EEG-Flow", + "entries_count": 15, + "snippets": [ + "Gün 13 (2026-07-30):\nSubject of Work: Phase 2 Feature Engineering: Signal Epoching Dashboard UI Integration and 3D Tensor VisualizationDetailed Description: Completed the frontend integration of the Signal Epoching Dashboard in frontend\/index.html, frontend\/style.css, and frontend\/app.js. Designed glassmorphic control panels allowing users to adjust window duration (window_size_sec) and slidin", + "Gün 14 (2026-07-31):\nSubject of Work: Feature Engineering Phase: Implementation of Time and Frequency Domain EEG Feature Extraction Engine and Unit TestingDetailed Description: Developed the EEG feature extraction engine in backend\/utils\/features.py to convert 3D epoched signal matrices (n_epochs, n_channels, n_samples) into 2D tabular feature matrices (n_epochs, n_features) for", + "Gün 15 (2026-08-03):\nSubject of Work: Feature Engine REST API Endpoint, Alpha Wave ERD Validation Dashboard, and System Styling IntegrationDetailed Description: Developed the POST \/api\/extract-features REST API endpoint in backend\/main.py to bridge the sliding window epoching and 144-dimensional feature extraction modules. The endpoint processes CSV uploads, validates sliding window param" + ] + }, + { + "name": "Alesam Baath", + "repo": "https:\/\/github.com\/isambais\/SmartHome-EnergyRL", + "entries_count": 18, + "snippets": [ + "Gün 16 (2026-08-04):\nGün 16 — Streamlit BMS Dashboard & Landing Page1. Bugün Ne Yapıldı?Projenin kullanıcıya yönelik katmanı tamamlandı: Streamlit tabanlı tam bir Bina Yönetim Sistemi (BMS) dashboard'u ve projeyi tanıtan bir landing page geliştirildi. Gereksiz klasörler (frontend\/, backend\/) proje ağacından temizlendi; .gitignore'a node_modules\/ eklendi.2. Dashboard Mimarisi2.1 Klasör Yapısıdashboard\/├── app.py&nb", + "Gün 17 (2026-08-05):\nGün 17 — 3D Bina Yenileme & Dashboard UI Redesign1. Bugün Ne Yapıldı?Dün oluşturulan Streamlit dashboard'unun görsel kalitesi ve kullanıcı deneyimi köklü biçimde iyileştirildi. Three.js ile yazılmış 3D bina görselleştirmesi tamamen sıfırdan yeniden yazıldı; gerçekçi mimari detaylar, dinamik gökyüzü sistemi ve tüm bina sistemlerinin 3D yansıması eklendi. Dashboard arayüzü landing page tasarımıy", + "Gün 18 (2026-08-06):\nGün 18 — FastAPI Backend & React Frontend1. Bugün Ne Yapıldı?Projenin ağ katmanı yazıldı. Streamlit prototipinin yerini üretim kalitesinde bir istemci-sunucu mimarisi aldı: FastAPI ile yazılmış bir REST API backend ve React + Vite ile yazılmış 7 sayfalık bir web uygulaması. Backend, daha önceki günlerde geliştirilen simülasyon motorunu (dashboard\/core) yeniden kullanıyor; bu sayede hiçbir simü" + ] + }, + { + "name": "Faruk Tazeoğlu", + "repo": "https:\/\/github.com\/Faruk-T\/baret", + "entries_count": 17, + "snippets": [ + "Gün 15 (2026-07-31):\nBugün Baret projesinin canlı teslim ve kapanış günüydü. Uygulamayı Expo Go QR’sız kullanılabilecek şekilde EAS ile Android APK olarak build aldım (preview profili, com.baret.app). Supabase şema kontrollerini yaptım, test verilerini temizleyip demo hesaplarını yeniden kurdum ve alıcı–satıcı–admin senaryolarını uçtan uca doğruladım (sipariş, teslim kodu, iletişim kilidi, komisyon, lisans).Kullanılab", + "Gün 16 (2026-08-03):\nday-21-esn-interest branch’i üzerinden go-live baseline’a ESN interest milestone commit’i atıldı.Mevcut monetizasyon ve operasyon katmanı gözden geçirildi:Sipariş bazlı flat komisyon modeliAdmin finans \/ tahsilat \/ mağaza sağlığı ekranlarıSatıcı sipariş, stok, lisans ve bildirim akışlarıLanding sayfası + APK indirme hattıKomisyon modelinin ileride operasyonel ve hukuki risk yaratabileceği değerlen", + "Gün 17 (2026-08-04):\nGünün amacıSipariş komisyonunu kaldırıp satıcıları Basic \/ Pro \/ Özel abonelik planlarına geçirmek; admin yönetimi, satıcı paneli, veritabanı kuralları ve web sitesini buna göre güncellemek; APK ile test edilebilir hale getirmek.1) Veritabanı \/ iş kurallarıdocs\/seller-plans-setup.sql hazırlandı ve uygulandı:create_order_commission no-op yapıldı → yeni siparişlerde komisyon satırı oluşmuyor.seller_" + ] + }, + { + "name": "Barış Paşa", + "repo": "https:\/\/github.com\/baris8138\/UstaFlow_litte", + "entries_count": 8, + "snippets": [ + "Gün 6 (2026-07-30):\nGit Commit Mesajları:[16:35] (1b468e1) chore(auth): install authentication dependencies[17:07] (03e51c2) feat(auth): add password hashing service[17:13] (a0c735e) feat(auth): add credentials validation schema[17:19] (f29a04a) feat(auth): add user authentication service[17:29] (bcffb20) feat(auth): configure credentials authentication[17:36] (4301d99) docs(auth): document authentication environment", + "Gün 7 (2026-07-31):\nUstaFlow Lite projesinde kimlik doğrulama altyapısının genel kontrollerini gerçekleştirdim. Açılan Pull Request ve reviewer süreçlerini takip ederek branch yapısını kontrol ettim. Sonraki geliştirme adımı olan gerçek giriş sayfası ve oturum yönlendirme akışı için teknik planlama yaptım.Bunu kutuya yazıp Deftere Kaydet diyebilirsin. Commit olmaması, o gün çalışma yapılmadığı anlamına gelmez.", + "Gün 8 (2026-08-03):\nUstaFlow Lite projesinde güvenli çıkış işlemi ile ADMIN ve TECHNICIAN rollerine göre erişim kontrollerini tamamladım. Yetkisiz erişim, oturum yönlendirmesi ve korumalı sayfa testlerini gerçekleştirdim. Ardından müşteri yönetimi modülüne başlayarak Prisma şemasına Customer modeli ve müşteri türlerini ekledim; migration işlemini uygulayıp TypeScript, lint ve production build kontrollerini başarıyla " + ] + } +] \ No newline at end of file diff --git a/scratch/output.txt b/scratch/output.txt new file mode 100644 index 0000000..f5ae57a --- /dev/null +++ b/scratch/output.txt @@ -0,0 +1,110 @@ +================================================== +İSİM: Emre Satıl | REPO: https://github.com/Emresatil/Recycle-Rush-VR/commits/feature/save-manager-and-haptics +Gün 25 (2026-08-05): +25. Gün (05.08.2026) Çalışma RaporuAR Mimari Geçişi ve VFX EntegrasyonuBugün, projemizin 2. ay "Karma Gerçeklik (MR) Planlaması" doğrultusunda, oyunumuzun temelini VR'dan (Sanal Gerçeklik) AR'a (Karma Gerçeklik) taşımak için kritik mimari değişiklikler ve görsel efekt (VFX) entegrasyonları gerçekleştirdim.1. Proje Yönetimi ve Branch (Dal) YapılandırmasıGüne her zamanki standartlarımıza uyarak başl +----------------------- +Gün 26 (2026-08-06): +26. Gün (06.08.2026) Çalışma Raporu**Konu:** AR Fizik Optimizasyonu, Kapsamlı "Tunneling" (İçinden Geçme) Çözümü ve Prefab Mimari TemizliğiBugünkü mesaime, dünkü testlerde gözlemlediğim AR fizik hatalarını ve objelerin zeminden geçme problemlerini çözmek amacıyla GitHub üzerinde **"AR Physics Stability and Tunneling Bug"** adında kapsamlı bir Issue (Görev) oluşturarak başladım.İlk olarak Unity AR +----------------------- +Gün 27 (2026-08-07): +27. Gün (07.08.2026) Çalışma RaporuKonu:AAA Standartlarında Kayıt Mimarisi (SaveManager), Golden Waste Joker Mekaniği ve Dokunsal Geri Bildirim (Haptic) SistemleriBugünkü mesaime, projenin eksik olan temel yapı taşlarını (Core Systems) belirleyip inşa etmek amacıyla GitHub üzerinde **"Core Systems & Mechanics: Haptics, Save Architecture, and Joker Logic"** adında kapsamlı bir Issue (Görev) olu +----------------------- +================================================== +İSİM: Ayşenur Ebrar Gündüz | REPO: https://github.com/AysenurGunduz/vantage-ai +Gün 13 (2026-08-05): +Güne, her zamanki gibi Daily toplantısında bir önceki günün özetini paylaşarak ve bugünün hedeflerini belirleyerek başladım.Bugünün hedefi, plana göre gecikme riski skorlaması olduğu için önce yeni bir çalışma dalı açtım. Bu branch’i dünküne zincirleme yöntemiyle bağlayarak açtım çünkü dünden kullanmam gereken özellikler vardı.Asıl işe, gecikme riskini hesaplayan bir motor yazarak başladım. Risk s +----------------------- +Gün 14 (2026-08-06): +Güne, her zamanki gibi Daily toplantısında bir önceki günün özetini paylaşarak ve bugünün hedeflerini belirleyerek başladım. Bugünün hedefi, yapay zeka tarafındaki hata yönetimini güçlendirmek olduğu için önce yeni bir çalışma dalı açtım. Bu branch'i de dünküne zincirleme yöntemiyle bağlayarak açtım, çünkü dünkü PR henüz onaylanmamıştı ve bugünkü işler onun üzerine kurulu olacaktı.Asıl işe, modele +----------------------- +Gün 15 (2026-08-07): +Güne, her zamanki gibi Daily toplantısında bir önceki günün özetini paylaşarak ve bugünün hedeflerini belirleyerek başladım. Bugünün hedefi yeni bir özellik eklemek değil, önceki üç günde yazdığım yapay zekâ özelliklerini gerçek senaryolarla test etmek ve demoya hazırlamaktı. Bu yüzden yeni branch'imi dünkü branch'in üzerine zincirleyerek açtım, çünkü test edeceğim şeylerin çoğu tam olarak dünkü d +----------------------- +================================================== +İSİM: Hakan Üzer | REPO: https://github.com/Emresatil/Recycle-Rush-VR/tree/feature/ar-golden-spawner-rewards +Gün 24 (2026-08-04): +OpenXR Konfigürasyonu, Scene Understanding Entegrasyonu ve AR Varlık (Asset) Optimizasyonları1. OpenXR Paket ve Özellik Ayarlarının SenkronizasyonuGünün ilk aşamasında, projenin Sanal Gerçeklikten (VR) Karma Gerçekliğe (MR - Passthrough) geçişi kapsamında OpenXR ve Meta XR SDK bağımlılıkları gözden geçirilmiştir. Proje gereksinimlerine uygun olarak OpenXR paket ayarları (OpenXRPackageSettings.asse +----------------------- +Gün 25 (2026-08-05): +Bugünkü çalışmalar kapsamında, projemizin VR (Sanal Gerçeklik) ortamından AR (Artırılmış Gerçeklik) ve Karma Gerçeklik (MR) ortamına geçiş sürecinin teknik altyapısı oluşturulmuş, cihaz derleme ayarları yapılandırılmış ve nesne havuzlama ile spawner mimarisi AR ortamına uygun hale getirilmiştir.XR Build Ayarları ve Passthrough Entegrasyonu:Meta Quest cihazlarında çalışacak ilk AR yapısının (Build) +----------------------- +Gün 26 (2026-08-06): +Bugünkü çalışmalar kapsamında, AR oyunumuzun atık üretim mekanizmasına seviyeye bağlı nadir obje (Golden Waste) üretim algoritması entegre edilmiş, 3D model ve fizik yapılandırmaları tamamlanmış ve geri dönüşüm kutularının (Bin) oyuncuya skor, Coin ve XP kazandıran event tabanlı ödül sistemi geliştirilmiştir.Golden Waste (Altın Çöp) Mimarisi ve Dinamik RNG Algoritması:PortalSpawner.cs sınıfı üzeri +----------------------- +================================================== +İSİM: Mustafa emre kaplan | REPO: https://github.com/mustafaemre027/securewatch-ai +Gün 17 (2026-08-05): +Gün 17 – Güvenli Dashboard ve RaporlamaDashboard Backend Servisi ve API EntegrasyonuBugün SecureWatch AI projesinde analiz, güvenlik tespiti ve olay verilerini tek ekranda özetleyen dashboard modülü üzerinde çalıştım. Gerçek veritabanı kayıtlarından analiz durumlarını, tespit sayılarını, risk seviyelerini ve olay bilgilerini hesaplayan backend servisini geliştirdim. Sayım ve gruplandırma işlemleri +----------------------- +Gün 18 (2026-08-06): +Gün 18 – Güvenlik Doğrulamaları, Test Regresyonu ve Marka EntegrasyonuBackend Regresyon Testleri ve Sistem BütünlüğüBugün SecureWatch AI projesinde kimlik doğrulama, analiz, saldırı tespiti, olay yönetimi ve dashboard modüllerinin birlikte güvenli çalıştığını doğruladım. Backend tarafında 499 testin tamamı başarıyla geçti. Kaynak kodu, bağımlılıklar ve Alembic migration yapısı kontrol edildi; veri +----------------------- +Gün 19 (2026-08-07): +Docker Ortamı ve Backend KonteynerizasyonuBugün SecureWatch AI projesinin Docker tabanlı çalışma ortamını hazırladım. Docker Desktop ve WSL 2 kurulumlarını doğruladıktan sonra backend servisi için Python 3.12 tabanlı Docker image oluşturdum. FastAPI uygulamasının Uvicorn üzerinden container içinde çalışmasını sağladım ve .dockerignore ile gereksiz ve hassas dosyaların image içerisine alınmasını en +----------------------- +================================================== +İSİM: Doğukan Kalkan | REPO: https://github.com/Dogukan-klkn/StockRoute +Gün 18 (2026-07-23): +Bugün projenin mobil ayağına başladım. Şimdiye kadar sistem yalnızca web tarayıcısından kullanılabiliyordu; bugünden itibaren saha personelinin telefondan erişebileceği bir uygulama iskeleti oluştu.Başlangıç Durumu ve KurulumMobil klasörü projenin ilk günlerinde temel bir Expo iskeleti olarak oluşturulmuştu, ancak içi büyük ölçüde boştu — navigasyon, tema, kimlik doğrulama ve API bağlantısı yoktu. +----------------------- +Gün 19 (2026-07-24): +Bugün mobil uygulamanın iki ana özelliği tamamlandı: barkod tarama ve gelen transferlerin teslim alınması. Barkod işi planlanandan hızlı ilerlediği için, normalde son güne bırakılmış olan transfer teslim ekranı da bugüne çekildi.Barkod TaramaKamera ve izinler. Expo'nun kamera modülü kuruldu. Kamera izni üç ayrı durumda ele alındı: izin henüz istenmemiş, reddedilmiş ama tekrar sorulabilir, kalıcı o +----------------------- +Gün 20 (2026-07-27): +Projenin son geliştirme günü. Bugün iki blok iş yapıldı: mobil uygulamaya gerçek zamanlı senkronizasyon eklendi ve backend tarafında son tutarlılık düzeltmeleri tamamlandı. Ardından tüm sistem sıfırdan uçtan uca doğrulandı.Çalışma SırasıGünü planlarken işleri riskine göre sıraladım. Mobil gerçek zamanlı katman backend'e dokunmuyordu, yani izole bir işti — onu önce yapıp bitirmek güvenliydi. Backen +----------------------- +================================================== +İSİM: Eren Kara | REPO: https://github.com/erenkara0/Smart-E-Commerce-Assistant +Gün 21 (2026-08-04): +Today, I implemented an Excel product import API endpoint for the MikroAsistan project. I created issue #84 and a dedicated branch, added multipart file upload support, and developed the POST /products/import/excel endpoint. The endpoint validates .xlsx files, rejects unsupported, empty, or corrupted uploads, and connects the Excel parser with the product import and upsert workflow. I also added a +----------------------- +Gün 22 (2026-08-05): +Today, I migrated the product listing workflow from a JSON-based structure to a database-backed architecture. I created a product repository to retrieve active products from SQLite using SQLAlchemy, added deterministic ordering by product ID, and developed a query service to map database models to the existing API product schema. I updated the GET /products endpoint to use the database while prese +----------------------- +Gün 23 (2026-08-06): +Today, I migrated the product search workflow from JSON-based indexing to a database-backed vector search architecture. I refactored the in-memory vector store to make it independent from the data source, created a service that retrieves active products from the database, converts them into searchable documents, refreshes the index, and performs product searches. I updated the GET /products/search +----------------------- +================================================== +İSİM: ismet can sezgin | REPO: https://github.com/ismetcansezgin/EEG-Flow +Gün 13 (2026-07-30): +Subject of Work: Phase 2 Feature Engineering: Signal Epoching Dashboard UI Integration and 3D Tensor VisualizationDetailed Description: Completed the frontend integration of the Signal Epoching Dashboard in frontend/index.html, frontend/style.css, and frontend/app.js. Designed glassmorphic control panels allowing users to adjust window duration (window_size_sec) and slidin +----------------------- +Gün 14 (2026-07-31): +Subject of Work: Feature Engineering Phase: Implementation of Time and Frequency Domain EEG Feature Extraction Engine and Unit TestingDetailed Description: Developed the EEG feature extraction engine in backend/utils/features.py to convert 3D epoched signal matrices (n_epochs, n_channels, n_samples) into 2D tabular feature matrices (n_epochs, n_features) for +----------------------- +Gün 15 (2026-08-03): +Subject of Work: Feature Engine REST API Endpoint, Alpha Wave ERD Validation Dashboard, and System Styling IntegrationDetailed Description: Developed the POST /api/extract-features REST API endpoint in backend/main.py to bridge the sliding window epoching and 144-dimensional feature extraction modules. The endpoint processes CSV uploads, validates sliding window param +----------------------- +================================================== +İSİM: Alesam Baath | REPO: https://github.com/isambais/SmartHome-EnergyRL +Gün 16 (2026-08-04): +Gün 16 — Streamlit BMS Dashboard & Landing Page1. Bugün Ne Yapıldı?Projenin kullanıcıya yönelik katmanı tamamlandı: Streamlit tabanlı tam bir Bina Yönetim Sistemi (BMS) dashboard'u ve projeyi tanıtan bir landing page geliştirildi. Gereksiz klasörler (frontend/, backend/) proje ağacından temizlendi; .gitignore'a node_modules/ eklendi.2. Dashboard Mimarisi2.1 Klasör Yapısıdashboard/├── app.py&nb +----------------------- +Gün 17 (2026-08-05): +Gün 17 — 3D Bina Yenileme & Dashboard UI Redesign1. Bugün Ne Yapıldı?Dün oluşturulan Streamlit dashboard'unun görsel kalitesi ve kullanıcı deneyimi köklü biçimde iyileştirildi. Three.js ile yazılmış 3D bina görselleştirmesi tamamen sıfırdan yeniden yazıldı; gerçekçi mimari detaylar, dinamik gökyüzü sistemi ve tüm bina sistemlerinin 3D yansıması eklendi. Dashboard arayüzü landing page tasarımıy +----------------------- +Gün 18 (2026-08-06): +Gün 18 — FastAPI Backend & React Frontend1. Bugün Ne Yapıldı?Projenin ağ katmanı yazıldı. Streamlit prototipinin yerini üretim kalitesinde bir istemci-sunucu mimarisi aldı: FastAPI ile yazılmış bir REST API backend ve React + Vite ile yazılmış 7 sayfalık bir web uygulaması. Backend, daha önceki günlerde geliştirilen simülasyon motorunu (dashboard/core) yeniden kullanıyor; bu sayede hiçbir simü +----------------------- +================================================== +İSİM: Faruk Tazeoğlu | REPO: https://github.com/Faruk-T/baret +Gün 15 (2026-07-31): +Bugün Baret projesinin canlı teslim ve kapanış günüydü. Uygulamayı Expo Go QR’sız kullanılabilecek şekilde EAS ile Android APK olarak build aldım (preview profili, com.baret.app). Supabase şema kontrollerini yaptım, test verilerini temizleyip demo hesaplarını yeniden kurdum ve alıcı–satıcı–admin senaryolarını uçtan uca doğruladım (sipariş, teslim kodu, iletişim kilidi, komisyon, lisans).Kullanılab +----------------------- +Gün 16 (2026-08-03): +day-21-esn-interest branch’i üzerinden go-live baseline’a ESN interest milestone commit’i atıldı.Mevcut monetizasyon ve operasyon katmanı gözden geçirildi:Sipariş bazlı flat komisyon modeliAdmin finans / tahsilat / mağaza sağlığı ekranlarıSatıcı sipariş, stok, lisans ve bildirim akışlarıLanding sayfası + APK indirme hattıKomisyon modelinin ileride operasyonel ve hukuki risk yaratabileceği değerlen +----------------------- +Gün 17 (2026-08-04): +Günün amacıSipariş komisyonunu kaldırıp satıcıları Basic / Pro / Özel abonelik planlarına geçirmek; admin yönetimi, satıcı paneli, veritabanı kuralları ve web sitesini buna göre güncellemek; APK ile test edilebilir hale getirmek.1) Veritabanı / iş kurallarıdocs/seller-plans-setup.sql hazırlandı ve uygulandı:create_order_commission no-op yapıldı → yeni siparişlerde komisyon satırı oluşmuyor.seller_ +----------------------- +================================================== +İSİM: Barış Paşa | REPO: https://github.com/baris8138/UstaFlow_litte +Gün 6 (2026-07-30): +Git Commit Mesajları:[16:35] (1b468e1) chore(auth): install authentication dependencies[17:07] (03e51c2) feat(auth): add password hashing service[17:13] (a0c735e) feat(auth): add credentials validation schema[17:19] (f29a04a) feat(auth): add user authentication service[17:29] (bcffb20) feat(auth): configure credentials authentication[17:36] (4301d99) docs(auth): document authentication environment +----------------------- +Gün 7 (2026-07-31): +UstaFlow Lite projesinde kimlik doğrulama altyapısının genel kontrollerini gerçekleştirdim. Açılan Pull Request ve reviewer süreçlerini takip ederek branch yapısını kontrol ettim. Sonraki geliştirme adımı olan gerçek giriş sayfası ve oturum yönlendirme akışı için teknik planlama yaptım.Bunu kutuya yazıp Deftere Kaydet diyebilirsin. Commit olmaması, o gün çalışma yapılmadığı anlamına gelmez. +----------------------- +Gün 8 (2026-08-03): +UstaFlow Lite projesinde güvenli çıkış işlemi ile ADMIN ve TECHNICIAN rollerine göre erişim kontrollerini tamamladım. Yetkisiz erişim, oturum yönlendirmesi ve korumalı sayfa testlerini gerçekleştirdim. Ardından müşteri yönetimi modülüne başlayarak Prisma şemasına Customer modeli ve müşteri türlerini ekledim; migration işlemini uygulayıp TypeScript, lint ve production build kontrollerini başarıyla +----------------------- diff --git a/scratch/repo_analysis_data.json b/scratch/repo_analysis_data.json new file mode 100644 index 0000000..ad62129 --- /dev/null +++ b/scratch/repo_analysis_data.json @@ -0,0 +1,102 @@ +{ + "Emre Satıl": { + "id": 18, + "email": "emresatil72@gmail.com", + "repo": "https:\/\/github.com\/Emresatil\/Recycle-Rush-VR\/commits\/feature\/save-manager-and-haptics", + "github_username": "Emresatil", + "total_entries": 27, + "commits_count": 0, + "commits_sample": [], + "full_text": "\n--- DAY 1 (2026-07-01) ---\n
1. Gün (01.07.2026) Çalışma Raporu<\/strong><\/p> Bugün staj sürecimin ilk günüydü ve projemizin teknik altyapısını kurarak işe koyuldum. \"Recycle-Rush-VR\" isimli VR tabanlı geri dönüşüm projemiz için ilk adımları attım.<\/p> Kazanım:<\/strong> Bugün, bir yazılım projesinde kod yazmaktan çok, o projenin nasıl disiplinli bir şekilde yönetileceğini öğrendim. Branch ve Pull Request mantığını kullanarak ana kodu korumayı ve işlerimi planlı bir şekilde Kanban panosunda takip etmeyi pratik ettim.<\/p>\n\n--- DAY 2 (2026-07-02) ---\n 2. Gün (02.07.2026) Çalışma Raporu<\/strong><\/p> Bugün proje için Meta Quest Android build ayarlarını yaptım. Unity projesini Android platformuna geçirerek gerekli yapılandırmaları kontrol ettim. Android Build Support, OpenJDK ve Android SDK\/NDK kurulumlarını doğruladım. Daha sonra Player Settings bölümünde Package Name, API Level, IL2CPP ve ARM64 ayarlarını Meta Quest'e uygun şekilde düzenledim.<\/p> OpenXR ve Meta Quest XR ayarlarını kontrol ederek gerekli özelliklerin aktif olduğunu doğruladım. Quality ve Graphics ayarlarını inceleyip Android platformu için uygun yapılandırmayı kullandım.<\/p> Ayrıca proje dokümantasyonunu düzenledim. Yaptığım değişiklikleri Git üzerinde yeni bir branch oluşturarak kaydettim. Değişiklikleri commit ettikten sonra GitHub'a gönderip Pull Request oluşturarak kod incelemesine sundum.<\/p>\n\n--- DAY 3 (2026-07-03) ---\n 3. Gün (03.07.2026) Çalışma Raporu<\/strong><\/p> Bugün proje için kullanılacak Low-Poly modelleri araştırdım ve projeye uygun ücretsiz kaynaklardan indirdim. İndirdiğim modelleri Unity projesine eklemeden önce düzenli bir klasör yapısı oluşturdum. Bu kapsamda Assets\/ThirdParty\/Models<\/strong> dizini altında Environment<\/strong>, Props<\/strong> ve Waste<\/strong> klasörlerini oluşturarak modelleri kullanım alanlarına göre kategorilere ayırdım.<\/p> Environment<\/strong> klasörüne fabrika ortamında kullanılacak çevre, zemin, platform ve konveyör bant modellerini, Props<\/strong> klasörüne varil, palet, koli ve benzeri yardımcı nesneleri, Waste<\/strong> klasörüne ise geri dönüştürülebilir atık modellerini yerleştirdim. Bu sayede proje içerisindeki üçüncü taraf varlıkları daha düzenli ve yönetilebilir bir yapıda topladım.<\/p> Daha sonra modelleri Unity projesine import ederek sahne içerisinde kontrollerini yaptım. Model ve materyalleri inceleyerek karşılaştığım uyumluluk sorunlarını gidermeye çalıştım ve gerekli materyal ayarlarını proje ile uyumlu hale getirmek için düzenledim.<\/p> Ayrıca GitHub üzerinde bu çalışma için ayrı bir görev (Issue) oluşturdum. Oluşturduğum görev üzerinden yeni bir branch açarak çalışmaya başladım ve Git akışına uygun şekilde commit ve Pull Request süreci için hazırlık yaptım.<\/p> Git Commit Mesajları:<\/strong><\/p> 4. Gün (04.07.2026) Çalışma Raporu<\/strong><\/p> Bugün oyunun ana sahnesi olan <\/span>MainGame<\/strong> üzerinde blockout çalışmasını gerçekleştirdim. İlk olarak oyun alanının temel yapısını oluşturmak için zemin, duvarlar, taşıma bandı ve geri dönüşüm kutularının yerleşimini planlayarak sahneye ekledim. Oyuncunun hareket edeceği alanı daha rahat görebilmek amacıyla nesnelerin konumlarını ve ölçeklerini düzenledim. Ayrıca oyuncunun oyuna başlayacağı <\/span>SpawnArea<\/strong>, atıkların oluşacağı <\/span>WasteSpawner<\/strong> ve geri dönüşüm işleminin gerçekleştirileceği <\/span>DropZone<\/strong> nesnelerini oluşturarak sahnede uygun konumlara yerleştirdim.<\/span><\/p> Daha sonra VR altyapısını hazırlamak amacıyla <\/span>XR Interaction Toolkit<\/strong> paketi içerisindeki <\/span>Starter Assets<\/strong> paketini projeye kurdum. Kurulum tamamlandıktan sonra <\/span>XR Origin<\/strong> bileşenini sahneye ekleyerek oyuncu kamerası ve kontrolcü yapısını oluşturdum. XR Origin hiyerarşisini inceleyerek kamera, sol ve sağ kontrolcü nesnelerinin doğru şekilde oluşturulduğunu kontrol ettim. Kurulum sırasında gerekli ayarları gözden geçirerek XR bileşenlerinin sorunsuz çalışmasını sağladım.<\/span><\/p> Son olarak oluşturduğum sahneyi Unity üzerinde test ederek nesnelerin yerleşimini, oyuncunun başlangıç konumunu ve XR Origin yapısının doğru çalışıp çalışmadığını kontrol ettim. Yapılan çalışmalar sonucunda ana oyun sahnesinin temel yapısını ve VR geliştirme altyapısını bir sonraki geliştirme aşamasına hazır hale getirdim.<\/span><\/p> Git Commit Mesajları:<\/strong><\/p> 5. Gün (07.07.2026) Çalışma Raporu<\/strong><\/p> Bugün, Recycle Rush VR projesinin temel oyun döngüsünün (core loop) ilk adımı olan taşıma bandı sistemi üzerine çalıştım. Oyuncunun etkileşime gireceği atıkların sahneye sürekli ve düzenli bir şekilde akmasını sağlayacak bu sistemin pürüzsüz çalışması çok önemliydi. Özellikle VR projelerinde objelerin takılarak hareket etmesi deneyimi çok bozduğu için optimizasyona dikkat etmem gerekiyordu.<\/p> Geliştirmeye başlarken öncelikle proje hiyerarşisini düzenli tutmak adına Assets\/_App\/Scripts\/Environment dizini altında BeltMovement.cs adında yeni bir script oluşturdum. Başlangıçta objeleri sadece Update döngüsü içinde transform.position değiştirerek kaydırmayı denedim. Fakat XR Device Simulator ile yaptığım ilk testlerde, objelerin bant üzerinde ilerlerken ciddi şekilde titrediğini (jittering) ve takılmalar yaşadığını fark ettim.<\/p> Bu titreme sorununu çözmek için hareketi tamamen Unity'nin fizik motoruna devretmeye karar verdim. Sahnedeki taşıma bandı objesine bir Rigidbody komponenti ekledim ve yerçekiminden etkilenmemesi için isKinematic özelliğini aktif ettim. Kod tarafında ise hareketi Update yerine fizik hesaplamalarının yapıldığı FixedUpdate fonksiyonuna taşıdım. Bandı kod ile çok küçük bir miktar ileri hareket ettirip, hemen ardından Rigidbody.MovePosition komutuyla tekrar eski konumuna çeken bir mantık kurdum. Bu sayede bant görsel olarak sabit kalsa da, fizik motoru üzerinde bir hareket algıladığı için bandın üzerine düşen atık objeleri sürtünme kuvvetiyle pürüzsüzce ileriye doğru kaydırmaya başladı.<\/p> Scriptin yazımını tamamladıktan sonra sahnede ilgili objeye atamasını yaptım ve hız değişkenlerini (speed) Unity Inspector üzerinden ayarlanabilir hale getirdim. Son olarak VR başlığını sürekli tak-çıkar yapıp zaman kaybetmemek adına XR Device Simulator kullanarak simülasyonu çalıştırdım. Yaptığım testler sonucunda objelerin bant üzerinde hiçbir titreme yapmadan, akıcı bir şekilde oyuncuya doğru aktığını doğruladım.<\/p> Günün ikinci yarısında, projenin sadece koddan ibaret olmaması ve sürdürülebilir olması adına dokümantasyon çalışmalarına ağırlık verdim. GitHub repomuzda Wiki sekmesini aktif ederek oyunun \"Kurulum\", \"Kullanılan Teknolojiler\", \"Proje Yapısı\" ve \"Proje Hakkında\" gibi temel sayfalarını oluşturdum. Geliştirdiğimiz mimariyi ve sistem gereksinimlerini buraya detaylıca işledim.<\/p> Son olarak süreç yönetimimizi daha da profesyonelleştirmek için GitHub Discussions sekmesini kullanmaya başladım. Burada \"Sprint 1 Retrospective\" (1. Sprint Değerlendirmesi) adında bir tartışma başlığı açtım. Geride bıraktığımız ilk sprintte neleri iyi yaptığımızı, nerelerde zorlandığımızı (örneğin fizikteki titreme sorunu) ve bir sonraki sprintte nasıl daha hızlı ilerleyebileceğimizi değerlendirdik. Gerek Kanban board kullanımı, gerekse PR (Pull Request) ve Issue eşleştirmeleriyle proje yönetimi açısından oldukça verimli ve disiplinli bir günü geride bırakmış olduk.<\/p> Git Commit Mesajları:<\/strong><\/p> 6. Gün (08.07.2026) Çalışma Raporu<\/strong><\/p> Bugün, Recycle Rush VR projesinde oyuncunun taşıma bandından alıp geri dönüşüm kutularına atacağı temel atık objelerinin oyun motoruna entegrasyonunu gerçekleştirdim. Takım içi görev dağılımımız kapsamında ben Plastik ve Kağıt atıkların kurulumunu üstlenirken, takım arkadaşım Cam ve Metal atıklar üzerinde çalıştı. Paralel çalışarak hem süreci hızlandırdık hem de GitHub üzerinde aynı dosyalara müdahale etmekten kaynaklanabilecek \"merge conflict\" (çakışma) durumlarının önüne geçtik.<\/span><\/p> Çalışmalarıma başlamadan önce staj hocamın verdiği çok değerli bir tavsiyeyi iş akışıma dahil ettim: Gün sonu devasa tek bir commit atmak yerine, yapılan her anlamlı değişikliği küçük ve takip edilebilir parçalar halinde (Atomic Commits) versiyon kontrol sistemine göndermek. Bu prensiple bugünkü görevimi iki mantıksal aşamaya böldüm.<\/span><\/p> İlk aşamada oyunun atık ayrıştırma (sorting) algoritmasının altyapısını kurdum. Oyuncunun elindeki objeyi doğru kutuya attığını kod üzerinden algılayabilmemiz için Unity Project Settings üzerinden Plastic, Paper, Glass ve Metal etiketlerini (Tag) sisteme tanımladım. Ardından Plastik atıklara odaklandım. Sahip olduğumuz 3D FBX modellerini (su şişesi, şampuan kutusu vb.) doğrudan prefab yapmanın ileride model güncellemelerinde referans sorunlarına (Missing Prefab) yol açabileceğini biliyordum. Bu yüzden modelleri önce sahneye alıp Prefab > Unpack Completely komutuyla orijinal model bağlarını tamamen kopardım. Ardından her birine, plastiğin hafifliğini simüle edecek şekilde kütlesi (mass) 0.5 olan bir Rigidbody ekledim. VR'da performans kaybı yaşamamak ve objeyi tutma (grab) etkileşimlerini pürüzsüz kılmak adına, objelerin tam şeklini saran Mesh Collider bileşeni ekleyip Convex özelliğini aktif ettim. Bu 5 farklı plastik modeli kendi klasörümüzde bağımsız \"Original Prefab\" haline getirdikten sonra, bu değişiklikleri daha önce oluşturduğum Tag tanımlamalarıyla birlikte aynı commit içerisinde kayıt altına aldım.<\/span><\/p> Son aşamada ise aynı işlemleri Kağıt objeleri (karton kutu, defter, parşömen vb.) için uyguladım. Kağıdın plastiğe göre daha hafif olması gerektiğinden kütle değerlerini 0.2 olarak ayarladım. Bu çalışmayı ayrı bir commit ile kayıt altına aldım. Günün sonunda, temiz ve okunabilir bir Git geçmişiyle (history) kodlarımı uzak sunucuya (origin) Push ettim ve takım arkadaşımın incelemesi için bir Pull Request (PR) açtım.<\/span><\/p> Bugünkü çalışmalarım sayesinde hem Unity'de \"Nested Prefab\" (içe içe şablon) mantığının risklerini öğrenip doğru şablonlamayı (Solid Blue Box) kavradım, hem de versiyon kontrol sistemini sadece bir yedekleme aracı olarak değil, geliştirme sürecinin detaylı bir günlüğü olarak kullanma alışkanlığı kazandım.<\/span><\/p> Git Commit Mesajları:<\/strong><\/p> 7. Gün (09.07.2026) Çalışma Raporu<\/strong><\/p> Bugün, Recycle Rush VR projesinin temel oynanış hissini (Game Feel) doğrudan etkileyecek olan en önemli VR mekaniğini, yani atıkları banttan alıp fırlatma sistemini geliştirdim. Dün temel fizik ayarlarını (Rigidbody, Collider) tamamladığımız Plastik ve Kağıt atık prefab'larını, bugün oyuncunun sanal elleriyle etkileşime girebileceği hale getirdim.<\/p> İlk aşamada kendi branch'im üzerinden çalışarak tüm plastik ve kağıt objelere Unity XR Interaction Toolkit'in temel bileşeni olan XR Grab Interactable scriptini entegre ettim. VR'da objeleri tuttuğumuzda ağırlık hissini doğru verebilmek ve objelerin diğer fiziksel yüzeylerin içinden geçmesini engellemek için bileşen içerisindeki Movement Type ayarını Velocity Tracking olarak yapılandırdım. Ayrıca objenin aniden oyuncunun eline ışınlanmasının (snapping) yarattığı yapay hissiyatı kırmak için Smooth Position ve Smooth Rotation algoritmalarını aktif ettim.<\/p> İkinci aşamada, tutuş ergonomisini iyileştirmeye karar verdim. Örneğin bir kitabın veya büyük bir şişenin rasgele bir köşesinden tutulması VR deneyiminin inandırıcılığını bozuyordu. Bu sorunu çözmek için prefab'ların içine görünmez birer `GrabPoint` (Tutma Noktası) alt objesi (Child GameObject) oluşturarak, objelerin tam ağırlık merkezlerine yerleştirdim. Sonrasında bu objeleri XR Grab bileşenindeki Attach Transform özelliğine bağlayarak, oyuncunun atıkları kusursuz ve anatomik olarak doğal bir şekilde kavramasını sağladım. Çalışmalarımı XR Device Simulator ile test edip tüm işlemleri atomik commit'ler halinde uzak sunucuya Push ederek PR açtım.<\/p> Ancak bugünün bana kattığı en büyük tecrübe, staj hocamdan aldığımız Kod İncelemesi (Code Review) geri bildirimi oldu. Hocamız, ana oyun döngüsünü kontrol eden 2000 satırlık `MainGame.cs` dosyasının yazılım mimarisindeki meşhur \"God Object\" (Tanrı Nesne) anti-pattern'ine dönüştüğü uyarısını yaptı. Oyunun puanlamasını, atık üretimini ve bant hareketini tek bir dosyada yürütmenin \"Single Responsibility\" (Tek Sorumluluk) prensibini ihlal ettiğini teorik olarak kavramış olduk. Takım halinde projelerde yaşadığımız entegrasyon sıkıntılarının temel sebebinin de bu spagetti kod yapısı olduğunu fark ettik. Hocamızın tavsiyesi üzerine takım arkadaşımla toplantı yaparak, bir sonraki aşamanın ilk işi olarak bu devasa yapıyı `ScoreManager`, `WasteSpawner` gibi tek bir görevden sorumlu bağımsız modüllere parçalama (Refactoring) kararını aldık.<\/p> Git Commit Mesajları:<\/strong><\/p> 8. Gün (10.07.2026) Çalışma Raporu<\/strong><\/p> Bugün staj planımızdaki Spawner görevine ek olarak, oyunun mekaniklerini daha akıcı ve eğlenceli hale getirmek için çeşitli denemeler ve kodlamalar yaptım. <\/span><\/p> İlk olarak taşıma bandının başlangıcında rastgele atıklar üretecek olan `WasteSpawner.cs` scriptini yazdım. Spawner'ı basit bir sayaç yerine `Coroutine` kullanarak dinamik bir yapıya kavuşturdum; böylece ileride oyun hızlandığında üretim aralıklarını rahatça değiştirebileceğimiz bir altyapı kurmuş oldum. Testler sırasında çöplerin hep aynı saniyede ve bandın tam ortasına düştüğünü fark ettim. Oyunun bu robotik hissiyatını kırmak için üretim sürelerine `Random.Range` ile rastgelelik kattım ve çöplerin pozisyonlarına ufak bir sapma (offset) değeri ekledim. <\/span><\/p> Bu noktada bazı fiziksel problemlerle karşılaştım. Offset değerini başta 0.4f gibi yüksek tuttuğumda, büyük karton kutular bandı aşıp doğrudan yere düşüyordu; değeri 0.1f'e indirerek bu taşma problemini çözdüm. Ayrıca çöplerin farklı açılarla düşmesi için verdiğim 3D rotasyon yüzünden şişeler yan düşüp bantta yuvarlanıyordu. Rotasyonu `Quaternion.Euler` komutuyla sadece Y ekseninde (kendi etrafında) dönecek şekilde kısıtlayarak şişelerin bantta dik bir şekilde ilerlemesini sağladım. Spawner kısmını, aynı çöpün üst üste gelmesini engelleyen ufak bir anti-tekrar kontrolü yazarak tamamladım.<\/span><\/p> Günün ikinci yarısında, VR oyun hissiyatını (Game Feel) artırıp artıramayacağımızı test etmek için alternatif bir mekanik üzerine Ar-Ge yaptım. Çöplerin banttan düşmesi yerine uzay boşluğunda süzülmesini sağlayan `AntigravityItem.cs` adında yepyeni bir script yazdım. Bu kod ile objelerin yerçekimini kapatıp yukarı yönlü hafif bir süzülme kuvveti uyguladım. Objelerin oyuncu tarafından tutulduğunda veya fırlatıldığında normal fiziğine (gerçek dünya yerçekimine) dönmesi gerekiyordu. Bunun için Unity'nin XR Interaction Toolkit kütüphanesini araştırdım ve etkileşim event'lerini (`selectEntered` ve `selectExited`) koda bağlayarak objenin tutulma ve bırakılma durumlarını başarıyla kontrol ettim. <\/span><\/p> Bugün yazdığım kodları ve yaptığım fizik düzeltmelerini detaylı İngilizce açıklamalarla commit'leyip GitHub reposuna Push ettim ve günün görevini başarıyla tamamladım.<\/span><\/p> Git Commit Mesajları:<\/strong><\/p> 9. Gün (13.07.2026) Çalışma Raporu<\/strong><\/p> Bugün, takım arkadaşımla paylaştığımız görev dağılımı doğrultusunda oyunun Puan Sistemi (Score System) altyapısını kurmaya odaklandım. İlk olarak, puanı evrensel olarak yönetecek olan `ScoreManager.cs` sınıfını Singleton tasarım deseniyle oluşturdum. Sistemin işlemciyi yormaması (optimizasyon) adına `Update()` döngüleri kullanmak yerine olay güdümlü (Event-driven) bir mimari tercih ettim ve `Action<int>` (OnScoreChanged) event'ini yazdım.<\/p> Bu puanı ekranda göstermek için yazdığım `ScoreUI.cs` kodunu test ederken çok ilginç bir Unity hatasıyla karşılaştım. Puan arka planda artmasına rağmen arayüz (UI) güncellenmiyordu. Yaptığım debug testleri sonucunda bunun Unity'nin rastgele çalışma sırasından (Execution Order) kaynaklanan bir yarış durumu (Race Condition) olduğunu fark ettim. Dinleme (Subscribe) işlemini `OnEnable` metodundan `Start()` metoduna taşıyarak bu sorunu profesyonelce çözdüm.<\/p> Ardından dün yazılan `BinTrigger.cs` (Kutu Tetikleyicisi) kodu ile benim `ScoreManager` kodumu birbirine bağladım. Bunu yaparken kodların birbirine bağımlı (tight coupling) olmaması için sadece event'ler üzerinden iletişim kurmalarını sağladım. Doğru kutuda puan ekleme, yanlış kutuda ise matematiksel mutlak değer (`Mathf.Abs`) kullanarak puan düşürme mantığını kurguladım.<\/p> Test aşamasında VR projelerinin klasik bir sorunuyla yüzleştim: Çöplerin (Prefab) ana gövdesinde (Root) etiket (Tag) bulunmasına rağmen, çarpışma kutuları (Collider) alt objelerde (Child) olduğu için sistem çöpleri \"Untagged\" olarak görüyordu. `BinTrigger` kodunu güncelleyerek, çarpan objenin en üst atasına (`transform.root`) kadar çıkıp Tag aramasını sağladım ve sorun çözüldü. Ayrıca silinme (Destroy) işleminde havada boş obje (Memory Leak) kalmaması için her zaman Root objenin silinmesini zorunlu kıldım.<\/p> Son olarak, sahnede bulunan 20'den fazla çöp prefab'ına ilgili Tag'leri (Plastic, Glass, Metal, Paper) ekledim. Taşıma bandı ve spawner koordinatlarını düzelterek fiziksel patlamaların (Physics Explosion) önüne geçtim. Yaptığım tüm bu düzeltmeleri GitHub üzerinden iki ayrı \"Atomic Commit\" halinde paketleyip, ana projeye birleştirilmesi için Pull Request (PR) açarak bugünkü görevimi başarıyla tamamladım.<\/p> Git Commit Mesajları:<\/strong><\/p> 10. Gün (14.07.2026) Çalışma Raporu<\/strong><\/p> Bugün, projenin en kritik aşamalarından biri olan kullanıcı arayüzü (UI) sistemlerini VR standartlarına uygun hale getirmek üzerine yoğunlaştım. Geliştirme sürecimde fark ettim ki, geleneksel 2 boyutlu ve kameraya sabitlenmiş (Screen Space) menüler, sanal gerçeklik ortamında oyuncunun derinlik algısını bozuyor ve gerçeklik hissiyatını (immersion) ciddi şekilde zedeliyor. Bu problemi aşmak için oyun endüstrisinde standart bir pratik olan 'Diegetic UI' (oyun dünyasına fiziksel olarak entegre edilmiş arayüz) mimarisine geçiş yapmaya karar verdim. Bunun için sahneye fabrika temasına uygun, düşük poligonlu (low-poly) bir monitör modeli entegre ettim. Unity’nin arayüz sistemindeki Canvas bileşenini 'World Space' moduna alarak ve ölçeklendirme (scale) değerlerini optimize ederek, geri sayım sayacını ve oyunun anlık durumunu (Ana Menü, Oyun Başladı, Süre Bitti vb.) doğrudan bu fiziksel monitörün camına yansıttım.<\/p> Bu görsel sistemi arka planda verimli bir şekilde yönetebilmek için, mimariyi modüler tutmaya özen gösterdim. Tüm kodları tek bir dosyaya yığmak (spaghetti code) yerine, Tek Sorumluluk Prensibi'ne (Single Responsibility Principle) bağlı kalarak sadece arayüzü yönetecek bağımsız bir `UIManager.cs` sınıfı kodladım. Bu sınıf, her saniye kontrol döngüsü (Update) çalıştırmak yerine, `GameManager` üzerindeki olaylara (Event) abone (subscribe) olarak çalışıyor. Böylece gereksiz işlemci (CPU) kullanımının önüne geçerek projede önemli bir optimizasyon sağlamış oldum.<\/p> Test süreçlerim sırasında oyunun temel mekaniğini etkileyen kritik bir hata (bug) tespit ettim. Oyuncu atığı doğru kutuya atsa bile, sistem bazen atığı tanımıyor ve puan vermiyordu. Hiyerarşiyi incelediğimde, VR etkileşimleri (Grab Interactable) için hazırlanan prefab nesnelerinin iç içe geçmiş (nested) yapılardan oluştuğunu; etiketlerin (Tag) ana objede kalırken, çarpışmayı algılayan Collider'ların alt objelere kaydığını fark ettim. Bu kopukluğu gidermek için `BinTrigger.cs` sınıfındaki çarpışma algılama algoritmasını tamamen yeniden yazdım. String karşılaştırmaları yerine `GetComponentsInChildren` fonksiyonunu entegre ederek, çarpışan objenin tüm alt hiyerarşisini tarayan ve doğru etiketi her koşulda bulabilen hatasız (foolproof) bir sistem geliştirdim.<\/p> Günün son bölümünde, oyunun hissiyatını (game feel\/juice) artırmak için görsel geri bildirimler üzerine çalıştım. Oyuncu bir atığı kutuya attığında, puanın aniden değişmesinin yeterince tatmin edici olmadığını gözlemledim. Bu nedenle `ScoreUI.cs` dosyasına müdahale ettim. Unity'de sıkça kullanılan ancak performansı olumsuz etkileyebilen Coroutine yapıları yerine, matematiksel interpolasyon (`Vector3.Lerp` ve `Color.Lerp`) fonksiyonlarını kullandım. Yeni yazdığım bu sistem sayesinde, oyuncu doğru bir atış yaptığında puan yazısı pürüzsüzce büyüyüp yeşil renkte parlarken; hatalı bir atışta (ceza aldığında) kırmızıya dönerek küçülüyor. Yaptığım tüm bu geliştirmeler, projenin basit bir prototipten çıkıp profesyonel bir VR oyununa dönüşmesinde büyük rol oynadı.<\/p> Git Commit Mesajları:<\/strong><\/p> 11. Gün (16.07.2026) Çalışma Raporu<\/strong><\/p> Bugün stajımda projemizin hem arayüz altyapısını hazırladığım hem de oyun hissiyatını (Juice) büyük ölçüde artırdığım, benim için oldukça verimli bir gün oldu. Güne öncelikle oyun içi menülerimizde ve bilgi ekranlarında kullanacağımız kullanıcı arayüzü (UI) ikonlarını ve panel tasarımlarını projeye aktararak (import) başladım. Bu varlıkları klasörleyerek projenin içine dahil ettim. Böylece sadece düz yazılardan oluşan basit bir sistem yerine, daha profesyonel ve oyuncunun gözüne hitap eden bir menü altyapısının temelini atmış oldum.<\/p> Günün büyük bir kısmında ise projemizin en eğlenceli ve yaratıcı alanlarından biri olan Görsel Efektler (Particle System) üzerine yoğunlaştım. Atık ayrıştırma mekaniğinde oyuncuya daha iyi bir geri bildirim verebilmek için, doğru atık atıldığında kutunun içinden havai fişek gibi patlayan ve eriyerek kaybolan doğa temalı yeşil \"Başarı\" efektleri tasarladım. Ardından, oyuncu yanlış atık attığında gerçekten hata yaptığını hissetmesi için daha ağır olan (yerçekimi etkisi fazla), yere çakılan ve etrafa yayılan agresif kırmızı bloklardan oluşan \"Hata\" efektleri hazırladım.<\/p> Bu efektleri sadece Unity arayüzünde tasarlamakla kalmadım; kod tarafında (`BinTrigger.cs`) bunların atığın doğru veya yanlış olma durumuna göre nasıl dinamik olarak çağrılacağını (Instantiate) ve sahnede performansı düşürmemeleri için işleri bitince bellekten nasıl otomatik olarak silineceklerini (Destroy) kodladım. Geliştirme sırasında ufak tefek pürüzleri de aştım. Örneğin efektler ilk başta kutunun görünmeyen en alt kısmında patlıyordu. Araştırarak çarpışma kutusunun (Collider) tam tepe noktasını bulmayı başardım ve efekti VR'da tam olması gerektiği yere getirdim. Ayrıca Unity'de oyun çalışırken (Play modundayken) yapılan kod değişikliklerinin kaydedilmediğini de hataları çözerken bizzat yaşayarak tecrübe etmiş oldum.<\/p> Önceden bir oyun oynarken arayüz tasarımlarının veya o patlamaların arkasındaki mantığı hiç düşünmezdim. Bugün arayüz ikonlarını projeye dahil edip, üzerine kendi efektlerimi tasarlayarak oyuncuya o tatmin hissini verebilmenin ne kadar önemli olduğunu anladım. Gün geçtikçe Unity'nin yapısına ve yazılım geliştirme süreçlerine daha da hakim oluyorum.<\/p> Git Commit Mesajları:<\/strong><\/p> 12. Gün (17.07.2026) Çalışma Raporu<\/strong><\/p> Bugün oyunun en önemli hissiyat (Game Feel) unsurlarından biri olan \"Ses Sistemini\" kurmaya odaklandım. Projedeki tüm arka plan müziklerini (BGM) ve etkileşim ses efektlerini (SFX) tek bir merkezden, düzenli bir şekilde yönetebilmek için Singleton tasarım deseniyle `AudioManager.cs` betiğini yazdım. İlk testlerim sırasında, Unity'nin varsayılan 3 boyutlu ses oynatma fonksiyonu yüzünden (`PlayClipAtPoint`), VR ortamında oyuncu bir objeyi eline aldığında kollarının kameraya olan fiziksel uzaklığı sebebiyle seslerin sönümlenip oyuncuya çok kısık geldiğini fark ettim. Oyunun o tatmin edici ve duyarlı \"Arcade\" hissiyatını korumak için, etkileşim seslerinin tamamını doğrudan kulaklığın içine duyulan 2 boyutlu `PlayOneShot` komutuna çevirerek bu problemi başarıyla çözdüm.<\/span><\/p> Çalışmalarımamakine kolu (`MachineLever`) mekaniğini ses sistemime entegre ederek devam ettim. Spagetti koda sebep olmamak adına `MachineLever.cs` içerisine `OnLeverPulledAction` adında statik bir Event (sinyal) ekledim ve `AudioManager`'ın sadece bu sinyali dinleyerek kol çekilme sesini oynatmasını sağladım. Aynı zamanda oyun başladığında sürekli çalışacak bant motoru sesini (Engine Hum), doğrudan `GameManager`'ın durumlarına (`OnGameStateChanged`) abone yaparak dinamik hale getirdim. Bu süreçte Unity 6'nın yenilenmiş AudioSource Inspector arayüzündeki bazı atama problemleriyle ve kısıtlamalarla karşılaştım; bu sorunu ses dosyası atamalarını doğrudan script içerisinden `[SerializeField]` ile koda gömerek pratik bir şekilde aştım.<\/span><\/p> Günün son bölümünde, projenin uluslararası standartlara uygun olması için Türkçe olan \"ses\" klasörünün adını \"Sounds\" olarak refactor ettim ve televizyon panellerindeki tüm UI metinlerini İngilizceye yerelleştirdim. Ancak bu sırada dijital ekrandaki geri sayım sayacının bazen güncellenmediği şeklinde kritik bir hata keşfettim. Kodları incelediğimde bunun bir çalışma sırası (Script Execution Order) hatası olduğunu; `UIManager`'ın, `GameManager` ayağa kalkmadan önce null dönen event'lere abone olmaya çalıştığını fark edip kodun statik abonelik mantığını düzelterek bu yarışı (race condition) sonlandırdım. Buna ek olarak, VR ortamında objeleri tutarken oyuncunun sanal ellerinin görünmez olması gibi oyun deneyimini baltalayan bir sorunu, `XR Origin` bileşenindeki `Hide Controller On Select` özelliğini devre dışı bırakarak çözdüm. Bugün yaptığım tüm mimari geliştirmeleri ve bulduğum hata çözümlerini birbirine karıştırmadan 5 farklı \"Atomic Commit\" olacak şekilde GitHub'a Push ettim ve detaylı bir Pull Request açarak günün görevini başarıyla tamamladım.<\/span><\/p> Git Commit Mesajları:<\/strong><\/p>Recycle-Rush-VR<\/code> deposunu (repository) oluşturdum. Projenin versiyon kontrolünü sağlıklı bir şekilde yönetmek için gerekli ayarları yaptım.<\/li>implementation_plan.md<\/code> dosyasını hazırladım. Projenin teknik mimarisini, oyun döngüsünü ve 20 günlük çalışma planını bu dokümana işledim. Çalışmamı ana dala (main) dahil etmek için \"Pull Request\" sürecini başlattım, bu sayede hocalarımızın onayına sunmuş oldum.<\/li>
<\/p>docs<\/code> klasörü içerisindeki implementation plan dosyasını kontrol ettim. docs\/assets<\/code> klasörüne proje için hazırlanan logo, katmanlı uygulama ikonu (Layered App Icon), VR arayüz görselleri ve uygulama mockuplarını ekledim. README dosyasını bu görselleri gösterecek şekilde güncelleyerek proje tanıtımını daha düzenli hale getirdim.<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>\n\n--- DAY 9 (2026-07-13) ---\n
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>\n\n--- DAY 12 (2026-07-17) ---\n
<\/p>
<\/p>
<\/p>
<\/p>
<\/p>