ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기LexReader — учи язык, читая то, что интересно
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Приложение для изучения языка через чтение реальных текстов: читаешь → тапаешь непонятное слово → получаешь перевод в контексте → сохраняешь в свой словарь → повторяешь по расписанию SRS. Полное ТЗ: lexpring-clone-spec.md. Больше живых скриншотов ключевых экранов (десктоп + мобилка) — в финальной визуальной проверке.README 전문 보기 ↗
Приложение для изучения языка через чтение реальных текстов: читаешь → тапаешь непонятное слово → получаешь перевод в контексте → сохраняешь в свой словарь → повторяешь по расписанию SRS.
Живая версия: lexreader.vercel.app
Полное ТЗ: lexpring-clone-spec.md.
| Было | Стало |
|---|---|
Больше живых скриншотов ключевых экранов (десктоп + мобилка) — в финальной визуальной проверке.
owner_id = auth.uid()src/lib/translate.ts — абстракция, легко заменить на LibreTranslate (self-hosted) или DeepL позжеsrc/lib/fsrs-flags.ts):
src/lib/fsrs.ts) — адаптер поверх ts-fsrs, современный алгоритм с явной моделью «стабильность/сложность» вместо эвристик; целевой алгоритм для новых карточек.src/lib/srs.ts) — упрощённая 4-балльная реализация классического алгоритма, legacy-путь для карточек, заведённых до перехода на FSRS, и фолбэк, пока флаг не включён для аккаунта.src/app/api/webhooks/stripe/)pdfjs-dist), фото/OCR (tesseract.js), веб-статьи (@mozilla/readability), YouTube-субтитры + Whisper-фолбэк (worker/youtube-ingestion/, отдельный воркер)flowchart LR
subgraph Клиенты
Web["Web (Next.js)"]
Native["Android / iOS\n(Capacitor)"]
end
subgraph "Next.js App Router"
Pages["Страницы / Server Actions"]
Proxy["proxy.ts (auth-гейт)"]
end
subgraph Supabase
Auth[(Auth)]
DB[(Postgres + RLS)]
Storage[(Storage)]
end
Worker["worker/youtube-ingestion\n(субтитры + Whisper-фолбэк)"]
MyMemory[["MyMemory\n(перевод)"]]
Stripe[["Stripe\n(подписки)"]]
PostHog[["PostHog\n(аналитика)"]]
Web --> Proxy --> Pages
Native --> Proxy
Pages --> Auth
Pages --> DB
Pages --> Storage
Pages --> MyMemory
Pages --> Stripe
Pages --> PostHog
Pages -- "импорт YouTube-видео" --> Worker
Worker --> DB
Читалка, словарь (Мозг/Тетрадь), повторение по SRS и экран прогресса — это server actions и server components внутри src/app/(app)/; авторизация проверяется в src/proxy.ts (Next.js 16 переименовал Middleware в Proxy) на каждый запрос к защищённым маршрутам. Вся запись/чтение данных идёт через Supabase с RLS-политиками owner_id = auth.uid() — база данных сама фильтрует строки на своём уровне, приложению не нужен отдельный слой авторизации поверх запросов.
npm run dev
Открыть http://localhost:3000.
npx supabase start)..env.local.example в .env.local и заполнить ключи.supabase/migrations/ через Supabase Studio (SQL Editor) или npx supabase db push.npm run typecheck
npm run lint
npm test # 403 unit/integration-теста, самодостаточные, без БД
npm run test:e2e # Playwright, требует поднятый Supabase + dev-сервер
Исходный MVP-план проекта — все 7 пунктов давно реализованы, раздел оставлен как историческая справка:
profiles