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 المقيّدة سابقًا، ومن المتوقع أن يعمل بشكل طبيعي هنا كتطبيق مستقل؛ لم يُضف بعد لأنه لم يكن ضمن قائمة الميزات التي أثبتت نجاحها.