כללי:
המטרה היא להקים מערכת שתוכל לעבוד כמערכת עם בסיס נתונים לכל משתמש ו\או בסיס נתונים
בצורה מודולרית ושיהיה אפשר להקים עליה מודולים שונים שיעבדו יחד (הפקת מסמכים, דוחות, ניהול מוצרים ומלאי, ניהול הוצאות, ארכיון דיגיטלי, CRM, מערכת תמיכה ללקוחות, מודול asterix ועוד) כשהמודולים יכולים לעבוד בצורה עצמאית או בצורה משולבת (אחד עם השני)
מודול API כללי ישמש כ"בית" עבור API עצמאי של כל מודול ומודול CRON כללי ישמש כ"בית" עבור CRON של כל מודול
הרעיון הוא להקים מערכת מודולרית בשפה משותפת רחבה שיהיה אפשר ליצור קהילה רחבה סביב המערכת והמערכת צריכה להיות בנויה בצורה כזו שתאפשר לקהילה לעבוד איתה.
מבנה המערכת הכללי:
"שלד" מודולרי ככל האפשר ברמת ה-UI, ברמת השדות (כפי שמפורט ברמת ההרשאות) כולל אפשרות להגדרת שפות זמינות, שפת ברירת מחדל, מטבע ברירת מחדל, מטבעות זמינים, מטבע ברירת מחדל, תבניות זמינות ותבניות ברירת מחדל עבור כל רמה (מנהל על \ מנהל מערכת \ ולקוח)
בכל אזור יש אפשרות להתאים ולערוך שדות ולהחליף סיסמה (יש שדות חובה של מייל וסיסמה נניח)
רמת הרשאות:
מנהל על: כולל אפשרות להקים מנהלי מערכות והגדרת גישה ברמת המודולים (איזה מודולים פעילים ובמודולים מסויימים הגבלות מספריות) האם הוא יכול לראות \ לנהל מנהלי על אחרים - את כולם, והאם הוא יכול לפתוח מנהלי על "שלו" שיכולים להקים מערכות שלהם אבל לא לראות מנהלי על אחרים ו\או מנהלים או מערכות שלהם
מנהל מערכת: מנהל עסקים, יכול להוסיף "עובדים" למערכת שלו ולהגביל את ההרשאות שלהם במערכת שלו
לקוח: יכול לצפות למשל בחשבוניות, לשלוח בקשה לתמיכה \ ליד ל-CRM, ולהזמין מוצרים מהמלאי של העסק (בהתאם להרשאות מנהל המערכת)
קבוצות: אפשרות לסדר "קבוצות הרשאות" עבור מנהלי מערכת ולקוחות כדי לתת "סטים" של שדות והרשאות כקבוצה.
הערות להכניס:
ברמת מנהל העסק להכניס גם קוד אימות ומס' מזהה (לטובת API וגישה מרחוק)
ניהול Dashboard ברמות השונות (וידג'טים?)
פורטל לקוחות \ אזור לקוחות
גיבויים: גיבוי נתונים לכל מודול וגיבוי קבצים לכל מודול- ברמת השלד
בגלל שרמת מנהל על \ SaaS \ Hosted לא נמצאת תמיד בשימוש צריך שלמנהל המערכת יהיה האפשרויות לשנות את כל ההגדרות אלא אם כן זה בשליטה של מנהל על והוא מגדיר שלא לאפשר את זה (כמו למשל שינוי עיצוב או שינוי URL)
נתחיל כאנגלית - Bootstrap
נושאים שונים לחשיבה:
גיבויים לכל מודול ברמת "מנהל מערכת"
API (תמיכה ב-SOAP + REST)
זרימת מידע תוך תאימות לתקן PCI ("גשר" ל-DB המאפשר הצפנה)
מבנה התפריטים (נתחיל עם תפריט עליון ותפריט צד "של הקשרים") - להתייעץ עם אלכסיי, ירון, ואניה
קווים מנחים - מס' פלטפורמות, ריבוי תפריטים, הרשאות תפריטים לפי משתמש, responsive
אפשרויות בליבת המערכת:
ממשקים - UI:
ניהול "על"
ממשק ניהול \ מערכת
ממשק לקוחות
סקירת אפשרויות כללית:
מנהלי "על":
אפשרות להגדרת שדות מותאמים והרשאות שיתאימו לאפשרות העבודה לפי הפרוט הכללי
קבוצת מנהלי מערכת והגדרת מנהלי מערכת כולל התאמת שדות והרשאות
תבניות עיצוב: הגדרת תבניות ברירת מחדל לפי שפה עבור מנהלי "על"
ניהול מטבעות כללי: סימני מטבעות, מטבע ברירת מחדל, מטבעות זמינים, שמות ותקן בינ"ל ואפשרות לעדכון
הגדרת משלוח מייל מהמערכת ברמת מנהל על ומנהל מערכת
שפות: קבצי שפה לליבה + לכל מודול + Inlinte translation (במידה ורלוונטי)
תחזוקה: לוגים, ניקוי CACHE, אינדוקס?, phpinfo, תיקות טבלאות ואופטימיזציה לבסיס הנתונים,
עזרה \ קישורים לקהילה \ עדכונים מהקהילה \ בדיקת גרסת "ליבה" וגרסת מודולים
notifications למנהל "על"
קומפילציה?
Web service management - Users and roles
הגדרות יבוא ויצוא נתונים (מגיבוי?)
Transactional Emails
Custom Variables
Module management and Installation center
ניהול "מערכות" (מנהלי מערכת)
מנהלי מערכת:
ניהול מטבעות, סימני מטבעות, מטבע ברירת מחדל, מטבעות זמינים, שמות ותקן בינ"ל ואפשרות לעדכון
הגדרת משלוח מייל מהמערכת ברמת מנהל על ומנהל מערכת
קבוצות לקוחות ואפשרות לשדות מותאמים, הגדרת שדות חובה וכדומה...
תבניות עיצוב: הגדרת תבניות ברירת מחדל לפי שפה עבור מנהלי מערכת, וקבוצות לקוחות, כולל אפשרות ל"יוצאי דופן"
אבטחה: הגדרת נסיונות התחברות \ חסימת IP \ קפצ'ה במקומות שונים, גישת API מוגבלת לכתובות IP לכל משתמש, הגדרת URLSe
תחזוקה: לוגים, ניקוי CACHE, אינדוקס?, phpinfo, תיקות טבלאות ואופטימיזציה לבסיס הנתונים,
עזרה \ קישורים לקהילה \ עדכונים מהקהילה \ בדיקת גרסת "ליבה" וגרסת מודולים
notifications
הגדרת ארצות וארץ ברירת מחדל, הגדרת ארצות הדורשות STATE, הגדרת Timezone וארץ המערכת, הגדרת היום הראשון בשבוע וימי סופ"ש
וידג'טים
הגדרות ללקוחות + בממשק הלקוח במידה ומאופשר זאת:
הגדרת שפת ברירת מחדל
הגדרת מטבע ברירת מחדל
הגדרת אמצעי תשלום ברירת מחדל
האם לחשב מס (תושב חוץ)
האם לשלוח הודעות על איחור בתשלומים
קבוצת לקוח
לקוחות:
עדכון פרטים ופרטי חברה
עדכון אנשי קשר
מיילים שנשלחו ללקוח מהמערכת
שינוי סיסמה
נושאים לבדיקה:
מודול לקוחות \ משתמשי קצה (כולל חברות עם מס' אנשי קשר בכל חברה עם אפשרויות גישה שונות בצד הלקוח) - לבצע כמודול "ליבה"
איך אפשר שעבודה עם קבצי תרגום "תדפוק" את המערכת
הגדרת URL ל-SSL במידה והוא בשימוש
מבנה בסיס נתונים - כללי + למנהלי מערכת ומשתמשים (מבחינת ביצועים ונפח)
עץ מנהלים
+מנהל חוד
+עץ חברות
+חברה מעפנה
+משתמש א
+חברה אחרת
+משתמש ב
מודולים בסיסיים לגרסה 1:
מודול מסמכים ותנועות יומן:
מודול הוצאות וארכיון דיגיטלי:
מודול יתרות פתיחה:
מודול פריטים וניהול מלאי:
מודול ספקים:
מודול אמצעי תשלום ואמצעי תשלום ספציפיים (ניהול כללי של אמצעי התשלום ואמצעי תשלום ספציפיים):
מודול התאמות בנקים + יבוא:
מודול התאמת חשבונות:
מודול דוחות + דוחות ספציפיים למס ואפשרות לקשירת פעולה בסיום דו"ח:
תחומי אחריות:
ארי: עבודה מול גורמים חיצוניים, וידוא התאמות המערכת לחוקי המס, אפיון
שלום: אפיון, גיוס מפתחים, סיוע בהקמה וניהול אתר קהילה
דן: בסיס המערכת (מבנה כללי והגדרות, מבנה DB)
אדם: מודול מסמכים, הנהלת חשבונות
ליבנה: UI ו-API, מבנה DB, קידוד HTML5, jQuery, אבטחת מידע
נושאים לדיון:
טבלאות שונות עבור מנהלים וגישה דרך API או תחת אותה הטבלא
טבלאות לניהול חשבונות \ מסמכים
טבלאות לניהול תשלומים
מוצרים, שירותים וקטגוריות כבסיס או כמודול
רמת ריסיילרים - WL?
מבנה כללי:
עבודה על בסיס YII , MVC ומודולים
התבססות על המודולים הבאים:
http://code.google.com/p/yii-user-management
http://www.yiiframework.com/extension/yiishop
http://www.yiiframework.com/extension/tcpdf
מבנה מערכת:
-בית תוכנה (לשרות SaaS)
-מנהל (מס' בתי עסק)
-חברה 1
-חברה 2
-חברה 3
מבנה שדות דינאמי ב-EAV:
(מנהלים, לקוחות, מוצרים \ מלאי, מסמכים) + קבוצות שדות גם להרשאות (קבוצת מנהלים, קבוצת לקוחות, קבוצות מוצרים) תוך הגדרת סוגי השדות בנפרד לכל לקבוצה
חשיבה על מבנה לפי ה-attributes של מג'נטו
ריבוי שפות:
ניתן להגדיר שפת ממשק במערכת הניהול או בממשק של הלקוחות, כשמחליפים שפה זה משנה גם את התבנית בהתאם (במידה ומוגדרת תבנית שמשוייכת לשפה - למשל כשבוחרים עברית זה לוקח את התבנית של ה-RTL)
תבניות שונות:
קיימות 2 סוגים של תבניות, תבנית לממשק הניהול ותבנית לממשק הלקוחות (איפה שהלקוחות נכנסים ויכולים לצפות בחשבוניות שלהם, לשלם, וכדומה...) וניתן בהגדרות המשתמש להגדיר באיזה תבנית להשתמש גם ברמת המשתמש וגם ברמת ממשק הניהול.
ריבוי מטבעות:
תמיכה במטבעות שונים כולל הגדרת מטבע ראשי ואפשרות סנכרון נתוני מטבע ידני או ב-CRON של המערכת
תבניות דואר שונות בשפות שונות (איפוס סיסמה, לקוח חדש, תזכורת על חשבונית, וכדומה...):
אפשרות להגדיר תבניות דואר לכל שפה עבור פעולות שונות במערכת, תבניות ברירת המחדל ישמרו כקבצי HTML תחת תיקיית השפה ויש אפשרות לנהל את תבניות הדואר דרך ממשק הניהול לכל שפה
תבניות להפקת מסמכים + בשפות שונות
הפקת מסמכים בשפת המערכת או באנגלית (במידה והשפה שונה מאנגלית)
דגש ליצירת קבצי PDF בעברית (RTL) הכוללים חתימה אלקטרונית. או באנגלית (LTR)
אשף ללקוח חדש + מילוי נתונים בהתאם למדינה שהוא בוחר + הגדרות חברה שיהיה שונה לישראל.
בסיס נתונים מרכזי + אפשרות לבסיסי נתונים שונים
מנהל למערכת וניהול מודולים וחבילות לפי מודולים
התאמות לעולם - חישוב הכנסות לפי חשבוניות או לפי קבלה (לפעמים זה תלוי בסוג העסק בארץ + אפשרות לזמינות מסמכים לפי סוג העסק + בעולם זה יהיה חלקי)
הוספת הגדרות למודול לאזור ההגדרות
הכנה לחוקי תמחיר - מבצעים שונים הכוללים הנחה בסכום ספציפי או אחוזים או על המיסוי או על עלות השילוח על מוצרים שונים בכמויות שונות לקבוצות לקוחות שונים לפי תאריכים, קטגוריות \ מחסנים, מקטים, קבוצות מוצרים, שיטות תשלום או משלוח שונות, משתמשים, קבוצות משתמשים) כולל אפשרות לשילוב תנאים (בדומה למנג'נטו)
הכנה לחוקי שילוח - מחירים שונים הכוללים הנחה בסכום ספציפי או אחוזים או חינם על עלות השילוח שחל על מוצרים שונים בכמויות שונות לקבוצות לקוחות שונים לפי תאריכים, קטגוריות \ מחסנים, מקטים, קבוצות מוצרים, משתמשים, שיטות תשלום או משלוח שונות, קבוצות משתמשים) כולל אפשרות לשילוב תנאים (בדומה למנג'נטו)
מערכת Frontend מודולרית גם ברמת מערכת החשבוניות (הרשמה בלי קשר) ואפשרות להפעלת מודולים כמו עבור ניהול פרויקטים וכדומה
עדכון נתונים ממקום אחד (לטובת נושא ההצפנה האופציונאלית)
מבנה הרשאות ואיפשור מודולים ללקוחות
UI / UX:
זרימה שוטפת גם עם מקלדת, לחיצה על Enter מובילה למקום הנכון
עבודה עם AJAX במסמכים \ לקוחות \ מוצרים
הודעות שנסגרות ב-AJAX כהסברים וההערות
הזזת שורות בגרירה ביצירת מסמכים
הוספת פריטים בפלוס ומינוס במסמכים ב-AJAX
עבודה עם לייטבוקסים בהוספת לקוח ופריטים במסמכים ואיפה שצריך מבחינת UI
תלוי בעיצוב שיבחר, אבל במידה ואנחנו הולכים על כיווני AJAXי אז יש צורך לפתח פה משהו דינאמי גם ברמת הלקוח. צד לקוח ידבר עם השרת בAPI. צריך להחליט REST OR SOAP.
מודול מסמכים (הסבר כללי ואופן פעולה):
במערכת קיימת האפשרות לייצר את המסמכים הבאים
תרשימי זרימה למסמכים:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול לקוחות:
ממשק ללקוחות שיכולים לראות בו את המסמכים שלהם בשפה שלהם או באנגלית + לראות את הממשק בשפה שלהם או באנגלית, לאשר הצעות מחיר, להגיש פניות לתמיכה, לשלם על חשבוניות פתוחות, וכדומה...
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול ממשק לקוחות:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול מנהלים:
אפשרויות לקבוצות הרשאות (צפייה במסמך, צפייה ברשימה, עריכה, הוספה, מחיקה) לכל מודול ולחלקים שונים במודול (למשל לכל מסמך בנפרד) ואפשרות ליצירת משתמשים ולשייך אותם לקבוצת הרשאות.
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
API:
צריך להגיע להחלטה מה נכון עבורנו. REST OR SOAP. (במג'נטו עשו גם וגם ולדעתי זה לא עובד בצורה "כפולה" אלא ה-REST "רוכב" על ה-SOAP)
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
האם לYII יש איזשהו פלאגין מסודר של טוקניזציה מבחינת אבטחת מידע?
מודול ניהול מחסנים, מוצרים, ומלאי:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול דוחות:
דוחות יופיעו בווידג'טים הניתנים להצגה לפי החלטת משתמש
עלות המערכת לאתר דו לשוני על בסיס תבנית עיצוב
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול ספקים:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול סטטיסטיקה:
דוחות יופיעו בווידג'טים הניתנים להצגה לפי החלטת משתמש
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול ניהול משימות והערות לצוות:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול יומן ולוח שנה עם אפשרות לשיתוף לצוות + יומנים כלליים:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול ניהול פרויקטים ומעקב משימות לפי זמן:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול פניות לקוחות (תמיכה ומכירות):
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול POS:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול אמצעי תשלום:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול שיטות משלוח:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול ניוזלטר:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול RMA:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול רישום פעולות - LOG:
כל פעולה שתבוצע במערכת תירשם בLOG. בין אם זה עריכה של שדה. ובין אם זה מחיקה והוספה.
מבחינת ייעילות אני חושב שצריך לאפשר לכתוב את הLOG על גבי DB נפרד. (במידת הצורך)
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול רישום שגיאות מערכת:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
מודול הערות בדפים שונים בממשק הניהול:
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
ניהול עובדים ושכר:
הפקת תלושי שכר, פרילנסרים, משכורות, חופשות וימי חופש, הפרשות, זכויות, נקודות זיכוי, ביטוח לאומי, מס הכנסה, ימי מחלה
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
גרסה למכשירים ניידים (אייפון, אנדרוייד, תבנית דפדפן לניידים):
ממשקים החוצה:
ממשקים למודול:
דוחות וסטטיסטיקה:
הערות שפה, מראה, ומטבע:
הערות כלליות ונושאים לחשיבה ובדיקה
שימוש בתבנית Admin מוכנה לממשק והתנהגות ולתת למשתמש לבחור אם זה רוחב מלא או רוחב קבוע., למשל: http://www.malijuthemeshop.com/themes/mws-admin/1.2 עם גרסה לניידים ומחשבים עם מסך רחב ורגיל בלחיצת כפתור
בחשיבה על כל מודול לראות מה קיים בשוק בנושא.
אפשרות להוסיף cron בהקמה של כל מערכת כדי לקבל מיילים ופעולות שקשורות לזמנים ולעיבוד נתונים וכדומה.
להגיע למסקנות מסודרות בנוגע לתצורה של המערכת
וידג'טים בדף הבית
מערכת מנהלת + ניהול מודולים ותשלומים עבור השרות?
קבצים נפרדים?
בסיסי נתונים נפרדים או מרכזי?
אפשרות לפיתרון משולב (עבור Hosted Solution, לקוחות עם התאמות, ולקוחות גדולים)?
סביבת פיתוח אחת לארץ, לחו"ל, למערכת הגדולה, ולמערכת עצמאית
אפשרויות דיבג מתקדמות והצגת שגיאות לפי שליטה שלנו
FLAG שמציג שהמערכת בשדרוג וכפתור "כיבוי"
מבנה תיקיות למשתמשים עבור דברים מותאמים כגון תבניות שונות, קבצי שפה, ומודולים מותאמים.
שמבנה התבניות יעבוד כמו במג'נטו (שייקח מה-BASE אם אין בתבנית שלו, ואפשר לעשות תבניות מותאמות
אבטחת מידע - אם אנחנו מתכוונים להציע את השירות על גבי השרתים שלנו בענן - הם חייבים לעמוד בסטנדרטים נוקשים בכל מה שקשור לאבטחת מידע.
ברמת סיסטם
הקשחת שרתים
הפרדת מסד נתונים מהאתר
ברמת אפליקציה
טוקניזציה
אם השירות יהיה ברמת SAAS, אפשר גם להגיע למצב שאנחנו שומרים את הנתונים של כל לקוח באופן מוצפן לפי מפתח ייחודי שנוצר עבורו בעת ההרשמה. וכל הכנסה/עריכה והצגה של תוכן תבוצע לפי הצפנה ייעודית. (ככה נוכל לשמור על מספר לקוחות באותו הDB. כאשר לכל שורה בכל הטבלאות הדינאמיות ניתן להוסיף את השדה (client_id))
אפשרות להצפנה אופציונאלית (0-1)