תזמון משימה-UX/UI
-
אני צריך לבנות ממשק שהמשתמש יוכל לתזמן משימה מסוימת שירוץ אוטומטי בזמן אחר
צריך שזה יהיה כמה שיותר גמיש
לדוגמה- כל 20 דקות
- כל יום בשעה או בשעות מסוימות
- כל שבוע ביום מסוים או בימים מסוימים בשעה מסוימת
- כל חודש ביום מסויים או בימים מסוימים בשעה מסויימת
- כל שנה בתאריכים מסוימים
- (יום מסוים כמה פעמים ביום - פחות הכרחי)
כמובן שאת כל זה צריך לאחסן בDB ולשלוף את המשימות בזמן המתאים
השאלה שלי איך אני עושה את זה כמה שיותר אינטיאוטיבי למשתמש שיוכל להגדיר בקלות מה הוא רוצה?
אשמח לרעיונות או לקישור לאתר שמימש את זה בצורה יפה או לספרייה (vue/js) שעושה את זההנה דוגמה פחות מוצלחת שראיתי
-
יש פה לפני העיצוב והשימושיות בעיה של אפיון.
במסך שהראית יש אפשרויות אחרות לגמרי מהמקובל, למשל אפשר לעשות שבשעה 17 כל יום, המשימה תתבצע בכל דקה.
זה לא הגיוני בעיני לתזמן משימות קלאסי, וגם אם זה פיצ'ר נחמד אתה מסתכן לאבד את השימושיות אם האפשרויות הם בלי סוף.
המקובל לזכורני הוא שני מסלולים:
א. כל פרק זמן, שני פרמטרים בלבד: סוג מרחק (שניה/דקה/שעה/יום/שבוע/חודש/שנה), יחידות (1+)
ב. כל זמן מסויים, פרמטר בודד של סוג מועד: שעתי - זה פרמטר של זמן מלא כולל מילי שניות מצידי, שבועי (1-7), חודשי (1-28), שנתי - (1-28 ליום בחודש ו1-12 לחודש).
בשני המקרים אפשר לתת זמן התחלה, שבמקרה השני לא כפוף לכללים. במקרה של הפעלה חד פעמית אפשר לאפשר רק בחירה של תאריך התחלה (גם זה אל תעשה אם לא שברור לך שהמשתמש יצטרך את זה!).את הUX למה שאמרתי מאוד קל להחיל, כי אתה מראה כל פעם רק שני אפשרויות:
א. מסך א' שואל את המשתמש איזה סוג מסלול הוא רוצה, האם חשוב לו מתי (למשל כל יום שישי בדוקא) או חשוב לו תדירות (שיהיה X מרחק בין הפעלה לאחרת).
ב. אחרי בחירת המסך הקודם יש לכל היותר שני בחירות.נ.ב. 1) חודש ושנה באפשרות של מרחק איננה במובן המקובל של חודש ושנה (שהרי זה לא מרחק אלא מועד) אלא מספר ימים של 30 או 365 בהתאמה.
נ.ב 2) יש עוד המון פרמטרים אפשריים ויש מקרי קצה שיותר נח להוסיף עוד אפשרויות רחוקות. זה אחד מאוייבי הUX - ה"אויבער חוכם" של המאפיין.
אם אתה רוצה להיצמד לאפשרויות המעניינות של המסך שהראית (שלדעתי לא נובע מתכנון אלא מאופן המימוש)
אז צריך ללמוד מה הסיפור של צורך המשתמש, כדי לדעת איזה שאלות לשאול אותו לפני הצגת האפשרויות הרלוונטיות. -
יש את הספריות האלו
https://karoletrych.github.io/vue-cron-editor/
https://github.com/shawnscoding/react-schedule-jobוהנה כיוון לממשק - קרדיט לclaude,