ESP32-S3 Bench Guide
ESP32‑S3 N16R8 벤치 가이드: 실시간 핀아웃, 강의, 시뮬레이터 및 벤치 로그
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
معلم افتراضي بالذكاء الاصطناعي، ناطق بالعربية، لطلاب المرحلة الثانوية في العراق (سادس إعدادي / ثالث متوسط). تطبيق ويب مستقل (وليس داخل بيئة محادثة مقيّدة) يفتح المعلم فيه الجلسة بنفسه، يتحقق من المفهوم السابق تشخيصيًا، ثم يشرح — بصوت، وبرسوم توضيحية يولّدها بنفسه عند الحاجة.README 전문 보기 ↗
معلم افتراضي بالذكاء الاصطناعي، ناطق بالعربية، لطلاب المرحلة الثانوية في العراق (سادس إعدادي / ثالث متوسط). تطبيق ويب مستقل (وليس داخل بيئة محادثة مقيّدة) يفتح المعلم فيه الجلسة بنفسه، يتحقق من المفهوم السابق تشخيصيًا، ثم يشرح — بصوت، وبرسوم توضيحية يولّدها بنفسه عند الحاجة.
trustHost: true مفعّل لأن Vercel (وأغلب مزوّدي الاستضافة) يمرّرون Host صحيحًاspeechSynthesis) للتحويل النصي-الصوتي من جهة المتصفح، بلا تبعية خارجية أو تكلفة إضافيةprisma/schema.prisma نماذج قاعدة البيانات
prisma/seed.ts يزرع 3 مواد أولية: كيمياء، رياضيات، إنكليزي
src/auth.config.ts إعداد NextAuth الآمن لبيئة Edge (بلا Prisma) — يستخدمه middleware فقط
src/auth.ts إعداد NextAuth الكامل (Credentials + bcrypt + Prisma) — يستخدمه كل شيء آخر
src/lib/teacher-prompt.ts الشخصية والأسلوب التربوي الكامل للمعلم (بالعربية) + أداة تحديث التقدّم
src/app/api/chat/route.ts المسار الرئيسي: يبني السياق (مادة + تقدّم + سجل حوار)، يبث رد المعلم، يحفظ التقدّم
src/hooks/use-teacher-voice.ts قراءة صوتية تختار الصوت العربي/الإنكليزي تلقائيًا حسب النص
src/lib/sanitize-svg.ts تعقيم صارم لأي رسم SVG يولّده المعلم قبل حقنه في الصفحة
src/components/chat-app.tsx التطبيق الرئيسي: اختيار المادة، الحوار، ملء الشاشة، الصوت
src/app/admin/* لوحة تحكم للمشرف: مواد جديدة، مصادر دائمة لكل مادة، قائمة الطلاب
update_progress) في نهاية كل رد، فيُفصل تمامًا عن النص المعروض/المنطوق للطالب.StudentMaterial (مكتبة كتب خاصة بالطالب لكل مادة، يختار أيها نشط عبر قائمة منسدلة) وMaterial (رفع المشرف، دائم ويظهر لكل الطلاب). عند عدم تفعيل أي كتاب طالب يُستخدم كتاب المشرف.[صفحة N] أثناء الاستخراج (src/lib/extract-pdf-text.ts)، فيستطيع المعلم إخبار الطالب فعليًا "نحن الآن في صفحة 42" بدل تخمين، ويُعرض هذا كشارة 📍 ثابتة أعلى المحادثة.fileData) عند الرفع، ويُعرض عبر GET /api/materials/file. العرض والتحويل إلى صورة (canvas) يحدثان بالكامل في متصفح الطالب عبر pdfjs-dist — لا خادم يُترجم الصفحات — لأن محاولة سابقة لعمل هذا على الخادم اصطدمت بنفس مشكلة تحميل عامل (worker) pdfjs التي واجهناها مع استخراج النص. لوحة LessonVisualPanel تعرض تبويبين: صفحة الكتاب الحالية، وآخر رسم توضيحي (SVG) ولّده المعلم — وتتنقّل تلقائيًا لأحدثهما.prisma db push يشغَّل ضمن npm run build نفسه، فكل نشر جديد على Vercel يهيّئ قاعدة البيانات ويزرع المواد الأولية تلقائيًا — مناسب لمشروع بمشرف واحد (أنت) بلا حاجة لتشغيل أوامر يدويًا في كل مرة.cp .env.example .env
# املأ DATABASE_URL (رابط Postgres، مثلاً من neon.tech)
# املأ ANTHROPIC_API_KEY، وولّد AUTH_SECRET بالأمر: npx auth secret
npm install
npm run dev
npm run dev لا يُنشئ الجداول تلقائيًا في وضع التطوير — شغّل مرة واحدة: npx prisma db push && npm run db:seed. أما npm run build (المستخدم في النشر) فيقوم بهذا تلقائيًا في كل مرة.
افتح http://localhost:3000، أنشئ حسابًا (أول حساب يصبح مشرفًا تلقائيًا ويرى رابط "لوحة التحكم" في الأعلى).
الكود جاهز للنشر مباشرة: عند البناء (npm run build) يقوم تلقائيًا بمزامنة جداول قاعدة البيانات وزرع المواد الأولية (prisma db push && seed) قبل بناء الموقع — لا حاجة لفتح أي طرفية (terminal).
DATABASE_URL = رابط Neon من الخطوة 1AUTH_SECRET = قيمة عشوائية طويلة (يمكن توليدها بالأمر openssl rand -base64 32 من أي طرفية، أو أطلب من المعلم/المساعد توليد واحدة)ANTHROPIC_API_KEY = مفتاحك من console.anthropic.comyour-project.vercel.app.| المتغير | الوصف |
|---|---|
DATABASE_URL | رابط اتصال Postgres (نفسه محليًا وفي الإنتاج) |
AUTH_SECRET | مفتاح توقيع الجلسات (npx auth secret أو openssl rand -base64 32) |
ANTHROPIC_API_KEY | مطلوب لتشغيل المعلم فعليًا |
ANTHROPIC_MODEL | افتراضيًا Haiku لتقليل التكلفة (~1-3$ لكل طالب نشط شهريًا)؛ بدّله بنموذج Sonnet لجودة أعلى وتكلفة أعلى |
export const maxDuration = 60) لتفادي حدّ الـ10 ثوانٍ الافتراضي لدوال Vercel المجانية أثناء استخراج نص كتاب كبير أو رد طويل من المعلم.MAX_PDF_BYTES في الكود — إن كان كتابك أكبر من ذلك، اضغطه بأداة مجانية لتصغير حجمه قبل الرفع. على خادم Node عادي (self-hosted) لا يوجد هذا القيد.[صفحة N] مأخوذة من ترتيب صفحات ملف الـPDF كما استخرجه pdf-parse؛ إن كان الكتاب صورًا ممسوحة ضوئيًا بلا طبقة نص (OCR)، لن يُستخرج نص ولن تظهر علامات صفحات (لكن صورة الصفحة نفسها تبقى تعمل، لأنها لا تعتمد على النص).weakPoints — موجودة بالفعل في Progress، تبقى بناء منطق الجدولة).SpeechRecognition في المتصفح — لم يكن يعمل في بيئة Artifacts المقيّدة سابقًا، ومن المتوقع أن يعمل بشكل طبيعي هنا كتطبيق مستقل؛ لم يُضف بعد لأنه لم يكن ضمن قائمة الميزات التي أثبتت نجاحها.