הלולקינים: אפליקציית ניחושי מונדיאל שבנינו מאפס לי ולחברים
קבוצת חברים רצתה לנהל ליגת ניחושי מונדיאל רצינית, לא עוד טבלה מבולגנת בוואטסאפ. אז בניתי אפליקציית ווב מלאה: התחברות עם גוגל, מסך ניחוש לכל משחק, ניחושי טורניר, מנוע ניקוד שמחשב נקודות לבד ברגע שמזינים תוצאה, וטבלת ליגה חיה. כל המאגר אמיתי, עם כל הנבחרות, הסגלים והמשחקים של המונדיאל.
הסיפור: מטבלת וואטסאפ אל אפליקציה אמיתית
חבורת חברים שלי אוהבת לנחש תוצאות מונדיאל, ובכל פעם מחדש זה התפרק לטבלת אקסל או הודעות בוואטסאפ שאף אחד לא הצליח לעקוב אחריהן. רציתי משהו אחר: מקום אחד, נקי ורציני, שכל אחד נכנס אליו עם חשבון גוגל, מנחש בשקט, ורואה את עצמו מטפס בטבלה כשמשחקים נגמרים.
אז בניתי את הלולקינים מאפס. אפליקציית ווב מלאה שמנהלת ליגת ניחושים שלמה: מסך ניחוש לכל אחד מ-104 משחקי המונדיאל, ניחושי טורניר ארוכי טווח כמו הזוכה ומלך השערים, נעילה אוטומטית של כל ניחוש בשריקת הפתיחה, ומנוע שמחשב את הניקוד של כולם ברגע שאני מזין תוצאה. הכול עם מאגר אמיתי של כל הנבחרות והסגלים.
התוצאה: החברים נכנסים, מנחשים, ורואים טבלת ליגה חיה שמתעדכנת לבד. שום אקסל, שום ספירה ידנית, ושום ויכוח על מי צודק. פרויקט אישי שהפך למוצר אמיתי שרץ בענן, וממחיש בדיוק איך נראה פיתוח אפליקציית ווב מקצה לקצה.
איך נבנתה האפליקציה, שלב אחרי שלב
מאפיון הליגה ועד דיפלוי חי בענן. כל שלב נבנה בנפרד ונבדק לפני שהמשכתי הלאה, כך שהבסיס נשאר יציב גם כשהוספתי פיצ'רים.
אפיון הליגה ושיטת הניקוד
הגדרתי קודם את החוקים: כמה נקודות על תוצאה מדויקת, כמה על כיוון נכון, ואיך עובדים ניחושי הטורניר ארוכי הטווח. בלי חוקים ברורים אי אפשר היה לבנות מנוע ניקוד אמין.
סכמת הדאטהבייס ואבטחת שורות
בניתי את מסד הנתונים ב-Supabase: טבלאות לנבחרות, שחקנים, משחקים, ניחושים וחברים. על כל טבלה הגדרתי אבטחת שורות (Row Level Security), כך שכל חבר רואה ועורך רק את הניחושים שלו.
התחברות עם חשבון גוגל
החברים לא צריכים לזכור עוד סיסמה. חיברתי התחברות גוגל דרך שכבת האימות של Supabase, וכל מי שמצטרף עובר מסך הצטרפות קצר שמגדיר לו כינוי ואווטאר.
מסכי הניחוש: משחקים וטורניר
בניתי את לוח המשחקים עם שדה ניחוש לכל משחק, ומסך נפרד לניחושי הטורניר: זוכת המונדיאל, מלך השערים ומלך הבישולים. הכול בעברית מלאה ומימין לשמאל.
מנוע ניקוד אוטומטי
הלב של המערכת. ברגע שאני מזין תוצאה רשמית, טריגר בדאטהבייס מחשב מחדש את הנקודות של כל החברים על אותו משחק, ומעדכן את טבלת הליגה לבד בלי שום חישוב ידני.
מאגר נבחרות וסגלים אמיתי
שאבתי את כל 48 הנבחרות, המאמנים והסגלים מהמקור הרשמי, יותר מאלף ושלוש מאות שחקנים. כך שכשבוחרים מלך שערים, בוחרים מתוך רשימת שחקנים אמיתית ומלאה.
דיפלוי חי בענן
העליתי את האפליקציה ל-Vercel, מחוברת ישירות למאגר הקוד. כל שינוי שאני דוחף עולה לאוויר אוטומטית, והחברים מקבלים כתובת אחת קבועה שנכנסים אליה מהנייד.
מה נבנה, פיצ'ר אחרי פיצ'ר
כל יכולת עלתה מתוך צורך אמיתי של החבורה. רשימת המשחקים, חישוב הנקודות, הנעילה בזמן, וכל מה שצריך כדי שליגה תרוץ לבד בלי שאני אנהל אותה בעבודת יד.
התחברות מהירה עם גוגל
כניסה בלחיצה אחת עם חשבון גוגל, בלי סיסמאות. מסך הצטרפות קצר מגדיר כינוי ואווטאר אישי לכל חבר.
ניחוש תוצאה לכל משחק
שדה ניחוש נקי לכל אחד מ-104 המשחקים, מסודר לפי ימים ושלבים, עם שמירה מיידית של מה שהוזן.
ניחושי טורניר ארוכי טווח
זוכת המונדיאל, מלך השערים ומלך הבישולים, נבחרים מתוך מאגר הנבחרות והשחקנים האמיתי של הטורניר.
נעילת ניחושים בזמן
כל ניחוש משחק ננעל אוטומטית בשריקת הפתיחה, וניחושי הטורניר ננעלים לפני המשחק הראשון. אי אפשר לנחש בדיעבד.
מנוע ניקוד אוטומטי
חמש נקודות על תוצאה מדויקת, שתיים על כיוון נכון. הכול מחושב לבד ברגע שמוזנת תוצאה, בלי ספירה ידנית.
טבלת ליגה חיה
דירוג מתעדכן של כל החברים, עם פירוק הנקודות בין ניחושי משחקים לניחושי טורניר, וכמה ניחושים מדויקים לכל אחד.
פאנל אדמין להזנת תוצאות
מסך ניהול שמאפשר להזין תוצאות, לנהל את המשחקים, ולעדכן נתונים. ההזנה היא שמפעילה את חישוב הניקוד מחדש.
מאגר 48 נבחרות וסגלים
כל הנבחרות, המאמנים, ויותר מאלף ושלוש מאות שחקנים, מסודרים לפי בית ומחולקים לפי תפקיד.
אבטחת שורות בדאטהבייס
אבטחת שורות (Row Level Security) על כל טבלה, כך שכל חבר ניגש רק לנתונים שמותר לו, גם אם מישהו ינסה לפנות לדאטהבייס ישירות.
ממשק עברי ומימין לשמאל
כל המסכים בעברית מלאה ובמבנה מימין לשמאל, מותאמים לנייד שזה המקום שבו רוב החברים פותחים את האפליקציה.
איך האפליקציה נראית בפועל
מסכים אמיתיים מתוך המערכת החיה. שמות החברים האמיתיים הוחלפו לשמירה על פרטיות, אבל המבנה, הנתונים והעיצוב הם בדיוק מה שרץ.
מסך הנבחרות
כל 48 הנבחרות עם דגל, סגל ומאמן. לחיצה על נבחרת פותחת את הסגל המלא שלה, מקור הנתונים לניחושי מלך השערים והבישולים.
לוח המשחקים
כל משחק עם שני הדגלים, שעת המשחק ושדה ניחוש נקי. מסודר לפי ימים ובתים, עם נעילה אוטומטית כשהמשחק מתחיל.
שלוש יכולות שעושות את ההבדל
ניקוד אוטומטי בזמן אמת
מזינים תוצאה אחת, וכל הטבלה מתעדכנת לבד. החישוב יושב בתוך הדאטהבייס עצמו, כך שאי אפשר לטעות בו ואין מה לספור ביד.
מאגר מונדיאל אמיתי
נבחרות, מאמנים וסגלים מלאים מהמקור הרשמי. הניחושים נשענים על נתונים אמיתיים, לא על רשימה שהקלדתי ביד.
פרטיות ואבטחה כברירת מחדל
התחברות גוגל ואבטחת שורות מלאה. כל חבר ניגש רק לניחושים שלו, וניחושים נחשפים רק אחרי שהם ננעלים.
הסטאק המלא שעליו רץ הפרויקט
פרויקט אישי, אבל סטאק מקצועי לכל דבר. הקוד מנוהל בגיטהאב, הדיפלוי רץ אוטומטית על Vercel, והדאטהבייס והאימות יושבים על Supabase. שלושתם בשכבה החינמית, כך שעלות התשתית החודשית היא אפס.
מסך ניחושי הטורניר
ניחושים ארוכי הטווח: זוכת המונדיאל, מלך השערים ומלך הבישולים. נבחרים מתוך המאגר האמיתי, ננעלים לפני המשחק הראשון.
מסך שיטת הניקוד
כל הכללים במקום אחד: חמש נקודות על תוצאה מדויקת, שתיים על כיוון נכון, וניקוד נפרד לניחושי הטורניר. שקיפות מלאה לכל החברים.
בנייה בשיתוף Claude Code
האפליקציה נבנתה בעבודה ממוקדת עם Claude Code: אפיון הליגה והניקוד, תכנון סכמת הדאטהבייס ומדיניות האבטחה, בניית המסכים בעברית, ובדיקה של מנוע הניקוד מול תרחישים אמיתיים לפני שכל גרסה עלתה לאוויר. השילוב הזה הוא מה שאיפשר לפרויקט אישי להגיע לרמת גימור של מוצר.
הדרך מאפיון ועד אפליקציה חיה בענן הייתה מהירה דווקא בגלל שהיא הייתה מסודרת. כל החלטה, מצורת הניקוד ועד מבנה הטבלאות, נסגרה לפני הקוד, וכל שכבה נבדקה בנפרד. ככה פרויקט שנשמע כמו צעצוע של חברים יצא מערכת אמיתית עם אבטחה, מאגר נתונים מלא, ודיפלוי אוטומטי.
סיכום הקייס סטאדי
החברים רצו דרך רצינית לנהל ליגת ניחושי מונדיאל, בלי טבלאות מבולגנות ובלי ויכוחים על מי צודק. במקום עוד אקסל, בניתי אפליקציית ווב מלאה עם התחברות גוגל, מסכי ניחוש, מנוע ניקוד אוטומטי וטבלת ליגה חיה.
היום כל אחד נכנס עם חשבון גוגל, מנחש בשקט, ורואה את עצמו בטבלה שמתעדכנת לבד. כל המאגר אמיתי, האבטחה מובנית, והכול רץ בענן בעלות אפס. פרויקט אישי שהפך למוצר עובד.
הלקח: אותם כלים שבונים מערכת לעסק בונים גם אפליקציה לקבוצת חברים. אפיון נכון, דאטהבייס מסודר, ודיפלוי אוטומטי, וזה לא משנה אם המשתמשים הם לקוחות או חברים שאוהבים כדורגל.
שאלות ותשובות
מה הלולקינים בעצם עושה?
זו אפליקציית ווב פרטית לניהול ליגת ניחושי מונדיאל בין חברים. כל חבר מנחש תוצאות של משחקים וגם ניחושי טורניר ארוכי טווח, והמערכת מחשבת ניקוד ומנהלת טבלת ליגה חיה לבד.
על איזה סטאק האפליקציה בנויה?
הצד הראשי בנוי ב-Next.js עם TypeScript ו-Tailwind. הדאטהבייס, האימות והאבטחה יושבים על Supabase מעל PostgreSQL. הקוד מנוהל בגיטהאב, והדיפלוי רץ אוטומטית על Vercel.
איך מחושב הניקוד?
חמש נקודות על ניחוש תוצאה מדויקת, שתיים על ניחוש כיוון נכון בלבד, ואפס על פספוס. לניחושי הטורניר יש ניקוד נפרד וגבוה יותר. החישוב רץ אוטומטית בתוך הדאטהבייס ברגע שמזינים תוצאה רשמית.
איך נשמרת הפרטיות של החברים?
ההתחברות היא דרך חשבון גוגל, ועל כל טבלה בדאטהבייס מוגדרת אבטחת שורות. המשמעות היא שכל חבר ניגש ועורך רק את הניחושים שלו, וניחושים של אחרים נחשפים רק אחרי שהם ננעלים.
למה לבנות אפליקציה במקום להשתמש בטבלת אקסל?
אקסל מתפרק ברגע שיש הרבה משחקים והרבה אנשים, ואין בו נעילה בזמן או חישוב אוטומטי. אפליקציה ייעודית נותנת חוויה נקייה בנייד, מונעת ניחוש בדיעבד, ומנהלת את כל הליגה בלי עבודת יד.
כמה עלתה התשתית?
אפס. שלושת שירותי הענן שבהם השתמשתי רצים בשכבה החינמית שלהם, שמספיקה בקלות לקבוצה בגודל כזה. זה אחד היתרונות של בחירת סטאק נכון לפרויקט בקנה מידה מתאים.
אפשר להתאים אפליקציה כזו לעסק או לקהילה אחרת?
בהחלט. אותו בסיס של התחברות, דאטהבייס מאובטח, לוגיקה אוטומטית ודיפלוי בענן מתאים לכל אפליקציה ניהולית, בין אם זו ליגה, מועדון לקוחות, או מערכת פנימית לעסק.
כמה זמן לוקח לבנות אפליקציה כזו?
זה תלוי בהיקף, אבל הסוד הוא בסדר: אפיון לפני קוד, דאטהבייס מסודר, ובנייה שכבה אחרי שכבה. כשהבסיס יציב, אפשר להוסיף פיצ'רים מהר בלי לשבור את מה שכבר עובד.
רוצים אפליקציית ווב משלכם?
השאירו פרטים ונחזור אליכם לפגישת אפיון קצרה. לא משנה אם זו מערכת לעסק, מועדון לקוחות או רעיון אישי שרץ לכם בראש, נבדוק יחד מה צריך להיבנות ואיך עושים את זה נכון מהבסיס.