תמונה מתוך הקומיקס המרהיב Crystal heart של אביב אור וערן אבירם
היי לכולן!
אתמול, ביום האחרון לשנת 2024, הייתי צריכה להתקשר למישהו ולבקש ממנו טובה קטנה. להרבה מכן זו אולי נשמעת כמו פעולה די פשוטה, אבל בשבילי מדובר באתגר שהייתי צריכה להתכונן אליו נפשית במשך שעות ועם הרבה תמיכה (עדיין שלחתי הודעה בסוף במקום להתקשר).
האירוע הזה, ואווירת השנה החדשה, גרמה לי לחשוב על כל הדברים המאתגרים שאני עושה כל יום. דברים שקשים לי, שמפחידים אותי, שקלים לי אך מאוד מעייפים. כל הפעולות הקטנות שאני עושה ויחד מרכיבות את הימים והשבועות והחודשים.
נהוג בתחילת שנה שאנשים קובעים לעצמם מטרות שהם ינסו להגשים במהלך השנה החדשה. מנסיוני רוב המטרות הללו מלוות בביקורת עצמית קשה על כל הדברים שאנחנו לא עושות מספיק טוב. אנחנו צריכות לאכול יותר בריא, לעשות יותר ספורט, לבלות יותר זמן הילדים, לקרוא במקום להיות בטלפון וכו׳… כל הביקורת העצמית הזו לאו דווקא תורמת לבריאות הנפשית שלנו, וגם ככה רוב המטרות נזנחות עד אמצע ינואר.
אז השנה החלטתי לנסות משהו חדש – במקום לקבוע מטרות ולנסות לעמוד בהן, אני רוצה לתת לעצמי את ההערכה הראויה על כל הדברים הלא פשוטים בכלל שאני כבר עושה.
ההשראה
במשחקי תפקידים דמויות מתחילות בדרגה נמוכה, וככל שהמשחק נמשך הן יוצאים להרפתקאות, משחיזות את היכולות שלהן ומרוויחות XP – שהן Experience points. הנקודות האלה מייצגות את ההתקדמות של הדמות ומובילות לעליות דרגה.
השיטה הזו מדמה לא רע את החיים שלנו. אנחנו מתחילות כתינוקות שלא יכולות ממש לעשות כלום, ועם כל יום שעובר וכל אתגר שאנחנו מתגברות עליו אנחנו משתפרות; כל הרצאה שהעברתי למרות שאני מתה מפחד ומרגישה בחילה עזרה לי להשתפר בהעברת הרצאות, והיום אני עדיין מפחדת, אבל פחות. כל פעם שניהלתי שיחה לא נעימה נהייתי טיפה טובה יותר בהתגברות על החוסר נעימות.
אז השנה, רציתי לעקוב אחרי כל ה-XP שאני מרוויחה, ולשם כך – איך לא – נעזרתי בתכנות, ובניתי Tracker.
למטרת הפרויקט שלי רציתי להשתמש ב-Notion. מדובר בכלי מגניב שהתחלתי להשתמש בו לאחרונה כדי לנהל רשימות משימות, הערות ושאר דברים יומיומיים. כשחקרתי על הכלי ראיתי שאפשר לבנות בו שלל דברים יפים. יש לו דאטבייסים, ו-API, כך שעם קצת רצון ויצירתיות אפשר להשתמש בו לאירוח אתרים קטנים.
החלטתי שאני אבנה מיני אפליקציה שתעקוב אחרי נקודות ה-XP היומיות שלי, כיוון שזה מסוג הדברים ש-Notion ממש בנוי בשבילם. חשבתי קצת על איך שאני רוצה שהמערכת תיראה. בהינתן שהדאטבייס והפרונטאנד ניתנים לי על ידי Notion, כל מה שהייתי צריכה היה להוסיף את הבקאנד שלי.
זה הדיזיין הסופי שלי (אחרי כמה איטרציות כמובן) –

(לראות בקצת גדול יותר – Excalidraw)
הלאה לפיתוח
בתור מפתחת מודרנית ב-2024 שרצתה לעשות פרויקט קטן ומהיר, כמובן שהכתובת הראשונה שלי הייתה ChatGPT. תיארתי לו גרסה מאוד פשוטה של הקומפוננטה הראשונה שרציתי – רשימה שמראה את כל הפעולות שאני יכולה לעשות ביום. כדי להמשיך עם התמה של משחקי התפקידים קראתי לפעילויות שלי Quests. בתרגום מאוד רופף אני אקרא להן הרפתקאות. יצרתי דאטבייס של הרפתקאות בתוך ה-notion שלי, וביקשתי מהצ׳אט לכתוב קוד שיתחבר אליה.
התשובה של ChatGPT עזרה לי עם המון דברים – היא הסבירה לי איך ליצור אינטגרציה חדשה ל-Notion, איך ליצור DB, מאיפה להביא את המפתחות ואיפה לשים אותם. היא המליצה על render בתור אתר שיכול להריץ בחינם (עם משאבים מוגבלים כמובן) אתרים כתובים בפייתון, ואחרי בערך שעה של התכתבויות ועבודה הגעתי לגרסה הפשוטה והעובדת של מה שרציתי – רשימה של פעילויות שאפשר לבחור ממנה.
הקומפוננטה שולחת בקשת API פשוטה לדאטבייס ומחזירה את כל הפעולות הקיימות בו עם הנקודות שלהן.

אחרי שהצלחתי לראות את כל הפעולות רציתי להיות מסוגלת לבחור אחת ולעדכן שביצעתי אותה. בשביל כך הייתי צריכה ליצור דאטבייס חדש. בעוד שמקודם רציתי לאחסן את כל הפעולות האפשריות, עכשיו ממש רציתי ליצור לוג של פעולות יומיות שהשלמתי.
יצרתי דאטבייס חדש בשם Completed Quests, וכתבתי פונקציה שמקבלת את הפעולה שבחרתי ושולחת בקשת עדכון ל-API של Notion.
ככה נראה ה-DB שלי –

אחרי שכבר יצרתי אותו והייתי לי הפונקציה שמעדכנת אותו, יכולתי להשתמש בממשק של Notion עצמו כדי ליצור View יפה, וזה היה ממש נוח.

מה אני אם לא Data drivven?
אחרי שכל הפונקציונליות הבסיסית שלי עבדה הגיע החלק החשוב – סטטיסטיקות!
מה כיף בלעקוב אחרי כל ה-XP שאני מרוויחה כל יום אם אני לא יכולה לראות את הסטטיסטיקות שלי עולות?
הסטטיסטיקה הראשונה שרציתי הייתה מאוד פשוטה – רציתי סיכום XP יומי. כיוון שכבר הכרתי את ה-API, הצלחתי לעשות את החלק הזה מהר בלי עזרת ChatGPT. כתבתי פונקציה שמתשאלת את הדאטבייס Completed Quests שלי, ומסכמת את כל הנקודות היומיות.
עכשיו גם השתכללתי* ועשיתי עיגול יפה עם צבע ולא סתם ריבוע אפור שמציג את הנקודות.

גרסה ראשונית מוכנה לשחרור
עם כל הפונקציונליות הבסיסית שלי עובדת חיברתי את הקומפוננטות לדף אחד ב-Notion. בדקתי שאני יכולה להשתמש בהכל כי זה מבחינתי תנאי ל-MVP, וראיתי כי טוב.
יש לי דף נחמד שמראה את ההיסטוריה של כל ה-Quests הקודמים שלי, עם כפתור שאני יכולה להוסיף בו בקלות את הפעילויות שעשיתי היום וסיכום נקודות יומי.

מבחינת סדר עדיפויות, הדברים שהכי חשובים לי בהמשך זה להוסיף עוד סוגי פעולות ועוד סטטיסטיקות יפות, סיכום של כל הזמנים, טיימליין וכו׳
לאחר מכן אני אנסה לחשוב אם אני יודעת איך לגרום להכל להיראות קצת יותר אסתטי ומעוצב.
לסיכום
זה היה פרויקט סופר כיפי. מסוג הפרויקטים שמזכירים לי למה מגיל 15 בערך הרגשתי שלדעת לתכנת זה כמו להיות קוסמת. כשעלה לי הרעיון להתחיל לעקוב אחרי XP חיפשתי אם יש אפליקציות קיימות שיעשו את מה שאני רוצה, ולא היה שום דבר שקלע לטעמי – וככה זכיתי לעצב לעצמי אפליקציה שעושה בדיוק את מה שרציתי.
ה-Chat GPT לא היה מסוגל לעשות את הכל לבד אבל עזר לי לעבוד הרבה יותר מהר, וככל שאני עובדת איתו יותר שיתופי הפעולה נהיים מוצלחים יותר.
10/10, מומלץ בחום ושתהיה לכולנו שנה סבירה.
היי, מציע לך להכיר את אפליקציית habitica, היא עושה את הדברים האלה פחות או יותר.
הפרונטאנד שלה לא הכי נקי ופשוט, אבל בעזרת חברים (יש פיצ'ר של קבוצות) הצלחתי להבין והייתה תקופה שהייתי ממש גאה בעצמי.
אוקיי זה מגניב אבל ממש