top of page

application design document

להורדת מסמך תוכן

class diagram

1

1

1

1

1

1

1

1

data manager

מחלקה זו אחראית לתחזוק ה-database. בעזרתה מכניסים מידע, מעדכנים ומוחקים מה-database. כל המחלקות ב-Domain אשר משתמשות ב-database מחזיקות instance של מחלקה זו על מנת לגשת ל-database.

1

1

mongo connection

מחלקה זו אחראית לחיבור המערכת ל-mongo שמשמש כ-database של המערכת. במחלקה זו ניגשים ל-db - מכניסים, מעדכנים ומוחקים מידע. המחלקה DataManager מחזיקה instance של מחלקה זו על מנת לגשת ל-database.

dal
domain

1

1

game

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

0..n

digital jukebox

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

place

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

0..n

user

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

owner

מחלקה שיורשת מ-User. מתארת בעל מקום, שיכול לעשות גם את הפעולות של משתמש וגם לקרוא לפעולות של המקום.

register

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

extends

1

1

0..n

1

1

0..n

1

1

1

1

filtering
filter

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

filter frame

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

0..n

1

spotify filter frame

מחלקה זו יורשת מ- FilterFrame, הפונקציונאליות של מחלקה זו כי אתחול ותחזוק תנאים של מסגרת שמתאימה ל-Spotify.

extends

list condition

מחלקה שמתארת תנאי מסוג רשימה, כלומר התנאי הוא בדיקת גודל החיתוך בין רשימות.

range condition

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

0..n

1

1

0..n

extends

condition

מחלקה שמתארת תנאי למסגרות פילטור.

1

1

music
music provider

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

spotify integration

מחלקה זו מממשת את הממשק music_provider. במחלקה זו יש מימוש לכל הפונקציות שמתוארות לעיל ובהן יש בקשות API ל-Spotify. מחלקה זו מחזיקה תור שמייצג את רשימת ההשמעה.

1

1

1

Recommendation System

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

collaborative filetring model

מחלקה זו יורשת מ-CalculationModel והיא משתמשת בספריה של collaborative filtering על מנת לחשב את המסגרת פילטור המומלצת.

average model

מחלקה זו יורשת מ-CalculationModel והיא מתארת מודל של חישוב מסגרות פילטור על ידי ממוצע נתוני הצעות והצבעות של כל משתמש.

calculation model

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

extends

1

1

1

1

recommendation
bridge

מחלקה זו מחזיקה את ה-API של כל הפונקציונאליות של המערכת. הלקוח במערכת מחזיק את מחלקה זו על מנת לקרוא לפונקציות שלה. במימוש הפונקציות ישנן בקשות http אשר נשלחות לשרת על מנת להפעיל את הפונקציונאליות הנדרשת.

+ screens
screen
screen
screen

מחלקות אלה מייצגות את המסכים אשר מציגים את ממשק המשתמש

client
bottom of page