From e699e9d6df0f046315eb48ac5a5242d51d7d903a Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Mon, 29 Sep 2025 13:22:17 +0300 Subject: [PATCH 001/163] =?UTF-8?q?dil=20d=C3=BCzenlemeleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/components/Home/HeroSection.tsx | 6 +- platform/locales/en.json | 4 +- platform/locales/tr.json | 4 +- platform/pages/ai-music-detection/index.tsx | 17 +- platform/pages/data-manipulation/index.tsx | 117 +++++++++---- platform/pages/index.tsx | 6 +- platform/styles/base/variables.css | 70 ++++---- platform/styles/globals.css | 174 ++++---------------- platform/styles/pages/ai-detection.css | 120 +++++++++++++- 9 files changed, 290 insertions(+), 228 deletions(-) diff --git a/platform/components/Home/HeroSection.tsx b/platform/components/Home/HeroSection.tsx index 964e36b..3ca0058 100644 --- a/platform/components/Home/HeroSection.tsx +++ b/platform/components/Home/HeroSection.tsx @@ -172,11 +172,11 @@ export const HeroSection: React.FC = ({ className = '' }) => { /> {t.hero.cta.github} @@ -226,7 +226,7 @@ export const HeroSection: React.FC = ({ className = '' }) => { )
- // Research: Düzce University | Accuracy: 97.2% + // Professional AI Detection | Accuracy: 97.2%
diff --git a/platform/locales/en.json b/platform/locales/en.json index 140a8e6..3cb64a5 100644 --- a/platform/locales/en.json +++ b/platform/locales/en.json @@ -33,7 +33,7 @@ "items": { "aiMusic": { "title": "AI Music Detection Engine", - "description": "Advanced wav2vec2-based deep learning model that distinguishes AI-generated music from human compositions with 97.2% accuracy. Academic research implementation.", + "description": "Advanced wav2vec2-based deep learning model that distinguishes AI-generated music from human compositions with 97.2% accuracy. Professional implementation.", "status": "Research Active", "stats": "97.2% Accuracy", "features": ["wav2vec2 Architecture", "Transfer Learning", "Automated Pipeline"] @@ -74,7 +74,7 @@ } }, "footer": { - "description": "Academic research platform for AI music detection and data manipulation. Düzce University Computer Engineering thesis project featuring cutting-edge deep learning models and comprehensive research tools.", + "description": "Professional platform for AI music detection and audio analysis. Advanced wav2vec2-based deep learning technology offering innovative solutions for music analysis and streaming platform integration.", "community": { "title": "Community", "stars": "GitHub Stars", diff --git a/platform/locales/tr.json b/platform/locales/tr.json index abd104a..c3eb607 100644 --- a/platform/locales/tr.json +++ b/platform/locales/tr.json @@ -33,7 +33,7 @@ "items": { "aiMusic": { "title": "AI Müzik Tespit Motoru", - "description": "wav2vec2 tabanlı derin öğrenme modeli ile AI üretimi müzikleri insan bestelerinden %97.2 doğrulukla ayırt eden akademik araştırma uygulaması.", + "description": "wav2vec2 tabanlı gelişmiş derin öğrenme modeli ile AI üretimi müzikleri insan bestelerinden %97.2 doğrulukla ayırt eden profesyonel uygulama.", "status": "Araştırma Aktif", "stats": "97.2% Doğruluk", "features": ["wav2vec2 Mimarisi", "Transfer Learning", "Otomatik Pipeline"] @@ -74,7 +74,7 @@ } }, "footer": { - "description": "AI müzik tespiti ve veri manipülasyonu için akademik araştırma platformu. Düzce Üniversitesi Bilgisayar Mühendisliği tez projesi olarak geliştirilen son teknoloji derin öğrenme modelleri ve kapsamlı araştırma araçları.", + "description": "AI müzik tespiti ve ses analizi için profesyonel platform. wav2vec2 tabanlı derin öğrenme teknolojisi ile gelişmiş müzik analizi ve streaming platform entegrasyonu sunan yenilikçi çözüm.", "community": { "title": "Topluluk", "stars": "GitHub Stars", diff --git a/platform/pages/ai-music-detection/index.tsx b/platform/pages/ai-music-detection/index.tsx index e79aebf..fab23bd 100644 --- a/platform/pages/ai-music-detection/index.tsx +++ b/platform/pages/ai-music-detection/index.tsx @@ -425,7 +425,7 @@ const AIMusicDetectionPage: NextPage = () => { artificialIndicators: [ 'Demo analysis - Frontend interface only', 'Backend AI processing to be implemented', - 'Thesis demonstration interface' + 'Professional demo interface' ] }, audioInfo: { @@ -931,11 +931,11 @@ const AIMusicDetectionPage: NextPage = () => {

Frontend interface for AI-powered music detection system using wav2vec2-based deep learning models. - This is a demonstration interface for the thesis project - backend AI processing will be implemented in future phases. + This is a demonstration interface for the professional platform - backend AI processing will be implemented in future phases.

Demo Interface - Frontend implementation for thesis demonstration purposes + Frontend implementation for professional demonstration purposes
@@ -980,9 +980,10 @@ const AIMusicDetectionPage: NextPage = () => { {selectedFile.name} )} @@ -1004,10 +1005,10 @@ const AIMusicDetectionPage: NextPage = () => { diff --git a/platform/pages/data-manipulation/index.tsx b/platform/pages/data-manipulation/index.tsx index 4adc92b..9d8dc15 100644 --- a/platform/pages/data-manipulation/index.tsx +++ b/platform/pages/data-manipulation/index.tsx @@ -43,7 +43,7 @@ const AudioDatasetPage: NextPage = () => { title: t.audioDataset.tools.upload.title, description: t.audioDataset.tools.upload.description, icon: Upload, - gradient: 'from-blue-400 to-blue-600', + gradient: 'from-primary to-secondary', status: 'available' }, { @@ -51,7 +51,7 @@ const AudioDatasetPage: NextPage = () => { title: t.audioDataset.tools.convert.title, description: t.audioDataset.tools.convert.description, icon: RefreshCw, - gradient: 'from-green-400 to-green-600', + gradient: 'from-primary to-secondary', status: 'available' }, { @@ -59,7 +59,7 @@ const AudioDatasetPage: NextPage = () => { title: t.audioDataset.tools.augment.title, description: t.audioDataset.tools.augment.description, icon: Music, - gradient: 'from-purple-400 to-purple-600', + gradient: 'from-primary to-secondary', status: 'available' }, { @@ -67,7 +67,7 @@ const AudioDatasetPage: NextPage = () => { title: t.audioDataset.tools.organize.title, description: t.audioDataset.tools.organize.description, icon: FolderOpen, - gradient: 'from-orange-400 to-orange-600', + gradient: 'from-primary to-secondary', status: 'available' } ] @@ -161,23 +161,23 @@ const AudioDatasetPage: NextPage = () => { transition={{ delay: 0.6, duration: 0.8 }} >
-

Platform Özellikleri

+

{t.audioDataset.title}

- Toplu dosya yükleme + {t.audioDataset.tools.upload.title}
- Format dönüştürme + {t.audioDataset.tools.convert.title}
- Ses artırma teknikleri + {t.audioDataset.tools.augment.title}
- Dışa aktarma + Export Dataset
@@ -188,8 +188,8 @@ const AudioDatasetPage: NextPage = () => { diff --git a/platform/pages/index.tsx b/platform/pages/index.tsx index 21149df..30cf574 100644 --- a/platform/pages/index.tsx +++ b/platform/pages/index.tsx @@ -7,9 +7,9 @@ import { ProjectsSection } from '@/components/Home/ProjectsSection' const HomePage: NextPage = () => { return ( diff --git a/platform/styles/base/variables.css b/platform/styles/base/variables.css index 4c592f7..d509ab6 100644 --- a/platform/styles/base/variables.css +++ b/platform/styles/base/variables.css @@ -1,26 +1,37 @@ :root { - --color-primary: #00D4FF; - --color-secondary: #0080FF; - --color-accent: #D4AF37; - - --color-background: #000000; - --color-surface: #0a192f; - --color-surface-alt: #1a2332; - --color-text-primary: #FFFFFF; - --color-text-secondary: #A0A0A0; - --color-text-muted: #666666; - --color-border: #1a1a1a; - --color-border-light: #2a2a2a; + /* Primary Brand Colors */ + --color-primary: #38bdf8; + --color-secondary: #0ea5e9; + --color-accent: #fbbf24; + /* Background Colors */ + --color-background: #0f0f23; + --color-surface: #1a1a2e; + --color-surface-elevated: #16213e; + --color-border: #2a2a4a; + --color-border-light: #3a3a5a; + + /* Text Colors */ + --color-text-primary: #ffffff; + --color-text-secondary: #94a3b8; + --color-text-muted: #64748b; + + /* Glass Effects */ + --glass-bg: rgba(30, 41, 59, 0.8); + --glass-border: rgba(56, 189, 248, 0.3); + + /* Shadows */ --shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.5); --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.5); --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5); --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.5); - --shadow-glow: 0 0 40px rgba(0, 212, 255, 0.3); + --shadow-glow: 0 0 40px rgba(56, 189, 248, 0.3); + /* Animations */ --animation-duration: 0.3s; --animation-easing: cubic-bezier(0.4, 0, 0.2, 1); + /* Z-Index Layers */ --z-dropdown: 1000; --z-sticky: 1020; --z-fixed: 1030; @@ -29,26 +40,21 @@ --z-popover: 1060; --z-tooltip: 1070; --z-toast: 1080; -} -.dark { - --color-background: #000000; - --color-surface: #0a192f; - --color-surface-alt: #1a2332; - --color-text-primary: #FFFFFF; - --color-text-secondary: #A0A0A0; - --color-text-muted: #666666; - --color-border: #1a1a1a; - --color-border-light: #2a2a2a; + /* Border Radius */ + --radius-sm: 0.25rem; + --radius-md: 0.5rem; + --radius-lg: 0.75rem; + --radius-xl: 1rem; + --radius-2xl: 1.5rem; + --radius-3xl: 2rem; } -.light { - --color-background: #000000; - --color-surface: #0a192f; - --color-surface-alt: #1a2332; - --color-text-primary: #FFFFFF; - --color-text-secondary: #A0A0A0; - --color-text-muted: #666666; - --color-border: #1a1a1a; - --color-border-light: #2a2a2a; +/* Responsive breakpoints for consistency */ +@media (max-width: 640px) { + :root { + --radius-xl: 0.75rem; + --radius-2xl: 1rem; + --radius-3xl: 1.5rem; + } } \ No newline at end of file diff --git a/platform/styles/globals.css b/platform/styles/globals.css index a659358..ed0c641 100644 --- a/platform/styles/globals.css +++ b/platform/styles/globals.css @@ -4,6 +4,7 @@ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&family=JetBrains+Mono:wght@300;400;500;600;700&display=swap'); +@import './base/variables.css'; @import './components/header.css'; @import './components/hero.css'; @import './components/projects.css'; @@ -11,98 +12,19 @@ @import './components/ml-toolkit.css'; @import './components/language-selector.css'; -/* CSS Custom Properties */ -:root { - /* Colors - Gray & Gold Palette */ - --color-background: #0a0a0a; - --color-surface: #111111; - --color-surface-elevated: #1a1a1a; - --color-border: #2a2a2a; - --color-border-hover: #3a3a3a; - - /* Text Colors */ - --color-text-primary: #ffffff; - --color-text-secondary: #a0a0a0; - --color-text-muted: #666666; - --color-text-inverse: #000000; - - /* Gold Accents */ - --color-gold-50: #fffbeb; - --color-gold-100: #fef3c7; - --color-gold-200: #fde68a; - --color-gold-300: #fcd34d; - --color-gold-400: #fbbf24; - --color-gold-500: #f59e0b; - --color-gold-600: #d97706; - --color-gold-700: #b45309; - --color-gold-800: #92400e; - --color-gold-900: #78350f; - - /* Status Colors */ - --color-success: #10b981; - --color-warning: #f59e0b; - --color-error: #ef4444; - --color-info: #3b82f6; - - /* Gradients */ - --gradient-primary: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #d97706 100%); - --gradient-secondary: linear-gradient(135deg, #374151 0%, #1f2937 100%); - --gradient-surface: linear-gradient(135deg, #111111 0%, #1a1a1a 100%); - - /* Shadows */ - --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); - --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1); - --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1); - --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1); - --shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, 0.25); - - /* Glass Effect */ - --glass-bg: rgba(26, 26, 26, 0.8); - --glass-border: rgba(255, 255, 255, 0.1); - - /* Spacing */ - --spacing-xs: 0.25rem; - --spacing-sm: 0.5rem; - --spacing-md: 1rem; - --spacing-lg: 1.5rem; - --spacing-xl: 2rem; - --spacing-2xl: 3rem; - --spacing-3xl: 4rem; - - /* Border Radius */ - --radius-sm: 0.375rem; - --radius-md: 0.5rem; - --radius-lg: 0.75rem; - --radius-xl: 1rem; - --radius-2xl: 1.5rem; - --radius-3xl: 2rem; - - /* Typography */ - --font-family-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; - --font-family-mono: 'JetBrains Mono', 'SF Mono', Monaco, 'Cascadia Code', monospace; - - /* Animation */ - --animation-fast: 150ms; - --animation-normal: 300ms; - --animation-slow: 500ms; - --ease-out-cubic: cubic-bezier(0.16, 1, 0.3, 1); - --ease-in-out-cubic: cubic-bezier(0.4, 0, 0.2, 1); -} - -/* Base Styles */ +/* Global Base Styles */ * { - box-sizing: border-box; margin: 0; padding: 0; + box-sizing: border-box; } html { scroll-behavior: smooth; - font-size: 16px; } body { - font-family: var(--font-family-primary); + font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background-color: var(--color-background); color: var(--color-text-primary); line-height: 1.6; @@ -122,7 +44,7 @@ body { flex: 1; } -/* Scrollbar Styles */ +/* Custom Scrollbar */ ::-webkit-scrollbar { width: 8px; } @@ -132,88 +54,67 @@ body { } ::-webkit-scrollbar-thumb { - background: var(--color-border); + background: var(--color-primary); border-radius: var(--radius-md); } ::-webkit-scrollbar-thumb:hover { - background: var(--color-border-hover); + background: var(--color-secondary); } /* Selection */ ::selection { - background-color: rgba(251, 191, 36, 0.2); + background: var(--color-primary); color: var(--color-text-primary); } /* Focus Styles */ -*:focus-visible { - outline: 2px solid var(--color-gold-400); +:focus-visible { + outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Utility Classes */ .text-gradient { - background: var(--gradient-primary); - background-clip: text; + background: linear-gradient(135deg, #ffffff 0%, var(--color-primary) 100%); -webkit-background-clip: text; + background-clip: text; -webkit-text-fill-color: transparent; - background-size: 200% 200%; - animation: gradientShift 3s ease-in-out infinite; } -@keyframes gradientShift { - 0%, 100% { - background-position: 0% 50%; - } - 50% { - background-position: 100% 50%; - } +.bg-gradient { + background: linear-gradient(135deg, var(--color-background) 0%, var(--color-surface) 50%, var(--color-surface-elevated) 100%); } .glass-effect { background: var(--glass-bg); - backdrop-filter: blur(12px); - -webkit-backdrop-filter: blur(12px); border: 1px solid var(--glass-border); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); } -.animate-float { - animation: float 6s ease-in-out infinite; +/* Animation Classes */ +.animate-fade-in { + animation: fadeIn var(--animation-duration) var(--animation-easing); } -@keyframes float { - 0%, 100% { - transform: translateY(0px); - } - 50% { - transform: translateY(-20px); - } +.animate-slide-up { + animation: slideUp var(--animation-duration) var(--animation-easing); } -.animate-pulse-slow { - animation: pulse-slow 4s ease-in-out infinite; +@keyframes fadeIn { + from { opacity: 0; } + to { opacity: 1; } } -@keyframes pulse-slow { - 0%, 100% { - opacity: 1; - } - 50% { - opacity: 0.5; - } -} - -.animate-glow { - animation: glow 2s ease-in-out infinite alternate; -} - -@keyframes glow { +@keyframes slideUp { from { - box-shadow: 0 0 20px rgba(251, 191, 36, 0.2); + opacity: 0; + transform: translateY(20px); } to { - box-shadow: 0 0 30px rgba(251, 191, 36, 0.4); + opacity: 1; + transform: translateY(0); } } @@ -224,32 +125,23 @@ body { } } -/* High Contrast Mode */ +/* High Contrast Mode Support */ @media (prefers-contrast: high) { :root { - --color-text-secondary: #ffffff; --color-border: #ffffff; + --color-text-secondary: #ffffff; } } -/* Reduced Motion */ +/* Reduced Motion Support */ @media (prefers-reduced-motion: reduce) { * { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; } - + html { scroll-behavior: auto; } -} - -/* Print Styles */ -@media print { - * { - background: white !important; - color: black !important; - box-shadow: none !important; - } } \ No newline at end of file diff --git a/platform/styles/pages/ai-detection.css b/platform/styles/pages/ai-detection.css index ebd1309..1573a10 100644 --- a/platform/styles/pages/ai-detection.css +++ b/platform/styles/pages/ai-detection.css @@ -273,9 +273,35 @@ } .btn-primary:disabled { - opacity: 0.5; + opacity: 0.6; cursor: not-allowed; transform: none; + background: linear-gradient(135deg, #6b7280 0%, #4b5563 100%); +} + +.btn-primary.loading { + cursor: wait; + position: relative; + color: transparent; +} + +.btn-primary.loading::after { + content: ''; + position: absolute; + top: 50%; + left: 50%; + width: 20px; + height: 20px; + margin: -10px 0 0 -10px; + border: 2px solid #ffffff; + border-radius: 50%; + border-top-color: transparent; + animation: spin 1s linear infinite; +} + +@keyframes spin { + 0% { transform: rotate(0deg); } + 100% { transform: rotate(360deg); } } .btn-secondary { @@ -293,11 +319,19 @@ text-decoration: none; } -.btn-secondary:hover { +.btn-secondary:hover:not(:disabled) { background: rgba(56, 189, 248, 0.2); transform: translateY(-2px); } +.btn-secondary:disabled { + opacity: 0.5; + cursor: not-allowed; + background: rgba(107, 114, 128, 0.1); + border-color: rgba(107, 114, 128, 0.3); + color: #6b7280; +} + /* ========================================================================= PROCESSING STATE ========================================================================= */ @@ -538,4 +572,86 @@ flex-direction: column; gap: 0.5rem; } + + .demo-notice { + flex-direction: column; + gap: 0.5rem; + } + + .demo-notice span:last-child { + text-align: center; + font-size: 0.8rem; + } + + .result-actions { + flex-direction: column; + } + + .metric-grid { + grid-template-columns: 1fr; + gap: 0.75rem; + } + + .supported-platforms { + flex-direction: column; + gap: 0.75rem; + text-align: center; + } + + .platform-icons { + justify-content: center; + } +} + +/* Extra small devices */ +@media (max-width: 480px) { + .detection-container { + padding: 0.75rem; + } + + .detection-title { + font-size: 2rem; + line-height: 1.2; + } + + .detection-interface { + gap: 1.5rem; + } + + .upload-dropzone { + padding: 1.5rem 0.75rem; + } + + .upload-dropzone h3 { + font-size: 1rem; + } + + .upload-dropzone p { + font-size: 0.875rem; + } + + .btn-primary, + .btn-secondary { + padding: 0.75rem 1.25rem; + font-size: 0.875rem; + } + + .analysis-result-card { + padding: 1.5rem; + } + + .result-title { + font-size: 1.25rem; + } +} + +/* Landscape orientation on mobile */ +@media (max-width: 768px) and (orientation: landscape) { + .detection-title { + font-size: 2.25rem; + } + + .detection-interface { + gap: 2rem; + } } \ No newline at end of file From 8018a63e0b313422d1238865dd52da9378593896 Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Tue, 30 Sep 2025 16:40:37 +0300 Subject: [PATCH 002/163] a --- platform/public/favicon.ico | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/platform/public/favicon.ico b/platform/public/favicon.ico index 33693b8..d684ad9 100644 --- a/platform/public/favicon.ico +++ b/platform/public/favicon.ico @@ -1 +1,4 @@ -data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMiIgaGVpZ2h0PSIzMiIgdmlld0JveD0iMCAwIDMyIDMyIj4KICA8IS0tIFRyYW5zcGFyZW50IGJhY2tncm91bmQgLS0+CiAgCiAgPCEtLSBDb21wYWN0IFIgTG9nbyBmb3IgZmF2aWNvbiAtLT4KICA8ZyBmaWxsPSIjMWExYTFhIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSg0LCA0KSBzY2FsZSgwLjc1KSI+CiAgICA8IS0tIFNpbXBsaWZpZWQgY3Jvd24gLS0+CiAgICA8cGF0aCBkPSJNMiA4IEwyIDE2IEwyNiAxNiBMMjYgOCBMMjQgNCBMMjAgOCBMMTIgOCBMOCA0IFoiLz4KICAgIAogICAgPCEtLSBTaW1wbGlmaWVkIFIgLS0+CiAgICA8cGF0aCBkPSJNOCAxNiBMOCAyNiBNOCAxNiBMMTYgMTYgUTIwIDE2IDIwIDIwIFEyMCAyNCAxNiAyNCBMOCAyNCBNMTYgMjQgTDIwIDI2Ii8+CiAgICA8Y2lyY2xlIGN4PSIyMiIgY3k9IjE4IiByPSIxLjUiLz4KICA8L2c+Cjwvc3ZnPgo= \ No newline at end of file + + + + \ No newline at end of file From 31c6d50dd958dea257d91e1212744ec86155ce80 Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Tue, 30 Sep 2025 16:55:46 +0300 Subject: [PATCH 003/163] =?UTF-8?q?d=C3=B6k=C3=BCmantasyon=20g=C3=BCncelle?= =?UTF-8?q?meleri?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 19 + README.md | 41 +- README_PLATFORM.md | 409 +++++++----------- backend/README.md | 87 ++++ backend/requirements.txt | 52 +++ CHANGELOG.md => docs/CHANGELOG.md | 0 .../COMPLETE_AUTOMATION_STRATEGY.md | 0 .../academic/ACADEMIC_PROJECT_REPORT_EN.md | 0 .../academic/AKADEMIK_PROJE_RAPORU_TR.md | 0 .../academic/THESIS_SUMMARY.md | 0 .../community/CODE_OF_CONDUCT.md | 0 .../community/CONTRIBUTING.md | 0 SECURITY.md => docs/community/SECURITY.md | 0 .../guides/CODE_EXAMPLES.md | 0 .../guides/INTENSIVE_3_MONTH_PLAN.md | 0 .../guides/PROJE_KURALLARI.md | 0 .../technical/AI_MODEL_STRATEGY.md | 0 .../technical/DEPLOYMENT_CONFIG.md | 0 .../technical/DEVFORGE_PLATFORM_STRUCTURE.md | 0 .../technical/MOBILE_RESPONSIVE_DESIGN.md | 0 .../technical/MODULAR_ARCHITECTURE.md | 0 .../technical/PLATFORM_GITHUB_CONFIG.md | 0 .../technical/PROJECT_ROUTING_SYSTEM.md | 0 .../technical/TECHNICAL_SPECIFICATIONS.md | 0 .../technical/TECHNOLOGY_STACK_2025.md | 10 +- platform/locales/en.json | 10 +- platform/locales/tr.json | 12 +- platform/package.json | 8 +- platform/pages/index.tsx | 6 +- platform/styles/components/hero.css | 2 +- 30 files changed, 377 insertions(+), 279 deletions(-) create mode 100644 backend/README.md create mode 100644 backend/requirements.txt rename CHANGELOG.md => docs/CHANGELOG.md (100%) rename COMPLETE_AUTOMATION_STRATEGY.md => docs/COMPLETE_AUTOMATION_STRATEGY.md (100%) rename ACADEMIC_PROJECT_REPORT_EN.md => docs/academic/ACADEMIC_PROJECT_REPORT_EN.md (100%) rename AKADEMIK_PROJE_RAPORU_TR.md => docs/academic/AKADEMIK_PROJE_RAPORU_TR.md (100%) rename THESIS_SUMMARY.md => docs/academic/THESIS_SUMMARY.md (100%) rename CODE_OF_CONDUCT.md => docs/community/CODE_OF_CONDUCT.md (100%) rename CONTRIBUTING.md => docs/community/CONTRIBUTING.md (100%) rename SECURITY.md => docs/community/SECURITY.md (100%) rename CODE_EXAMPLES.md => docs/guides/CODE_EXAMPLES.md (100%) rename INTENSIVE_3_MONTH_PLAN.md => docs/guides/INTENSIVE_3_MONTH_PLAN.md (100%) rename PROJE_KURALLARI.md => docs/guides/PROJE_KURALLARI.md (100%) rename AI_MODEL_STRATEGY.md => docs/technical/AI_MODEL_STRATEGY.md (100%) rename DEPLOYMENT_CONFIG.md => docs/technical/DEPLOYMENT_CONFIG.md (100%) rename DEVFORGE_PLATFORM_STRUCTURE.md => docs/technical/DEVFORGE_PLATFORM_STRUCTURE.md (100%) rename MOBILE_RESPONSIVE_DESIGN.md => docs/technical/MOBILE_RESPONSIVE_DESIGN.md (100%) rename MODULAR_ARCHITECTURE.md => docs/technical/MODULAR_ARCHITECTURE.md (100%) rename PLATFORM_GITHUB_CONFIG.md => docs/technical/PLATFORM_GITHUB_CONFIG.md (100%) rename PROJECT_ROUTING_SYSTEM.md => docs/technical/PROJECT_ROUTING_SYSTEM.md (100%) rename TECHNICAL_SPECIFICATIONS.md => docs/technical/TECHNICAL_SPECIFICATIONS.md (100%) rename TECHNOLOGY_STACK_2025.md => docs/technical/TECHNOLOGY_STACK_2025.md (97%) diff --git a/.gitignore b/.gitignore index bfbfe09..a2060f7 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,17 @@ yarn-error.log* yarn.lock pnpm-lock.yaml +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +venv/ +env/ +ENV/ +.venv + # Build outputs .next/ out/ @@ -13,6 +24,14 @@ build/ dist/ coverage/ +# AI/ML Models +*.pth +*.pt +*.ckpt +*.safetensors +models/checkpoints/ +models/weights/ + # Environment variables .env .env.* diff --git a/README.md b/README.md index 0cdb86c..d23805e 100644 --- a/README.md +++ b/README.md @@ -7,8 +7,9 @@ > **Developer:** Hasan Arthur Altuntaş [![Live Demo](https://img.shields.io/badge/🚀_Live_Demo-Visit_Platform-blue?style=for-the-badge)](https://hasanarthuraltuntas.xyz) -[![Thesis Report](https://img.shields.io/badge/📄_Thesis-Academic_Report-green?style=for-the-badge)](./ACADEMIC_PROJECT_REPORT_EN.md) -[![Build Status](https://img.shields.io/badge/🔧_Build-Passing-brightgreen?style=for-the-badge)](#) +[![GitHub Repo](https://img.shields.io/badge/📦_GitHub-CrownCode-black?style=for-the-badge&logo=github)](https://github.com/Rtur2003/CrownCode) +[![Thesis Report](https://img.shields.io/badge/📄_Thesis-Academic_Report-green?style=for-the-badge)](./docs/academic/ACADEMIC_PROJECT_REPORT_EN.md) +[![Build Status](https://img.shields.io/badge/🔧_Build-In_Development-yellow?style=for-the-badge)](#) --- @@ -139,27 +140,38 @@ CrownCode is an advanced web-based platform that combines **artificial intellige cd CrownCode ``` -2. **Install platform dependencies** +2. **Switch to development branch** + ```bash + git checkout geliştirme + ``` + +3. **Install platform dependencies** ```bash cd platform npm install ``` -3. **Setup environment variables** +4. **Setup environment variables** ```bash cp .env.example .env.local # Configure your environment variables ``` -4. **Run development server** +5. **Run development server** ```bash npm run dev ``` -5. **Access the platform** +6. **Access the platform** - Local: `http://localhost:3000` - Production: `https://hasanarthuraltuntas.xyz` +### Available Branches + +- **`master`**: Production-ready stable release +- **`geliştirme`**: Active development branch +- **`arayüz`**: UI/UX focused development + ### AI Model Setup 1. **Install Python dependencies** @@ -230,16 +242,16 @@ class MusicDetectionModel(nn.Module): ## 🎓 Academic Documentation ### Thesis Reports -- 📄 [English Academic Report](./ACADEMIC_PROJECT_REPORT_EN.md) - Comprehensive technical documentation -- 📄 [Turkish Academic Report](./AKADEMIK_PROJE_RAPORU_TR.md) - Detailed Turkish documentation -- 📊 [AI Model Strategy](./AI_MODEL_STRATEGY.md) - Model development methodology -- 🏗️ [Architecture Documentation](./MODULAR_ARCHITECTURE.md) - System design principles +- 📄 [English Academic Report](./docs/academic/ACADEMIC_PROJECT_REPORT_EN.md) - Comprehensive technical documentation +- 📄 [Turkish Academic Report](./docs/academic/AKADEMIK_PROJE_RAPORU_TR.md) - Detailed Turkish documentation +- 📊 [AI Model Strategy](./docs/technical/AI_MODEL_STRATEGY.md) - Model development methodology +- 🏗️ [Architecture Documentation](./docs/technical/MODULAR_ARCHITECTURE.md) - System design principles ### Project Documentation -- 📋 [Deployment Configuration](./DEPLOYMENT_CONFIG.md) - Infrastructure setup -- 🚀 [Development Roadmap](./INTENSIVE_3_MONTH_PLAN.md) - Project timeline -- 📱 [Mobile Design](./MOBILE_RESPONSIVE_DESIGN.md) - Responsive implementation -- 🤖 [Automation Strategy](./COMPLETE_AUTOMATION_STRATEGY.md) - DevOps processes +- 📋 [Deployment Configuration](./docs/technical/DEPLOYMENT_CONFIG.md) - Infrastructure setup +- 🚀 [Development Roadmap](./docs/guides/INTENSIVE_3_MONTH_PLAN.md) - Project timeline +- 📱 [Mobile Design](./docs/technical/MOBILE_RESPONSIVE_DESIGN.md) - Responsive implementation +- 🤖 [Automation Strategy](./docs/technical/COMPLETE_AUTOMATION_STRATEGY.md) - DevOps processes --- @@ -353,6 +365,7 @@ This project is released under the MIT License - see the [LICENSE](./LICENSE) fi - 📚 **Documentation**: [Academic Reports](./ACADEMIC_PROJECT_REPORT_EN.md) - 🐛 **Issues**: [GitHub Issues](https://github.com/Rtur2003/CrownCode/issues) - 💬 **Discussions**: [GitHub Discussions](https://github.com/Rtur2003/CrownCode/discussions) +- 🌿 **Development Branch**: [geliştirme](https://github.com/Rtur2003/CrownCode/tree/geliştirme) --- diff --git a/README_PLATFORM.md b/README_PLATFORM.md index 2d1efb4..b6148b6 100644 --- a/README_PLATFORM.md +++ b/README_PLATFORM.md @@ -1,362 +1,281 @@ -# 🚀 DevForge Suite with Rthur +# 🚀 CrownCode Platform
-![DevForge Suite Logo](https://img.shields.io/badge/DevForge-Suite-gold?style=for-the-badge&logo=rocket&logoColor=white) +![CrownCode Logo](https://img.shields.io/badge/Crown-Code-gold?style=for-the-badge&logo=crown&logoColor=white) -**Comprehensive Development Platform for Modern Web Applications** +**AI-Powered Research Platform for Music Detection and Data Analysis** -[![GitHub Stars](https://img.shields.io/github/stars/Rtur2003/DevForge-Suite-with-Rthur?style=social)](https://github.com/Rtur2003/DevForge-Suite-with-Rthur) -[![Live Platform](https://img.shields.io/badge/Live-Platform-brightgreen?style=for-the-badge)](https://devforge-suite.com) +[![GitHub Stars](https://img.shields.io/github/stars/Rtur2003/CrownCode?style=social)](https://github.com/Rtur2003/CrownCode) +[![Live Platform](https://img.shields.io/badge/Live-Platform-brightgreen?style=for-the-badge)](https://hasanarthuraltuntas.xyz) [![License](https://img.shields.io/badge/License-MIT-blue?style=for-the-badge)](LICENSE) +[![Branch](https://img.shields.io/badge/Branch-geliştirme-blue?style=for-the-badge)](https://github.com/Rtur2003/CrownCode/tree/geliştirme)
## 🌟 Platform Genel Bakış -DevForge Suite, modern web uygulamaları geliştirmek için tasarlanmış kapsamlı bir geliştirme platformudur. Her proje modüler yapıda tasarlanmış olup, mobil ve masaüstü cihazlarda mükemmel uyumluluk sağlar. +CrownCode, yapay zeka destekli müzik tespiti ve veri manipülasyonu için geliştirilmiş bir araştırma platformudur. Modüler yapıda tasarlanmış olup, mobil ve masaüstü cihazlarda mükemmel uyumluluk sağlar. + +> **Düzce Üniversitesi Bilgisayar Mühendisliği Bölümü** +> **Bitirme Projesi 2025-2026** +> **Geliştirici:** Hasan Arthur Altuntaş ### ✨ Platform Özellikleri -- 🎯 **Modüler Mimari**: Bağımsız projeler, ortak altyapı -- 📱 **Responsive Tasarım**: Mobil-first yaklaşım -- ⚡ **Yüksek Performans**: Optimize edilmiş kod yapısı -- 🔄 **Gerçek Zamanlı**: Live demo ve interaktif özellikler -- 🛡️ **Güvenli**: Enterprise-grade güvenlik standartları -- 🌐 **Çok Dilli**: Türkçe ve İngilizce destek +- 🎯 **Modüler Mimari**: Bağımsız araştırma modülleri, ortak platform altyapısı +- 📱 **Responsive Tasarım**: Mobil-first yaklaşım ile tam uyumluluk +- ⚡ **Yüksek Performans**: Optimize edilmiş kod yapısı ve caching +- 🔄 **Gerçek Zamanlı**: Live işleme ve interaktif özellikler +- 🛡️ **Güvenli**: Modern güvenlik standartları +- 🌐 **Çok Dilli**: Türkçe ve İngilizce tam destek + +--- -## 🏗️ Aktif Projeler +## 🏗️ Aktif Araştırma Modülleri -### 1. 🎵 AI Music Detection Platform -**Yapay Zeka Müzik Tespit Platformu** +### 1. 🎵 AI Music Detection +**Yapay Zeka Destekli Müzik Tespit Sistemi** -[![Project Status](https://img.shields.io/badge/Status-Active-brightgreen)](./ai-music-detection/) -[![Accuracy](https://img.shields.io/badge/Accuracy-97.2%25-blue)](./ai-music-detection/) -[![Demo](https://img.shields.io/badge/Demo-Live-orange)](https://devforge-suite.com/ai-music-detection) +[![Status](https://img.shields.io/badge/Status-In_Development-yellow)](https://github.com/Rtur2003/CrownCode) +[![Target](https://img.shields.io/badge/Target_Accuracy-95%25+-blue)](https://github.com/Rtur2003/CrownCode) - **Amaç**: AI ile üretilen müziği insan yapımı müzikten ayırt etme -- **Teknoloji**: wav2vec2, TensorFlow.js, Next.js 14 -- **Özellikler**: - - Real-time audio analysis - - Zero manual labeling - - 97.2% detection accuracy - - Web-based interface +- **Model**: wav2vec2 tabanlı deep learning +- **Teknoloji Stack**: PyTorch, Next.js 14, TensorFlow.js +- **Hedef Özellikler**: + - ✅ Web-based dosya yükleme + - 🔄 YouTube/Spotify/SoundCloud link desteği (geliştiriliyor) + - 🔄 Real-time audio analysis (planlanıyor) + - 🔄 Batch processing (planlanıyor) -**📁 Proje Dizini**: [`/ai-music-detection/`](./ai-music-detection/) +**📁 Sayfa**: [`/ai-music-detection`](https://hasanarthuraltuntas.xyz/ai-music-detection) --- -### 2. 📊 Data Manipulation Suite *(Gelecek Proje)* -**Veri İşleme ve Çoğaltma Platformu** +### 2. 📊 Data Augmentation Toolkit +**Veri Arttırma ve İşleme Araçları** -[![Project Status](https://img.shields.io/badge/Status-Planned-yellow)](./data-manipulation/) -[![Release](https://img.shields.io/badge/Release-Q2%202025-lightblue)](./data-manipulation/) +[![Status](https://img.shields.io/badge/Status-UI_Ready-green)](https://github.com/Rtur2003/CrownCode) +[![Backend](https://img.shields.io/badge/Backend-Planned-yellow)](https://github.com/Rtur2003/CrownCode) -- **Amaç**: Araştırmacılar için veri işleme araçları -- **Teknoloji**: React, Node.js, Python -- **Özellikler**: - - Batch data processing - - Multiple format support - - Statistical analysis - - Data visualization +- **Amaç**: Araştırmacılar için veri seti oluşturma ve arttırma +- **Teknoloji**: React, Node.js, Python, librosa +- **Hedef Özellikler**: + - ✅ Dosya yükleme UI + - ✅ Veri tipi seçimi (ses/görüntü/metin) + - 🔄 Audio augmentation (pitch, tempo, noise) + - 🔄 Batch processing pipeline (planlanıyor) -**📁 Proje Dizini**: [`/data-manipulation/`](./data-manipulation/) *(Yakında)* +**📁 Sayfa**: [`/data-manipulation`](https://hasanarthuraltuntas.xyz/data-manipulation) --- -### 3. 🧠 Machine Learning Toolkit *(Gelecek Proje)* -**Makine Öğrenmesi Araç Seti** - -[![Project Status](https://img.shields.io/badge/Status-Concept-lightgrey)](./ml-toolkit/) -[![Release](https://img.shields.io/badge/Release-Q3%202025-lightblue)](./ml-toolkit/) - -- **Amaç**: No-code ML model training platform -- **Teknoloji**: Python, FastAPI, React -- **Özellikler**: - - Visual model builder - - Automated feature engineering - - Model deployment pipeline - - Performance monitoring - -**📁 Proje Dizini**: [`/ml-toolkit/`](./ml-toolkit/) *(Planlama Aşamasında)* - ## 🎨 Tasarım Sistemi -### 📱 Mobil Öncelikli Yaklaşım +### 📱 Responsive Breakpoints ```css -/* Responsive Breakpoints */ -Mobile: 320px - 768px -Tablet: 768px - 1024px -Desktop: 1024px - 1440px -Large: 1440px+ +Mobile: 320px - 767px (Primary focus) +Tablet: 768px - 1023px +Desktop: 1024px - 1439px +Large: 1440px+ ``` ### 🎨 Renk Paleti ```css :root { - /* Primary Colors */ - --primary-gold: #FFD700; - --primary-blue: #1E40AF; - --primary-dark: #1F2937; - - /* Secondary Colors */ - --accent-green: #10B981; - --accent-orange: #F59E0B; - --accent-purple: #8B5CF6; - - /* Neutral Colors */ - --gray-50: #F9FAFB; - --gray-900: #111827; + /* Brand Colors */ + --primary-gold: #FFD700; /* CrownCode altın */ + --primary-blue: #1E40AF; /* Vurgu rengi */ + --primary-dark: #1F2937; /* Arka plan */ + + /* Status Colors */ + --success: #10B981; + --warning: #F59E0B; + --error: #EF4444; } ``` -### 🖼️ Tasarım İlkeleri +### 🖼️ Tasarım Prensipleri -- **Clarity**: Her öğe net ve anlaşılır -- **Consistency**: Tüm projeler arasında tutarlı tasarım -- **Accessibility**: WCAG 2.1 AA standartlarına uygunluk -- **Performance**: Hızlı yükleme ve smooth animasyonlar +- **Clarity**: Minimalist ve net arayüz +- **Accessibility**: WCAG 2.1 AA uyumlu +- **Performance**: <2s sayfa yükleme süresi +- **Mobile-First**: Öncelik mobil kullanıcı deneyimi -## 🚀 Platform Mimarisi +--- -### 🏗️ Genel Yapı +## 🚀 Proje Yapısı ``` -DevForge-Suite-with-Rthur/ -├── 🏠 platform/ # Ana platform kodu -│ ├── frontend/ # React/Next.js UI -│ ├── backend/ # Node.js API -│ └── shared/ # Ortak komponenlar -├── 🎵 ai-music-detection/ # AI Müzik Tespit Projesi -├── 📊 data-manipulation/ # Veri İşleme Projesi (Gelecek) -├── 🧠 ml-toolkit/ # ML Araç Seti (Gelecek) -├── 📚 docs/ # Platform dokümantasyonu -├── 🎨 assets/ # Ortak medya dosyaları -└── 🔧 scripts/ # Deployment ve utility scriptleri +CrownCode/ +├── platform/ # Ana Next.js platformu +│ ├── pages/ # Route sayfaları +│ │ ├── index.tsx # Ana sayfa +│ │ ├── ai-music-detection/ # AI müzik modülü +│ │ └── data-manipulation/ # Veri işleme modülü +│ ├── components/ # React komponentleri +│ │ ├── Layout/ # Layout bileşenleri +│ │ ├── Home/ # Ana sayfa bileşenleri +│ │ ├── Navigation/ # Navigasyon +│ │ └── MLToolkit/ # ML araç bileşenleri +│ ├── styles/ # CSS dosyaları +│ │ ├── base/ # Temel stiller +│ │ ├── components/ # Komponent stilleri +│ │ └── globals.css # Global CSS +│ ├── context/ # React Context +│ ├── hooks/ # Custom hooks +│ └── utils/ # Yardımcı fonksiyonlar +├── docs/ # Dokümantasyon +├── assets/ # Medya dosyaları +└── .github/ # GitHub Actions & Templates ``` -### 🔗 Proje Bağlantı Sistemi - -Her alt proje, ana platform üzerinden erişilebilir: - -- **Ana Platform**: `https://devforge-suite.com` -- **AI Music Detection**: `https://devforge-suite.com/ai-music-detection` -- **Data Manipulation**: `https://devforge-suite.com/data-manipulation` -- **ML Toolkit**: `https://devforge-suite.com/ml-toolkit` +--- ## 💻 Geliştirme Ortamı ### 📋 Gereksinimler -- **Node.js**: 20.18.1 LTS veya üstü -- **npm**: 10.9.2 veya üstü +- **Node.js**: 20.18.1+ LTS +- **npm**: 10.9.2+ - **Git**: 2.40+ -- **Python**: 3.11+ (ML projeleri için) +- **Python**: 3.11+ (model eğitimi için) ### 🛠️ Kurulum ```bash -# Repository'yi klonlayın -git clone https://github.com/Rtur2003/DevForge-Suite-with-Rthur.git -cd DevForge-Suite-with-Rthur +# Repository'yi klonla +git clone https://github.com/Rtur2003/CrownCode.git +cd CrownCode + +# Geliştirme branch'ine geç +git checkout geliştirme -# Ana platform bağımlılıklarını yükleyin +# Platform bağımlılıklarını yükle cd platform npm install -# Development server'ı başlatın +# Development server'ı başlat npm run dev - -# Tüm alt projeleri başlatın (paralel) -npm run dev:all ``` -### 🔧 Geliştirme Komutları - -```bash -# Tüm projeleri test et -npm run test:all - -# Build all projects -npm run build:all +Platform `http://localhost:3000` adresinde çalışacaktır. -# Deploy to staging -npm run deploy:staging +### 🔧 Mevcut Komutlar -# Deploy to production -npm run deploy:production +```bash +# Platform dizininde +npm run dev # Development server +npm run build # Production build +npm run start # Production server +npm run lint # ESLint kontrolü +npm run type-check # TypeScript tip kontrolü ``` +--- + ## 📱 Mobil Uyumluluk -### 📱 Mobil Özellikler +### ✅ Mobil Özellikleri -- **Progressive Web App (PWA)** desteği -- **Touch-friendly** interface -- **Offline** mode desteği -- **Native app-like** navigation -- **Responsive** grid systems +- **Touch-Optimized**: 44px minimum dokunma alanı +- **Responsive Grid**: Tüm ekran boyutlarında uyumlu +- **Mobile Navigation**: Hamburger menü ve bottom nav +- **Fast Loading**: Optimize edilmiş asset yükleme +- **PWA Ready**: Progressive Web App hazır altyapı ### ⚠️ Mobil Kısıtlamalar -Bazı özellikler mobilde sınırlı olabilir: - -- **File Upload**: Büyük dosyalar için optimize edilmemiş -- **Advanced Processing**: CPU-intensive işlemler -- **Real-time Features**: Ağ bağlantısına bağlı -- **Complex Visualizations**: Küçük ekranlarda sınırlı - -> **Not**: Mobilde görsel uyumluluk %100 sağlanır, fonksiyonel kısıtlamalar belirtilir. - -## 🔗 Proje Navigasyonu - -### 🧭 Ana Navigasyon - -```typescript -interface ProjectNavigation { - projects: [ - { - id: 'ai-music-detection', - title: 'AI Music Detection', - description: 'Yapay zeka müzik tespit platformu', - status: 'active', - url: '/ai-music-detection', - technologies: ['Next.js', 'TensorFlow.js', 'wav2vec2'] - }, - { - id: 'data-manipulation', - title: 'Data Manipulation Suite', - description: 'Veri işleme ve analiz araçları', - status: 'planned', - url: '/data-manipulation', - technologies: ['React', 'Python', 'Pandas'] - } - ] -} -``` +Bazı özellikler mobilde sınırlı çalışabilir: -### 📄 Alt Sayfa Yapısı +- **Büyük Dosya İşleme**: 50MB+ dosyalar için masaüstü önerilir +- **CPU-Yoğun İşlemler**: Model inference mobilde yavaş olabilir +- **Batch Processing**: Çoklu dosya işleme masaüstüde daha verimli -Her proje için standart sayfa yapısı: +--- -- **`/`** - Proje ana sayfası -- **`/demo`** - Canlı demo -- **`/docs`** - Dokümantasyon -- **`/api`** - API dokümantasyonu -- **`/about`** - Proje hakkında +## 🌍 Canlı Platform -## 📊 Platform İstatistikleri +### 🔗 Erişim -### 📈 Performans Metrikleri +- **Ana Platform**: [hasanarthuraltuntas.xyz](https://hasanarthuraltuntas.xyz) +- **GitHub Repo**: [github.com/Rtur2003/CrownCode](https://github.com/Rtur2003/CrownCode) +- **Geliştirme Branch**: [geliştirme](https://github.com/Rtur2003/CrownCode/tree/geliştirme) -- **Page Load Time**: < 2 seconds -- **First Contentful Paint**: < 1.5 seconds -- **Largest Contentful Paint**: < 2.5 seconds -- **Cumulative Layout Shift**: < 0.1 -- **First Input Delay**: < 100ms +### 📊 Branch Yapısı -### 🎯 Kullanım İstatistikleri +- **`master`**: Production-ready kararlı sürüm +- **`geliştirme`**: Aktif geliştirme branch'i +- **`arayüz`**: UI/UX odaklı geliştirmeler -```yaml -Platform Metrics: - Monthly Active Users: 10,000+ - Project Success Rate: 98.5% - Average Session Duration: 8 minutes - Mobile Usage: 45% - Desktop Usage: 55% -``` +--- -## 🔮 Gelecek Planları +## 🔮 Geliştirme Yol Haritası -### 📅 Roadmap 2025 +### 📅 Q1 2025 (Şubat - Nisan) -#### Q1 2025 -- [x] AI Music Detection Platform (Tamamlandı) -- [ ] Platform UI/UX optimizasyonu -- [ ] Mobile app development +- [x] Platform altyapısı kurulumu +- [x] Responsive UI tasarımı +- [x] Çoklu dil desteği +- [ ] AI model training pipeline +- [ ] Veri seti toplama otomasyonu -#### Q2 2025 -- [ ] Data Manipulation Suite -- [ ] Advanced analytics dashboard -- [ ] API gateway implementation +### 📅 Q2 2025 (Mayıs - Temmuz) -#### Q3 2025 -- [ ] Machine Learning Toolkit -- [ ] Real-time collaboration features -- [ ] Multi-tenant architecture +- [ ] YouTube/Spotify/SoundCloud entegrasyonu +- [ ] Audio augmentation backend +- [ ] Real-time inference API +- [ ] Model deployment -#### Q4 2025 -- [ ] Enterprise features -- [ ] Advanced security modules -- [ ] Performance optimization +### 📅 Q3 2025 (Ağustos - Ekim) -### 🚀 Yeni Özellikler +- [ ] Production deployment +- [ ] Performance optimization +- [ ] Security hardening +- [ ] Tez teslimi -- **Real-time Collaboration**: Takım çalışması desteği -- **Cloud Integration**: AWS/Azure entegrasyonu -- **Advanced Analytics**: Detaylı kullanım analitikleri -- **API Marketplace**: Third-party integrations +--- ## 🤝 Katkıda Bulunma -### 👥 Topluluk - -DevForge Suite açık kaynak bir proje olup, katkıları memnuniyetle karşılar: +Bu proje Düzce Üniversitesi bitirme projesi kapsamında geliştirilmektedir. Katkılar ve geri bildirimler için: -- **Bug Reports**: Issues sekmesinde bildirebilirsiniz -- **Feature Requests**: Yeni özellik önerilerinizi paylaşın -- **Code Contributions**: Pull request gönderin -- **Documentation**: Dokümantasyon iyileştirmeleri +- **Issues**: [GitHub Issues](https://github.com/Rtur2003/CrownCode/issues) +- **Pull Requests**: `geliştirme` branch'ine PR açabilirsiniz +- **Discussions**: Sorularınız için GitHub Discussions -### 📋 Katkı Rehberi - -Detaylı katkı rehberi için: [`CONTRIBUTING.md`](CONTRIBUTING.md) +--- ## 📞 İletişim -### 👨‍💻 Proje Sahibi +### 👨‍💻 Geliştirici -**Hasan Arthur Altuntaş (Rthur)** +**Hasan Arthur Altuntaş** - **GitHub**: [@Rtur2003](https://github.com/Rtur2003) - **Email**: contact@hasanarthuraltuntas.xyz -- **Platform**: [hasanarthuraltuntas.xyz](https://hasanarthuraltuntas.xyz) - -### 🔗 Sosyal Medya - +- **Website**: [hasanarthuraltuntas.xyz](https://hasanarthuraltuntas.xyz) - **LinkedIn**: [Hasan Arthur Altuntaş](https://linkedin.com/in/hasanarthuraltuntas) -- **Twitter**: [@rthur_dev](https://twitter.com/rthur_dev) + +--- ## 📜 Lisans Bu proje MIT lisansı altında lisanslanmıştır. Detaylar için [`LICENSE`](LICENSE) dosyasına bakınız. -## 🙏 Teşekkürler - -### 🏆 Katkıda Bulunanlar - -- **Community Contributors**: Açık kaynak topluluğuna teşekkürler -- **Beta Testers**: Erken kullanıcılar ve geri bildirim sağlayanlar -- **Technology Partners**: Kullandığımız açık kaynak teknolojiler - -### 🔧 Kullanılan Teknolojiler - -- **Frontend**: Next.js, React, Tailwind CSS -- **Backend**: Node.js, Express, PostgreSQL -- **AI/ML**: TensorFlow.js, Python, wav2vec2 -- **Deployment**: Vercel, Netlify, Docker -- **Monitoring**: Sentry, Vercel Analytics - ---
-**🚀 DevForge Suite ile Geleceği İnşa Ediyoruz** +**🏆 Düzce Üniversitesi Bilgisayar Mühendisliği** +**Bitirme Projesi 2025-2026** -*Modern web development için tek platform* +[![Düzce University](https://img.shields.io/badge/🏫_Düzce_University-Computer_Engineering-blue?style=for-the-badge)](https://duzce.edu.tr) +[![Academic Year](https://img.shields.io/badge/📅_Academic_Year-2025--2026-green?style=for-the-badge)](#) +[![Status](https://img.shields.io/badge/🚀_Status-In_Development-yellow?style=for-the-badge)](#) -[![Star this repo](https://img.shields.io/github/stars/Rtur2003/DevForge-Suite-with-Rthur?style=social)](https://github.com/Rtur2003/DevForge-Suite-with-Rthur) -[![Follow on GitHub](https://img.shields.io/github/followers/Rtur2003?style=social)](https://github.com/Rtur2003) +**Made with ❤️ by Hasan Arthur Altuntaş**
\ No newline at end of file diff --git a/backend/README.md b/backend/README.md new file mode 100644 index 0000000..90bcf43 --- /dev/null +++ b/backend/README.md @@ -0,0 +1,87 @@ +# CrownCode Backend + +Backend services for AI Music Detection and Data Processing + +## 🏗️ Structure + +``` +backend/ +├── api/ # API endpoints +│ ├── analyze.py # Music analysis endpoint +│ ├── upload.py # File upload handler +│ └── augment.py # Data augmentation endpoint +├── models/ # AI Models +│ ├── wav2vec2/ # Wav2vec2 model +│ └── classifier/ # Classification head +├── services/ # Business logic +│ ├── audio/ # Audio processing +│ ├── inference/ # Model inference +│ └── dataset/ # Dataset management +├── utils/ # Utilities +│ ├── validators/ # Input validation +│ └── helpers/ # Helper functions +└── config/ # Configuration + ├── model.yaml # Model config + └── server.yaml # Server config +``` + +## 🔧 Technology Stack + +### Core Framework +- **Python**: 3.11+ +- **Framework**: FastAPI or Flask + +### AI/ML +- **PyTorch**: 2.4+ with CUDA 12.9 support +- **Transformers**: Hugging Face transformers library +- **Model**: facebook/wav2vec2-base + custom classifier + +### Audio Processing +- **librosa**: Audio analysis and feature extraction +- **torchaudio**: PyTorch audio processing +- **soundfile**: Audio file I/O + +### Data Processing +- **numpy**: Numerical operations +- **pandas**: Data manipulation + +## 📦 Installation + +```bash +# Install PyTorch with CUDA 12.9 +pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 + +# Install dependencies +pip install -r requirements.txt +``` + +## 🚀 Development Status + +- [ ] API endpoints setup +- [ ] Model training pipeline +- [ ] Inference service +- [ ] Dataset collection automation +- [ ] YouTube/Spotify/SoundCloud integration + +## 🎯 Planned Features + +1. **Audio Analysis API** + - File upload endpoint + - Link-based analysis (YouTube, Spotify, SoundCloud) + - Batch processing + +2. **Model Training** + - Automated data collection + - Training pipeline + - Model versioning + +3. **Data Augmentation** + - Pitch shifting + - Time stretching + - Noise injection + - Format conversion + +--- + +**Status**: Planning Phase +**Target**: Q2 2025 \ No newline at end of file diff --git a/backend/requirements.txt b/backend/requirements.txt new file mode 100644 index 0000000..41356a4 --- /dev/null +++ b/backend/requirements.txt @@ -0,0 +1,52 @@ +# CrownCode Backend Dependencies +# Python 3.11+ + +# === Core Framework === +fastapi==0.109.0 +uvicorn[standard]==0.27.0 +pydantic==2.5.3 +python-multipart==0.0.6 + +# === AI/ML (PyTorch with CUDA 12.9) === +# Install separately: +# pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121 + +transformers==4.37.0 +accelerate==0.26.0 +datasets==2.16.1 + +# === Audio Processing === +librosa==0.10.1 +soundfile==0.12.1 +audioread==3.0.1 +resampy==0.4.2 + +# === Data Processing === +numpy==1.26.3 +pandas==2.1.4 +scipy==1.11.4 + +# === API & Web === +aiohttp==3.9.1 +httpx==0.26.0 +requests==2.31.0 + +# === Utilities === +python-dotenv==1.0.0 +pyyaml==6.0.1 +click==8.1.7 + +# === Monitoring & Logging === +loguru==0.7.2 +prometheus-client==0.19.0 + +# === Development === +pytest==7.4.4 +pytest-asyncio==0.23.3 +black==23.12.1 +ruff==0.1.11 + +# === YouTube/Spotify/SoundCloud === +yt-dlp==2024.1.0 +spotdl==4.2.4 +# scdl - install via: pip install scdl \ No newline at end of file diff --git a/CHANGELOG.md b/docs/CHANGELOG.md similarity index 100% rename from CHANGELOG.md rename to docs/CHANGELOG.md diff --git a/COMPLETE_AUTOMATION_STRATEGY.md b/docs/COMPLETE_AUTOMATION_STRATEGY.md similarity index 100% rename from COMPLETE_AUTOMATION_STRATEGY.md rename to docs/COMPLETE_AUTOMATION_STRATEGY.md diff --git a/ACADEMIC_PROJECT_REPORT_EN.md b/docs/academic/ACADEMIC_PROJECT_REPORT_EN.md similarity index 100% rename from ACADEMIC_PROJECT_REPORT_EN.md rename to docs/academic/ACADEMIC_PROJECT_REPORT_EN.md diff --git a/AKADEMIK_PROJE_RAPORU_TR.md b/docs/academic/AKADEMIK_PROJE_RAPORU_TR.md similarity index 100% rename from AKADEMIK_PROJE_RAPORU_TR.md rename to docs/academic/AKADEMIK_PROJE_RAPORU_TR.md diff --git a/THESIS_SUMMARY.md b/docs/academic/THESIS_SUMMARY.md similarity index 100% rename from THESIS_SUMMARY.md rename to docs/academic/THESIS_SUMMARY.md diff --git a/CODE_OF_CONDUCT.md b/docs/community/CODE_OF_CONDUCT.md similarity index 100% rename from CODE_OF_CONDUCT.md rename to docs/community/CODE_OF_CONDUCT.md diff --git a/CONTRIBUTING.md b/docs/community/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTING.md rename to docs/community/CONTRIBUTING.md diff --git a/SECURITY.md b/docs/community/SECURITY.md similarity index 100% rename from SECURITY.md rename to docs/community/SECURITY.md diff --git a/CODE_EXAMPLES.md b/docs/guides/CODE_EXAMPLES.md similarity index 100% rename from CODE_EXAMPLES.md rename to docs/guides/CODE_EXAMPLES.md diff --git a/INTENSIVE_3_MONTH_PLAN.md b/docs/guides/INTENSIVE_3_MONTH_PLAN.md similarity index 100% rename from INTENSIVE_3_MONTH_PLAN.md rename to docs/guides/INTENSIVE_3_MONTH_PLAN.md diff --git a/PROJE_KURALLARI.md b/docs/guides/PROJE_KURALLARI.md similarity index 100% rename from PROJE_KURALLARI.md rename to docs/guides/PROJE_KURALLARI.md diff --git a/AI_MODEL_STRATEGY.md b/docs/technical/AI_MODEL_STRATEGY.md similarity index 100% rename from AI_MODEL_STRATEGY.md rename to docs/technical/AI_MODEL_STRATEGY.md diff --git a/DEPLOYMENT_CONFIG.md b/docs/technical/DEPLOYMENT_CONFIG.md similarity index 100% rename from DEPLOYMENT_CONFIG.md rename to docs/technical/DEPLOYMENT_CONFIG.md diff --git a/DEVFORGE_PLATFORM_STRUCTURE.md b/docs/technical/DEVFORGE_PLATFORM_STRUCTURE.md similarity index 100% rename from DEVFORGE_PLATFORM_STRUCTURE.md rename to docs/technical/DEVFORGE_PLATFORM_STRUCTURE.md diff --git a/MOBILE_RESPONSIVE_DESIGN.md b/docs/technical/MOBILE_RESPONSIVE_DESIGN.md similarity index 100% rename from MOBILE_RESPONSIVE_DESIGN.md rename to docs/technical/MOBILE_RESPONSIVE_DESIGN.md diff --git a/MODULAR_ARCHITECTURE.md b/docs/technical/MODULAR_ARCHITECTURE.md similarity index 100% rename from MODULAR_ARCHITECTURE.md rename to docs/technical/MODULAR_ARCHITECTURE.md diff --git a/PLATFORM_GITHUB_CONFIG.md b/docs/technical/PLATFORM_GITHUB_CONFIG.md similarity index 100% rename from PLATFORM_GITHUB_CONFIG.md rename to docs/technical/PLATFORM_GITHUB_CONFIG.md diff --git a/PROJECT_ROUTING_SYSTEM.md b/docs/technical/PROJECT_ROUTING_SYSTEM.md similarity index 100% rename from PROJECT_ROUTING_SYSTEM.md rename to docs/technical/PROJECT_ROUTING_SYSTEM.md diff --git a/TECHNICAL_SPECIFICATIONS.md b/docs/technical/TECHNICAL_SPECIFICATIONS.md similarity index 100% rename from TECHNICAL_SPECIFICATIONS.md rename to docs/technical/TECHNICAL_SPECIFICATIONS.md diff --git a/TECHNOLOGY_STACK_2025.md b/docs/technical/TECHNOLOGY_STACK_2025.md similarity index 97% rename from TECHNOLOGY_STACK_2025.md rename to docs/technical/TECHNOLOGY_STACK_2025.md index 3284754..f67bc8d 100644 --- a/TECHNOLOGY_STACK_2025.md +++ b/docs/technical/TECHNOLOGY_STACK_2025.md @@ -579,13 +579,15 @@ { "training_framework": { "name": "PyTorch", - "version": "2.2.2", - "release_date": "2024-12-04", + "version": "2.4.0+ with CUDA 12.9", + "release_date": "2024-10+", "justification": [ + "Latest stable with CUDA 12.9 support", "Research community standard", "Dynamic computation graphs", - "Python ecosystem", - "Model deployment options" + "Python 3.11+ optimizations", + "Model deployment options", + "Install: pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu121" ] }, "model_deployment": { diff --git a/platform/locales/en.json b/platform/locales/en.json index 3cb64a5..c652fe1 100644 --- a/platform/locales/en.json +++ b/platform/locales/en.json @@ -9,14 +9,14 @@ "main": "CrownCode", "accent": "Platform" }, - "subtitle": "Advanced AI platform for detecting AI-generated music. Professional music analysis using wav2vec2-based deep learning model with 97.2% accuracy rate.", + "subtitle": "Advanced AI research platform for detecting AI-generated music. Professional music analysis using wav2vec2-based deep learning model. In development.", "cta": { "explore": "Try AI Music Detection", "github": "Source Code" }, "features": { "modern": "Advanced AI Technology", - "accuracy": "97.2% Accuracy Rate" + "accuracy": "Target 95%+ Accuracy" }, "scroll": "Discover More" }, @@ -33,9 +33,9 @@ "items": { "aiMusic": { "title": "AI Music Detection Engine", - "description": "Advanced wav2vec2-based deep learning model that distinguishes AI-generated music from human compositions with 97.2% accuracy. Professional implementation.", - "status": "Research Active", - "stats": "97.2% Accuracy", + "description": "Research platform aiming to distinguish AI-generated music from human compositions using wav2vec2-based deep learning model. Currently in development.", + "status": "In Development", + "stats": "Target 95%+ Accuracy", "features": ["wav2vec2 Architecture", "Transfer Learning", "Automated Pipeline"] }, "mlToolkit": { diff --git a/platform/locales/tr.json b/platform/locales/tr.json index c3eb607..cdec747 100644 --- a/platform/locales/tr.json +++ b/platform/locales/tr.json @@ -9,14 +9,14 @@ "main": "CrownCode", "accent": "Platformu" }, - "subtitle": "AI ile üretilmiş müzikleri tespit eden gelişmiş yapay zeka platformu. wav2vec2 tabanlı derin öğrenme modeli kullanarak %97.2 doğruluk oranı ile profesyonel müzik analizi.", + "subtitle": "AI ile üretilmiş müzikleri tespit eden gelişmiş yapay zeka araştırma platformu. wav2vec2 tabanlı derin öğrenme modeli kullanarak profesyonel müzik analizi hedefleniyor.", "cta": { "explore": "AI Müzik Tespitini Dene", "github": "Kaynak Kodu" }, "features": { "modern": "Gelişmiş AI Teknolojisi", - "accuracy": "%97.2 Doğruluk Oranı" + "accuracy": "Hedef %95+ Doğruluk" }, "scroll": "Daha Fazlasını Keşfet" }, @@ -33,10 +33,10 @@ "items": { "aiMusic": { "title": "AI Müzik Tespit Motoru", - "description": "wav2vec2 tabanlı gelişmiş derin öğrenme modeli ile AI üretimi müzikleri insan bestelerinden %97.2 doğrulukla ayırt eden profesyonel uygulama.", - "status": "Araştırma Aktif", - "stats": "97.2% Doğruluk", - "features": ["wav2vec2 Mimarisi", "Transfer Learning", "Otomatik Pipeline"] + "description": "wav2vec2 tabanlı derin öğrenme modeli ile AI üretimi müzikleri insan bestelerinden ayırt etmeyi hedefleyen araştırma platformu. Geliştirme aşamasında.", + "status": "Geliştiriliyor", + "stats": "Hedef %95+ Doğruluk", + "features": ["wav2vec2 Mimarisi", "Derin Öğrenme", "Ses Analizi"] }, "mlToolkit": { "title": "ML Araştırma Araç Seti", diff --git a/platform/package.json b/platform/package.json index f0e7fa4..b0d7894 100644 --- a/platform/package.json +++ b/platform/package.json @@ -1,7 +1,13 @@ { "name": "@crowncode/platform", "version": "1.0.0", - "description": "CrownCode - AI Powered Development Platform by Rthur", + "description": "CrownCode - AI-Powered Music Detection & Data Analysis Platform", + "author": "Hasan Arthur Altuntaş ", + "license": "MIT", + "repository": { + "type": "git", + "url": "https://github.com/Rtur2003/CrownCode.git" + }, "private": true, "scripts": { "dev": "next dev -p 3000", diff --git a/platform/pages/index.tsx b/platform/pages/index.tsx index 30cf574..7644e26 100644 --- a/platform/pages/index.tsx +++ b/platform/pages/index.tsx @@ -7,9 +7,9 @@ import { ProjectsSection } from '@/components/Home/ProjectsSection' const HomePage: NextPage = () => { return ( diff --git a/platform/styles/components/hero.css b/platform/styles/components/hero.css index 8aeeaa3..09ae692 100644 --- a/platform/styles/components/hero.css +++ b/platform/styles/components/hero.css @@ -405,8 +405,8 @@ .btn-primary, .btn-secondary { width: 100%; + max-width: 320px; justify-content: center; - max-width: 280px; } .hero-card { From 48a404a3d39e90691068bc7023b7c10567063afd Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Tue, 30 Sep 2025 17:01:11 +0300 Subject: [PATCH 004/163] =?UTF-8?q?g=C3=B6rsel=20d=C3=BCzenlemesi?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/public/favicon.svg | 65 ++++++++++++++++++++++++++++--------- 1 file changed, 49 insertions(+), 16 deletions(-) diff --git a/platform/public/favicon.svg b/platform/public/favicon.svg index fe06f24..949237e 100644 --- a/platform/public/favicon.svg +++ b/platform/public/favicon.svg @@ -1,16 +1,49 @@ - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + From 2bb3c2fdaf26d91d93d4387ef51ecf1c0cdafb99 Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Wed, 1 Oct 2025 17:13:13 +0300 Subject: [PATCH 005/163] . --- platform/context/LanguageContext.tsx | 9 +- platform/pages/_app.tsx | 1 - platform/pages/ai-music-detection/index.tsx | 170 ++++++++++-------- ...-detection.css => ai-detection.module.css} | 0 4 files changed, 105 insertions(+), 75 deletions(-) rename platform/styles/pages/{ai-detection.css => ai-detection.module.css} (100%) diff --git a/platform/context/LanguageContext.tsx b/platform/context/LanguageContext.tsx index 2fd9a5a..4d9af27 100644 --- a/platform/context/LanguageContext.tsx +++ b/platform/context/LanguageContext.tsx @@ -18,6 +18,9 @@ export const LanguageProvider: React.FC<{ children: ReactNode }> = ({ children } const [language, setLanguageState] = useState('tr') useEffect(() => { + // SSR safe check - localStorage only available in browser + if (typeof window === 'undefined') return + const savedLang = localStorage.getItem('language') as Language if (savedLang && (savedLang === 'tr' || savedLang === 'en')) { setLanguageState(savedLang) @@ -26,7 +29,11 @@ export const LanguageProvider: React.FC<{ children: ReactNode }> = ({ children } const setLanguage = (lang: Language) => { setLanguageState(lang) - localStorage.setItem('language', lang) + + // SSR safe check - localStorage only available in browser + if (typeof window !== 'undefined') { + localStorage.setItem('language', lang) + } } const value = { diff --git a/platform/pages/_app.tsx b/platform/pages/_app.tsx index 0ae8c75..eb37cab 100644 --- a/platform/pages/_app.tsx +++ b/platform/pages/_app.tsx @@ -9,7 +9,6 @@ import type { AppProps } from 'next/app' import { ThemeProvider } from 'next-themes' import { LanguageProvider } from '@/context/LanguageContext' import '@/styles/globals.css' -import '@/styles/pages/ai-detection.css' function MyApp({ Component, pageProps }: AppProps) { return ( diff --git a/platform/pages/ai-music-detection/index.tsx b/platform/pages/ai-music-detection/index.tsx index fab23bd..2d596c1 100644 --- a/platform/pages/ai-music-detection/index.tsx +++ b/platform/pages/ai-music-detection/index.tsx @@ -1,19 +1,26 @@ // ========================================================================= -// AI MUSIC DETECTION PAGE - MAIN PLATFORM FEATURE +// AI MUSIC DETECTION PAGE - FRONTEND INTERFACE DEMO // ========================================================================= -// Advanced AI-powered music detection system using wav2vec2-based deep -// learning models. Detects AI-generated music with 97.2% accuracy. -// Supports file upload, URL analysis, and streaming platform integration. +// Professional frontend interface for AI-powered music detection system. +// This is a DEMONSTRATION of the planned system architecture and UI/UX design. // -// Features: -// - File upload (MP3, WAV, FLAC, M4A) -// - URL analysis (Spotify, YouTube, SoundCloud, Apple Music) -// - Real-time waveform visualization -// - Confidence scoring and detailed analysis -// - Export analysis reports +// CURRENT STATUS: Frontend UI Implementation (Q1 2025) +// PLANNED: Backend AI integration with wav2vec2 model (Q2 2025) +// +// Features Implemented: +// - File upload interface with validation +// - URL parsing for streaming platforms +// - Demo analysis workflow visualization +// - Professional UI/UX design +// +// Features Planned: +// - Real AI model inference (PyTorch backend) +// - Actual audio feature extraction +// - wav2vec2-based classification +// - Production-ready accuracy metrics // // @author Hasan Arthur Altuntaş -// @version 1.0.0 +// @version 1.0.0-demo // @since 2025-01-01 // ========================================================================= @@ -40,6 +47,7 @@ import { Zap } from 'lucide-react' import { useLanguage } from '@/context/LanguageContext' +import styles from '@/styles/pages/ai-detection.module.css' // ========================================================================= // TYPE DEFINITIONS @@ -403,21 +411,26 @@ const AIMusicDetectionPage: NextPage = () => { // ----------------------------------------------------------------------- /** - * Demo AI analysis function - Frontend interface demonstration + * ⚠️ DEMO FUNCTION - NOT REAL AI ANALYSIS + * This function generates RANDOM results for UI demonstration purposes only. + * Real implementation will use PyTorch backend with wav2vec2 model. + * + * @param audioSource - File or URL (NOT analyzed, just for UI demo) + * @returns Demo AnalysisResult with random confidence scores */ const performAIAnalysis = useCallback(async (audioSource: File | string) => { setProcessingState('analyzing') setError(null) - // Demo processing delay + // ⚠️ DEMO: Simulated processing delay (real AI would take 3-5s) await new Promise(resolve => setTimeout(resolve, 3000)) - // Demo result - this would be replaced with actual AI backend processing + // ⚠️ DEMO: Random results for interface testing ONLY const demoResult: AnalysisResult = { - isAIGenerated: Math.random() > 0.5, - confidence: 0.85 + Math.random() * 0.14, + isAIGenerated: Math.random() > 0.5, // ⚠️ RANDOM - not real prediction + confidence: 0.85 + Math.random() * 0.14, // ⚠️ FAKE confidence score processingTime: 2.1, - modelVersion: 'wav2vec2-demo-v1.0', + modelVersion: 'demo-interface-v1.0', // ⚠️ Not a real model features: { spectralRegularity: Math.random(), temporalPatterns: Math.random(), @@ -707,7 +720,7 @@ const AIMusicDetectionPage: NextPage = () => { duration: audioData.duration, sampleRate: audioData.sampleRate, bitrate: estimateBitrate(audioData), - format: audioSource instanceof File ? audioSource.name.split('.').pop()?.toUpperCase() || 'UNKNOWN' : 'STREAM' + format: audioSource instanceof File ? audioSource.name.split('.').pop()?.toUpperCase() || 'UNKNOWN' : styles['STREAM'] } } } @@ -841,40 +854,40 @@ const AIMusicDetectionPage: NextPage = () => { -
-
+
+
{isAI ? : }
-
-

+
+

{isAI ? 'AI-Generated Music Detected' : 'Human-Composed Music'}

-

+

Confidence: {confidence}% | Model: {analysisResult.modelVersion}

-
-
-
+
+
+
Processing Time: {analysisResult.processingTime.toFixed(1)}s
-
+
Sample Rate: {analysisResult.audioInfo.sampleRate.toLocaleString()} Hz
-
+
Duration: {Math.round(analysisResult.audioInfo.duration)}s
-
+

Analysis Details:

    {analysisResult.features.artificialIndicators.map((indicator, index) => ( @@ -883,13 +896,13 @@ const AIMusicDetectionPage: NextPage = () => {
-
-
{/* URL Analysis Section */} -
+

Analyze from URL

-
-
+
+
setMusicUrl(e.target.value)} - className="url-input" + className={styles['url-input']} />
-
+
Supported platforms: -
+
{['spotify', 'youtube', 'soundcloud', 'apple'].map((platform) => ( -
+
{renderPlatformIcon(platform as SupportedPlatform)}
))} @@ -1029,20 +1053,20 @@ const AIMusicDetectionPage: NextPage = () => { {/* Processing State */} {processingState === 'analyzing' && ( -
-
+
+

Analyzing Audio...

Our AI model is analyzing the audio for artificial generation patterns.

-
-
Audio preprocessing
-
Feature extraction
-
AI model inference
-
Result generation
+
+
Audio preprocessing
+
Feature extraction
+
AI model inference
+
Result generation
)} @@ -1050,7 +1074,7 @@ const AIMusicDetectionPage: NextPage = () => { {/* Error State */} {error && ( @@ -1062,7 +1086,7 @@ const AIMusicDetectionPage: NextPage = () => { setError(null) setProcessingState('idle') }} - className="btn-primary" + className={styles['btn-primary']} > Try Again diff --git a/platform/styles/pages/ai-detection.css b/platform/styles/pages/ai-detection.module.css similarity index 100% rename from platform/styles/pages/ai-detection.css rename to platform/styles/pages/ai-detection.module.css From 5b28e3b678da156246baea30e0e89ef25b51eda7 Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Wed, 1 Oct 2025 17:29:33 +0300 Subject: [PATCH 006/163] m --- platform/components/Home/HeroSection.tsx | 4 ++-- platform/styles/base/variables.css | 26 +++++++++++++++++++++++ platform/styles/components/hero.css | 20 ++++++++--------- platform/styles/components/ml-toolkit.css | 14 ++++++------ platform/styles/components/projects.css | 3 +++ 5 files changed, 48 insertions(+), 19 deletions(-) diff --git a/platform/components/Home/HeroSection.tsx b/platform/components/Home/HeroSection.tsx index 3ca0058..013ce13 100644 --- a/platform/components/Home/HeroSection.tsx +++ b/platform/components/Home/HeroSection.tsx @@ -160,7 +160,7 @@ export const HeroSection: React.FC = ({ className = '' }) => { {t.hero.cta.explore} @@ -175,7 +175,7 @@ export const HeroSection: React.FC = ({ className = '' }) => { href="https://github.com/hasanarthuraltuntas/Data-Manipilasyonu" target="_blank" rel="noopener noreferrer" - className="btn-secondary" + className="hero-btn-secondary" aria-label="View source code on GitHub (opens in new tab)" > {t.hero.cta.github} diff --git a/platform/styles/base/variables.css b/platform/styles/base/variables.css index d509ab6..e541b67 100644 --- a/platform/styles/base/variables.css +++ b/platform/styles/base/variables.css @@ -4,17 +4,36 @@ --color-secondary: #0ea5e9; --color-accent: #fbbf24; + /* Gold Colors */ + --color-gold-400: #fbbf24; + --color-gold-500: #f59e0b; + --color-gold-600: #d97706; + + /* Status Colors */ + --color-success: #10b981; + --color-warning: #f59e0b; + --color-info: #3b82f6; + --color-error: #ef4444; + /* Background Colors */ --color-background: #0f0f23; --color-surface: #1a1a2e; --color-surface-elevated: #16213e; --color-border: #2a2a4a; --color-border-light: #3a3a5a; + --color-border-hover: #3b82f6; /* Text Colors */ --color-text-primary: #ffffff; --color-text-secondary: #94a3b8; --color-text-muted: #64748b; + --color-text-inverse: #0f0f23; + + /* Gradients */ + --gradient-primary: linear-gradient(135deg, #fbbf24 0%, #f59e0b 50%, #d97706 100%); + + /* Fonts */ + --font-family-mono: 'JetBrains Mono', 'Courier New', monospace; /* Glass Effects */ --glass-bg: rgba(30, 41, 59, 0.8); @@ -30,6 +49,13 @@ /* Animations */ --animation-duration: 0.3s; --animation-easing: cubic-bezier(0.4, 0, 0.2, 1); + --animation-fast: 0.15s; + --animation-normal: 0.3s; + --animation-slow: 0.5s; + --ease-in: cubic-bezier(0.4, 0, 1, 1); + --ease-out: cubic-bezier(0, 0, 0.2, 1); + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1); /* Z-Index Layers */ --z-dropdown: 1000; diff --git a/platform/styles/components/hero.css b/platform/styles/components/hero.css index 09ae692..6f3324f 100644 --- a/platform/styles/components/hero.css +++ b/platform/styles/components/hero.css @@ -156,8 +156,8 @@ margin-top: 1rem; } -.btn-primary, -.btn-secondary { +.hero-btn-primary, +.hero-btn-secondary { display: inline-flex; align-items: center; gap: 0.5rem; @@ -174,18 +174,18 @@ font-family: inherit; } -.btn-primary { +.hero-btn-primary { background: var(--gradient-primary); color: var(--color-text-inverse); box-shadow: 0 4px 16px rgba(251, 191, 36, 0.3); } -.btn-primary:hover { +.hero-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 32px rgba(251, 191, 36, 0.4); } -.btn-primary:active { +.hero-btn-primary:active { transform: translateY(0); } @@ -199,13 +199,13 @@ transform: skewX(-20deg); } -.btn-secondary { +.hero-btn-secondary { background: transparent; color: var(--color-text-primary); border: 2px solid var(--color-border); } -.btn-secondary:hover { +.hero-btn-secondary:hover { border-color: var(--color-gold-400); color: var(--color-gold-400); transform: translateY(-2px); @@ -401,9 +401,9 @@ align-items: center; width: 100%; } - - .btn-primary, - .btn-secondary { + + .hero-btn-primary, + .hero-btn-secondary { width: 100%; max-width: 320px; justify-content: center; diff --git a/platform/styles/components/ml-toolkit.css b/platform/styles/components/ml-toolkit.css index 3dea81a..6ef69f3 100644 --- a/platform/styles/components/ml-toolkit.css +++ b/platform/styles/components/ml-toolkit.css @@ -596,8 +596,8 @@ justify-content: flex-end; } -.btn-primary, -.btn-secondary { +.ml-btn-primary, +.ml-btn-secondary { display: flex; align-items: center; gap: 0.5rem; @@ -608,29 +608,29 @@ cursor: pointer; } -.btn-primary { +.ml-btn-primary { background: var(--gradient-primary); color: white; border: none; } -.btn-primary:hover:not(:disabled) { +.ml-btn-primary:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 10px 20px rgba(251, 191, 36, 0.3); } -.btn-primary:disabled { +.ml-btn-primary:disabled { opacity: 0.5; cursor: not-allowed; } -.btn-secondary { +.ml-btn-secondary { background: transparent; color: var(--color-text-primary); border: 2px solid var(--color-border); } -.btn-secondary:hover { +.ml-btn-secondary:hover { border-color: var(--color-gold-400); color: var(--color-gold-400); } diff --git a/platform/styles/components/projects.css b/platform/styles/components/projects.css index 00288d0..9b526c3 100644 --- a/platform/styles/components/projects.css +++ b/platform/styles/components/projects.css @@ -44,6 +44,8 @@ letter-spacing: -0.02em; color: var(--color-text-primary); margin-bottom: 1.5rem; + display: block; + text-align: center; } .products-title-accent { @@ -51,6 +53,7 @@ background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; + display: inline; } .products-subtitle { From 951e83a586043f99b7d25ff17cc51e184a9a8287 Mon Sep 17 00:00:00 2001 From: Rtur2003 Date: Wed, 1 Oct 2025 18:26:25 +0300 Subject: [PATCH 007/163] . --- platform/locales/en.json | 74 ++++ platform/locales/tr.json | 74 ++++ platform/pages/ai-music-detection/index.tsx | 433 ++------------------ 3 files changed, 186 insertions(+), 395 deletions(-) diff --git a/platform/locales/en.json b/platform/locales/en.json index c652fe1..5d36dea 100644 --- a/platform/locales/en.json +++ b/platform/locales/en.json @@ -125,6 +125,80 @@ "by": "by" } }, + "aiDetection": { + "meta": { + "title": "AI Music Detection - CrownCode Platform (Demo Interface)", + "description": "Professional frontend interface for AI music detection system. Demonstration of planned wav2vec2-based deep learning implementation. Backend AI integration in development.", + "keywords": "AI music detection, wav2vec2, deep learning, music analysis, artificial intelligence, audio analysis, demo interface" + }, + "header": { + "badge": "AI Music Detection", + "title": "Detect AI-Generated Music", + "subtitle": "Professional frontend interface demonstration for AI-powered music detection system. This interface showcases the planned user experience and system architecture." + }, + "warning": { + "title": "Demo Interface - Educational Purpose", + "currentStatus": "Current Status:", + "currentStatusText": "This is a professional UI/UX demonstration.", + "analysisResults": "Analysis Results:", + "analysisResultsText": "Generated for interface testing only - not real AI predictions.", + "plannedImplementation": "Planned Implementation:", + "plannedImplementationText": "Backend AI integration with PyTorch + wav2vec2 model (Q2 2025)." + }, + "upload": { + "title": "Upload Audio File", + "dropHere": "Drop your audio file here", + "orClick": "or click to browse", + "supported": "Supported: MP3, WAV, FLAC, M4A (max 100MB)", + "analyzeButton": "Analyze File", + "analyzing": "Analyzing..." + }, + "url": { + "title": "Analyze from URL", + "placeholder": "Paste Spotify, YouTube, SoundCloud, or Apple Music URL...", + "supportedPlatforms": "Supported platforms:", + "analyzeButton": "Analyze URL", + "analyzing": "Analyzing..." + }, + "processing": { + "title": "Demo Analysis in Progress...", + "subtitle": "Simulating AI detection workflow for interface demonstration purposes.", + "steps": { + "simulation": "UI simulation", + "generation": "Random result generation", + "testing": "Interface testing", + "completion": "Demo completion" + } + }, + "error": { + "title": "Analysis Error", + "tryAgain": "Try Again" + }, + "result": { + "aiDetected": "AI-Generated Music Detected", + "humanDetected": "Human-Composed Music", + "confidence": "Confidence", + "model": "Model", + "processingTime": "Processing Time", + "sampleRate": "Sample Rate", + "duration": "Duration", + "analysisDetails": "Analysis Details:", + "exportReport": "Export Report", + "analyzeAnother": "Analyze Another" + }, + "errors": { + "enterUrl": "Please enter a valid music URL.", + "invalidUrl": "Invalid URL format. Please enter a complete URL starting with http:// or https://", + "unsupportedFormat": "Unsupported file format: {format}. Allowed formats: MP3, WAV, FLAC, M4A", + "fileTooSmall": "File is too small. Minimum file size is 1KB.", + "fileTooLarge": "File size exceeds 100MB limit. Please use a smaller file.", + "invalidFileName": "Invalid file name. File name contains prohibited characters.", + "suspiciousFile": "File name contains suspicious patterns. Please rename your audio file.", + "invalidHeader": "File does not appear to be a valid audio file based on file header analysis.", + "headerReadError": "Error reading file header", + "validationFailed": "File validation failed. Please try a different file." + } + }, "mlToolkit": { "badge": "ML Toolkit", "title": "Dataset Augmentation", diff --git a/platform/locales/tr.json b/platform/locales/tr.json index cdec747..206f8cb 100644 --- a/platform/locales/tr.json +++ b/platform/locales/tr.json @@ -125,6 +125,80 @@ "by": "by" } }, + "aiDetection": { + "meta": { + "title": "AI Müzik Tespiti - CrownCode Platform (Demo Arayüzü)", + "description": "AI müzik tespit sistemi için profesyonel ön yüz arayüzü. Planlanan wav2vec2 tabanlı derin öğrenme uygulamasının demonstrasyonu. Backend AI entegrasyonu geliştiriliyor.", + "keywords": "AI müzik tespiti, wav2vec2, derin öğrenme, müzik analizi, yapay zeka, ses analizi, demo arayüzü" + }, + "header": { + "badge": "AI Müzik Tespiti", + "title": "AI Üretimi Müzikleri Tespit Et", + "subtitle": "AI destekli müzik tespit sistemi için profesyonel ön yüz arayüz gösterimi. Bu arayüz, planlanan kullanıcı deneyimi ve sistem mimarisini sergiliyor." + }, + "warning": { + "title": "Demo Arayüzü - Eğitim Amaçlı", + "currentStatus": "Mevcut Durum:", + "currentStatusText": "Bu profesyonel bir UI/UX gösterimidir.", + "analysisResults": "Analiz Sonuçları:", + "analysisResultsText": "Sadece arayüz testi için üretilmiştir - gerçek AI tahminleri değil.", + "plannedImplementation": "Planlanan Uygulama:", + "plannedImplementationText": "PyTorch + wav2vec2 modeli ile backend AI entegrasyonu (2025 Q2)." + }, + "upload": { + "title": "Ses Dosyası Yükle", + "dropHere": "Ses dosyanızı buraya bırakın", + "orClick": "veya tıklayarak seçin", + "supported": "Desteklenen: MP3, WAV, FLAC, M4A (maks 100MB)", + "analyzeButton": "Dosyayı Analiz Et", + "analyzing": "Analiz Ediliyor..." + }, + "url": { + "title": "URL'den Analiz Et", + "placeholder": "Spotify, YouTube, SoundCloud veya Apple Music URL'si yapıştırın...", + "supportedPlatforms": "Desteklenen platformlar:", + "analyzeButton": "URL'yi Analiz Et", + "analyzing": "Analiz Ediliyor..." + }, + "processing": { + "title": "Demo Analizi Devam Ediyor...", + "subtitle": "Arayüz gösterimi için AI tespit iş akışı simüle ediliyor.", + "steps": { + "simulation": "UI simülasyonu", + "generation": "Rastgele sonuç üretimi", + "testing": "Arayüz testi", + "completion": "Demo tamamlanıyor" + } + }, + "error": { + "title": "Analiz Hatası", + "tryAgain": "Tekrar Dene" + }, + "result": { + "aiDetected": "AI Üretimi Müzik Tespit Edildi", + "humanDetected": "İnsan Bestesi Müzik", + "confidence": "Güven", + "model": "Model", + "processingTime": "İşlem Süresi", + "sampleRate": "Örnekleme Hızı", + "duration": "Süre", + "analysisDetails": "Analiz Detayları:", + "exportReport": "Rapor Dışa Aktar", + "analyzeAnother": "Başka Analiz Et" + }, + "errors": { + "enterUrl": "Lütfen geçerli bir müzik URL'si girin.", + "invalidUrl": "Geçersiz URL formatı. Lütfen http:// veya https:// ile başlayan tam bir URL girin", + "unsupportedFormat": "Desteklenmeyen dosya formatı: {format}. İzin verilen formatlar: MP3, WAV, FLAC, M4A", + "fileTooSmall": "Dosya çok küçük. Minimum dosya boyutu 1KB.", + "fileTooLarge": "Dosya boyutu 100MB limitini aşıyor. Lütfen daha küçük bir dosya kullanın.", + "invalidFileName": "Geçersiz dosya adı. Dosya adı yasak karakterler içeriyor.", + "suspiciousFile": "Dosya adı şüpheli desenler içeriyor. Lütfen ses dosyanızı yeniden adlandırın.", + "invalidHeader": "Dosya başlık analizine göre geçerli bir ses dosyası gibi görünmüyor.", + "headerReadError": "Dosya başlığı okunurken hata oluştu", + "validationFailed": "Dosya doğrulaması başarısız. Lütfen farklı bir dosya deneyin." + } + }, "mlToolkit": { "badge": "ML Toolkit", "title": "Veri Seti Çoğaltma", diff --git a/platform/pages/ai-music-detection/index.tsx b/platform/pages/ai-music-detection/index.tsx index 2d596c1..88b23db 100644 --- a/platform/pages/ai-music-detection/index.tsx +++ b/platform/pages/ai-music-detection/index.tsx @@ -85,24 +85,6 @@ type SupportedPlatform = 'spotify' | 'youtube' | 'soundcloud' | 'apple' | 'youtu */ type ProcessingState = 'idle' | 'uploading' | 'analyzing' | 'complete' | 'error' -/** - * Audio data interface for real audio processing - */ -interface AudioData { - duration: number - sampleRate: number - channels: number - rms: number - zeroCrossingRate: number - spectralCentroid: number - spectralRolloff: number - spectralFlux: number - tempo: number - rhythmRegularity: number - harmonicRatio: number - rawData: Float32Array -} - // ========================================================================= // AI MUSIC DETECTION PAGE COMPONENT // ========================================================================= @@ -355,7 +337,7 @@ const AIMusicDetectionPage: NextPage = () => { const platform = detectPlatform(musicUrl) if (!platform) { - setError(`Unsupported URL format. Supported platforms: + setError(`Unsupported URL format. {t.aiDetection.url.supportedPlatforms} • Spotify: https://open.spotify.com/track/... or https://spotify.com/track/... • YouTube: https://www.youtube.com/watch?v=... or https://youtu.be/... • YouTube Music: https://music.youtube.com/watch?v=... @@ -453,353 +435,15 @@ const AIMusicDetectionPage: NextPage = () => { setProcessingState('complete') }, []) - /** - * Real audio file processing using Web Audio API - */ - const processAudioFile = async (file: File): Promise => { - return new Promise((resolve, reject) => { - const reader = new FileReader() - - reader.onload = async function(e) { - try { - const arrayBuffer = e.target?.result as ArrayBuffer - if (!arrayBuffer) { - reject(new Error('Failed to read audio file')) - return - } - - // Create audio context - const audioContext = new (window.AudioContext || (window as any).webkitAudioContext)() - - // Decode audio data - const audioBuffer = await audioContext.decodeAudioData(arrayBuffer) - - // Extract audio features - const audioData = extractAudioFeatures(audioBuffer) - - // Close audio context to free resources - await audioContext.close() - - resolve(audioData) - - } catch (error: any) { - reject(new Error(`Audio processing failed: ${error.message}`)) - } - } - - reader.onerror = function() { - reject(new Error('File reading failed')) - } - - reader.readAsArrayBuffer(file) - }) - } - - /** - * Extract comprehensive audio features for AI analysis - */ - const extractAudioFeatures = (audioBuffer: AudioBuffer): AudioData => { - const channelData = audioBuffer.getChannelData(0) // Use first channel - const sampleRate = audioBuffer.sampleRate - const duration = audioBuffer.duration - - // Basic time-domain features - const rms = calculateRMS(channelData) - const zeroCrossingRate = calculateZeroCrossingRate(channelData) - - // Frequency-domain features (simplified FFT analysis) - const spectralFeatures = analyzeSpectralFeatures(channelData, sampleRate) - - // Rhythm and tempo analysis (simplified) - const rhythmFeatures = analyzeRhythmFeatures(channelData, sampleRate) - - return { - duration, - sampleRate, - channels: audioBuffer.numberOfChannels, - rms, - zeroCrossingRate, - spectralCentroid: spectralFeatures.centroid, - spectralRolloff: spectralFeatures.rolloff, - spectralFlux: spectralFeatures.flux, - tempo: rhythmFeatures.tempo, - rhythmRegularity: rhythmFeatures.regularity, - harmonicRatio: spectralFeatures.harmonicRatio, - rawData: channelData.slice(0, Math.min(44100, channelData.length)) // First second for detailed analysis - } - } - - /** - * Calculate Root Mean Square (RMS) energy - */ - const calculateRMS = (data: Float32Array): number => { - let sum = 0 - for (let i = 0; i < data.length; i++) { - sum += data[i] * data[i] - } - return Math.sqrt(sum / data.length) - } - - /** - * Calculate Zero Crossing Rate - */ - const calculateZeroCrossingRate = (data: Float32Array): number => { - let crossings = 0 - for (let i = 1; i < data.length; i++) { - if ((data[i] >= 0) !== (data[i - 1] >= 0)) { - crossings++ - } - } - return crossings / data.length - } - - /** - * Analyze spectral features (simplified FFT analysis) - */ - const analyzeSpectralFeatures = (data: Float32Array, sampleRate: number) => { - // Simplified spectral analysis - const frameSize = 2048 - const numFrames = Math.floor(data.length / frameSize) - - let centroid = 0 - let rolloff = 0 - let flux = 0 - let harmonicRatio = 0 - - for (let frame = 0; frame < numFrames; frame++) { - const frameData = data.slice(frame * frameSize, (frame + 1) * frameSize) - - // Simple spectral centroid calculation - let weightedSum = 0 - let magnitudeSum = 0 - - for (let i = 0; i < frameData.length; i++) { - const magnitude = Math.abs(frameData[i]) - const frequency = (i * sampleRate) / frameData.length - - weightedSum += frequency * magnitude - magnitudeSum += magnitude - } - - if (magnitudeSum > 0) { - centroid += weightedSum / magnitudeSum - } - } - - return { - centroid: centroid / numFrames, - rolloff: centroid * 0.85, // Simplified rolloff - flux: Math.random() * 0.5, // Placeholder for spectral flux - harmonicRatio: Math.random() * 0.8 + 0.2 // Placeholder for harmonic ratio - } - } - - /** - * Analyze rhythm features (simplified tempo detection) - */ - const analyzeRhythmFeatures = (data: Float32Array, sampleRate: number) => { - // Simplified tempo detection using onset detection - const hopSize = 512 - const onsets: number[] = [] - - for (let i = hopSize; i < data.length - hopSize; i += hopSize) { - const current = calculateRMS(data.slice(i, i + hopSize)) - const previous = calculateRMS(data.slice(i - hopSize, i)) - - if (current > previous * 1.5) { // Simple onset detection - onsets.push(i / sampleRate) - } - } - - // Calculate tempo from onset intervals - let tempo = 120 // Default tempo - - if (onsets.length > 1) { - const intervals = [] - for (let i = 1; i < onsets.length; i++) { - intervals.push(onsets[i] - onsets[i - 1]) - } - - if (intervals.length > 0) { - const avgInterval = intervals.reduce((a, b) => a + b) / intervals.length - tempo = Math.round(60 / avgInterval) - tempo = Math.max(60, Math.min(200, tempo)) // Clamp to reasonable range - } - } - - // Calculate rhythm regularity - const regularity = onsets.length > 2 ? Math.random() * 0.4 + 0.6 : 0.5 - - return { - tempo, - regularity - } - } - - /** - * Process audio from URL (placeholder for streaming platform integration) - */ - const processAudioFromUrl = async (url: string): Promise => { - // In a real implementation, this would: - // 1. Use streaming platform APIs to extract audio - // 2. Convert to processable format - // 3. Apply the same audio processing pipeline - - // For now, simulate with realistic audio data - await new Promise(resolve => setTimeout(resolve, 2000)) - - return { - duration: 180 + Math.random() * 120, - sampleRate: 44100, - channels: 2, - rms: Math.random() * 0.3 + 0.1, - zeroCrossingRate: Math.random() * 0.1, - spectralCentroid: Math.random() * 2000 + 1000, - spectralRolloff: Math.random() * 8000 + 2000, - spectralFlux: Math.random() * 0.5, - tempo: Math.round(Math.random() * 60 + 80), - rhythmRegularity: Math.random() * 0.4 + 0.6, - harmonicRatio: Math.random() * 0.6 + 0.3, - rawData: new Float32Array(44100) // Placeholder data - } - } - - /** - * Advanced AI analysis using real audio features - */ - const performAdvancedAIAnalysis = async (audioData: AudioData, audioSource: File | string): Promise => { - // Simulate processing delay - await new Promise(resolve => setTimeout(resolve, 2000)) - - // Analyze real audio features for AI detection - const aiFeatures = analyzeAIIndicators(audioData) - - // Calculate confidence based on real audio characteristics - let confidence = 0.5 - - // Higher spectral regularity often indicates AI generation - if (aiFeatures.spectralRegularity > 0.7) confidence += 0.2 - if (aiFeatures.spectralRegularity < 0.3) confidence -= 0.1 - - // Perfect rhythm regularity can indicate AI generation - if (audioData.rhythmRegularity > 0.9) confidence += 0.15 - if (audioData.rhythmRegularity < 0.6) confidence -= 0.1 - - // Harmonic ratio analysis - if (audioData.harmonicRatio > 0.8) confidence += 0.1 - if (audioData.harmonicRatio < 0.4) confidence -= 0.05 - - // RMS energy analysis (AI often has more consistent energy) - if (audioData.rms > 0.2 && audioData.rms < 0.25) confidence += 0.1 - - // Zero crossing rate (AI might have different characteristics) - if (audioData.zeroCrossingRate < 0.05 || audioData.zeroCrossingRate > 0.15) confidence += 0.05 - - // Ensure confidence is in reasonable range - confidence = Math.max(0.6, Math.min(0.99, confidence)) - - // Determine if AI generated based on confidence threshold - const isAI = confidence > 0.75 - - // Add some randomness to simulate model uncertainty - confidence += (Math.random() - 0.5) * 0.1 - confidence = Math.max(0.6, Math.min(0.99, confidence)) - - return { - isAIGenerated: isAI, - confidence: Math.round(confidence * 1000) / 1000, - processingTime: 1.4 + Math.random() * 0.8, - modelVersion: 'wav2vec2-v2.1', - features: { - spectralRegularity: aiFeatures.spectralRegularity, - temporalPatterns: aiFeatures.temporalPatterns, - harmonicStructure: audioData.harmonicRatio, - artificialIndicators: generateAIIndicators(audioData, isAI) - }, - audioInfo: { - duration: audioData.duration, - sampleRate: audioData.sampleRate, - bitrate: estimateBitrate(audioData), - format: audioSource instanceof File ? audioSource.name.split('.').pop()?.toUpperCase() || 'UNKNOWN' : styles['STREAM'] - } - } - } - - /** - * Analyze AI-specific indicators in audio features - */ - const analyzeAIIndicators = (audioData: AudioData) => { - // Spectral regularity: AI often produces more regular spectral patterns - const spectralRegularity = Math.min(1, audioData.spectralRolloff / audioData.spectralCentroid) - - // Temporal patterns: AI might have more regular timing - const temporalPatterns = audioData.rhythmRegularity - - return { - spectralRegularity, - temporalPatterns - } - } - - /** - * Generate detailed AI indicators based on audio analysis - */ - const generateAIIndicators = (audioData: AudioData, isAI: boolean): string[] => { - const indicators: string[] = [] - - if (isAI) { - if (audioData.rhythmRegularity > 0.8) { - indicators.push('Highly regular temporal patterns detected') - } - if (audioData.harmonicRatio > 0.7) { - indicators.push('Artificial harmonic structure identified') - } - if (audioData.spectralCentroid > 1500) { - indicators.push('Synthetic spectral characteristics observed') - } - if (audioData.zeroCrossingRate < 0.05) { - indicators.push('Unnatural zero-crossing rate patterns') - } - if (indicators.length === 0) { - indicators.push('Subtle AI generation markers detected') - } - } else { - if (audioData.rhythmRegularity < 0.7) { - indicators.push('Natural timing variations present') - } - if (audioData.harmonicRatio < 0.6) { - indicators.push('Organic harmonic progression detected') - } - if (audioData.rms < 0.2) { - indicators.push('Human performance dynamics observed') - } - if (indicators.length === 0) { - indicators.push('Human-characteristic audio patterns identified') - } - } - - return indicators - } - - /** - * Estimate bitrate from audio characteristics - */ - const estimateBitrate = (audioData: AudioData): number => { - // Estimate based on sample rate and quality indicators - const baseRate = audioData.sampleRate === 44100 ? 320 : 256 - const qualityFactor = audioData.rms > 0.15 ? 1 : 0.8 - - return Math.round(baseRate * qualityFactor) - } - /** * Simulate URL analysis for streaming platforms + * ⚠️ DEMO: Uses same random analysis as file upload */ const simulateUrlAnalysis = async (url: string, platform: SupportedPlatform) => { // Simulate platform-specific processing await new Promise(resolve => setTimeout(resolve, 3000)) - // Extract audio and perform analysis + // Perform demo analysis await performAIAnalysis(url) } @@ -862,10 +506,10 @@ const AIMusicDetectionPage: NextPage = () => {

- {isAI ? 'AI-Generated Music Detected' : 'Human-Composed Music'} + {isAI ? t.aiDetection.result.aiDetected : t.aiDetection.result.humanDetected}

- Confidence: {confidence}% | Model: {analysisResult.modelVersion} + {t.aiDetection.result.confidence}: {confidence}% | {t.aiDetection.result.model}: {analysisResult.modelVersion}

@@ -874,21 +518,21 @@ const AIMusicDetectionPage: NextPage = () => {
- Processing Time: {analysisResult.processingTime.toFixed(1)}s + {t.aiDetection.result.processingTime}: {analysisResult.processingTime.toFixed(1)}s
- Sample Rate: {analysisResult.audioInfo.sampleRate.toLocaleString()} Hz + {t.aiDetection.result.sampleRate}: {analysisResult.audioInfo.sampleRate.toLocaleString()} Hz
- Duration: {Math.round(analysisResult.audioInfo.duration)}s + {t.aiDetection.result.duration}: {Math.round(analysisResult.audioInfo.duration)}s
-

Analysis Details:

+

{t.aiDetection.result.analysisDetails}