ESP32-S3 Bench Guide
ESP32-S3 N16R8 bench guide: live pinout, lessons, simulators and the bench log.
منصة تدريب احترافية للقطاع الصحي والمؤسسي
Translation pending
EducationTypeScript · JavaScriptGitHub @omarhesham1010OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Loading the full README. The saved excerpt is shown below.
أي حقيبة أو فصل جديد يجب أن يتبع docs/chapter-production-playbook.md. Premium Arabic (RTL) interactive e-learning course — الحوكمة والمخاطر والامتثال Built from the source presentation الحوكمة والمخاطر والامتثال_العرض التقديمي.pptx. وحدة تدريبية تفاعلية كاملة تحوّل محتوى العرض التقديمي إلى تجربة تعلّم إلكترونية احترافية جاهزة لأنظمة إدارة التعلّم (LMS): دروس، أنشطة وألعاب تدريبية، محاكاة قرار، اختبار معرفة، شرح صوتي، تتبّع تقدّم، ووضعان فاتح وداكن.Read the full README ↗
أي حقيبة أو فصل جديد يجب أن يتبع
docs/chapter-production-playbook.md.
Premium Arabic (RTL) interactive e-learning course — الحوكمة والمخاطر والامتثال Built from the source presentation
الحوكمة والمخاطر والامتثال_العرض التقديمي.pptx.
وحدة تدريبية تفاعلية كاملة تحوّل محتوى العرض التقديمي إلى تجربة تعلّم إلكترونية احترافية جاهزة لأنظمة إدارة التعلّم (LMS): دروس، أنشطة وألعاب تدريبية، محاكاة قرار، اختبار معرفة، شرح صوتي، تتبّع تقدّم، ووضعان فاتح وداكن.
#/course/5)، فيمكنك إرسال رابط الفصل ليفتح مباشرة دون المرور بالصفحة الرئيسية.slides.ts) يسهل تعديله، مع سرد يغطي كل النص المكتوب على الشريحة.ملاحظة عن الكتالوج: الحقيبة الأولى متاحة باسمها ومحتواها المعتمد: المقدمة وثلاثة فصول. الحقائب من الثانية إلى العاشرة معروضة بأرقامها فقط إلى أن تصل أسماؤها وموادها المعتمدة.
Vite · React 18 · TypeScript · Tailwind CSS · Web Speech API · LocalStorage (لا يتطلب أي خادم خلفي / No backend required.)
# 1) تثبيت الحزم / install dependencies
npm install
# 2) تشغيل بيئة التطوير / start dev server
npm run dev
# 3) بناء نسخة الإنتاج / production build
npm run build
# 4) معاينة نسخة الإنتاج / preview the build
npm run preview
المتطلبات: Node.js 18+ (تم الاختبار على Node 24).
الحقيبة الأولى مبنية كـ ٣٣ شريحة موزعة على المقدمة وثلاثة فصول،
وتشمل اختبارًا ختاميًا من خمسة أسئلة لكل فصل
(src/data/governanceProgram.ts). لكل شريحة:
narration + audioKey (مثل ppt-framework) → يشغّل /public/audio/ppt-framework.mp3 إن وُجد، وإلا قراءة آلية.duration (بالثواني) وtimeline: قائمة أحداث { time, element, animation } تُظهر العناصر تدريجياً.content (عناصر الشريحة) و/أو activity / quiz / reflection.تعديل التوقيت: غيّر time لكل عنصر وduration للشريحة في slides.ts. أنواع الحركة المتاحة:
fade-up · fade-in · slide-in · scale-in. عند إعادة الشريحة تُعاد الحركة من البداية،
وعند الإيقاف المؤقت يتوقف الخط الزمني.
مزامنة الصوت: ملف MP3 هو ساعة الخط الزمني الأساسية؛ لا تبدأ الحركات أو النص المتدرج قبل حدث
playing، وتتبع مدة الملف الفعلية. القراءة الآلية البديلة تستخدم حدود الكلمات أو تقديرًا محليًا فقط عند غياب MP3.
يعمل الشرح الصوتي بنمطين تلقائياً:
public/audio/<narrationKey>.mp3 فسيُشغّل مباشرةً./public/audio.يمكن استبدال القراءة الصوتية التلقائية بملفات صوت مولّدة بالذكاء الاصطناعي داخل مجلد
/public/audio. أسماء الملفات المطلوبة موجودة فيpublic/audio/README.md، ونصوص السرد كاملةً فيdocs/audio-scripts.md.
أزرار التحكم متوفرة في كل قسم: تشغيل الشرح · إيقاف · إعادة · عرض النص، مع شريط تحكم عائم يظهر أثناء التشغيل.
The production voice files can be generated from the centralized catalog in
src/data/audioScripts.ts. The catalog contains all 33 slide narrations
and every activity question, correct/incorrect feedback, scenario discussion,
and spoken completion used at runtime. The first question of each guided
activity is already part of its main slide narration, so it is not generated twice.
.env.example to .env and replace the placeholder values:ELEVENLABS_API_KEY=your_api_key_here
ELEVENLABS_VOICE_ID=your_voice_id_here
ELEVENLABS_MODEL_ID=eleven_v3
ELEVENLABS_OUTPUT_FORMAT=mp3_44100_192
ELEVENLABS_STABILITY=1
ELEVENLABS_SIMILARITY_BOOST=0.78
For eleven_v3, the generator always uses Robust stability (1) and omits
Speaker Boost and the legacy speed/style controls that v3 does not use in the
same way. Output defaults to MP3 44.1 kHz at 192kbps (mp3_44100_128 is also
accepted). The generation script also
normalizes colons and long dashes into natural Arabic pauses before sending text.
Numbers and ambiguous abbreviations should be written as spoken words in the
central catalog. Do not regenerate production audio without explicit approval.
Preview the complete generation plan without an API key or API requests:
npm run audio:generate:dry-run
Check current coverage before or after generation. Strict mode exits with a non-zero status while any required MP3 is missing:
npm run audio:check
npm run audio:check:strict
The expanded 33-slide program intentionally uses browser TTS until its revised narration is approved. The MP3 files from the previous chapter version remain in the repository and are not regenerated or reused by the new audio keys. Do not generate the new production audio without explicit approval because generation consumes ElevenLabs credits.
Generate only missing files, or deliberately regenerate every catalog file after approval:
npm run audio:generate
npm run audio:generate:force
For a low-credit quality pilot, regenerate only representative keys first:
node scripts/generate-elevenlabs-audio.js --preview --force --keys=ppt-intro,ppt-governance-models,ppt-activity-governance-or-compliance-feedback-1-correct
Pilot files are written to public/audio-pilot/ and never replace production
audio. Long scripts are split at sentence boundaries, generated with adjacent
text context, joined with FFmpeg, and receive a short safe lead-in before speech.
MP3 files are saved as public/audio/<key>.mp3. Existing files are skipped by
default, failed downloads never replace a valid file, and transient API failures
are retried with a delay. Run npm run build after generation; sync-audio
automatically adds every MP3 to src/data/audioManifest.ts and the SCORM build.
At runtime the app uses a listed MP3 before browser TTS. To verify that no TTS is
used, generate all catalog files, run npm run build, confirm the build reports
the expected MP3 count, and test every activity path while the audio source label
shows a fixed audio file. Temporarily renaming one generated MP3 and rebuilding is
the safest way to verify the Web Speech fallback. Restore the file and rebuild
before packaging SCORM.
Never commit .env or an API key. Only .env.example belongs in Git.
كل النصوص التعليمية والأنشطة والأسئلة موجودة في ملف واحد:
src/data/courseContent.ts
blocks داخل كل قسم type: 'lesson'.data (تصنيف، ترتيب، بناء، محاكاة، بطاقات).quiz.questions.narration وnarrationKey.الأنواع معرّفة في src/types/course.ts، لذا يرشدك المحرّر لأي حقل مطلوب.
src/
App.tsx ← مبدّل العرض: المنصة ⇄ مشغّل الشرائح
SlidePlayer.tsx ← مشغّل الشرائح (Storyline-style)
components/
player/ PlayerHeader · SlideStage · PlayerControls · SlideMenu
platform/ PlatformHome · TrackModal (المنصة، الحقائب، الفصول)
course/ LessonBlocks · Diagrams · HeroArt · BackgroundDecor (عناصر الشرائح)
activities/ ClassificationActivity · FlipCardActivity · DecisionSimulation · KnowledgeCheck · …
audio/ NarrationContext · NarrationSettings · AudioNarrationButton
ui/ Icon · IconBadge · Chip · FeedbackBox · Badge · Confetti · ThemeToggle
data/ slides.ts (شرائح الفصل + الخط الزمني) · courseContent.ts (مصدر المحتوى)
· platformContent.ts (كتالوج الحقائب)
hooks/ useTheme · useProgress · useNarration · useSlideTimeline
lib/ utils · progressReader
types/ course.ts · slides.ts
styles/ index.css (الثيم + الأنيميشن)
public/
audio/ ملفات الفصل الحالي (ppt-*.mp3) + ملفات الحقيبة القديمة المحفوظة (slide-*.mp3)
favicon.svg
docs/
audio-scripts.md · content-coverage.md · needs-review.md
ملاحظة: مكوّنات الواجهة القديمة (المسار المتدرّج) ما زالت في المستودع للرجوع إليها لكنها غير مستخدمة؛ المدخل الفعلي الآن هو
App → PlatformHome → SlidePlayer.
docs/needs-review.md للرجوع الداخلي.بعد npm run build يُنتَج مجلد dist/ ثابت (static). قيمة base: './' في
vite.config.ts تجعل الوحدة تعمل من أي مسار فرعي داخل الـ LMS. ارفع محتويات dist/
كما هي.