From cf2ee3ca6542d340955333225d058ae9b1d534cb Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Thu, 23 Oct 2025 08:17:49 +0000 Subject: [PATCH] 1.0.0 --- assets/css/custom.css | 76 +++++++++++++ assets/js/main.js | 78 +++++++++++++ index.php | 256 ++++++++++++++++++------------------------ privacy.php | 45 ++++++++ 4 files changed, 309 insertions(+), 146 deletions(-) create mode 100644 assets/css/custom.css create mode 100644 assets/js/main.js create mode 100644 privacy.php diff --git a/assets/css/custom.css b/assets/css/custom.css new file mode 100644 index 0000000..d0eeb35 --- /dev/null +++ b/assets/css/custom.css @@ -0,0 +1,76 @@ + +:root { + --primary-color: #4A90E2; + --secondary-color: #50E3C2; + --background-color: #F8F9FA; + --surface-color: #FFFFFF; + --text-color: #333333; + --border-radius: 0.5rem; +} + +body { + font-family: 'Inter', system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif; + background-color: var(--background-color); + color: var(--text-color); +} + +.navbar-brand { + color: var(--primary-color) !important; +} + +.hero-section { + padding: 3rem 0; +} + +.hero-section .display-4 { + color: var(--text-color); +} + +.content-card { + border: none; + border-radius: var(--border-radius); +} + +.step-circle { + display: inline-flex; + align-items: center; + justify-content: center; + width: 24px; + height: 24px; + border-radius: 50%; + background-color: var(--primary-color); + color: white; + font-weight: bold; + font-size: 0.8rem; + margin-right: 0.5rem; +} + +#image-uploader #upload-ui { + border: 2px dashed #dee2e6; + border-radius: var(--border-radius); + cursor: pointer; + transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out; +} + +#image-uploader #upload-ui:hover { + background-color: #f1f3f5; + border-color: var(--primary-color); +} + +#image-preview { + border: 1px solid #dee2e6; +} + +#generation-controls { + opacity: 0.6; +} + +.generate-btn { + background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%); + border: none; +} + +.form-control:focus, .form-select:focus { + border-color: var(--primary-color); + box-shadow: 0 0 0 0.25rem rgba(74, 144, 226, 0.25); +} diff --git a/assets/js/main.js b/assets/js/main.js new file mode 100644 index 0000000..3c3fb1c --- /dev/null +++ b/assets/js/main.js @@ -0,0 +1,78 @@ +document.addEventListener('DOMContentLoaded', function () { + const fileInput = document.getElementById('file-input'); + const uploadUi = document.getElementById('upload-ui'); + const imageUploader = document.getElementById('image-uploader'); + const imagePreviewContainer = document.getElementById('image-preview-container'); + const imagePreview = document.getElementById('image-preview'); + const clearImageBtn = document.getElementById('clear-image-btn'); + const generationControls = document.getElementById('generation-controls'); + + // Trigger file input click + if(uploadUi) { + uploadUi.addEventListener('click', () => fileInput.click()); + } + + // Handle file selection + if(fileInput) { + fileInput.addEventListener('change', (event) => { + const files = event.target.files; + if (files && files.length > 0) { + handleFile(files[0]); + } + }); + } + + // Handle drag and drop + if(imageUploader) { + imageUploader.addEventListener('dragover', (event) => { + event.preventDefault(); + uploadUi.style.backgroundColor = '#f1f3f5'; + uploadUi.style.borderColor = 'var(--primary-color)'; + }); + + imageUploader.addEventListener('dragleave', (event) => { + event.preventDefault(); + uploadUi.style.backgroundColor = 'transparent'; + uploadUi.style.borderColor = '#dee2e6'; + }); + + imageUploader.addEventListener('drop', (event) => { + event.preventDefault(); + uploadUi.style.backgroundColor = 'transparent'; + uploadUi.style.borderColor = '#dee2e6'; + const files = event.dataTransfer.files; + if (files && files.length > 0) { + fileInput.files = files; // Assign dropped files to input + handleFile(files[0]); + } + }); + } + + function handleFile(file) { + if (!file.type.startsWith('image/')) { + alert('Please select an image file (PNG, JPG).'); + return; + } + + const reader = new FileReader(); + reader.onload = function (e) { + imagePreview.src = e.target.result; + imageUploader.classList.add('d-none'); + imagePreviewContainer.classList.remove('d-none'); + // In a future step, we can enable the controls: + // generationControls.disabled = false; + }; + reader.readAsDataURL(file); + } + + // Handle clear image + if(clearImageBtn) { + clearImageBtn.addEventListener('click', () => { + fileInput.value = ''; // Clear the file input + imagePreview.src = '#'; + imagePreviewContainer.classList.add('d-none'); + imageUploader.classList.remove('d-none'); + // generationControls.disabled = true; + }); + } +}); \ No newline at end of file diff --git a/index.php b/index.php index 7205f3d..f8c52d1 100644 --- a/index.php +++ b/index.php @@ -1,150 +1,114 @@ - - - + + - - - New Style - - - - - - - - - - - - - - - - - - - + + + + winQ - 수학 문제 유사성 생성기 + + + + + + + + + + + + + + + + + + + + -
-
-

Analyzing your requirements and generating your website…

-
- Loading… -
-

AI is collecting your requirements and applying the first changes.

-

This page will update automatically as the plan is implemented.

-

Runtime: PHP — UTC

-
-
- + + + +
+
+

수학 문제 유사성 생성기

+

수학 문제 이미지를 업로드하면 AI가 다양한 난이도와 맥락의 유사한 문제를 생성합니다.

+
+ +
+
+
+
+
+
+
1 문제 이미지 업로드
+

PNG 또는 JPG 파일을 선택하거나 드래그 앤 드롭하세요.

+
+ +
+ +

클릭하여 탐색하거나 드래그 앤 드롭하세요.

+

최대 파일 크기: 5MB

+
+
+
+

이미지 미리보기:

+
+ 이미지 미리보기 + +
+
+
+
+
2 구성 및 생성
+

새 문제에 대한 매개변수를 설정합니다.

+
+
+ + +
+
+ + +
+
+ + +
+ +
+
+
+
+
+
+
+
+ + + + + + + - + \ No newline at end of file diff --git a/privacy.php b/privacy.php new file mode 100644 index 0000000..ca8a332 --- /dev/null +++ b/privacy.php @@ -0,0 +1,45 @@ + + + + + + 개인정보 처리방침 - winQ + + + + + + + + +
+
+
+
+
+

개인정보 처리방침

+

최종 업데이트:

+
+

이것은 개인정보 처리방침을 위한 자리 표시자입니다. 이 내용을 자신의 정책으로 교체하십시오.

+

우리는 귀하의 개인 정보를 보호하기 위해 최선을 다하고 있습니다. 이 개인정보 처리방침은 winQ가 귀하의 개인 정보를 수집, 사용 및 공개하는 방법을 설명합니다.

+
수집하는 정보
+

당사는 귀하가 당사에 직접 제공하는 정보를 수집할 수 있습니다. 예를 들어, 귀하가 계정을 만들거나, 구독하거나, 당사 서비스의 대화형 기능에 참여하거나, 양식을 작성하거나, 고객 지원을 요청하거나, 기타 방식으로 당사와 통신할 때 정보를 수집합니다.

+
정보 사용 방법
+

당사는 수집한 정보를 사용하여 서비스를 제공, 유지 및 개선합니다. 예를 들어, 귀하의 서비스 사용을 관리하고, 귀하의 의견과 질문에 응답하고, 고객 서비스를 제공하는 데 사용합니다.

+ 홈으로 돌아가기 +
+
+
+
+
+ + + \ No newline at end of file