ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
GeoLearn이 만든 인터랙티브 지리 사이트
GeoLearn — Toshkentdagi 279-maktab o'quvchisi yaratgan interaktiv geografiya sayti: darslar va testlar, jonli o'yinlar, reyting va AI yordamchi. O'zbek va rus sinflari uchun.
교육JavaScript · VueGitHub @windowsfarmonov-eng온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗GeoLearn ta'lim platformasi uchun 3D elementlarga boy landing sahifa. Vue 3 + Vite + JavaScript + Tailwind CSS v4 + Three.js + GSAP ScrollTrigger + Lenis. Matnlar o'zbek (lotin) va rus tillarida, qorong'i va yorug' rejimlar bilan.
Talab: Node.js 20.19+ (yoki 22.12+).
npm install
npm run dev # http://localhost:5173
npm run build # tayyor sayt → dist/
npm run preview # build natijasini lokal ko'rish
Saytdagi barcha «Kirish», «Panelga kirish», «Ro'yxatdan o'tish» tugmalari bitta fayldan oladi:
src/config/links.js.
Domenni o'zgartirish uchun .env faylini tahrirlang (namuna — .env.example):
VITE_ADMIN_URL=https://admin.geolearn.uz # O'qituvchi paneli → /dashboard
VITE_USER_URL=https://student.geolearn.uz # O'quvchi portali → /login, /register
VITE_SITE_URL=https://geolearn.uz # Landingning o'z domeni (canonical, OG rasm)
Natija:
| Tugma | Havola |
|---|---|
| O'qituvchi paneli / Panelga kirish | ${VITE_ADMIN_URL}/dashboard |
| O'quvchi sifatida kirish / Kirish | ${VITE_USER_URL}/login |
| Ro'yxatdan o'tish | ${VITE_USER_URL}/register |
Barcha havolalar shu tabning o'zida ochiladi. Kartochka bosilganda qisqa «uchib kirish» animatsiyasi bo'ladi (Ctrl/Cmd + bosish — odatdagidek yangi tabda ochadi).
Vercel'da
.envo'rniga Settings → Environment Variables bo'limida ham berish mumkin — u yerdagi qiymatlar ustun turadi. O'zgartirgandan keyin qayta deploy qiling.
Hozir public/screens/ ichida namuna (placeholder) rasmlar turibdi — o'zingizning haqiqiy
skrinshotlaringizni xuddi shu nom bilan qo'ying:
| Fayl | Qayerda | Tavsiya etilgan o'lcham |
|---|---|---|
public/screens/admin.png | O'qituvchilar bo'limi, 3D noutbuk ekrani | 1600 × 1040 (16 : 10.4) |
public/screens/student.png | O'quvchilar bo'limi, 3D planshet ekrani | 1600 × 1200 (4 : 3) |
Rasm ekranni to'liq qoplaydi (object-fit: cover, yuqori-chap burchakdan), shuning uchun
nisbat biroz farq qilsa ham buzilmaydi. WebP ishlatmoqchi bo'lsangiz — fayl nomini
TeachersSection.vue / StudentsSection.vue dagi src qatorida ham almashtiring.
| Nima | Fayl |
|---|---|
| Barcha matnlar (UZ / RU) | src/i18n/uz.json, src/i18n/ru.json |
| FAQ savol-javoblari | src/content/faq.js (TODO belgili javoblarni to'ldiring) |
| Aloqa: Telegram, email, telefon | src/config/site.js |
| Xaritadagi yozuvlar (3D relyef) | src/content/geo.js |
| Brend ranglari | src/styles/main.css (:root va .dark) |
Til ?lang=ru parametri bilan ham ochiladi (masalan, https://geolearn.uz/?lang=ru).
| Sahna | Fayl |
|---|---|
| Hero: interaktiv Yer shari, O'rta Osiyo + Toshkent markeri, orbitadagi kartochkalar | components/three/HeroGlobe.vue, engine/heroGlobe.js, engine/earth.js |
| Skroll bilan O'rta Osiyoga «sho'ng'ish» → low-poly relyef xarita | components/sections/DiveSection.vue, engine/diveScene.js, engine/terrain.js |
| Imkoniyatlar: 7 ta aylanuvchi 3D ikonka (bitta canvas, scissor) | components/sections/FeaturesSection.vue, engine/featureIcons.js |
| AI yordamchi: shisha «orb» | components/sections/AiSection.vue, engine/aiOrb.js |
| Noutbuk / planshet / jonli o'yin paneli / rol kartochkalari | CSS 3D + GSAP (components/devices, components/role) |
Ishlash tezligi uchun:
import() qilinadi; ungacha skeleton yoki oldindan chizilgan statik rasm turadi.
Hero globusi birinchi harakatgacha (sichqoncha, skroll, teginish) yoki ~3.5 s gacha statik
rasm bilan turadi — sahifa tez ochiladi.[1, 2] (telefonda 1.5 gacha), teksturalar WebP/PNG, jami ~0.5 MB.src/composables/useDevice.js):
prefers-reduced-motion, Save-Data yoki juda kuchsiz qurilma:
3D o'rniga statik rasmlar, animatsiyalar o'chadi, sayt to'liq ishlaydi.?tier=full, ?tier=lite yoki ?tier=static qo'shing.index.html — title, description, canonical, hreflang (uz/ru), Open Graph, Twitter card, JSON-LD.public/og-image.png (1200 × 630), favicon.svg, apple-touch-icon.png, site.webmanifest.public/robots.txt va public/sitemap.xml ichidagi https://geolearn.uz ni o'z domeningizga
almashtiring (bu ikki fayl statik, .env dan o'qilmaydi).VITE_ADMIN_URL, VITE_USER_URL, VITE_SITE_URL.vercel.json SPA rewrite va kesh sarlavhalarini sozlaydi.Boshqa hostinglarda ham ishlaydi: npm run build → dist/ papkasini istalgan statik hostingga qo'ying.
src/
config/links.js ← portal havolalari (bitta joyda)
config/site.js ← aloqa ma'lumotlari, menyu
content/faq.js ← FAQ
content/geo.js ← xarita yozuvlari
i18n/uz.json, ru.json ← tarjimalar
components/
layout/ ← Header, Footer
sections/ ← sahifa bo'limlari (yuqoridan pastga)
three/ ← 3D komponentlar
three/engine/ ← three.js sahnalari (lazy chunk)
devices/, role/, ui/ ← noutbuk/planshet, rol kartochkalari, UI elementlar
composables/ ← tema, qurilma darajasi, skroll, tilt, lazy 3D
public/
textures/, geo/ ← Yer teksturalari, O'rta Osiyo relyef ma'lumotlari
images/ ← statik fallback rasmlar, kontur chiziqlar
screens/ ← dashboard skrinshotlari (almashtiring)
@fontsource-variable/inter.