# מערך שיעור: פרויקט מסכם — אינטגרציה מלאה📋 מערך מרצה

הקשר: שיא הפרויקט הצוותי — כל 4 השירותים (Collector, Analyzer, Alert, Dashboard) שנבנו בנפרד רצים יחד לראשונה, עם `docker-compose` ותהליך עבודה צוותי אמיתי.

מטרת הפרויקט: כל צוות ירכיב ויפעיל את מערכת המודיעין השלמה עם docker-compose, ויציג אותה — עם End-to-End Flow מאומת ולפחות PR אחד עם קוד-ריוויו.

---

## דגשים להנחיה

- זהו השלב שבו בעיות Contract "נסתרות" מתגלות סוף-סוף — זה **צפוי ותקין**, לא כישלון. הכינו את הצוותים מראש לכך שדיבוג באינטגרציה שונה מדיבוג שירות בודד, ולעודד שיתוף פעולה בין חברי הצוות (לא רק "כל אחד מתקן את שלו").
- ודאו ש-PR+קוד-ריוויו קורה בפועל, לא רק "מדובר עליו" — זה חלק מהותי מהלמידה על עבודת צוות אמיתית.
- הקדישו את רוב הזמן לעבודה בפועל ולפתרון בעיות אינטגרציה אמיתיות, לא הרצאה. הכינו זמן חיץ (buffer) — אינטגרציה תמיד לוקחת יותר זמן מהמצופה.

---

## איך להעריך הצלחה

הובילו כל צוות דרך רצף אבחון מובנה: (1) `docker-compose ps` — כל השירותים למעלה? (2) `docker logs collector` — הבקשה התקבלה ופורסמה בהצלחה? (3) `docker logs analyzer` — קיבל ועיבד? (4) `docker logs dashboard` — מאזין ל-Topic הנכון? בדקו שאירוע "רגיל" מופיע ב-`totalEvents`, ושאירוע קיצוני מופיע גם ב-`totalAnomalies` וגם מייצר התראה — הכל מבקשת HTTP יחידה, בלי הזרקה ידנית.

---

## טעויות נפוצות של סטודנטים

- מריצים כל שירות בנפרד עם `docker run` במקום `docker-compose` — מאבדים את הרשת המשותפת האוטומטית.
- מניחים ש-`depends_on` מבטיח ש-Kafka **מוכן**, לא רק שהוא **התחיל** — לפעמים נדרשת המתנה קצרה נוספת.
- מדלגים על בדיקת End-to-End ומסתפקים בבדיקת כל שירות בבידוד — מפספסים בעיות Contract אמיתיות.

---

## תרגיל חשיבה

**שאלת פתיחה:** "אתם מריצים `docker-compose up`, שולחים בקשה ל-Collector, אבל Dashboard לא מראה שום דבר חדש. מהם 4 המקומות הראשונים שהייתם בודקים, ולפי איזה סדר?"

**מהלך:** הובילו את הצוותים לבנות רצף אבחון: (1) `docker-compose ps` — כל השירותים למעלה? (2) `docker logs collector` — הבקשה התקבלה, פורסמה בהצלחה? (3) `docker logs analyzer` — קיבל, עיבד? (4) `docker logs dashboard` — מאזין ל-Topic הנכון? זהו בדיוק רצף האבחון המקצועי שיהיה להם צורך בו בפועל תוך כדי השיעור.

**מה המרצה מראה בסוף:** בחרו צוות (בהסכמתם) עם בעיית אינטגרציה אמיתית שעדיין קיימת, ועברו יחד עם כל הכיתה על תהליך האבחון בשידור חי — לפי הרצף שנבנה יחד בתרגיל החשיבה. פתרון תקלה אמיתית מול הכיתה משכנע הרבה יותר מכל תרחיש מבוים.
