You are on page 1of 29

‫ספר פרוייקט‬

‫‪EyeSight‬‬
‫גלריית תמונות מאובטחת‬

‫מגיש‪ :‬אריאל לוי‬


‫ת‪.‬ז‪325812345 :‬‬
‫למורה‪ :‬היתם אבו יוסף‬
‫תיכון‪ :‬עמל מדעים ואמנויות נהריה‬
‫תוכן עניינים‬

‫תוכן‬
‫מבוא ‪4............................ ................................ ................................ ................................‬‬
‫מדריך למשתמש ‪4............ ................................ ................................ ................................‬‬
‫מטרת המערכת ‪4.......................................... ................................ ................................‬‬
‫יכולות המערכת ‪4.......................................... ................................ ................................‬‬
‫תרשים זרימה – מסכים ‪5................................ ................................ ................................‬‬
‫פירוט על כל מסך ‪6........................................ ................................ ................................‬‬
‫מסך טעינה ‪6............ ................................ ................................ ................................‬‬
‫מסך התחברות והרשמה ‪6........................... ................................ ................................‬‬
‫מסך האלבומים ‪6....................................... ................................ ................................‬‬
‫מסך יצירת אלבום ‪7.................................... ................................ ................................‬‬
‫מסך הפרופיל שלי ‪7................................... ................................ ................................‬‬
‫מסך האלבום ‪7.......................................... ................................ ................................‬‬
‫גרסת אנדרואיד מינימלית ‪7............................. ................................ ................................‬‬
‫מכשירים עליהם נבדקה האפליקציה ‪7............... ................................ ................................‬‬
‫מדריך למתכנת ‪8.............. ................................ ................................ ................................‬‬
‫תכן ‪8.......................... ................................ ................................ ................................‬‬
‫תרשים מחלקות ‪8.......................................... ................................ ................................‬‬
‫‪9.................. ................................ ................................ ................................ Activities‬‬
‫‪9................ ................................ ................................ ................................ Loading‬‬
‫‪9......................................... ................................ ................................ MainActivity‬‬
‫‪9........... ................................ ................................ ................................ MainMenu‬‬
‫‪10........................... ................................ ................................ CreateAlbumActivity‬‬
‫‪10............................. ................................ ................................ ViewProfileActivity‬‬
‫‪10..................................... ................................ ................................ AlbumActivity‬‬
‫‪10............. ................................ ................................ ................................ Register‬‬
‫‪10...................................... ................................ ................................ PhotoActivity‬‬
‫‪11................. ................................ ................................ ................................ Services‬‬
‫‪11................. ................................ ................................ ................................ Threads‬‬
‫‪11................. ................................ ................................ ................................ Services‬‬
‫‪11.............. ................................ ................................ ................................ Resources‬‬
‫‪11.............. ................................ ................................ ................................ Layouts‬‬
‫‪12............... ................................ ................................ ................................ Menus‬‬
‫‪12.......................................... ................................ ................................ Drawables‬‬

‫‪2‬‬
‫סכמת ‪12....................................... ................................ ................................ Database‬‬
‫רשומת האלבומים – ‪12................... ................................ ................................ Albums‬‬
‫רשומת המשתמשים – ‪12................... ................................ ................................ Users‬‬
‫רשומת האלבומים של משתמש ‪13................ ................................ ................................‬‬
‫נספחים ‪14...................... ................................ ................................ ................................‬‬

‫‪3‬‬
‫מבוא‬
‫האפליקציה ‪ EyeSight‬היא אפליקציית גלריה מאובטחת‪ .‬האפליקציה מאפשרת למשתמשים‬
‫לשמור תמונות באלבומים תחת שם משתמש וסיסמה‪ ,‬כך שהתמונות נשארות מאובטחות‪.‬‬
‫ניהול התמונות והמשתמשים נעשה באמצעות ‪.Firebase‬‬

‫בחרתי בפרוייקט זה מכיוון שרציתי לעבוד עם תמונות ב‪ firebase‬ובנוסף רציתי פרוייקט‬


‫שיאפשר לי להעשיר את הידע בתחום ויאפשר הרחבות עתידיות‪.‬‬

‫מדריך למשתמש‬
‫מטרת המערכת‬
‫המערכת מאפשרת למשתמש לארגן תמונות באלבומים בצורה מאובטחת ע"י יצירת‬
‫משתמש‪ .‬המערכת מאפשרת רישום והתחברות‪ ,‬יצירת אלבומים ודפדוף באלבומי התמונות‪.‬‬
‫הוספת התמונות מתבצעת מתוך הגלריה של הפלאפון או ישירות מתוך המצלמה‪ .‬בנוסף‪,‬‬
‫המערכת מאפשרת פתיחת תמונות והצגתן‪.‬‬

‫יכולות המערכת‬
‫הרשמה‬ ‫•‬
‫התחברות‬ ‫•‬
‫יצירת אלבום‬ ‫•‬
‫הוספת תמונה לאלבום מהגלריה‬ ‫•‬
‫צילום תמונה ישירות לאלבום‬ ‫•‬
‫הצגת תמונה מאלבום‬ ‫•‬
‫הצגת פרופיל המשתמש‬ ‫•‬
‫שינוי סיסמה‬ ‫•‬

‫‪4‬‬
‫תפעול המערכת‬
‫תרשים זרימה – מסכים‬

‫‪5‬‬
‫פירוט על כל מסך‬
‫מסך טעינה‬
‫מסך הטעינה הוא המסך הראשון שהמשתמ רואה שבמהלכו‬
‫האפליקצייה נטענת‪.‬‬

‫מסך התחברות והרשמה‬


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

‫מסך האלבומים‬
‫זהו מסך הבית‪ .‬במסך זה ניתן לראות‬
‫את כל האלבומים שנוצרו ע"י‬
‫המשתמש‪.‬‬
‫בצד שמאל למעלה מופיע כפתור‬
‫התפריט‪ ,‬דרכו ניתן להגיע למסך יצירת‬
‫האלבום ולמסך הפרופיל שלי‪.‬‬

‫‪6‬‬
‫מסך יצירת אלבום‬
‫דרך מסך זה המשתמש יוכל ליצור אלבום חדש‪.‬‬

‫מסך הפרופיל שלי‬


‫במסך זה המשתמש יוכל לראות את שם המשתמש שלו ואת‬
‫רשימת האלבומים שבבעלותו‪.‬‬
‫בנוסף‪ ,‬מסך זה מאפשר למשתמש להחליף סיסמה‪.‬‬

‫מסך האלבום‬
‫למסך זה מגיעים כאשר לוחצים על אלבום מסויים במסך‬
‫האלבומים‪.‬‬
‫מסך זה מכיל את כל התמונות שבאלבום ומאפשר להוסיף תמונות‬
‫מהגלרייה ומהמצלמה בעזרת כפתורים שנמצאים בתחתיתו‪.‬‬
‫בנוסף‪ ,‬לחיצה על תמונה תציג אותה בגדול‪.‬‬

‫גרסת אנדרואיד מינימלית‬


‫‪Android 11, API 30‬‬

‫מכשירים עליהם נבדקה האפליקציה‬


‫‪Nexus 5X‬‬

‫‪7‬‬
‫מדריך למתכנת‬
‫אתגרים מרכזיים‬
‫האתגר המרכזי בעבודה שלי עם הפרוייקט היה העבודה עם ה ‪ Raltim Database‬של‬
‫‪ .Firebase‬הסיבה לכך היא שכאשר ניגשים ל‪ Database‬מהסוג הזה‪ ,‬צריכים לעבוד עם‬
‫‪-Thread‬ים מה שמקשה על התכנון ועל הביצוע של הפרוייקט‪.‬‬

‫תכן‬
‫תרשים מחלקות‬

‫‪8‬‬
‫‪Activities‬‬
‫בפרוייקט יש ‪.Activities 8‬‬

‫‪LoadingActivity‬‬

‫ה – ‪ Activity‬הזו שייכת למסך הטעינה‪ .‬כאן האפליקציה נטענת וזו‬


‫ה – ‪ Activity‬הראשונה שהמשתמש רואה‪.‬‬

‫‪MainActivity‬‬
‫זו ה – ‪ Activity‬ששייכת למסך‬
‫ההתחברות וההרשמה‪ .‬מממשת את‬
‫אופציית ההתחברות ואת דיאלוג‬
‫ההרשמה‪.‬‬

‫‪MainMenu‬‬
‫זו ה – ‪ Activity‬ששייכת למסך‬
‫האלבומים‪ .‬מממשת את אופציית‬
‫הצפייה באלבומים וכמו כן את התפריט‬
‫הראשי שדרכו ניתן להגיע לפרופיל‬
‫וליצור אלבום חדש‪.‬‬

‫‪9‬‬
‫‪CreateAlbumActivity‬‬
‫זו ה – ‪ Activity‬ששייכת למסך יצירת האלבום‪ .‬מממשת את‬
‫אופציית יצירתו של אלבום חדש‪.‬‬

‫‪ViewProfileActivity‬‬
‫זו ה – ‪ Activity‬ששייכת למסך הפרופיל שלי‪ .‬מממשת את אופציית‬
‫הצפייה בפרופיל ואת אופציית שינוי הסיסמה‪.‬‬

‫‪AlbumActivity‬‬
‫זו ה – ‪ Activity‬ששייכת למסך האלבום‪ .‬מממשת את אופציית‬
‫הצפייה בתמונות שבאלבום ואת הוספת התמונה מהגלריה וישירות‬
‫מהמצלמה‪.‬‬

‫‪Register‬‬
‫ה – ‪ Activity‬הזו נפתחת כדיאלוג כאשר המשתמש לוחץ על קישור ההרשמה במסך‬
‫ההתחברות וההרשמה‪.‬‬

‫‪PhotoActivity‬‬
‫ה – ‪ Activity‬הזו נפתחת כדיאלוג כאשר המשתמש לוחץ על תמונה באלבום מסויים במסך‬
‫האלבום‪.‬‬

‫‪10‬‬
Services
‫ – סרוויס שנועד לאפשר למתכנת להעלות התראות בעיצוב שהוא‬Notification Service
.NotifyService ‫ ממומשת במחלקה‬.‫בוחר‬

Threads
-‫ רצה ב‬Database‫ בכל פעם שמנסים לשלוף מידע השמור ב‬FirebaseManager ‫במחלקת‬
‫ אנו מפעילים את‬,‫ על מנת לקבל את המידע ששלפנו‬.OnDataChange ‫ הפונקציה‬Thread
.‫ אשר מקבלת את המידע כפרמטר‬DataIsLoaded ‫הפונקציה‬

Services
‫ יש שימוש בכלי זה על‬BroadcastReciever -‫ היורשת מ‬NotifyServiceReciever ‫במחלקה‬
.Notification Service ‫מנת לבטל התראות שנוצרו עם‬

Resources
Layouts
.‫ המתאימות להם‬Activity – ‫ וה‬xml ‫להלן קבצי ה‬

‫ המתאים לו‬Activity - ‫ה‬ xml - ‫קובץ ה‬


AlbumActivity activity_album.xml
CreateAlbumActivity activity_create_album2.xml
LoadingActivity activity_loading.xml
MainActivity activity_main.xml
MainMenu activity_main_menu.xml
- ‫נפתח בעזרת דיאלוג‬ - activity_photo.xml
- ‫נפתח בעזרת דיאלוג‬ - activity_register.xml
ViewProfileActivity activity_view_profile.xml
‫תבנית עיצוב לאלבום ברשת האלבומים‬ album_grid.xml
‫תבנית עיצוב לתמונה ברשת התמונות‬ photo_grid.xml

11
‫‪Menus‬‬
‫‪ – main_menu.xml‬זהו התפריט הראשי שנפתח ב‪.MainMenu‬‬

‫‪Drawables‬‬
‫‪ – failed.png‬זוהי התמונה שנפתחת במידה והייתה תקלה בהורדת התמונות מה‪-‬‬
‫‪.Firebase‬‬

‫סכמת ‪Database‬‬
‫מבנה הנתונים ב‪ Firebase‬מעט מיוחד מאחר והוא לא בנוי בטבלאות אלא בעץ‪ .‬העץ הכללי‬
‫נראה כך‪:‬‬

‫רשומת האלבומים – ‪Albums‬‬


‫בחלק הזה שמורים האלבומים תחת רשומה שבה מצויין‬
‫ה‪ id‬של האלבום‪ .‬בתוכה ישנה רשומה ‪ Photos‬שמכילה‬
‫רשימת ‪-String‬ים המייצגות את ה‪ Bitmaps‬של התמונות‬
‫שבאלבום‪.‬‬

‫רשומת המשתמשים – ‪Users‬‬


‫בחלק הזה שמורים המשתמשים תחת‬
‫רשומה שבה מצויין ה ‪Username‬‬
‫שלהם‪ .‬בתוכה שמור אובייקט מסוג‬
‫‪ User‬שלו שדות ‪ username‬ו‬
‫‪.password‬‬

‫‪12‬‬
‫רשומת האלבומים של משתמש‬
‫בחלק הזה שמורים האלבומים‬
‫שברשותו של משתמש‪ .‬זוהי‬
‫רשומה המקשרת בין שתי הקודמות‪.‬‬
‫תחת רשומה שבה מצויין ה ‪ Username‬שלהם שמורה מחרוזת המייצגת את האלבומים של‬
‫אותו המשתמש בפורמט ‪ ID%NAME‬כך שהם מופרדים בפסיקים‪.‬‬

‫‪13‬‬
‫נספחים‬

‫‪14‬‬
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

You might also like