שבוע 14: תוכנית למידה

מאחר שככה"נ לא אספיק לכתוב את החומרים עבור כל הדברים שאני רוצה להספיק (יש הרבה מהם, לשמחתנו)
ומכיוון שאני לא מעוניין לדחות את הקורס עוד יותר ו/או להחליט על זה שאנחנו מורידים חומר,
זו מפת הלמידה שלכם לשבועיים הקרובים:

מפת למידה

  1. שאילתות JOIN – צפויה לצאת מחברת ביומיים הקרובים.
  2. תתי־שאילתות (SUBQUERIES) – תצא מחברת עד מוצ"ש.
  3. שאילתות CRUD – כדאי ללמוד עצמאית. מומלץ להבין מה המונח אומר מכאן, ואז ללמוד על שאילתות ליצירת טבלאות והשפעה על שורות: CREATE, REMOVE, UPDATE, DELETE ו־INSERT מכאן, שיעורים 13–16 ו־18. לא מדובר על נושאים סבוכים אלא בעיקר טכניים, ואתם בקלות יכולים ללמוד אותם בעצמכם בלי להתקל בקשיים רציניים.
  4. איך מתממשקים למסדי נתונים באמצעות פייתון? קראו על המודול sqlite3 בתור התחלה, וודאו שאתם מצליחים להחזיר נתונים בעזרת שאילתות שהרצתם. ודאו שאתם מבינים את רעיון הסמן, ושאתם יכולים להחזיר תוצאה אחת או יותר.
  5. ללמוד על ORM־ים – מה זה ORM? בחרו ונסו את Peewee (קל) או את SQLAlchemy (נפוץ ומלא בפיצ’רים). נסו להתחבר בעזרתם למסד הסרטים ולמצוא כמה שחקנים שיחקו בסרט שקיבל הכי הרבה הצבעות בשנת 2018.

שידורים חיים

אתן לכולם קצת זמן להתאפס על כל החומרים, ואעלה ביום שלישי (1/12) לשידור־חי ראשון לשבוע 14.
נקבע שידורים נוספים לפי הצורך.

מטרות השבוע

  1. לשלוט בביצוע JOIN, SUBQUERIES.
  2. להבין את המונח CRUD בהקשרי תוכנה, ולדעת איך ליצור/לערוך טבלאות ומסדי נתונים.
  3. לדעת לבנות אתר קצה לקצה, עם כל הרכיבים, כולל מסד נתונים.

תרגילים

  1. בחוברות ה־JOIN וה־Subqueries יופיעו תרגילים להגשה.
  2. חשבו על אפליקציה משלכם, או על הפרויקט שלכם, ואיך לשלב בו מסד נתונים. תוכלו גם להחליט לבנות פרויקט אחר, נוסף, לתיק העבודות שלכם. בנו את הפרויקט עם מסד נתונים והעלו ל־Heroku.

מי שלא מעוניין לחשוב על פרויקט משלו, יכול לבחור את אחד מהפרויקטים לדוגמה שמופיעים מטה.
אפשר להדיין על רעיונות לפרויקטים בפורום או בקבוצת הטלגרם.

תאריך ההגשה הוא עד יום חמישי בעוד שבועיים, כלומר 10/12.


פרויקטים (מכובדים) לדוגמה

אתר חידות

המשתמש מתחבר לאתר בעזרת שם משתמש וסיסמה, ומקבל רשימת חידות.
לכל חידה שווי בנקודות, לפי רמת הקושי שלה.
המשתמש יכול להיכנס לעמוד של החידה, שם יופיע לו ההסבר על החידה, שוויה בנקודות ותיבת טקסט.
אם הוא יקליד בתיבת הטקסט את התשובה הנכונה לחידה, הוא יזכה בנקודות.

באתר תהיה “טבלת מנצחים” שתראה את האנשים שצברו הכי הרבה נקודות.

ארון הקוקטיילים

צרו טבלה של בקבוקי אלכוהול פופולריים והמחיר שלהם.
צרו טבלה נוספת של קוקטיילים פופולריים.

אפשרו למשתמשים להתחבר למערכת ולהוסיף/להוריד מהארון שלהם משקאות.
כשילחצו על כפתור ייעודי, הם יוכלו לבדוק אילו קוקטיילים הם יכולים להכין בעזרת המשקאות שבארון המשקאות שלהם.

בונוס: הציגו גם את הבקבוקים שהכי משתלם להם לקנות (מחיר נמוך / יאפשר להכין הרבה קוקטיילים).

אפשר לעשות את הפרויקט מן הסתם גם עם מזון, או כל דבר אחר שנראה לכם מתאים.


אני ממליץ, עבור מי שמעוניין, להרחיב על pandas.
זה מתקשר לשבוע שלנו מאוד וזה אחלה מודול להתעסקות עם נתונים.

13 לייקים

היי ים,

יש לך המלצה לאתר טוב שמלמד pandas?

שאלה בנוגע לפרוייקט. האם זה בסדר לבנות api שמאפשר את אותן הפעולות, במקום אתר?

אם קובי בונה api ברמה גבוהה , אני מתנדב לבנות לו את הפרונט …

לייק 1

נראים פרויקטים נהדרים !
רק שאלה להבהרה - בפרויקט האלכוהול , אמורים לאפשר לחנות להוסיף \ להוריד משקאות שמהם המשתמשים בוחרים ? או שלוקחים אותם מקובץ , api וכדומה ?
(כנ"ל לגבי רשימת החידות)

לייק 1

אפשר בנוסף, לא במקום :slight_smile:

לא בשלוף, אחפש ואשלח בהמשך השבועיים

לייק 1

בפרויקט אנו ניצור מסד נתונים שהוא סטטי והאתר יתן אפשרות לגשת אליו
או שמא זה צריך להיות טבלאות שגם באינטראקציה עם האתר אמורות להתעדכן
במסד עצמו?

המידע במסד יתעדכן באינטרקציה עם האתר

לייק 1

מסד הנתונים צריך להיות SQLITE?

לא. עקרונית ככה"נ הכי נוח יהיה להשתמש באחד של Heroku, ואז הייתי בוחר PostgreSQL

אנחנו נלמד גם על אבטחה של מסד הנתונים?

סרטון הסברה על PostgreSQL

לייק 1

זה לא ב־scope, לצערי