ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
翻译准备中
尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证正在加载完整 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 المقيّدة سابقًا، ومن المتوقع أن يعمل بشكل طبيعي هنا كتطبيق مستقل؛ لم يُضف بعد لأنه لم يكن ضمن قائمة الميزات التي أثبتت نجاحها.